diff --git a/api/get_structs.go b/api/get_structs.go index 9957fe4f..052f7d11 100644 --- a/api/get_structs.go +++ b/api/get_structs.go @@ -201,6 +201,8 @@ func getDeviceStructByName(name string) (interface{}, error) { return &device.SetClientCertificateMode{}, nil case "GetRelayOutputs": return &device.GetRelayOutputs{}, nil + case "GetDigitalInputs": + return &device.GetDigitalInputs{}, nil case "SetRelayOutputSettings": return &device.SetRelayOutputSettings{}, nil case "SetRelayOutputState": diff --git a/device/function.go b/device/function.go index d018c689..7074d988 100644 --- a/device/function.go +++ b/device/function.go @@ -341,6 +341,15 @@ func (_ *GetRelayOutputsFunction) Response() interface{} { return &GetRelayOutputsResponse{} } +type GetDigitalInputsFunction struct{} + +func (_ *GetDigitalInputsFunction) Request() interface{} { + return &GetDigitalInputs{} +} +func (_ *GetDigitalInputsFunction) Response() interface{} { + return &GetDigitalInputsResponse{} +} + type GetRemoteDiscoveryModeFunction struct{} func (_ *GetRemoteDiscoveryModeFunction) Request() interface{} { diff --git a/device/types.go b/device/types.go index 210cd00d..521dc7c0 100644 --- a/device/types.go +++ b/device/types.go @@ -683,6 +683,14 @@ type GetRelayOutputsResponse struct { RelayOutputs onvif.RelayOutput } +type GetDigitalInputs struct { + XMLName string `xml:"tmd:GetDigitalInputs"` +} + +type GetDigitalInputsResponse struct { + DigitalInputs onvif.DigitalInput +} + type SetRelayOutputSettings struct { XMLName string `xml:"tds:SetRelayOutputSettings"` RelayOutputToken onvif.ReferenceToken `xml:"tds:RelayOutputToken"` diff --git a/deviceio/function.go b/deviceio/function.go index 1e97bc68..34c7eb1b 100644 --- a/deviceio/function.go +++ b/deviceio/function.go @@ -341,6 +341,15 @@ func (_ *GetRelayOutputsFunction) Response() interface{} { return &GetRelayOutputsResponse{} } +type GetDigitalInputsFunction struct{} + +func (_ *GetDigitalInputsFunction) Request() interface{} { + return &GetDigitalInputs{} +} +func (_ *GetDigitalInputsFunction) Response() interface{} { + return &GetDigitalInputsResponse{} +} + type GetRemoteDiscoveryModeFunction struct{} func (_ *GetRemoteDiscoveryModeFunction) Request() interface{} { diff --git a/deviceio/types.go b/deviceio/types.go index f6a3b3a0..4369589b 100644 --- a/deviceio/types.go +++ b/deviceio/types.go @@ -683,6 +683,14 @@ type GetRelayOutputsResponse struct { RelayOutputs onvif.RelayOutput } +type GetDigitalInputs struct { + XMLName string `xml:"tmd:GetDigitalInputs"` +} + +type GetDigitalInputsResponse struct { + DigitalInputs onvif.DigitalInput +} + type SetRelayOutputSettings struct { XMLName string `xml:"tds:SetRelayOutputSettings"` RelayOutputToken onvif.ReferenceToken `xml:"tds:RelayOutputToken"` diff --git a/event/types.go b/event/types.go index a82e5967..a980e120 100644 --- a/event/types.go +++ b/event/types.go @@ -166,6 +166,7 @@ type QueryExpression QueryExpressionType // TopicExpressionType struct for wsnt:TopicExpression type TopicExpressionType struct { //wsnt http://docs.oasis-open.org/wsn/b-2.xsd + Dialect xsd.String `xml:"Dialect,attr"` TopicKinds xsd.String `xml:",chardata"` } diff --git a/mappings.go b/mappings.go index 1c7576c2..2f6726b2 100644 --- a/mappings.go +++ b/mappings.go @@ -72,6 +72,7 @@ var DeviceFunctionMap = map[string]Function{ GetNetworkProtocols: &device.GetNetworkProtocolsFunction{}, GetPkcs10Request: &device.GetPkcs10RequestFunction{}, GetRelayOutputs: &device.GetRelayOutputsFunction{}, + GetDigitalInputs: &device.GetDigitalInputsFunction{}, GetRemoteDiscoveryMode: &device.GetRemoteDiscoveryModeFunction{}, GetRemoteUser: &device.GetRemoteUserFunction{}, GetScopes: &device.GetScopesFunction{}, diff --git a/names.go b/names.go index e3cbaeab..4a31c8ef 100644 --- a/names.go +++ b/names.go @@ -75,6 +75,7 @@ const ( GetNetworkProtocols = "GetNetworkProtocols" GetPkcs10Request = "GetPkcs10Request" GetRelayOutputs = "GetRelayOutputs" + GetDigitalInputs = "GetDigitalInputs" GetRemoteDiscoveryMode = "GetRemoteDiscoveryMode" GetRemoteUser = "GetRemoteUser" GetScopes = "GetScopes" diff --git a/xsd/onvif/onvif.go b/xsd/onvif/onvif.go index b973f063..adc48ddb 100644 --- a/xsd/onvif/onvif.go +++ b/xsd/onvif/onvif.go @@ -1839,6 +1839,17 @@ type RelayOutputSettings struct { IdleState RelayIdleState `xml:"IdleState"` } +type DigitalInput struct { + Token ReferenceToken `xml:"token,attr"` + IdleState InputIdleState `xml:"IdleState,attr"` +} + +// TODO:enumeration +type InputToken xsd.String + +// TODO:enumeration +type InputIdleState xsd.String + // TODO:enumeration type RelayIdleState xsd.String