Everyone knows that EasyCVR is a video platform with a wide range of support protocols, so it is compatible with the advantages of many protocols, such as supporting Miyogai control device, and also supports the level of class platforms through different protocols. Recently, EasyCVR has appeared in the test that local platforms can control lower -level devices, but superior equipment cannot control lower -level equipment.
In response to this situation, we carried out baggage analysis.
Through the analysis of the package, the control message sent by the superiors can be viewed. When it is at this level, it is sent normally and responded normally, but when reposting to the lower level through this level, the 400 error of the lower level responded.
At this time, the problem was found. Because the channel of the EasyCVR -level connection is different from the real ID of the lower -level devices, when sending the control command to the lower level through the superior, you need to change it again at the lower level. Add the following code:
gbdevid: = gbschns [0] .deviceid
sipdev: = uaS.server.getDevice (Gbdevid)
if sipdev == nil {
LOG.println ("Class Union MakeptzControlRequest Error"))
Return
}
ReqControl, _, ERR = UAS.Server.MakedragzoominControlquest (code, uaS.Server.Realm, Length, Width, Midpointy, Lengthx)
if er! = nil {
Log.println ("Class Federation Makedragzoomincontrolrequest Error", ERR)
Return
}
ERR = ReqControl.sendbytransport (Sipdev.transport)
if er! = nil {
Log.println ("Class Federation Send MakeptzControlrequest Error", ERR)
Return
}
again passed the control message through the superior and grabbed the package to find that the information had been sent normally.