码迷,mamicode.com
首页 > 其他好文 > 详细

视频智能分析平台EasyCVR本地可控但上级设备无法控制下级设备是何种原因?

时间:2021-06-02 20:17:06      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:real   控制   技术   poi   添加   lang   转换   port   length   

大家知道EasyCVR是一个支持协议很宽泛的视频平台,因此兼容了很多协议的优点,比如支持云台控制设备,也支持通过不同协议的级联平台等。近期EasyCVR在测试中出现本地平台能云台控制下级设备,但是上级设备却无法控制下级设备的情况。

技术图片

针对此情况,我们进行了抓包分析。

技术图片

通过抓包分析,能够查看到上级发送的控制消息,到本级的时候是正常发送且正常响应的,但是通过本级转发给下级的时候,下级回复的400错误。

此时发现问题,由于EasyCVR级联的通道和下级设备的真实id不一样,所以在通过上级发送控制命令到下级的时候,需要在下级再次转换,添加如下代码:

gbDevID := gbsChns[0].DeviceID
sipDev := uas.Server.GetDevice(gbDevID)
if sipDev == nil {
   log.Println("级联MakePTZControlRequest错误")
   return
}
reqControl, _, err = uas.Server.MakeDragZoomInControlRequest(code, uas.Server.Realm, length, width, midPointX, midPointY, lengthX, lengthY)
if err != nil {
   log.Println("级联MakeDragZoomInControlRequest错误", err)
   return
}
err = reqControl.SendByTransport(sipDev.Transport)
if err != nil {
   log.Println("级联发送MakePTZControlRequest错误", err)
   return
}

再次通过上级发送控制消息,并抓包检查,发现信息已经能够正常发送。

技术图片

视频智能分析平台EasyCVR本地可控但上级设备无法控制下级设备是何种原因?

标签:real   控制   技术   poi   添加   lang   转换   port   length   

原文地址:https://www.cnblogs.com/easycvr/p/14838077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!