onvif-python 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- onvif/__init__.py +13 -0
- onvif/client.py +485 -0
- onvif/operator.py +130 -0
- onvif/services/__init__.py +75 -0
- onvif/services/accesscontrol.py +105 -0
- onvif/services/accessrules.py +47 -0
- onvif/services/actionengine.py +46 -0
- onvif/services/analytics/analytics.py +60 -0
- onvif/services/analytics/ruleengine.py +44 -0
- onvif/services/analyticsdevice.py +122 -0
- onvif/services/appmgmt.py +40 -0
- onvif/services/authenticationbehavior.py +83 -0
- onvif/services/credential.py +159 -0
- onvif/services/deviceio.py +165 -0
- onvif/services/devicemgmt.py +410 -0
- onvif/services/display.py +62 -0
- onvif/services/doorcontrol.py +93 -0
- onvif/services/events/events.py +41 -0
- onvif/services/events/notification.py +34 -0
- onvif/services/events/pullpoint.py +29 -0
- onvif/services/events/subscription.py +21 -0
- onvif/services/imaging.py +62 -0
- onvif/services/media.py +424 -0
- onvif/services/media2.py +310 -0
- onvif/services/provisioning.py +50 -0
- onvif/services/ptz.py +187 -0
- onvif/services/receiver.py +46 -0
- onvif/services/recording.py +136 -0
- onvif/services/replay.py +30 -0
- onvif/services/schedule.py +82 -0
- onvif/services/search.py +149 -0
- onvif/services/security/advancedsecurity.py +19 -0
- onvif/services/security/authorizationserver.py +31 -0
- onvif/services/security/dot1x.py +42 -0
- onvif/services/security/jwt.py +21 -0
- onvif/services/security/keystore.py +208 -0
- onvif/services/security/mediasigning.py +30 -0
- onvif/services/security/tlsserver.py +82 -0
- onvif/services/thermal.py +54 -0
- onvif/services/uplink.py +28 -0
- onvif/utils/__init__.py +4 -0
- onvif/utils/exceptions.py +33 -0
- onvif/utils/wsdl.py +297 -0
- onvif/wsdl/ver10/accesscontrol/wsdl/index.html +7 -0
- onvif/wsdl/ver10/accessrules/wsdl/accessrules.wsdl +702 -0
- onvif/wsdl/ver10/accessrules/wsdl/index.html +7 -0
- onvif/wsdl/ver10/actionengine.wsdl +1265 -0
- onvif/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl +4159 -0
- onvif/wsdl/ver10/advancedsecurity/wsdl/index.html +7 -0
- onvif/wsdl/ver10/analyticsdevice.wsdl +709 -0
- onvif/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl +502 -0
- onvif/wsdl/ver10/appmgmt/wsdl/index.html +7 -0
- onvif/wsdl/ver10/authenticationbehavior/wsdl/authenticationbehavior.wsdl +1382 -0
- onvif/wsdl/ver10/authenticationbehavior/wsdl/index.html +7 -0
- onvif/wsdl/ver10/credential/wsdl/credential.wsdl +2018 -0
- onvif/wsdl/ver10/credential/wsdl/index.html +7 -0
- onvif/wsdl/ver10/device/wsdl/devicemgmt.wsdl +4623 -0
- onvif/wsdl/ver10/deviceio.wsdl +1414 -0
- onvif/wsdl/ver10/display/display.wsdl +383 -0
- onvif/wsdl/ver10/display/wsdl/index.htm +383 -0
- onvif/wsdl/ver10/display.wsdl +521 -0
- onvif/wsdl/ver10/doorcontrol/wsdl/index.html +7 -0
- onvif/wsdl/ver10/events/wsdl/bw-2-vs-mod.wsdl +449 -0
- onvif/wsdl/ver10/events/wsdl/event-vs.wsdl +947 -0
- onvif/wsdl/ver10/events/wsdl/event.wsdl +947 -0
- onvif/wsdl/ver10/events/wsdl/index.html +7 -0
- onvif/wsdl/ver10/federatedsearch.wsdl +344 -0
- onvif/wsdl/ver10/media/wsdl/media.wsdl +3684 -0
- onvif/wsdl/ver10/pacs/accesscontrol.wsdl +1942 -0
- onvif/wsdl/ver10/pacs/doorcontrol.wsdl +1792 -0
- onvif/wsdl/ver10/pacs/types.xsd +181 -0
- onvif/wsdl/ver10/provisioning/wsdl/provisioning.wsdl +588 -0
- onvif/wsdl/ver10/receiver.wsdl +398 -0
- onvif/wsdl/ver10/recording.wsdl +1231 -0
- onvif/wsdl/ver10/replay.wsdl +221 -0
- onvif/wsdl/ver10/schedule/wsdl/index.html +7 -0
- onvif/wsdl/ver10/schedule/wsdl/schedule.wsdl +1383 -0
- onvif/wsdl/ver10/schema/common.xsd +422 -0
- onvif/wsdl/ver10/schema/metadatastream.xsd +520 -0
- onvif/wsdl/ver10/schema/onvif.xsd +9251 -0
- onvif/wsdl/ver10/search.wsdl +882 -0
- onvif/wsdl/ver10/thermal/wsdl/index.html +7 -0
- onvif/wsdl/ver10/thermal/wsdl/thermal.wsdl +777 -0
- onvif/wsdl/ver10/topics/topicns.xml +13 -0
- onvif/wsdl/ver10/uplink/wsdl/index.html +7 -0
- onvif/wsdl/ver10/uplink/wsdl/uplink.wsdl +256 -0
- onvif/wsdl/ver20/analytics/humanbody.xsd +490 -0
- onvif/wsdl/ver20/analytics/humanface.xsd +501 -0
- onvif/wsdl/ver20/analytics/index.html +7 -0
- onvif/wsdl/ver20/analytics/radiometry.xsd +389 -0
- onvif/wsdl/ver20/analytics/rules.xsd +127 -0
- onvif/wsdl/ver20/analytics/wsdl/analytics.wsdl +757 -0
- onvif/wsdl/ver20/analytics/wsdl/index.html +7 -0
- onvif/wsdl/ver20/imaging/wsdl/imaging.wsdl +603 -0
- onvif/wsdl/ver20/media/wsdl/index.html +7 -0
- onvif/wsdl/ver20/media/wsdl/media.wsdl +2862 -0
- onvif/wsdl/ver20/ptz/wsdl/ptz.wsdl +1450 -0
- onvif/wsdl/ver20/util/federated_search_documentation.html +1647 -0
- onvif/wsdl/ver20/util/fedsearch-docu-viewer.xsl +8 -0
- onvif/wsdl/ver20/util/onvif-wsdl-viewer.xsl +2580 -0
- onvif/wsdl/ver20/util/operationIndex.html +97 -0
- onvif_python-0.0.1.dist-info/METADATA +381 -0
- onvif_python-0.0.1.dist-info/RECORD +106 -0
- onvif_python-0.0.1.dist-info/WHEEL +5 -0
- onvif_python-0.0.1.dist-info/licenses/LICENSE.md +21 -0
- onvif_python-0.0.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
# onvif/services/devicemgmt.py
|
|
2
|
+
|
|
3
|
+
from ..operator import ONVIFOperator
|
|
4
|
+
from ..utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Device:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("devicemgmt")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
service_path="device_service", # fallback
|
|
14
|
+
xaddr=xaddr,
|
|
15
|
+
**kwargs,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
def GetServices(self, IncludeCapability):
|
|
19
|
+
return self.operator.call(
|
|
20
|
+
"GetServices", IncludeCapability=IncludeCapability
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
def GetServiceCapabilities(self):
|
|
24
|
+
return self.operator.call("GetServiceCapabilities")
|
|
25
|
+
|
|
26
|
+
def GetDeviceInformation(self):
|
|
27
|
+
return self.operator.call("GetDeviceInformation")
|
|
28
|
+
|
|
29
|
+
def SetSystemDateAndTime(
|
|
30
|
+
self, DateTimeType, DaylightSavings=True, TimeZone=None, UTCDateTime=None
|
|
31
|
+
):
|
|
32
|
+
return self.operator.call(
|
|
33
|
+
"SetSystemDateAndTime",
|
|
34
|
+
DateTimeType=DateTimeType,
|
|
35
|
+
DaylightSavings=DaylightSavings,
|
|
36
|
+
TimeZone=TimeZone,
|
|
37
|
+
UTCDateTime=UTCDateTime,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
def GetSystemDateAndTime(self):
|
|
41
|
+
return self.operator.call("GetSystemDateAndTime")
|
|
42
|
+
|
|
43
|
+
def SetSystemFactoryDefault(self, FactoryDefault):
|
|
44
|
+
return self.operator.call(
|
|
45
|
+
"SetSystemFactoryDefault", FactoryDefault=FactoryDefault
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
def UpgradeSystemFirmware(self, Firmware):
|
|
49
|
+
return self.operator.call("UpgradeSystemFirmware", Firmware=Firmware)
|
|
50
|
+
|
|
51
|
+
def SystemReboot(self):
|
|
52
|
+
return self.operator.call("SystemReboot")
|
|
53
|
+
|
|
54
|
+
def RestoreSystem(self, BackupFiles):
|
|
55
|
+
return self.operator.call("RestoreSystem", BackupFiles=BackupFiles)
|
|
56
|
+
|
|
57
|
+
def GetSystemBackup(self):
|
|
58
|
+
return self.operator.call("GetSystemBackup")
|
|
59
|
+
|
|
60
|
+
def GetSystemLog(self, LogType):
|
|
61
|
+
return self.operator.call("GetSystemLog", LogType=LogType)
|
|
62
|
+
|
|
63
|
+
def GetSystemSupportInformation(self):
|
|
64
|
+
return self.operator.call("GetSystemSupportInformation")
|
|
65
|
+
|
|
66
|
+
def GetScopes(self):
|
|
67
|
+
return self.operator.call("GetScopes")
|
|
68
|
+
|
|
69
|
+
def SetScopes(self, Scopes):
|
|
70
|
+
return self.operator.call("SetScopes", Scopes=Scopes)
|
|
71
|
+
|
|
72
|
+
def AddScopes(self, ScopeItem):
|
|
73
|
+
return self.operator.call("AddScopes", ScopeItem=ScopeItem)
|
|
74
|
+
|
|
75
|
+
def RemoveScopes(self, ScopeItem):
|
|
76
|
+
return self.operator.call("RemoveScopes", ScopeItem=ScopeItem)
|
|
77
|
+
|
|
78
|
+
def GetDiscoveryMode(self):
|
|
79
|
+
return self.operator.call("GetDiscoveryMode")
|
|
80
|
+
|
|
81
|
+
def SetDiscoveryMode(self, DiscoveryMode):
|
|
82
|
+
return self.operator.call("SetDiscoveryMode", DiscoveryMode=DiscoveryMode)
|
|
83
|
+
|
|
84
|
+
def GetRemoteDiscoveryMode(self):
|
|
85
|
+
return self.operator.call("GetRemoteDiscoveryMode")
|
|
86
|
+
|
|
87
|
+
def SetRemoteDiscoveryMode(self, RemoteDiscoveryMode):
|
|
88
|
+
return self.operator.call(
|
|
89
|
+
"SetRemoteDiscoveryMode", RemoteDiscoveryMode=RemoteDiscoveryMode
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
def GetDPAddresses(self):
|
|
93
|
+
return self.operator.call("GetDPAddresses")
|
|
94
|
+
|
|
95
|
+
def GetEndpointReference(self):
|
|
96
|
+
return self.operator.call("GetEndpointReference")
|
|
97
|
+
|
|
98
|
+
def GetRemoteUser(self):
|
|
99
|
+
return self.operator.call("GetRemoteUser")
|
|
100
|
+
|
|
101
|
+
def SetRemoteUser(self, RemoteUser=None):
|
|
102
|
+
return self.operator.call("SetRemoteUser", RemoteUser=RemoteUser)
|
|
103
|
+
|
|
104
|
+
def GetUsers(self):
|
|
105
|
+
return self.operator.call("GetUsers")
|
|
106
|
+
|
|
107
|
+
def CreateUsers(self, User):
|
|
108
|
+
return self.operator.call("CreateUsers", User=User)
|
|
109
|
+
|
|
110
|
+
def DeleteUsers(self, Username):
|
|
111
|
+
return self.operator.call("DeleteUsers", Username=Username)
|
|
112
|
+
|
|
113
|
+
def SetUser(self, User):
|
|
114
|
+
return self.operator.call("SetUser", User=User)
|
|
115
|
+
|
|
116
|
+
def GetWsdlUrl(self):
|
|
117
|
+
return self.operator.call("GetWsdlUrl")
|
|
118
|
+
|
|
119
|
+
def GetPasswordComplexityOptions(self):
|
|
120
|
+
return self.operator.call("GetPasswordComplexityOptions")
|
|
121
|
+
|
|
122
|
+
def GetPasswordComplexityConfiguration(self):
|
|
123
|
+
return self.operator.call("GetPasswordComplexityConfiguration")
|
|
124
|
+
|
|
125
|
+
def SetPasswordComplexityConfiguration(
|
|
126
|
+
self,
|
|
127
|
+
MinLen=None,
|
|
128
|
+
Uppercase=None,
|
|
129
|
+
Number=None,
|
|
130
|
+
SpecialChars=None,
|
|
131
|
+
BlockUsernameOccurrence=None,
|
|
132
|
+
PolicyConfigurationLocked=None,
|
|
133
|
+
):
|
|
134
|
+
return self.operator.call(
|
|
135
|
+
"SetPasswordComplexityConfiguration",
|
|
136
|
+
MinLen=MinLen,
|
|
137
|
+
Uppercase=Uppercase,
|
|
138
|
+
Number=Number,
|
|
139
|
+
SpecialChars=SpecialChars,
|
|
140
|
+
BlockUsernameOccurrence=BlockUsernameOccurrence,
|
|
141
|
+
PolicyConfigurationLocked=PolicyConfigurationLocked,
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
def GetPasswordHistoryConfiguration(self):
|
|
145
|
+
return self.operator.call("GetPasswordHistoryConfiguration")
|
|
146
|
+
|
|
147
|
+
def SetPasswordHistoryConfiguration(self, Enabled, Length):
|
|
148
|
+
return self.operator.call(
|
|
149
|
+
"SetPasswordHistoryConfiguration", Enabled=Enabled, Length=Length
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
def GetAuthFailureWarningOptions(self):
|
|
153
|
+
return self.operator.call("GetAuthFailureWarningOptions")
|
|
154
|
+
|
|
155
|
+
def GetAuthFailureWarningConfiguration(self):
|
|
156
|
+
return self.operator.call("GetAuthFailureWarningConfiguration")
|
|
157
|
+
|
|
158
|
+
def SetAuthFailureWarningConfiguration(
|
|
159
|
+
self, Enabled, MonitorPeriod, MaxAuthFailures
|
|
160
|
+
):
|
|
161
|
+
return self.operator.call(
|
|
162
|
+
"SetAuthFailureWarningConfiguration",
|
|
163
|
+
Enabled=Enabled,
|
|
164
|
+
MonitorPeriod=MonitorPeriod,
|
|
165
|
+
MaxAuthFailures=MaxAuthFailures,
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
def GetCapabilities(self, Category=None):
|
|
169
|
+
return self.operator.call("GetCapabilities", Category=Category)
|
|
170
|
+
|
|
171
|
+
def SetDPAddresses(self, DPAddresses=None):
|
|
172
|
+
return self.operator.call("SetDPAddresses", DPAddresses=DPAddresses)
|
|
173
|
+
|
|
174
|
+
def GetHostname(self):
|
|
175
|
+
return self.operator.call("GetHostname")
|
|
176
|
+
|
|
177
|
+
def SetHostname(self, Name):
|
|
178
|
+
return self.operator.call("SetHostname", Name=Name)
|
|
179
|
+
|
|
180
|
+
def SetHostnameFromDHCP(self, FromDHCP):
|
|
181
|
+
return self.operator.call("SetHostnameFromDHCP", FromDHCP=FromDHCP)
|
|
182
|
+
|
|
183
|
+
def GetDNS(self):
|
|
184
|
+
return self.operator.call("GetDNS")
|
|
185
|
+
|
|
186
|
+
def SetDNS(self, FromDHCP, SearchDomain=None, DNSManual=None):
|
|
187
|
+
return self.operator.call(
|
|
188
|
+
"SetDNS", FromDHCP=FromDHCP, SearchDomain=SearchDomain, DNSManual=DNSManual
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
def GetNTP(self):
|
|
192
|
+
return self.operator.call("GetNTP")
|
|
193
|
+
|
|
194
|
+
def SetNTP(self, FromDHCP, NTPManual=None):
|
|
195
|
+
return self.operator.call("SetNTP", FromDHCP=FromDHCP, NTPManual=NTPManual)
|
|
196
|
+
|
|
197
|
+
def GetDynamicDNS(self):
|
|
198
|
+
return self.operator.call("GetDynamicDNS")
|
|
199
|
+
|
|
200
|
+
def SetDynamicDNS(self, Type, Name=None, TTL=None):
|
|
201
|
+
return self.operator.call("SetDynamicDNS", Type=Type, Name=Name, TTL=TTL)
|
|
202
|
+
|
|
203
|
+
def GetNetworkInterfaces(self):
|
|
204
|
+
return self.operator.call("GetNetworkInterfaces")
|
|
205
|
+
|
|
206
|
+
def SetNetworkInterfaces(self, InterfaceToken, NetworkInterface):
|
|
207
|
+
return self.operator.call(
|
|
208
|
+
"SetNetworkInterfaces",
|
|
209
|
+
InterfaceToken=InterfaceToken,
|
|
210
|
+
NetworkInterface=NetworkInterface,
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
def GetNetworkProtocols(self):
|
|
214
|
+
return self.operator.call("GetNetworkProtocols")
|
|
215
|
+
|
|
216
|
+
def SetNetworkProtocols(self, NetworkProtocols):
|
|
217
|
+
return self.operator.call(
|
|
218
|
+
"SetNetworkProtocols", NetworkProtocols=NetworkProtocols
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
def GetNetworkDefaultGateway(self):
|
|
222
|
+
return self.operator.call("GetNetworkDefaultGateway")
|
|
223
|
+
|
|
224
|
+
def SetNetworkDefaultGateway(self, IPv4Address=None, IPv6Address=None):
|
|
225
|
+
return self.operator.call(
|
|
226
|
+
"SetNetworkDefaultGateway", IPv4Address=IPv4Address, IPv6Address=IPv6Address
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
def GetZeroConfiguration(self):
|
|
230
|
+
return self.operator.call("GetZeroConfiguration")
|
|
231
|
+
|
|
232
|
+
def SetZeroConfiguration(self, InterfaceToken, Enabled):
|
|
233
|
+
return self.operator.call(
|
|
234
|
+
"SetZeroConfiguration", InterfaceToken=InterfaceToken, Enabled=Enabled
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
def GetIPAddressFilter(self):
|
|
238
|
+
return self.operator.call("GetIPAddressFilter")
|
|
239
|
+
|
|
240
|
+
def SetIPAddressFilter(self, IPAddressFilter):
|
|
241
|
+
return self.operator.call("SetIPAddressFilter", IPAddressFilter=IPAddressFilter)
|
|
242
|
+
|
|
243
|
+
def AddIPAddressFilter(self, IPAddressFilter):
|
|
244
|
+
return self.operator.call("AddIPAddressFilter", IPAddressFilter=IPAddressFilter)
|
|
245
|
+
|
|
246
|
+
def RemoveIPAddressFilter(self, IPAddressFilter):
|
|
247
|
+
return self.operator.call(
|
|
248
|
+
"RemoveIPAddressFilter", IPAddressFilter=IPAddressFilter
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
def GetAccessPolicy(self):
|
|
252
|
+
return self.operator.call("GetAccessPolicy")
|
|
253
|
+
|
|
254
|
+
def SetAccessPolicy(self, PolicyFile):
|
|
255
|
+
return self.operator.call("SetAccessPolicy", PolicyFile=PolicyFile)
|
|
256
|
+
|
|
257
|
+
def CreateCertificate(
|
|
258
|
+
self, CertificateID=None, Subject=None, ValidNotBefore=None, ValidNotAfter=None
|
|
259
|
+
):
|
|
260
|
+
return self.operator.call(
|
|
261
|
+
"CreateCertificate",
|
|
262
|
+
CertificateID=CertificateID,
|
|
263
|
+
Subject=Subject,
|
|
264
|
+
ValidNotBefore=ValidNotBefore,
|
|
265
|
+
ValidNotAfter=ValidNotAfter,
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
def GetCertificates(self):
|
|
269
|
+
return self.operator.call("GetCertificates")
|
|
270
|
+
|
|
271
|
+
def GetCertificatesStatus(self):
|
|
272
|
+
return self.operator.call("GetCertificatesStatus")
|
|
273
|
+
|
|
274
|
+
def SetCertificatesStatus(self, CertificateStatus=None):
|
|
275
|
+
return self.operator.call(
|
|
276
|
+
"SetCertificatesStatus", CertificateStatus=CertificateStatus
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
def DeleteCertificates(self, CertificateID):
|
|
280
|
+
return self.operator.call("DeleteCertificates", CertificateID=CertificateID)
|
|
281
|
+
|
|
282
|
+
def GetPkcs10Request(self, CertificateID, Subject=None, Attributes=None):
|
|
283
|
+
return self.operator.call(
|
|
284
|
+
"GetPkcs10Request",
|
|
285
|
+
CertificateID=CertificateID,
|
|
286
|
+
Subject=Subject,
|
|
287
|
+
Attributes=Attributes,
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
def LoadCertificates(self, NVTCertificate):
|
|
291
|
+
return self.operator.call("LoadCertificates", NVTCertificate=NVTCertificate)
|
|
292
|
+
|
|
293
|
+
def GetClientCertificateMode(self):
|
|
294
|
+
return self.operator.call("GetClientCertificateMode")
|
|
295
|
+
|
|
296
|
+
def SetClientCertificateMode(self, Enabled):
|
|
297
|
+
return self.operator.call("SetClientCertificateMode", Enabled=Enabled)
|
|
298
|
+
|
|
299
|
+
def GetRelayOutputs(self):
|
|
300
|
+
return self.operator.call("GetRelayOutputs")
|
|
301
|
+
|
|
302
|
+
def SetRelayOutputSettings(self, RelayOutputToken, Properties):
|
|
303
|
+
return self.operator.call(
|
|
304
|
+
"SetRelayOutputSettings",
|
|
305
|
+
RelayOutputToken=RelayOutputToken,
|
|
306
|
+
Properties=Properties,
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
def SetRelayOutputState(self, RelayOutputToken, LogicalState):
|
|
310
|
+
return self.operator.call(
|
|
311
|
+
"SetRelayOutputState",
|
|
312
|
+
RelayOutputToken=RelayOutputToken,
|
|
313
|
+
LogicalState=LogicalState,
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
def SendAuxiliaryCommand(self, AuxiliaryCommand):
|
|
317
|
+
return self.operator.call(
|
|
318
|
+
"SendAuxiliaryCommand", AuxiliaryCommand=AuxiliaryCommand
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
def GetCACertificates(self):
|
|
322
|
+
return self.operator.call("GetCACertificates")
|
|
323
|
+
|
|
324
|
+
def LoadCertificateWithPrivateKey(self, CertificateWithPrivateKey):
|
|
325
|
+
return self.operator.call(
|
|
326
|
+
"LoadCertificateWithPrivateKey",
|
|
327
|
+
CertificateWithPrivateKey=CertificateWithPrivateKey,
|
|
328
|
+
)
|
|
329
|
+
|
|
330
|
+
def GetCertificateInformation(self, CertificateID):
|
|
331
|
+
return self.operator.call(
|
|
332
|
+
"GetCertificateInformation", CertificateID=CertificateID
|
|
333
|
+
)
|
|
334
|
+
|
|
335
|
+
def LoadCACertificates(self, CACertificate):
|
|
336
|
+
return self.operator.call("LoadCACertificates", CACertificate=CACertificate)
|
|
337
|
+
|
|
338
|
+
def CreateDot1XConfiguration(self, Dot1XConfiguration):
|
|
339
|
+
return self.operator.call(
|
|
340
|
+
"CreateDot1XConfiguration", Dot1XConfiguration=Dot1XConfiguration
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
def SetDot1XConfiguration(self, Dot1XConfiguration):
|
|
344
|
+
return self.operator.call(
|
|
345
|
+
"SetDot1XConfiguration", Dot1XConfiguration=Dot1XConfiguration
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
def GetDot1XConfiguration(self, Dot1XConfigurationToken):
|
|
349
|
+
return self.operator.call(
|
|
350
|
+
"GetDot1XConfiguration", Dot1XConfigurationToken=Dot1XConfigurationToken
|
|
351
|
+
)
|
|
352
|
+
|
|
353
|
+
def GetDot1XConfigurations(self):
|
|
354
|
+
return self.operator.call("GetDot1XConfigurations")
|
|
355
|
+
|
|
356
|
+
def DeleteDot1XConfiguration(self, Dot1XConfigurationToken=None):
|
|
357
|
+
return self.operator.call(
|
|
358
|
+
"DeleteDot1XConfiguration", Dot1XConfigurationToken=Dot1XConfigurationToken
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
def GetDot11Capabilities(self):
|
|
362
|
+
return self.operator.call("GetDot11Capabilities")
|
|
363
|
+
|
|
364
|
+
def GetDot11Status(self, InterfaceToken):
|
|
365
|
+
return self.operator.call("GetDot11Status", InterfaceToken=InterfaceToken)
|
|
366
|
+
|
|
367
|
+
def ScanAvailableDot11Networks(self, InterfaceToken):
|
|
368
|
+
return self.operator.call(
|
|
369
|
+
"ScanAvailableDot11Networks", InterfaceToken=InterfaceToken
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
def GetSystemUris(self):
|
|
373
|
+
return self.operator.call("GetSystemUris")
|
|
374
|
+
|
|
375
|
+
def StartFirmwareUpgrade(self):
|
|
376
|
+
return self.operator.call("StartFirmwareUpgrade")
|
|
377
|
+
|
|
378
|
+
def StartSystemRestore(self):
|
|
379
|
+
return self.operator.call("StartSystemRestore")
|
|
380
|
+
|
|
381
|
+
def GetStorageConfigurations(self):
|
|
382
|
+
return self.operator.call("GetStorageConfigurations")
|
|
383
|
+
|
|
384
|
+
def CreateStorageConfiguration(self, StorageConfiguration):
|
|
385
|
+
return self.operator.call(
|
|
386
|
+
"CreateStorageConfiguration", StorageConfiguration=StorageConfiguration
|
|
387
|
+
)
|
|
388
|
+
|
|
389
|
+
def GetStorageConfiguration(self, Token):
|
|
390
|
+
return self.operator.call("GetStorageConfiguration", Token=Token)
|
|
391
|
+
|
|
392
|
+
def SetStorageConfiguration(self, StorageConfiguration):
|
|
393
|
+
return self.operator.call(
|
|
394
|
+
"SetStorageConfiguration", StorageConfiguration=StorageConfiguration
|
|
395
|
+
)
|
|
396
|
+
|
|
397
|
+
def DeleteStorageConfiguration(self, Token):
|
|
398
|
+
return self.operator.call("DeleteStorageConfiguration", Token=Token)
|
|
399
|
+
|
|
400
|
+
def GetGeoLocation(self):
|
|
401
|
+
return self.operator.call("GetGeoLocation")
|
|
402
|
+
|
|
403
|
+
def SetGeoLocation(self, Location):
|
|
404
|
+
return self.operator.call("SetGeoLocation", Location=Location)
|
|
405
|
+
|
|
406
|
+
def DeleteGeoLocation(self, Location):
|
|
407
|
+
return self.operator.call("DeleteGeoLocation", Location=Location)
|
|
408
|
+
|
|
409
|
+
def SetHashingAlgorithm(self, Algorithm):
|
|
410
|
+
return self.operator.call("SetHashingAlgorithm", Algorithm=Algorithm)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# onvif/services/display.py
|
|
2
|
+
|
|
3
|
+
from ..operator import ONVIFOperator
|
|
4
|
+
from ..utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Display:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("display")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
service_path="Display", # fallback
|
|
14
|
+
xaddr=xaddr,
|
|
15
|
+
**kwargs,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
def GetServiceCapabilities(self):
|
|
19
|
+
return self.operator.call("GetServiceCapabilities")
|
|
20
|
+
|
|
21
|
+
def GetLayout(self, VideoOutput):
|
|
22
|
+
return self.operator.call("GetLayout", VideoOutput=VideoOutput)
|
|
23
|
+
|
|
24
|
+
def SetLayout(self, VideoOutput, Layout):
|
|
25
|
+
return self.operator.call("SetLayout", VideoOutput=VideoOutput, Layout=Layout)
|
|
26
|
+
|
|
27
|
+
def GetDisplayOptions(self, VideoOutput):
|
|
28
|
+
return self.operator.call("GetDisplayOptions", VideoOutput=VideoOutput)
|
|
29
|
+
|
|
30
|
+
def GetPaneConfigurations(self, VideoOutput):
|
|
31
|
+
return self.operator.call("GetPaneConfigurations", VideoOutput=VideoOutput)
|
|
32
|
+
|
|
33
|
+
def GetPaneConfiguration(self, VideoOutput, Pane):
|
|
34
|
+
return self.operator.call(
|
|
35
|
+
"GetPaneConfiguration", VideoOutput=VideoOutput, Pane=Pane
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def SetPaneConfigurations(self, VideoOutput, PaneConfiguration):
|
|
39
|
+
return self.operator.call(
|
|
40
|
+
"SetPaneConfigurations",
|
|
41
|
+
VideoOutput=VideoOutput,
|
|
42
|
+
PaneConfiguration=PaneConfiguration,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def SetPaneConfiguration(self, VideoOutput, PaneConfiguration):
|
|
46
|
+
return self.operator.call(
|
|
47
|
+
"SetPaneConfiguration",
|
|
48
|
+
VideoOutput=VideoOutput,
|
|
49
|
+
PaneConfiguration=PaneConfiguration,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
def CreatePaneConfiguration(self, VideoOutput, PaneConfiguration):
|
|
53
|
+
return self.operator.call(
|
|
54
|
+
"CreatePaneConfiguration",
|
|
55
|
+
VideoOutput=VideoOutput,
|
|
56
|
+
PaneConfiguration=PaneConfiguration,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
def DeletePaneConfiguration(self, VideoOutput, PaneToken):
|
|
60
|
+
return self.operator.call(
|
|
61
|
+
"DeletePaneConfiguration", VideoOutput=VideoOutput, PaneToken=PaneToken
|
|
62
|
+
)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# onvif/services/doorcontrol.py
|
|
2
|
+
|
|
3
|
+
from ..operator import ONVIFOperator
|
|
4
|
+
from ..utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class DoorControl:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("doorcontrol")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
service_path="DoorControl", # fallback
|
|
14
|
+
xaddr=xaddr,
|
|
15
|
+
**kwargs,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
def GetServiceCapabilities(self):
|
|
19
|
+
return self.operator.call("GetServiceCapabilities")
|
|
20
|
+
|
|
21
|
+
def GetDoorInfoList(self, Limit=None, StartReference=None):
|
|
22
|
+
return self.operator.call(
|
|
23
|
+
"GetDoorInfoList", Limit=Limit, StartReference=StartReference
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
def GetDoorInfo(self, Token):
|
|
27
|
+
return self.operator.call("GetDoorInfo", Token=Token)
|
|
28
|
+
|
|
29
|
+
def GetDoorList(self, Limit=None, StartReference=None):
|
|
30
|
+
return self.operator.call(
|
|
31
|
+
"GetDoorList", Limit=Limit, StartReference=StartReference
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
def GetDoors(self, Token):
|
|
35
|
+
return self.operator.call("GetDoors", Token=Token)
|
|
36
|
+
|
|
37
|
+
def CreateDoor(self, Door):
|
|
38
|
+
return self.operator.call("CreateDoor", Door=Door)
|
|
39
|
+
|
|
40
|
+
def SetDoor(self, Door):
|
|
41
|
+
return self.operator.call("SetDoor", Door=Door)
|
|
42
|
+
|
|
43
|
+
def ModifyDoor(self, Door):
|
|
44
|
+
return self.operator.call("ModifyDoor", Door=Door)
|
|
45
|
+
|
|
46
|
+
def DeleteDoor(self, Token):
|
|
47
|
+
return self.operator.call("DeleteDoor", Token=Token)
|
|
48
|
+
|
|
49
|
+
def GetDoorState(self, Token):
|
|
50
|
+
return self.operator.call("GetDoorState", Token=Token)
|
|
51
|
+
|
|
52
|
+
def AccessDoor(
|
|
53
|
+
self,
|
|
54
|
+
Token,
|
|
55
|
+
UseExtendedTime=None,
|
|
56
|
+
AccessTime=None,
|
|
57
|
+
OpenTooLongTime=None,
|
|
58
|
+
PreAlarmTime=None,
|
|
59
|
+
Extension=None,
|
|
60
|
+
):
|
|
61
|
+
return self.operator.call(
|
|
62
|
+
"AccessDoor",
|
|
63
|
+
Token=Token,
|
|
64
|
+
UseExtendedTime=UseExtendedTime,
|
|
65
|
+
AccessTime=AccessTime,
|
|
66
|
+
OpenTooLongTime=OpenTooLongTime,
|
|
67
|
+
PreAlarmTime=PreAlarmTime,
|
|
68
|
+
Extension=Extension,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
def LockDoor(self, Token):
|
|
72
|
+
return self.operator.call("LockDoor", Token=Token)
|
|
73
|
+
|
|
74
|
+
def UnlockDoor(self, Token):
|
|
75
|
+
return self.operator.call("UnlockDoor", Token=Token)
|
|
76
|
+
|
|
77
|
+
def BlockDoor(self, Token):
|
|
78
|
+
return self.operator.call("BlockDoor", Token=Token)
|
|
79
|
+
|
|
80
|
+
def LockDownDoor(self, Token):
|
|
81
|
+
return self.operator.call("LockDownDoor", Token=Token)
|
|
82
|
+
|
|
83
|
+
def LockDownReleaseDoor(self, Token):
|
|
84
|
+
return self.operator.call("LockDownReleaseDoor", Token=Token)
|
|
85
|
+
|
|
86
|
+
def LockOpenDoor(self, Token):
|
|
87
|
+
return self.operator.call("LockOpenDoor", Token=Token)
|
|
88
|
+
|
|
89
|
+
def LockOpenReleaseDoor(self, Token):
|
|
90
|
+
return self.operator.call("LockOpenReleaseDoor", Token=Token)
|
|
91
|
+
|
|
92
|
+
def DoubleLockDoor(self, Token):
|
|
93
|
+
return self.operator.call("DoubleLockDoor", Token=Token)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# onvif/services/events/events.py
|
|
2
|
+
|
|
3
|
+
from ...operator import ONVIFOperator
|
|
4
|
+
from ...utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Events:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("events")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
service_path="Events", # fallback
|
|
14
|
+
xaddr=xaddr,
|
|
15
|
+
**kwargs,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
def GetServiceCapabilities(self):
|
|
19
|
+
return self.operator.call("GetServiceCapabilities")
|
|
20
|
+
|
|
21
|
+
def CreatePullPointSubscription(
|
|
22
|
+
self, Filter=None, InitialTerminationTime=None, SubscriptionPolicy=None
|
|
23
|
+
):
|
|
24
|
+
return self.operator.call(
|
|
25
|
+
"CreatePullPointSubscription",
|
|
26
|
+
Filter=Filter,
|
|
27
|
+
InitialTerminationTime=InitialTerminationTime,
|
|
28
|
+
SubscriptionPolicy=SubscriptionPolicy,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
def GetEventProperties(self):
|
|
32
|
+
return self.operator.call("GetEventProperties")
|
|
33
|
+
|
|
34
|
+
def AddEventBroker(self, EventBroker):
|
|
35
|
+
return self.operator.call("AddEventBroker", EventBroker=EventBroker)
|
|
36
|
+
|
|
37
|
+
def DeleteEventBroker(self, Address):
|
|
38
|
+
return self.operator.call("DeleteEventBroker", Address=Address)
|
|
39
|
+
|
|
40
|
+
def GetEventBrokers(self, Address=None):
|
|
41
|
+
return self.operator.call("GetEventBrokers", Address=Address)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# onvif/services/events/notification.py
|
|
2
|
+
|
|
3
|
+
from ...operator import ONVIFOperator
|
|
4
|
+
from ...utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Notification:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("notification")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
service_path="Events", # fallback
|
|
14
|
+
xaddr=xaddr,
|
|
15
|
+
**kwargs,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
def Subscribe(
|
|
19
|
+
self,
|
|
20
|
+
ConsumerReference=None,
|
|
21
|
+
Filter=None,
|
|
22
|
+
InitialTerminationTime=None,
|
|
23
|
+
SubscriptionPolicy=None,
|
|
24
|
+
):
|
|
25
|
+
return self.operator.call(
|
|
26
|
+
"Subscribe",
|
|
27
|
+
ConsumerReference=ConsumerReference,
|
|
28
|
+
Filter=Filter,
|
|
29
|
+
InitialTerminationTime=InitialTerminationTime,
|
|
30
|
+
SubscriptionPolicy=SubscriptionPolicy,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
def GetCurrentMessage(self, Topic):
|
|
34
|
+
return self.operator.call("GetCurrentMessage", Topic=Topic)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# onvif/services/events/pullpoint.py
|
|
2
|
+
|
|
3
|
+
from ...operator import ONVIFOperator
|
|
4
|
+
from ...utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class PullPoint:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("pullpoint")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
xaddr=xaddr,
|
|
14
|
+
**kwargs,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
def PullMessages(self, Timeout, MessageLimit):
|
|
18
|
+
return self.operator.call(
|
|
19
|
+
"PullMessages", Timeout=Timeout, MessageLimit=MessageLimit
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
def Seek(self, UtcTime, Reverse=None):
|
|
23
|
+
return self.operator.call("Seek", UtcTime=UtcTime, Reverse=Reverse)
|
|
24
|
+
|
|
25
|
+
def SetSynchronizationPoint(self):
|
|
26
|
+
return self.operator.call("SetSynchronizationPoint")
|
|
27
|
+
|
|
28
|
+
def Unsubscribe(self):
|
|
29
|
+
return self.operator.call("Unsubscribe")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# onvif/services/events/subscription.py
|
|
2
|
+
|
|
3
|
+
from ...operator import ONVIFOperator
|
|
4
|
+
from ...utils import ONVIFWSDL
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Subscription:
|
|
8
|
+
def __init__(self, xaddr=None, **kwargs):
|
|
9
|
+
definition = ONVIFWSDL.get_definition("subscription")
|
|
10
|
+
self.operator = ONVIFOperator(
|
|
11
|
+
definition["path"],
|
|
12
|
+
binding=f"{{{definition['namespace']}}}{definition['binding']}",
|
|
13
|
+
xaddr=xaddr,
|
|
14
|
+
**kwargs,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
def Renew(self, TerminationTime=None):
|
|
18
|
+
return self.operator.call("Renew", TerminationTime=TerminationTime)
|
|
19
|
+
|
|
20
|
+
def Unsubscribe(self):
|
|
21
|
+
return self.operator.call("Unsubscribe")
|