Слияние кода завершено, страница обновится автоматически
Я успешно подключился к IP-адресу NVR через onvif, и метод ContinuousMove сработал. Однако при попытке вызвать GotoPreset возникла ошибка.
func main() {
// Получение экземпляра камеры
dev, err := goonvif.NewDevice(goonvif.DeviceParams{
Xaddr: "192.168.1.40",
Username: "admin",
Password: "123456",
HttpClient: new(http.Client),
})
if err != nil {
panic(err)
}
token := media.GetProfiles{}
GetProfilesResponse, err := dev.CallMethod(token)
if err != nil {
log.Println(err)
} else {
getProfilesFromXml(readResponse(GetProfilesResponse))
tfmt.Println(profilesToken)
}
tfmt.Println(profilesToken[0])
ptzs := ptz.ContinuousMove{
ProfileToken: onvif.ReferenceToken(profilesToken[0]),
Velocity: onvif.PTZSpeed{
PanTilt: onvif.Vector2D{
X: 0.5,
Y: 0,
},
},
}
ptzResponse, err := dev.CallMethod(ptzs)
tfmt.Println(readResponse(ptzResponse))
preset := ptz.GotoPreset{
ProfileToken: onvif.ReferenceToken(profilesToken[0]),
PresetToken: onvif.ReferenceToken("2"),
}
ContinuousMoveResponse, err := dev.CallMethod(preset)
tfmt.Println(readResponse(ContinuousMoveResponse))
}
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">
<soap:Body>
<tptz:ContinuousMoveResponse/>
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xs="http://www.
w3.org/2000/10/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>soap:Sender</soap:Value><soap:Subcode>
<soap:Value>ter:InvalidArgVal</soap:Value>
<soap:Subcode>
<soap:Value>ter:NoToken</soap:Value>
</soap:Subcode>
</soap:Subcode>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">Argument Value Invalid</soap:Text>
</soap:Reason>
<soap:Node>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</soap:Node>
<soap:Role>http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver</soap:Role>
<soap:Detail>
<soap:Text>The requested preset token does not exist.</soap:Text>
</soap:Detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>