Device Network SDK (General) : Developer Guide
Device Network SDK (General) : Developer Guide
Developer Guide
Device Network SDK (General) Developer Guide
Legal Information
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE DOCUMENT IS PROVIDED "AS IS"
AND “WITH ALL FAULTS AND ERRORS”. OUR COMPANY MAKES NO REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT
WILL OUR COMPANY BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INCIDENTAL, OR INDIRECT
DAMAGES, INCLUDING, AMONG OTHERS, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INTERRUPTION OR LOSS OF DATA, CORRUPTION OF SYSTEMS, OR LOSS OF DOCUMENTATION,
WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, IN
CONNECTION WITH THE USE OF THE DOCUMENT, EVEN IF OUR COMPANY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES OR LOSS.
i
Device Network SDK (General) Developer Guide
Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.1.1 Integrate Based on Hikvision Private Protocol .............................................................. 1
1.1.2 Integrate Based on ISAPI Protocol ................................................................................. 2
1.2 System Requirements ............................................................................................................ 3
1.3 HCNetSDK Component ........................................................................................................... 4
1.4 Update History ....................................................................................................................... 7
1.4.1 Version 6.1.X.X .............................................................................................................. 7
1.4.2 Version 6.1.0.X ............................................................................................................ 21
1.4.3 Version 6.0.2.X ............................................................................................................ 35
1.4.4 Version 6.0.0.X ............................................................................................................ 44
1.5 Notices ................................................................................................................................. 46
Chapter 2 Security Service ........................................................................................................ 47
2.1 Configure Double Verification .............................................................................................. 47
2.2 Encrypt Stream .................................................................................................................... 50
2.3 Encrypt Stream Transmission Link ....................................................................................... 53
2.3.1 (Optional) Verify Device .............................................................................................. 53
2.3.2 Encrypt HTTPS Link ..................................................................................................... 54
2.3.3 Encrypt TLS Link .......................................................................................................... 55
Chapter 3 User Management .................................................................................................... 56
Chapter 4 Device Management and Maintenance ..................................................................... 57
4.1 Reset Password by Setting Recovery Email .......................................................................... 57
4.2 Remotely Upgrade Device .................................................................................................... 59
4.3 Search for Logs ..................................................................................................................... 60
4.4 Configure Log Storage Mode ............................................................................................... 64
4.5 IoT Devices Access ............................................................................................................... 66
ii
Device Network SDK (General) Developer Guide
iii
Device Network SDK (General) Developer Guide
iv
Device Network SDK (General) Developer Guide
v
Device Network SDK (General) Developer Guide
vi
Device Network SDK (General) Developer Guide
vii
Device Network SDK (General) Developer Guide
viii
Device Network SDK (General) Developer Guide
ix
Device Network SDK (General) Developer Guide
x
Device Network SDK (General) Developer Guide
xi
Device Network SDK (General) Developer Guide
xii
Device Network SDK (General) Developer Guide
xiii
Device Network SDK (General) Developer Guide
xiv
Device Network SDK (General) Developer Guide
xv
Device Network SDK (General) Developer Guide
xvi
Device Network SDK (General) Developer Guide
xvii
Device Network SDK (General) Developer Guide
xviii
Device Network SDK (General) Developer Guide
xix
Device Network SDK (General) Developer Guide
xx
Device Network SDK (General) Developer Guide
xxi
Device Network SDK (General) Developer Guide
xxii
Device Network SDK (General) Developer Guide
xxiii
Device Network SDK (General) Developer Guide
xxiv
Device Network SDK (General) Developer Guide
xxv
Device Network SDK (General) Developer Guide
xxvi
Device Network SDK (General) Developer Guide
xxvii
Device Network SDK (General) Developer Guide
xxviii
Device Network SDK (General) Developer Guide
xxix
Device Network SDK (General) Developer Guide
xxx
Device Network SDK (General) Developer Guide
xxxi
Device Network SDK (General) Developer Guide
xxxii
Device Network SDK (General) Developer Guide
xxxiii
Device Network SDK (General) Developer Guide
xxxiv
Device Network SDK (General) Developer Guide
xxxv
Device Network SDK (General) Developer Guide
xxxvi
Device Network SDK (General) Developer Guide
xxxvii
Device Network SDK (General) Developer Guide
xxxviii
Device Network SDK (General) Developer Guide
xxxix
Device Network SDK (General) Developer Guide
xl
Device Network SDK (General) Developer Guide
xli
Device Network SDK (General) Developer Guide
xlii
Device Network SDK (General) Developer Guide
xliii
Device Network SDK (General) Developer Guide
Chapter 1 Overview
The Device Network SDK (here is referred to as "HCNetSDK") is a software development kit
provided by Hikvision for the third-party platform to access the Hikvision network devices (e.g.,
DVR, NVR, encoding devices, decoding devices, network cameras, speed dome, etc.) and integrate
multiple functions, such as live view, playback, alarm, PTZ control, two-way audio, fisheye
expansion, access control, ANPR, face picture comparison, and so on.
1.1 Introduction
The network communication of the HCNetSDK adopts Hikvision private protocol, which is designed
based on TCP (Transmission Control Protocol)/IP (Internet Protocol). To make it available for more
third-party platforms and simplify the integration progresses, HCNetSDK provides several APIs and
structures to pass through operation methods, request URLs, and request or response messages to
implement different functions based on the ISAPI protocol communication.
• For the general applications based on Hikvision private protocol, refer to Integrate Based on
Hikvision Private Protocol .
• For the general applications based on ISAPI protocol, refer to Integrate Based on ISAPI Protocol .
• For the passthrough progress, refer to Integrate by Transmitting Text Protocol .
1
Device Network SDK (General) Developer Guide
Note
• Before and after integrating each application, the initialization, login, logout, and releasing
resources are required.
• For detailed flows of each applications, refer to other chapters in this manual.
2
Device Network SDK (General) Developer Guide
Note
• Before and after integrating each application, the initialization, login, logout, and releasing
resources are required.
• For the integration progresses of supported applications based on ISAPI protocol, refer to Start
Live View Based on ISAPI Protocol , Start Playback , Search Video Files by Time , Receive
Alarm/Event in Arming Mode , Receive Alarm/Event in Listening Mode , Remotely Upgrade
Device , Search for Logs , and .
3
Device Network SDK (General) Developer Guide
4
Device Network SDK (General) Developer Guide
5
Device Network SDK (General) Developer Guide
6
Device Network SDK (General) Developer Guide
Remarks
• The component files, [Link] and [Link] must be loaded at any time; and when
updating the development kit, the [Link], [Link], and the files in HCNetSDKCom
folder must be loaded again, and the folder name HCNetSDKCom cannot be edited.
• The dependent library files D3DX9_43.dll and D3DCompiler_43.dll are not directly provided by
HCNetSDK, you should go to Hikvision official website to download these files via DirectX and
load to the development environment by yourself.
• Network Communication Library: The main body of HCNetSDK, which is used for the
communication and interaction between systems/clients and devices. It provides the functions
of remote control, remote configuration, getting stream, and processing stream.
• HPR Library: The dependent library of network communication library, it should be loaded
together with the network communication library for HCNetSDK in Linux operating system.
• RTSP Communication Library: Network library that supports RTSP transmission, it is required to
be loaded when the device supports RTSP streaming.
• Container Format Conversion Library: Convert the standard stream format to other container
formats, such as 3GPP, PS, and so on. It is required to be loaded when the device supports RTSP
streaming.
• Character Conversion Library: It is required when the character sets of computer and device
mismatches. You can also set transcoding callback function to convert the character if you want
to use your own API.
• Analog Capability Set: It is required to be loaded if you want to get the analog capability set. And
the component file must be in the same directory of network communication library.
• Two-Way Audio Library: It is used to collect data via sound card, encode stream to a specific
encoding format, and decode and display the audio data (stream data without container
format). The dependent library [Link] is required in two-way audio mode.
Audio encoding and decoding are only supported by HCNetSDK in 32-bit Windows operating
system; and for Linux operating system, only audio forwarding is supported.
• Stream Analysis Library: It is required to be loaded for video and audio data analysis by setting
raw stream callback function.
• OpenSSL: It is required to be loaded for login and sensitive information encryption.
• Playing Library: It is mainly used to decode and display the real-time stream data, and play back
the video files. It is only required to be loaded when you play stream via HCNetSDK.
7
Device Network SDK (General) Developer Guide
8
Device Network SDK (General) Developer Guide
added two nodes AudioType (audio file type) and isCover (whether to cover the audio file with
same name).
4. Extended the device capability XML_DeviceCap (related URI: /ISAPI/System/capabilities ;
related API: NET_DVR_STDXMLConfig ):
added two nodes <isSupportAIOpenPlatform> (whether the device supports AI open platform
capabilities) and <isSupportPictureDownloadError> (whether the device supports reporting
picture download failure).
9
Device Network SDK (General) Developer Guide
10
Device Network SDK (General) Developer Guide
4. Extended the Hik-Connect access configuration capability XML_Cap_EZVIZ (related URI: /ISAPI/
System/Network/EZVIZ/capabilities ; related API: NET_DVR_STDXMLConfig ):
added one node <isSupportEZVIZQRCode> (whether the device supports getting the Hik-
Connect QR code).
5. Added one URI for getting Hik-Connect QR code (related API: NET_DVR_STDXMLConfig ): GET /
ISAPI/System/Network/EZVIZ/QRCode?format=json .
6. Extended the HDD parameters XML_hdd and HDD list parameters XML_hddList (related URI: /
ISAPI/ContentMgmt/Storage/hdd and /ISAPI/ContentMgmt/Storage/hdd/<ID> ; related API:
NET_DVR_STDXMLConfig ):
added three values to node <status> (HDD status): "synching" (synchronizing), "syncError"
(synchronization exception), and "unloaded".
7. Added the URI for getting the HDD data sync status (related API: NET_DVR_STDXMLConfig ):
GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/syncStatus?format=json .
8. Extended the device storage capability XML_RacmCap (related URI: /ISAPI/ContentMgmt/
capabilities ; related API: NET_DVR_STDXMLConfig ):
added one node <isSupportSSDSMARTTest> (whether the device supports SSD S.M.A.R.T
detection).
9. Extended the device capability XML_DeviceCap (related URI: /ISAPI/System/capabilities ;
related API: NET_DVR_STDXMLConfig ):
added three nodes: <isSupportSSDFileSystemUpgrade> (whether the device supports SSD file
system upgrade), <isSupportSSDFileSystemFormat> (whether the device supports SSD file
system formatting), and <isSupportSSDFileSystemCapacity> (whether the device supports
getting space distribution information of SSD file system).
10. Added URIs for SSD management, see SSD Management for details.
11. Extended the log types HCNetSDK Log Types :
added one minor exception log type "MINOR_EZVIZ_UPGRADE_EXCEPTION" (Hik-Connect
upgrade exception);
added four minor operation log types: "MINOR_LOCAL_SSD_OPERATE_START" (Local SSD
operation (firmware operations) started), "MINOR_LOCAL_SSD_OPERATE_STOP" (Local SSD
operation (firmware operations) ended), "MINOR_REMOTE_SSD_OPERATE_START" (Remote
SSD operation (firmware operations) started), "MINOR_REMOTE_SSD_OPERATE_STOP"
(Remote SSD operation (firmware operations) ended).
11
Device Network SDK (General) Developer Guide
12
Device Network SDK (General) Developer Guide
13
Device Network SDK (General) Developer Guide
12. Added two event types "personArmingTrack" (auto person arming) and
"manualPersonArmingTrack" (manual person arming) to Supported Alarm/Event Types .
13. Added one error code 3504-"NET_DVR_UPLOAD_HBDLIBID_ERROR" (incorrect ID of human
body picture library) to Device Network SDK Errors .
14
Device Network SDK (General) Developer Guide
15
Device Network SDK (General) Developer Guide
5. Added the function of log file compression by extended the value of parameter bAutoDel in the
API NET_DVR_SetLogToFile : "FALSE"-compress the log files when the number of files reaches
50.
6. Added the support of 64-bit Windows operating system to the audio encoding and decoding
APIs: NET_DVR_EncodeG711Frame , NET_DVR_DecodeG711Frame ,
NET_DVR_InitG722Encoder , NET_DVR_EncodeG722Frame , NET_DVR_InitG722Decoder , and
NET_DVR_DecodeG722Frame .
7. Added an exception message type to the callback function fExceptionCallBack (related API:
NET_DVR_SetExceptionCallBack_V30 ):
0x804b-"EXCEPTION_VIDEO_DOWNLOAD" (video downloading exception).
8. Added an error to Device Network SDK Errors : 186-"NET_SDK_ERR_FUNCTION_INVALID"
(Invalid function. The asynchronous mode is enabled).
16
Device Network SDK (General) Developer Guide
17
Device Network SDK (General) Developer Guide
18
Device Network SDK (General) Developer Guide
added two nodes "operationType" (operation types) and "remarks" (operation remarks) to
JSON_MatchList .
3. Extended the capability ( XML_LockCap ) and parameters ( XML_LockByName ) of video file
locking and unlocking (related API: NET_DVR_STDXMLConfig ; related URIs: /ISAPI/
ContentMgmt/record/control/locks/capabilities and /ISAPI/ContentMgmt/record/control/
locks/name ):
added query parameters security and iv to encrypt the nodes of <recorderCode> and
<policeCode>.
4. Extended the file search result ( XML_VideoPic_CMSearchResult ; related API:
NET_DVR_STDXMLConfig ; related URI: /ISAPI/ContentMgmt/search ):
added three nodes to the sub node <mediaSegmentDescriptor>, i.e., <shootingTime>
(captured or recorded time), <FileTime> (time duration of the video files), and <remarks> (file
remarks).
5. Extended the capability ( JSON_Cap_RemarkList ) and parameters ( JSON_RemarkList ) of
adding remarks to video files by file name (related API: NET_DVR_STDXMLConfig ; related
URIs: /ISAPI/ContentMgmt/record/control/remark/capabilities?format=json and /ISAPI/
ContentMgmt/record/control/remark?format=json ):
added three nodes, i.e., "recordName" (video file name), "recorderCode" (ID of device that
collects data), and "policeCode" (ID of police that collects the data).
19
Device Network SDK (General) Developer Guide
added seven modes to node <fusionMode (fusion mode): "Visible" (visible light mode),
"fusionB/W" (white and black mode), "city" (city mode), "jungle" (jungle mode), "deset" (desert
mode), "sea" (sea mode), "snow" (snow mode);
added two nodes <isSupportGPSControl> (whether device supports GPS control capability) and
<gearRange> (number of ranges supported by the device).
2. Extended the structure of camera configuration parameters NET_DVR_CAMERAPARAMCFG_EX
(related API: NET_DVR_GetDVRConfig with command
3368-"NET_DVR_GET_CCDPARAMCFG_EX", and NET_DVR_SetDVRConfig with command
3369-"NET_DVR_SET_CCDPARAMCFG_EX")
added seven modes to member byFusionMode: 3-visible light mode, 4-black and white fusion
mode, 5-jungle (fusion color mode), 6-desert (fusion color mode), 7-snow (fusion color mode),
8-sea (fusion color mode), 9-city (fusion color mode);
added one member byGPSEnabled (whether to enable GPS) with one reserved byte.
20
Device Network SDK (General) Developer Guide
21
Device Network SDK (General) Developer Guide
22
Device Network SDK (General) Developer Guide
23
Device Network SDK (General) Developer Guide
24
Device Network SDK (General) Developer Guide
11. Extended parameter message of all recording schedules XML_TrackList (related URL: /ISAPI/
ContentMgmt/record/tracks ; related API: NET_DVR_STDXMLConfig ):
added a sub node <durationEnabled> (whether to enable video expiry time) to the node
<Track>.
12. Extended HDD management capability message XML_Cap_hddList (related URL: /ISAPI/
ContentMgmt/Storage/hdd/capabilities ; related API: NET_DVR_STDXMLConfig ):
added a sub node <Encryption> (encryption configuration) to the node <hdd>.
13. Extended parameter message of a specific HDD XML_hdd (related URL: /ISAPI/ContentMgmt/
Storage/hdd/<ID> ; related API: NET_DVR_STDXMLConfig ):
added a node <encryptionStatus> (encryption status).
14. Added a URL of formatting an encrypted HDD (related API: NET_DVR_STDXMLConfig ): PUT /
ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptFormat?format=json .
15. Added a URL of verifying HDD encryption password (related API: NET_DVR_STDXMLConfig ):
PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptVerfy?format=json .
16. Extended message of event capability supported by channel XML_ChannelEventCap (related
URL: /ISAPI/Event/channels/<ID>/capabilities ; related API: NET_DVR_STDXMLConfig ):
added an event type "certificateRevocation" (certificate is expired) to the node <eventType>.
17. Extended device event capability message XML_EventCap (related URL: /ISAPI/Event/
capabilities ; related API: NET_DVR_STDXMLConfig ):
added a node <isSupportCertificateRevocation> (whether it supports certificate expiry alarm).
18. Added the function of configuring certificate expiry alarm, refer to Configure Certificate Expiry
Alarm .
19. Extended device protocol capability message XML_Cap_AdminAccessProtocolList and
parameter message of all protocols supported by the device XML_AdminAccessProtocolList
(related URLs: /ISAPI/Security/adminAccesses/capabilities and /ISAPI/Security/
adminAccesses ; related API: NET_DVR_STDXMLConfig ):
added a protocol type "SRTP" (Secure Real-Time Transport Protocol) to the sub node
<protocol> of the node <AdminAccessProtocol>.
20. Extended parameter message of a specific protocol supported by the device
XML_AdminAccessProtocol (related URL: /ISAPI/Security/adminAccesses/<ID> ; related API:
NET_DVR_STDXMLConfig ):
added a protocol type "SRTP" (Secure Real-Time Transport Protocol) to the node <protocol>.
21. Extended encoding capability message XML_Cap_StreamingChannel and encoding parameter
message XML_StreamingChannel of a specific channel (related URLs: /ISAPI/Streaming/
channels/<ID>/capabilities and /ISAPI/Streaming/channels/<ID> ; related API:
NET_DVR_STDXMLConfig ):
added a protocol type "SRTP" to the sub node <streamingTransport> of the node
<ControlProtocol> of <ControlProtocolList> of <Transport>;
added a sub node <SRTPMulticast> (SRTP multicast configuration) to the node <Transport>.
22. Extended storage capability message XML_RacmCap (related URL: /ISAPI/ContentMgmt/
capabilities ; related API: NET_DVR_STDXMLConfig ):
added two picture search conditions: "personQueueCounting" (people queuing-up detection)
and "personQueueTime" (waiting time detection) to the node <pictureSearchType>.
25
Device Network SDK (General) Developer Guide
23. Extended device security capability message XML_SecurityCap (related URL: /ISAPI/Security/
capabilities ; related API: NET_DVR_STDXMLConfig ):
added a node <isSupportCertificateCustomID> (whether it supports certificate configuration
with custom ID).
24. Extended picture search condition structure NET_DVR_FIND_PICTURE_PARAM (related API:
NET_DVR_FindPicture ):
added two picture capture types: 0x52 (capture based on people queuing-up detection) and
0x53 (capture based on waiting time detection) to the member byFileType.
25. Extended JPEG picture capture capability message XML_JpegCaptureAbility (related API:
NET_DVR_GetDeviceAbility , capability type: DEVICE_JPEG_CAP_ABILITY):
added two picture types: 0x52 (people queuing-up detection) and 0x53 (waiting time
detection) to the sub node <supportFileType> of <FindPicInfo>.
26. Extended device parameter structure NET_DVR_DEVICEINFO_V40 (related API:
NET_DVR_Login_V40 ):
added a member bySupportStreamEncrypt (whether it supports stream encryption) by two
bytes.
27. Extended live view parameter structure NET_DVR_PREVIEWINFO (related API:
NET_DVR_RealPlay_V40 ):
added an application layer streaming protocol "2" (RTSP stream encryption) to the member
byProtoType.
28. Extended RTSP parameter structure NET_DVR_RTSPCFG (related APIs:
NET_DVR_GetRtspConfig and NET_DVR_SetRtspConfig ):
added a member wRtspsPort (RTSPS server listening port) by two bytes.
29. Extended UPnP parameter structure NET_DVR_NAT_CFG (related APIs:
NET_DVR_GetDVRConfig and NET_DVR_SetDVRConfig , commands: 6111-
NET_DVR_GET_NAT_CFG, 6112-NET_DVR_SET_NAT_CFG):
added a member struRtspsPort (mapping parameters of RTSPS port) by 32 bytes.
30. Extended certificate parameter structure NET_DVR_CERT_PARAM (related API:
NET_DVR_UploadFile_V40 ):
added three members: byAddition (whether to use additional structure), pStruAdditionParam
(pointer of the additional information structure), and byRes1 (reserved) by seven bytes.
31. Added an alarm type "certificateRevocation" (certificate expiry alarm) in Supported Alarm/
Event Types .
26
Device Network SDK (General) Developer Guide
27
Device Network SDK (General) Developer Guide
28
Device Network SDK (General) Developer Guide
29
Device Network SDK (General) Developer Guide
4. Added the function of configuring SHM (SkyHawk Health Management) alarm linkage (related
API: NET_DVR_STDXMLConfig ):
Get or set linkage parameters of HDD high temperature detection: GET or PUT /ISAPI/Event/
triggers/highHDTemperature ;
Get or set linkage parameters of HDD low temperature detection: GET or PUT /ISAPI/Event/
triggers/lowHDTemperature ;
Get or set linkage parameters of HDD impact detection: GET or PUT /ISAPI/Event/triggers/
hdImpact ;
Get or set linkage parameters of HDD bad sector detection: GET or PUT /ISAPI/Event/triggers/
hdBadBlock ;
Get or set linkage parameters of HDD severe fault detection: GET or PUT /ISAPI/Event/triggers/
severeHDFailure .
5. Extended VCA search capability message JSON_IntelligentSearchCap (related URL: /ISAPI/SDT/
Management/IntelligentSearch/capabilities?format=json ; related API:
NET_DVR_STDXMLConfig ):
added a value "unknown" to the node vehicleType (vehicle type).
6. Extended VCA search condition message JSON_IntelligentSearchCondition and VCA search
result message JSON_IntelligentSearchResult (related URL: /ISAPI/SDT/Management/
IntelligentSearch?format=json ; related API: NET_DVR_STDXMLConfig ):
added a value "unknown" to the sub node vehicleType (vehicle type) of the node vehicleInfo.
7. Extended supported alarm and event types in Supported Alarm/Event Types :
added five event types: "highHDTemperature" (HDD High Temperature), "lowHDTemperature"
(HDD Low Temperature), "hdImpact" (HDD Impact), "hdBadBlock" (HDD Bad Sector), and
"severeHDFailure" (HDD Severe Fault).
8. Extended the log types in HCNetSDK Log Types :
added five minor log types to 0x2 (MAJOR_EXCEPTION): "0x80"-
MINOR_HIGH_HD_TEMPERATURE (HDD high temperature), "0x81"-
MINOR_LOW_HD_TEMPERATURE (HDD low temperature), "0x82"-MINOR_HD_IMPACT (HDD
impact), "0x83"-MINOR_HD_BAD_BLOCK (HDD bad sector), and "0x84"-
MINOR_SEVERE_HD_FAILURE (HDD severe fault);
added two minor log types to 0x4 (MAJOR_INFORMATION): "0xd8"-
MINOR_HD_FORMAT_START (Formatting HDD started) and "0xd9"-MINOR_HD_FORMAT_STOP
(Formatting HDD stopped).
30
Device Network SDK (General) Developer Guide
31
Device Network SDK (General) Developer Guide
32
Device Network SDK (General) Developer Guide
33
Device Network SDK (General) Developer Guide
34
Device Network SDK (General) Developer Guide
35
Device Network SDK (General) Developer Guide
and 1041-
NET_DVR_SET_COMPRESSCFG_V30
):
added a parameter struNetPara (stream encoding parameters for network transmission).
2. Extended stream encoding parameter structure NET_DVR_COMPRESSION_INFO_V30 :
added four values of resolution types to the parameter byResolution, i.e., "167" (720 × 1280),
"172" (1080 × 1920), "215" (1080 × 720), and "216" (360 × 640).
3. Extended the query parameter mode of request URL: /ISAPI/System/factoryReset?mode= , for
restoring to factory settings (mainly for access control device, related API:
NET_DVR_STDXMLConfig ):
added "part" mode, which only restores a part of default settings, and for facial recognition
terminal, the settings of card, face, event, fingerprint, schedule template, network, user name,
and password will be reserved without being restored.
36
Device Network SDK (General) Developer Guide
37
Device Network SDK (General) Developer Guide
4. Added APIs to search video files by event and get the searched event video files one by one:
NET_DVR_FindFileByEvent_V50 and NET_DVR_FindNextEvent_V50 .
5. Extended parameter structure NET_DVR_SMART_SEARCH_PARAM_V40 of searching video files
by VCA event (related API: NET_DVR_SmartSearch_V40 ) and result structure
NET_DVR_SMART_SEARCH_RET (related API: NET_DVR_SearchNextInfo ) by 5 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cStartTimeDifferenceH (time difference (hour) between start time and UTC time),
cStartTimeDifferenceM (time difference (minute) between start time and UTC time),
cStopTimeDifferenceH (time difference (hour) between end time and UTC time), and
cStopTimeDifferenceM (time difference (minute) between end time and UTC time).
6. Extended the structure about the parameters of searching video distribution in calendar
( NET_DVR_MRD_SEARCH_PARAM , related API: NET_DVR_GetDeviceConfig , command:
NET_DVR_GET_MONTHLY_RECORD_DISTRIBUTION
(6164)) by one reserved byte:
added a member byLocalOrUTC (time type).
7. Extended the condition structure ( NET_DVR_FIND_LABEL ) of searching video files by tag
(related API: NET_DVR_FindRecordLabel ) by 5 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cStartTimeDifferenceH (time difference (hour) between start time and UTC time),
cStartTimeDifferenceM (time difference (minute) between start time and UTC time),
cStopTimeDifferenceH (time difference (hour) between end time and UTC time), and
cStopTimeDifferenceM (time difference (minute) between end time and UTC time).
8. Extended the result structure ( NET_DVR_LABEL_IDENTIFY ) of searching video files by tag
(related API: NET_DVR_FindNextLabel ) by 3 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cTimeDifferenceH (time difference (hour) between time and UTC time), and cTimeDifferenceM
(time difference (minute) between time and UTC time).
9. Extended the picture search condition structure ( NET_DVR_FIND_PICTURE_PARAM , related
API: NET_DVR_FindPicture ) by 5 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cStartTimeDifferenceH (time difference (hour) between start time and UTC time),
cStartTimeDifferenceM (time difference (minute) between start time and UTC time),
cStopTimeDifferenceH (time difference (hour) between end time and UTC time), and
cStopTimeDifferenceM (time difference (minute) between end time and UTC time).
10. Extended the picture search result structure ( NET_DVR_FIND_PICTURE_V50 , related API:
NET_DVR_FindNextPicture_V50 ) by 3 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cTimeDifferenceH (time difference (hour) between time and UTC time), and
cTimeDifferenceM (time difference (minute) between time and UTC time).
11. Extended the picture dual-VCA condition structure ( NET_DVR_SMART_SEARCH_PIC_PARA ,
related API: NET_DVR_SmartSearchPicture ) by 5 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cStartTimeDifferenceH (time difference (hour) between start time and UTC time),
38
Device Network SDK (General) Developer Guide
cStartTimeDifferenceM (time difference (minute) between start time and UTC time),
cStopTimeDifferenceH (time difference (hour) between end time and UTC time), and
cStopTimeDifferenceM (time difference (minute) between end time and UTC time).
12. Added APIs to search for logs and get the searched log files one by one:
NET_DVR_FindDVRLog_V50 and NET_DVR_FindNextLog_V50 .
13. Extended the recording file uploading parameter structure
( NET_DVR_UPLOAD_RECORD_INFO , related API: NET_DVR_UploadFile_V40 ,
dwUploadType: UPLOAD_RECORD_FILE) by 5 reserved bytes:
added the following members, i.e., byISO8601 (whether the time difference is valid),
cStartTimeDifferenceH (time difference (hour) between start time and UTC time),
cStartTimeDifferenceM (time difference (minute) between start time and UTC time),
cStopTimeDifferenceH (time difference (hour) between end time and UTC time), and
cStopTimeDifferenceM (time difference (minute) between end time and UTC time).
14. Added an API to playback by time: NET_DVR_PlayBackByTime_V50 , and added a playback
control command:
NET_DVR_PLAYSETTIME_V50
(locate time during playback).
15. Extended storage configuration capability XML_RacmCap (related API:
NET_DVR_STDXMLConfig , related URL: GET /ISAPI/ContentMgmt/capabilities ):
added a node <recordSearchType> (video file type to be search).
16. Extended the recording capability XML_RecordAbility :
added one node <supportOptimalStreamType> (whether supports playback by optimal stream
type).
17. Extended the network capability sets XML_NetworkCap :
added two nodes <isSupportPOEConfiguration> (whether supports PoE port configuration),
<EZVIZSecretKey> (whether supports editing verification code for Hik-Connect).
18. Extended the device capability XML_DeviceCap :
added six node <isSupportAutoMaintenance> (whether supports automatic maintenance),
<isSupportTimeCap> (whether supports time capability), <isSupportIntelligentSearch>
(whether supports intelligent search), <IOTCap> (IoT device access capability),
<isSupportChannelFullEventListCap> (whether supports getting event capabilities of all
channels) and <isSupportAUXInfoCap> (whether supports getting attributes capabilities of all
channels).
19. Added the function of automatic maintenance (related API: NET_DVR_STDXMLConfig ):
Get capability of automatic maintenance configuration: GET /ISAPI/System/
autoMaintenance/capabilities?format=json ;
Get or set automatic maintenance parameters: GET or PUT /ISAPI/System/autoMaintenance?
format=json .
20. Added the function of getting configuration capability of IP address filter (related API:
NET_DVR_STDXMLConfig ):
GET /ISAPI/System/Network/ipFilter/capabilities
21. Extended the log type ( HCNetSDK Log Types ):
39
Device Network SDK (General) Developer Guide
40
Device Network SDK (General) Developer Guide
31. Added the function of event/alarm subscription, refer to Subscribe Alarm/Event in Arming
Mode for details.
32. Added the function of IoT device access, for details refer to IoT Devices Access .
33. Extended the structure about searching videos by event
NET_DVR_SEARCH_EVENT_PARAM_V50 (related API: NET_DVR_FindFileByEvent_V50 ):
added one major alarm/event type "8-EVENT_IOT_CASE".
34. Extended the access protocol capabilities XML_AccessProtocolAbility :
added one node <EZVIZSecretKey> (whether supports editing verification code for Hik-
Connect).
35. Added the function of editing verification code for Hik-Connect (related API:
NET_DVR_STDXMLConfig ):
PUT /ISAPI/System/Network/EZVIZ/secretKey?format=json .
41
Device Network SDK (General) Developer Guide
42
Device Network SDK (General) Developer Guide
43
Device Network SDK (General) Developer Guide
44
Device Network SDK (General) Developer Guide
45
Device Network SDK (General) Developer Guide
1.5 Notices
This chapter shows the notices and additional information that may be used during the HCNetSDK
integration.
• The design of ISAPI (Intelligent Security API) protocol adopts the RESTful style and is based on
HTTP (Hyper Text Transport Protocol) or HTTPs. For the definition and description of this
protocol, refer to ISAPI User Manual_General Applications.
• For Hikvision private protocol, the default service port No. for third-party platform to log in to
the devices is 8000; for ISAPI Protocol, the default port No. for logging in to the devices is 80
(HTTP port) or 443 (HTTPs port). But for most of Hikvision products (except some specific
products, e.g., Face Recognition Server, HikFalcon server, HikBlade server, etc.), login via
Hikvision private protocol is supported, so this login mode is recommended before the further
integrations.
• Passthrough is also called transparent transmission, which can transmit the data on the
application layer without packaging and processing, and the passthrough API provided by the
HCNetSDK is NET_DVR_STDXMLConfig .
46
Device Network SDK (General) Developer Guide
47
Device Network SDK (General) Developer Guide
Steps
48
Device Network SDK (General) Developer Guide
Note
• Only the admin user can configure double verification.
• For admin user, double verification is not required.
• The double verification user name and password is only for double verification, and cannot be
used for login.
1. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
capabilities for getting the device security capability to check whether the double verification
function is supported.
The device security capability is returned by the output parameter pointer lpOutBuffer in
message XML_SecurityCap .
2. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/Security/
doubleVerification?format=json for enabling the double verification.
Note
Before enabling double verification, you can check whether double verification is enabled by
calling NET_DVR_STDXMLConfig to pass through the URL: GET /ISAPI/Security/
doubleVerification?format=json .
3. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
doubleVerification/users/capabilities?format=json for getting the capability of double
verification user configuration.
4. Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/Security/
doubleVerification/users?format=json for adding a double verification user.
Note
Before adding a double verification user, you can get all verification users by calling the
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
doubleVerification/users?format=json .
The ID of added double verification user is returned in JSON_id .
5. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/Security/
doubleVerification/users/<ID>?format=json for editing a specified double verification user.
Note
Before editing the double verification user, you can get the user information by calling
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
doubleVerification/users/<ID>?format=json .
6. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /ISAPI/
Security/doubleVerification/users/<ID>?format=json for deleting a specified double
verification user.
49
Device Network SDK (General) Developer Guide
7. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
doubleVerification/UsersPermission/capabilities?format=json for getting the capability of
permission configuration for double verification users.
8. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/Security/
doubleVerification/UsersPermission/<ID>?format=json for setting the permission of a specified
double verification user.
Note
Before setting the permission of a double verification user, you can get the permission
parameters by calling NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
Security/doubleVerification/UsersPermission/<ID>?format=json .
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out off the device and release the resources.
50
Device Network SDK (General) Developer Guide
Steps
Note
• For devices with Hisilicon chips, up to 16 channels' stream can be encrypted. If the number of
channels is larger than 16, the error "insufficient resources" will be returned when starting live
view or playback.
• For Sky series devices, all channels' stream can be encrypted.
• The PlayCtrl library will not check if the stream is encrypted. If the stream is encrypted, but the
decryption key is not configured or incorrect decryption key is configured, the display image will
be black.
• If the encryption algorithm of the external stream is known, you can decrypt and play the stream
without the PlayCtrl library.
51
Device Network SDK (General) Developer Guide
Note
If the node <VerificationCode> is returned in the capability message
XML_AccessProtocolAbility , it indicates that encrypting EZVIZ stream is supported.
Otherwise, please end this task.
b. Call NET_DVR_GetDVRConfig with
NET_DVR_GET_EZVIZ_ACCESS_CFG
(command No.: 3398) to get default or configured parameters of Hik-Connect access for
reference.
Note
The Hik-Connect access parameters are returned in the structure by the output buffer
(lpOutBuffer).
c. Call NET_DVR_SetDVRConfig with
NET_DVR_SET_EZVIZ_ACCESS_CFG
(command No.: 3399) and set the input buffer (lpInBuffer) to the structure for accessing
to Hik-Connect and setting encryption key to enable EZVIZ stream encryption.
- The node <isSupportEncryption> is returned in the capability message XML_BasicCapability
and its value is "true": the device or channel supports stream encryption, and continue to
perform the steps below.
a. Call NET_DVR_GetDVRConfig with
NET_DVR_GET_AES_KEY
(command No.: 6113) to get default or configured encryption key of AES algorithm for
reference.
Note
The encryption key information is returned in the structure by the output buffer
(lpOutBuffer).
b. Call NET_DVR_InquestSetSecretKey to set encryption key.
c. Call NET_DVR_InquestGetEncryptState to get default or configured steam encryption
status for reference.
d. Call NET_DVR_InquestStreamEncrypt to enable stream encryption.
2. Get real-time or history stream, refer to Start Live View or Start Playback for details.
3. Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/System/Network/
verificationCodeCheck for verifying the encryption key.
52
Device Network SDK (General) Developer Guide
Note
To check if verifying verification code is supported, you can call NET_DVR_STDXMLConfig to
pass through the request URL: GET /ISAPI/System/Network/capabilities for getting the device
network capability ( XML_NetworkCap ). If supports, the node
<isSupportVerificationCodeCheck> is returned in the capability and its value is "true".
4. Receive the encrypted stream by calling encrypted stream callback function
(PlayM4_SetEncryptTypeCallBack) of PlayCtrl Library SDK and decrypt the stream by the
encryption key.
Note
Refer to Cross-Platform PlayCtrl Library SDK User Manual for details of the encrypted stream
callback function and playing of the decrypted stream.
Note
• The device root certificate is for communication only. You can call NET_DVR_RemoteControl
with
NET_DVR_CREATE_CERT
(command No.: 6138) to generate a custom certificate by device. The generated certificate is
neutral with required information only.
• For the first time development, as there is no certificate provided during initialization, you'd
better not verify the device, and the certificate verification callback function will directly return
"TRUE" (verified).
53
Device Network SDK (General) Developer Guide
Note
The verification results is returned in the structure NET_DVR_CETTIFICATE_INFO by the
certificate verification callback function of structure NET_DVR_LOCAL_CERTIFICATION .
Note
The verification results is returned in the structure NET_DVR_CETTIFICATE_INFO by the
certificate verification callback function of structure NET_DVR_LOCAL_CERTIFICATION .
54
Device Network SDK (General) Developer Guide
55
Device Network SDK (General) Developer Guide
Note
The password will not be returned in the user information.
Set User Parameters
Call NET_DVR_SetDVRConfig with the command of
NET_DVR_SET_USERCFG_V52
(command No.: 4195), and set the input buffer (lpInBuffer) to .
Note
If the password field is not configured, it indicates that the password will not be changed.
56
Device Network SDK (General) Developer Guide
57
Device Network SDK (General) Developer Guide
Steps
58
Device Network SDK (General) Developer Guide
Note
You can reset password by other methods, such as answering security question, importing GUID
files, and so on. But all methods should be supported by device, so you should call
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/extern/
capabilities for getting the other security capability ( XML_externSecurityCap ) before choosing
method to reset password.
1. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/extern/
capabilities for checking if the device supports setting recovery email.
The security capability is returned in the message XML_SecurityCap by the output parameter
pointer (lpOutputParam).
If the node <isSupportSecurityEmail> exits in the returned message and its value is "true", it
indicates that setting recovery email is supported by the device, and you can continue to
perform the following steps; otherwise, end this task.
2. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
email/parameter/capabilities?format=json for getting the recovery email configuration
capability.
The recovery email configuration capability is returned in the message JSON_SecurityEmailCap
by the output parameter pointer (lpOutputParam).
3. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/
email/parameter?format=json for getting the existing or configured recovery email parameters
for reference.
4. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/Security/email/
parameter?format=json and set the input parameter pointer ( lpInputParam) to the message
JSON_SecurityEmail for setting recovery email parameters.
5. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/Security/email/
qrCode?format=json for getting the QR code of the configured recovery email.
6. Send the QR code to manufacturer service email address by any other emails for verification.
7. Receive the verification code in the configured recovery email.
8. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/Security/
emailCertification?format=json and set the input parameter pointer ( lpInputParam) to the
message JSON_EmailCertification (with the received verification code entered) for resetting the
device password.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out off the device and release the resources.
59
Device Network SDK (General) Developer Guide
60
Device Network SDK (General) Developer Guide
Steps
Note
You can also call NET_DVR_STDXMLConfig to transmit /ISAPI/ContentMgmt/logSearch?
format=json by POST method and set lpInputParam to JSON_SearchCondition to search for log
files. The search results are returned in the message JSON_MatchList by lpOutputParam.
2. Call NET_DVR_FindNextLog_V50 to get searched log information item by item.
3. Call NET_DVR_FindLogClose_V30 to stop searching and release log search resource.
Example
Sample Code of Searching for Logs
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main() {
//---------------------------------------
//Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
//Log in to device
LONG lUserID;
61
Device Network SDK (General) Developer Guide
NET_DVR_FIND_LOG_COND struFindLogCond = { 0 };
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = FALSE;
[Link] = 2019;
[Link] = 11;
[Link] = 2;
[Link] = 9;
[Link] = 0;
[Link] = 0;
//[Link].byISO8601 = 0;
//[Link] = 0;
//[Link] = 0;
[Link] = 2019;
[Link] = 11;
[Link] = 3;
[Link] = 9;
[Link] = 0;
[Link] = 0;
//[Link].byISO8601 = 0;
//[Link] = 0;
//[Link] = 0;
62
Device Network SDK (General) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release resources
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release all resources.
63
Device Network SDK (General) Developer Guide
64
Device Network SDK (General) Developer Guide
Steps
65
Device Network SDK (General) Developer Guide
Application Scenario
66
Device Network SDK (General) Developer Guide
67
Device Network SDK (General) Developer Guide
Steps
68
Device Network SDK (General) Developer Guide
Note
Before setting the specified IoT device, you can get the IoT device by the URL: GET /ISAPI/
System/IOT/channels/<ID>?format=json .
10. Optional: Delete the added IoT device.
- Call NET_DVR_STDXMLConfig to pass through the URL: DELETE /ISAPI/System/IOT/
channels/<ID>?format=json for deleting the specified IoT channel.
- Call NET_DVR_STDXMLConfig to pass through the URL: DELETE /ISAPI/System/IOT/
channels/<ID>/all?format=json for deleting all channels (video channel and IoT channel) of
added IoT device.
11. Get the status of added IoT device.
69
Device Network SDK (General) Developer Guide
70
Device Network SDK (General) Developer Guide
Steps
71
Device Network SDK (General) Developer Guide
Note
Before searching for event, you can get the event search capability by the URL: GET /ISAPI/SDT/
Management/EventSearch/capabilities?format=json .
10. Optional: Call NET_DVR_STDXMLConfig to pass through the URL: POST /ISAPI/System/IOT/
linkageChannels?format=json for getting linked channel of searched event.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
72
Device Network SDK (General) Developer Guide
73
Device Network SDK (General) Developer Guide
Steps
Figure 4-7 Programming Flow of Online Upgrading Device via EZVIZ Platform
1. Call NET_DVR_GetSTDAbility with the command of
74
Device Network SDK (General) Developer Guide
NET_DVR_GET_ONLINEUPGRADE_ABILITY
(command No.: 9309) to get the device support online upgrade capability set, and check if the
device support this function.
The online upgrade capability set is returned in XML_OnlineUpgradeCap by output buffer
lpOutBuffer of structure .
2. Call NET_DVR_GetSTDConfig with the command of
NET_DVR_GET_ONLINEUPGRADE_SERVER
(command No.: 9304) and set the condition parameter lpCondBuffer of structure to "Null" for
getting the connection status of online upgrade server.
Note
Only when the online upgrade server is connected, you can go on for next step. Otherwise, you
should end this task.
The upgrade server connection status is returned in structure by output buffer lpOutBuffer of
structure .
3. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/System/
onlineUpgrade/deviceParameter?format=json , and set the input parameter pointer
lpInputParam to JSON_OnlineUpgradeParameter for setting the device online upgrade
parameters.
Note
Before setting the device online upgrade parameters, you can get these parameters via calling
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/System/
onlineUpgrade/deviceParameter?format=json .
4. Call NET_DVR_GetSTDConfig with the command of
NET_DVR_ONLINEUPGRADE_VERSION_COND
(command No.: 9305) and set the input buffer lpInBuffer of structure to structure for getting
the new upgrade package information.
The new upgrade package information is returned in the structure by output buffer lpOutBuffer
of structure .
5. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/System/
onlineUpgrade/downloadPackage?format=json for starting to download upgrade package to
device.
6. Optional: During downloading the upgrade package, you can perform the following operations.
Pause Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
Download ISAPI/System/onlineUpgrade/downloadPackage/pause?format=json
Resume Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
Download ISAPI/System/onlineUpgrade/downloadPackage/resume?format=json
Cancel Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Download ISAPI/System/onlineUpgrade/downloadPackage?format=json
75
Device Network SDK (General) Developer Guide
Function API
Get configuration capability of Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
automatic maintenance autoMaintenance/capabilities?format=json with GET
method.
The configuration capability is returned in the message
JSON_AutoMaintenanceCap by IpOutputParam.
Note
To check whether the device supports automatic
maintenance, you can call NET_DVR_STDXMLConfig to
transmit /ISAPI/System/capabilities with GET method to
get the device capability ( XML_DeviceCap ). If supports,
the node <isSupportAutoMaintenance> will be returned
and its value is true.
76
Device Network SDK (General) Developer Guide
Function API
Get device working status Call NET_DVR_STDXMLConfig to transmit the request
URL: GET /ISAPI/System/workingstatus?format=json .
And the device status is returned in the message
JSON_WorkingStatus by output parameter pointer
(IpOutputParam).
Enable/Disable device status checking Enable: NET_DVR_StartGetDevState
Disable: NET_DVR_StopGetDevState
Receive device status changes Refer to Receive Alarm/Event in Arming Mode for the
integration process of uploading status changes, and refer
to Subscribe Alarm/Event in Arming Mode for the
integration process of uploading capability changes.
And then the command (lCommand) to upload status
changes in the API
NET_DVR_SetDVRMessageCallBack_V50 should be set to
COMM_DEV_STATUS_CHANGED
(command No.: 0x7000).
Note
To check if uploading status changes is supported by
device, you can call NET_DVR_GetSTDAbility with
capability type "NET_DVR_GET_SYSTEM_CAPABILITIES"
to get the device capability ( XML_DeviceCap ). If
supports, the node <isSupportChangedUpload> is
returned.
77
Device Network SDK (General) Developer Guide
Function API
The algorithm version information
( NET_DVR_VCA_VERSION_LIST ) is returned by
lpOutBuffer in the structure NET_DVR_STD_CONFIG .
Get device information Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
deviceInfo with GET method.
The device information is returned in the message
XML_DeviceInfo by lpOutputParam.
Get capability of exporting device Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnose information diagnosedData/parameter/capabilities with GET
method.
The capability is returned in the message
XML_Cap_DiagnosedDataParameter by lpOutputParam.
Get parameters of exporting device Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnose information diagnosedData/parameter with GET method.
The parameters are returned in the message
XML_DiagnosedDataParameter by lpOutputParam.
Set parameters of exporting device Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnose information diagnosedData/parameter with PUT method and set
lpInputParam to the message
XML_DiagnosedDataParameter .
Get diagnostic server capability Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnosedData/server/capabilities?format=json with
GET method.
The capability is returned in the message
JSON_DiagnosedDataServerCap by lpOutputParam.
Get diagnostic server parameters Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnosedData/server?format=json with GET method.
The parameters are returned in the message
JSON_DiagnosedDataServerList by lpOutputParam.
Set diagnostic server parameters Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnosedData/server?format=json with PUT method
and set lpInputParam to the message
JSON_DiagnosedDataServerList .
Test diagnostic server Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
diagnosedData/server/test?format=json with POST
method.
78
Device Network SDK (General) Developer Guide
Note
You can check whether the device supports importing
calibration file by calling API NET_DVR_STDXMLConfig to
79
Device Network SDK (General) Developer Guide
Function API
transmit /ISAPI/System/capabilities with GET method.
When the node isSupportCalibrationFile exists and its
value is true in the returned device capability
( XML_DeviceCap ), it indicates the function is supported.
80
Device Network SDK (General) Developer Guide
81
Device Network SDK (General) Developer Guide
Function API
The device capability is returned in the message
JSON_LaserOpticalAxisCap by lpOutputParam.
Get laser optical axis parameters Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
laserOpticalAxis?format=json with GET method.
The parameters are returned in the message
JSON_LaserOpticalAxis by lpOutputParam.
Set laser optical axis parameters Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
laserOpticalAxis?format=json with GET or PUT methd
and set lpInputParam to the message
JSON_LaserOpticalAxis .
Adjust laser optical axis Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
laserOpticalAxis/goto?format=json with PUT method
and set lpInputParam to the message
JSON_LaserOpticalAxis_direction .
82
Device Network SDK (General) Developer Guide
Steps
83
Device Network SDK (General) Developer Guide
84
Device Network SDK (General) Developer Guide
Note
During live view, playback, two-way audio, or audio forward, in order to record the information
including stream data, packet loss rate, etc, you can call the API NET_DVR_GetLinkAddr to get the
IP address and port information of the stream sender and recipient.
85
Device Network SDK (General) Developer Guide
Steps
Note
The input parameter IpInBuffer/ lpInParamBuffer and output parameter
lpOutBuffer of encoding configurations refer to the structure
NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND .
86
Device Network SDK (General) Developer Guide
Note
The input parameter IpInBuffer and output parameter lpOutBuffer of image
configurations refer to the structure NET_DVR_PICCFG_V40 .
Note
The input parameter IpInBuffer and output parameter lpOutBuffer of OSD
configurations refer to the structure NET_DVR_SHOWSTRING_V30 .
Note
The control parameter lpCondBuffer refers to the structure NET_DVR_STREAMING_COND .
- For stream with other encoding types, call NET_DVR_RemoteControl with the command of
NET_DVR_MAKE_I_FRAME (command No.: 3402) to force the device stream to generate an I
frame for improving the stream delay problem.
Note
The input parameter lpInBuffer refers to the structure NET_DVR_I_FRAME .
4. Check the validity of handle for display window (hPlayWnd) and perform one of the following
operations according to the checking result to start decoding and displaying.
- For valid hPlayWnd, the decoding and displaying starts automatically.
- For unconfigured hPlayWnd, perform the following steps:
87
Device Network SDK (General) Developer Guide
Note
For details about calling PlayCtrl library, refer to User Manual of Cross-Platform PlayCtrl
Library SDK.
5. Call NET_DVR_StopRealPlay to stop live view.
Example
Sample Code of Starting Live View
• Decode and Display via HCNetSDK
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
#include <time.h>
using namespace std;
void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser)
{
char tempbuf[256] = {0};
switch(dwType)
{
case EXCEPTION_RECONNECT: //Reconnect during live view
printf("----------reconnect--------%d\n", time(NULL));
break;
default:
break;
}
}
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
//Set callback function for exceptional message
NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);
//---------------------------------------
// Get the window handle
88
Device Network SDK (General) Developer Guide
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //Device IP address
[Link] = 8000; //Service port No.
strcpy([Link], "admin"); //User name
strcpy([Link], "abcd1234"); //Password
//---------------------------------------
//Start live view and set stream callback function
LONG lRealPlayHandle;
HWND hWnd = GetConsoleWindowAPI(); //Get window handle
NET_DVR_PREVIEWINFO struPlayInfo = {0};
[Link] = hWnd; //Set the handle as valid for SDK decoding; set the handle as null for
streaming only
[Link] = 1; //Live view channel No.
[Link] = 0; //0-Main Stream, 1-Sub Stream, 2-Stream 3, 3-Stream 4, and so on
[Link] = 0; //0- TCP Mode, 1- UDP Mode, 2- Multicast Mode, 3- RTP Mode, 4-RTP/RTSP, 5-
RSTP/HTTP
[Link] = 1; //0- Non-blocking Streaming, 1- Blocking Streaming
Sleep(10000);
//---------------------------------------
//Stop live view
NET_DVR_StopRealPlay(lRealPlayHandle);
89
Device Network SDK (General) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
• Decode and Display via PlayCtrl Library (for API named by the prefix "PlayM4_", refer to User
Manual of Cross-Platform PlayCtrl Library SDK)
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
#include "plaympeg4.h"
#include <time.h>
using namespace std;
switch (dwDataType)
{
case NET_DVR_SYSHEAD: //System header
if (m_lPort >= 0)
{
break; //The handle of this channel is areadly obtained before streaming. There is no need to call it in the
following.
}
90
Device Network SDK (General) Developer Guide
break;
}
void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser)
{
char tempbuf[256] = {0};
switch(dwType)
{
case EXCEPTION_RECONNECT: //Reconnect during live view
printf("----------reconnect--------%d\n", time(NULL));
break;
default:
break;
}
}
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
91
Device Network SDK (General) Developer Guide
//---------------------------------------
//Set callback function for exceptional message
NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);
//---------------------------------------
// Get the window handle
HMODULE hKernel32 = GetModuleHandle("kernel32");
GetConsoleWindowAPI = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //Device IP address
[Link] = 8000; //Service port No.
strcpy([Link], "admin"); //User name
strcpy([Link], "abcd1234"); //Password
//---------------------------------------
//Start live view and set stream callback function
LONG lRealPlayHandle;
NET_DVR_PREVIEWINFO struPlayInfo = {0};
[Link] = NULL; //Set the handle as valid for SDK decoding; set the handle as null for streaming
only
[Link] = 1; //Live view channel No.
[Link] = 0; //0-Main Stream, 1-Sub Stream, 2-Stream 3, 3-Stream 4, and so on
[Link] = 0; //0- TCP Mode, 1- UDP Mode, 2- Multicast Mode, 3- RTP Mode, 4-RTP/RTSP, 5-
RSTP/HTTP
[Link] = 1; //0- Non-blocking Streaming, 1- Blocking Streaming
92
Device Network SDK (General) Developer Guide
Sleep(10000);
//---------------------------------------
//Stop live view
NET_DVR_StopRealPlay(lRealPlayHandle);
//Log out
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
93
Device Network SDK (General) Developer Guide
Steps
Figure 5-2 Programming Flow of Starting Live View Based on ISAPI Protocol
1. Call NET_DVR_RealPlaySpecial to start decoding and live view.
2. Call NET_DVR_StopRealPlay to stop live view.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
94
Device Network SDK (General) Developer Guide
Steps
Note
For more about starting live view, refer to Start Live View .
2. Call NET_DVR_PTZControl to enable PTZ control.
3. Set the preset(s).
1) Control the camera to move to a specific position.
2) Call NET_DVR_PTZPreset with the command of
SET_PRESET
(command No.: 8) to set the position as a preset.
3) Optional: Repeatedly call NET_DVR_PTZPreset with the command of
SET_PRESET
(command No.: 8) to set multiple presets.
4. Optional: Perform the following operation(s) after setting the presets.
Call Preset Call NET_DVR_PTZPreset with
GOTO_PREST
95
Device Network SDK (General) Developer Guide
Note
At least two presets are required to set the patrol.
6. Optional: Call NET_DVR_PTZCruise with
RUN_SFQ
(command No.: 37) or
STOP_SEQ
(command No.: 38) to start and stop the configured patrol.
7. Call NET_DVR_StopRealPlay to stop the live view.
The PTZ control is disabled.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
Function API
Get PTZ control capability Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/PTZCtrl/channels/<ID>/capabilities , and the capability is
returned in the message XML_PTZChanelCap by the output
parameter pointer (lpOutputParam).
Get zoom/focus coordinate Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
parameters ISAPI/PTZCtrl/channels/<ID>/zoomFocus , and the zoom/focus
coordinates parameters are returned in the message
96
Device Network SDK (General) Developer Guide
Function API
XML_ZoomFocus by the output parameter pointer
(lpOutputParam).
Set zoom/focus coordinate Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
parameters ISAPI/PTZCtrl/channels/<ID>/zoomFocus and set the input
parameter pointer (lpInputParam) to the message
XML_ZoomFocus .
Maximum Tilt Angle • Get configuration capability of maximum tilt angle:
Call NET_DVR_STDXMLConfig to transmit the request URI:
GET /ISAPI/PTZCtrl/channels/<ID>/maxelevation/
capabilities , and the capability is returned in the message
XML_Cap_MaxElevation by the output parameter pointer
(lpOutputParam).
• Get parameters of maximum tilt angle:
Call NET_DVR_STDXMLConfig to transmit the request URI:
GET /ISAPI/PTZCtrl/channels/<ID>/maxelevation , and the
max. tilt-angle parameters are returned in the message
XML_MaxElevation by the output parameter pointer
(lpOutputParam).
• Set parameters of maximum tilt angle:
Call NET_DVR_STDXMLConfig to transmit the request URI:
PUT /ISAPI/PTZCtrl/channels/<ID>/maxelevation and set the
input parameter pointer (lpInputParam) to the message
XML_MaxElevation .
Function API
Get PTZ OSD parameters Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay , and the on-
screen display parameters of the PTZ status are returned in the
message XML_PTZOSDDisplay by the output parameter pointer
(lpOutputParam).
Set PTZ OSD Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay and set the input
parameter pointer (lpInputParam) to the message
XML_PTZOSDDisplay .
97
Device Network SDK (General) Developer Guide
Function API
Get single PTZ auxiliary status Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID> , and the
auxiliary status information is returned in the message
XML_PTZAux by the output parameter pointer
(lpOutputParam).
Set single PTZ auxiliary status Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID> and set the
input parameter pointer (lpInputParam) to the message
XML_PTZAux .
E-PTZ Parameters
Function API
Get e-PTZ parameters Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/Image/channels/<ID>/EPTZ .
The parameters are returned in the message XML_EPTZ by the
output parameter lpOutputParam.
Set or set e-PTZ parameters Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/Image/channels/<ID>/EPTZ and set the input parameter
lpInputParam to the message XML_EPTZ .
Get capability of switching e- Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
PTZ mode ISAPI/Image/channels/<ID>/EPTZ/mode/capabilities?
format=json .
The capability is returned in the message JSON_EPTZModeCap
by the output parameter lpOutputParam.
Get parameters of switching e- Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
PTZ mode ISAPI/Image/channels/<ID>/EPTZ/mode?format=json .
The parameters are returned in the message JSON_EPTZMode
by the output parameter lpOutputParam.
Set parameters of switching e- Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
PTZ mode ISAPI/Image/channels/<ID>/EPTZ/mode?format=json and set
lpInputParam to the message JSON_EPTZMode .
98
Device Network SDK (General) Developer Guide
Function API
Get moving object tracking Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
status ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json .
The status is returned in the message JSON_MoveAutoTracking
by lpOutputParam.
Set moving object tracking Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
status ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json
and set lpInputParam to the message
JSON_MoveAutoTracking .
Function API
Get capability of linked tracking Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
capture ISAPI/MasterSlaveTracking/linkedTracking/capabilities?
format=json .
Get linked tracking capture Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
parameters ISAPI/MasterSlaveTracking/linkedTracking?format=json .
The parameters are returned in the message
JSON_LinkedTracking by lpOutputParam.
Set linked tracking capture Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
parameters ISAPI/MasterSlaveTracking/linkedTracking?format=json and
set lpInputParam to the message JSON_LinkedTracking .
Gyroscope Calibration
Function API
Get gyroscope attitude Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
calibration ISAPI/PTZCtrl/channels/<ID>/gyroVerify/capabilities?
format=json
Set gyroscope attitude Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
calibration parameters ISAPI/PTZCtrl/channels/<ID>/gyroVerify?format=json
99
Device Network SDK (General) Developer Guide
GPS Calibration
Function API
Get capability of verifying GPS Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
calibration ISAPI/System/GPSVerification/channels/<ID>/points/
capabilities?format=json
Get GPS calibration Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
configuration capability ISAPI/System/GPSCalibratation/channels/<ID>/capabilities?
format=json
Configure a single GPS • Get parameters of a single GPS calibration point:
calibration point. Call NET_DVR_STDXMLConfig to transmit the request URI:
GET /ISAPI/System/GPSCalibratation/channels/<ID>/points/
<PID>?format=json
• Set a single GPS calibration point:
Call NET_DVR_STDXMLConfig to transmit the request URI:
PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points/
<PID>?format=json
• Delete a single GPS calibration point:
Call NET_DVR_STDXMLConfig to transmit the request URI:
DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/
points/<PID>?format=json
Configure multiple GPS • Get parameters of multiple GPS calibration points in a batch:
calibration points Call NET_DVR_STDXMLConfig to transmit the request URI:
GET /ISAPI/System/GPSCalibratation/channels/<ID>/points?
format=json
• Set multiple GPS calibration points in a batch:
Call NET_DVR_STDXMLConfig to transmit the request URI:
PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points?
format=json
• Delete multiple GPS calibration points in a batch
Call NET_DVR_STDXMLConfig to transmit the request URI:
DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/
points?format=json
Enable GPS calibration Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/System/GPSPTZCalibratation/channels/<ID>/
calibratation?format=json
Get capability of verifying GPS Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
calibration ISAPI/System/GPSVerification/channels/<ID>/points/
capabilities?format=json
100
Device Network SDK (General) Developer Guide
Function API
Configure multiple verification • Add a verification points:
points Call NET_DVR_STDXMLConfig to transmit the request URI:
POST /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
• Get information of multiple verification points:
Call NET_DVR_STDXMLConfig to transmit the request URI:
GET /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
• Set multiple verification points:
Call NET_DVR_STDXMLConfig to transmit the request URI:
PUT /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
• Delete multiple verification points:
Call NET_DVR_STDXMLConfig to transmit the request URI:
DELETE /ISAPI/System/GPSVerification/channels/<ID>/
points?format=json
Configure one specified • Get information of one specified verification point:
verification point Call NET_DVR_STDXMLConfig to transmit the request URI:
GET /ISAPI/System/GPSVerification/channels/<ID>/points/
<ID>?format=json
• Set information of one specified verification point:
Call NET_DVR_STDXMLConfig to transmit the request URI:
PUT /ISAPI/System/GPSVerification/channels/<ID>/points/
<ID>?format=json
• Delete one specified verification point:
Call NET_DVR_STDXMLConfig to transmit the request URI:
DELETE /ISAPI/System/GPSVerification/channels/<ID>/
points/<ID>?format=json
Get GPS calibration verification Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
results in a batch ISAPI/System/GPSVerification/channels/<ID>/points/
resultInfo?format=json
Get or set parameters of Call NET_DVR_STDXMLConfig to transmit the request URI: GET
displaying GPS calibration or PUT /ISAPI/System/GPSVerification/channels/<ID>/display?
verification result format=json
101
Device Network SDK (General) Developer Guide
102
Device Network SDK (General) Developer Guide
Steps
Figure 5-4 API Calling Flow of Searching for Recording Start and End Time by Channel
103
Device Network SDK (General) Developer Guide
104
Device Network SDK (General) Developer Guide
Steps
Note
Playback by file is not supported when login via ISAPI protocol.
1. Perform one of the following operations to start playback by time or by file.
- a. Search video files if there is no video recorded in the specified time period.
b. Call NET_DVR_PlayBackByTime_V50 to specify the start time and end time to play all
video files in the time period.
- a. Search video files to get the file name.
b. Call NET_DVR_PlayBackByName to specify files for playback according to the obtained
file name.
- Call NET_DVR_UpdateRecordIndex to refresh the video index for instant playback.
Note
The device refreshes the video index every two minutes by default.
2. Call NET_DVR_PlayBackControl_V40 with "NET_DVR_SET_TRANS_TYPE" (command No.: 32)
and set input parameter pointer (IpInBuffer) to a 4-byte integer container format value (i.e.,
105
Device Network SDK (General) Developer Guide
"1"-PS, "2"-TS, "3"-RTP, "5"-MP4 or 3GPP (supported only when playback by file)) for setting the
data transcoding type for playback.
3. Call NET_DVR_PlayBackControl_V40 with "NET_DVR_PLAYSTART" (command No.: 1) and set
input parameter pointer (IpInBuffer) to a 4-byte integer offset (for ANR) to start playback.
4. Optional: Call NET_DVR_PlayBackControl_V40 with different commands to control the
playback, such as fast forwarding, slow forwarding, pausing playback, and so on.
Note
• When playback by time, getting and setting playback progress is not supported.
• If login via ISAPI protocol, only the following playback control commands are supported:
"NET_DVR_PLAYSTART" (start playing), "NET_DVR_PLAYPAUSE" (pausing playing),
"NET_DVR_PLAYRESTART" (resume playing), "NET_DVR_PLAYFAST" (fast forward),
"NET_DVR_PLAYSLOW" (slow forward), "NET_DVR_PLAYNORMAL" (play in 1× speed).
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Get window handle of control center
HMODULE hKernel32 = GetModuleHandle("kernel32");
GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //IP address
106
Device Network SDK (General) Developer Guide
107
Device Network SDK (General) Developer Guide
//---------------------------------------
//Playback by time
LONG lPlayHandle = NET_DVR_PlayBackByTime_V50(lUserID, &struVodPara);
if (lPlayHandle < 0)
{
printf("NET_DVR_PlayBackByTime_V50 fail, last error %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//---------------------------------------
//Start playback
if(!NET_DVR_PlayBackControl_V40(hPlayback, NET_DVR_PLAYSTART,NULL, 0, NULL,NULL))
{
printf("play back control failed [%d]\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
Sleep(15000); //millisecond
if(!NET_DVR_StopPlayBack(hPlayback))
{
printf("failed to stop file [%d]\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
108
Device Network SDK (General) Developer Guide
Note
• When developing under Windows (64-bit) or Linux system, only the audio forwarding application
is supported.
• When developing under Windows 7 system, the APIs used to implement two-way audio and
audio broadcast application will return "FALSE" if there is no external audio device.
109
Device Network SDK (General) Developer Guide
Steps
110
Device Network SDK (General) Developer Guide
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //IP address
[Link] = 8000; //Service port
strcpy([Link], "admin"); //User name
strcpy([Link], "abcd1234"); //Password
Sleep(5000); //millisecond
//Stop two-way audio
if (!NET_DVR_StopVoiceCom(lVoiceHanle))
{
printf("NET_DVR_StopVoiceCom error, %d!\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
111
Device Network SDK (General) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
112
Device Network SDK (General) Developer Guide
Steps
Note
This API is only available for Linux operating system.
b. Call to start decoding the encoded non-PCM audio data to PCM format.
c. Call to release the decoding resources.
Note
This API is only available for Linux operating system.
113
Device Network SDK (General) Developer Guide
Note
• The source audio data is collected from the sound card of PC or read from the file.
• The decoding APIs must correspond to the following audio encoding mode. For example, if
the encoding mode is G.711, the decoding APIs should be , , and .
3. Optional: Perform one of the following operations to encode the decoded audio data or the
original audio data with PCM format in G.711, G.722, or G.726 mode.
- a. Call NET_DVR_InitG711Encoder to initialize the encoding resources.
Note
This API is only available for Linux operating system.
b. Call NET_DVR_EncodeG711Frame to start encoding the audio data in G.711 mode.
c. Call NET_DVR_ReleaseG711Encoder to release the encoding resources.
Note
This API is only available for Linux operating system.
- a. Call NET_DVR_InitG722Encoder to initialize the encoding resources.
b. Call NET_DVR_EncodeG722Frame to start encoding the audio data in G.722 mode.
c. Call NET_DVR_ReleaseG722Encoder to release the encoding resources.
- a. Call NET_DVR_InitG726Encoder to initialize the encoding resources.
b. Call NET_DVR_EncodeG726Frame to start encoding audio data in G.726 mode.
c. Call NET_DVR_ReleaseG726Encoder to release the encoding resources.
4. Call NET_DVR_VoiceComSendData to start forwarding the encoded audio data to device.
5. Call NET_DVR_StopVoiceCom to stop forwarding audio.
Example
Forward Audio (For Windows Operating System)
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void CALLBACK fVoiceDataCallBack(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE
byAudioFlag, void* pUser)
{
//The audio data here can be the data encoded and sent by device, or the locally collected and encoded data.
NET_DVR_VoiceComSendData(lVoiceComHandle, pRecvDataBuffer, 80);
}
114
Device Network SDK (General) Developer Guide
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //IP address
[Link] = 8000; //IP address
strcpy([Link], "admin"); //User name
strcpy([Link], "abcd1234"); //Password
//Forward audio
LONG lVoiceHanle;
lVoiceHanle = NET_DVR_StartVoiceCom_MR_V30(lUserID, 1, fVoiceDataCallBack, NULL);
if (lVoiceHanle < 0)
{
printf("NET_DVR_StartVoiceCom_MR_V30 error, %d!\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
Sleep(5000); //millisecond
//Stop forwarding audio
if (!NET_DVR_StopVoiceCom(lVoiceHanle))
{
printf("NET_DVR_StopVoiceCom error, %d!\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
115
Device Network SDK (General) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
116
Device Network SDK (General) Developer Guide
Steps
117
Device Network SDK (General) Developer Guide
Note
The whole stream encoding capability ( XML_Cap_AudioVideoCompressInfo ) of device should be
obtained by calling NET_DVR_GetDeviceAbility , setting capability type (dwAbilityType) to
"DEVICE_ENCODE_ALL_ABILITY_V20" (macro definition value: 0x008), and setting input buffer
(pInBuf) to XML_Desc_AudioVideoCompressInfo .
118
Device Network SDK (General) Developer Guide
NET_DVR_SET_MULTI_STREAM_COMPRESSIONCFG
(command No.: 3217), set condition buffer (lpInBuffer) to the structure
NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND , and set input parameter buffer
(lpInParamBuffer) to the structure NET_DVR_MULTI_STREAM_COMPRESSIONCFG .
119
Device Network SDK (General) Developer Guide
Call NET_DVR_GetCurrentAudioCompress_V50 .
120
Device Network SDK (General) Developer Guide
Capture
Function API
Get device's capture Call NET_DVR_GetDVRConfig with "NET_DVR_GET_JPEG_
parameters CAPTURE_CFG" (command No.: 1280) and set lChannel to the
channel No.
The parameters are returned in the structure
NET_DVR_JPEG_CAPTURE_CFG_V40 by lpOutBuffer.
Set device's capture Call NET_DVR_SetDVRConfig with "NET_DVR_SET_JPEG_
parameters CAPTURE_CFG" (command No.: 1281), set lChannel to the
channel No., and set lpInBuffer to the structure
NET_DVR_JPEG_CAPTURE_CFG_V40 .
Get capability of digital video Call NET_DVR_STDXMLConfig to transmit /ISAPI/
channel proxy ContentMgmt/StreamingProxy/channels/<ID>/capabilities by
GET method.
The capability is returned in the message
XML_Cap_StreamingChannel by lpOutputParam
Get capability of capturing Call NET_DVR_STDXMLConfig to transmit /ISAPI/
picture in URL format ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/
capabilities?format=json by GET method.
The capability is returned in the message
JSON_Cap_CaputreDescription by lpOutputParam
Capture picture in URL format Call NET_DVR_STDXMLConfig to transmit /ISAPI/
ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl?
format=json by POST method and set lpInputParam to
JSON_CaputreResult .
Recording
Function API
Get configuration capability of Call NET_DVR_STDXMLConfig to pass through the request URI:
recording schedule GET /ISAPI/ContentMgmt/record/tracks/<ID>/capabilities .
121
Device Network SDK (General) Developer Guide
Function API
The capability is returned in the message XML_Cap_Track by
the output parameter lpOutputParam.
Get parameters of all recording Call NET_DVR_STDXMLConfig to pass through the request URI:
schedules GET /ISAPI/ContentMgmt/record/tracks .
The parameters are returned in the message XML_TrackList by
the output parameter lpOutputParam.
Set parameters of all recording Call NET_DVR_STDXMLConfig to pass through the request URI:
schedules PUT /ISAPI/ContentMgmt/record/tracks and set lpInBuffer of
lpInputParam to the message XML_TrackList .
Get parameters of a specific Call NET_DVR_STDXMLConfig to pass through the request URI:
recording schedule GET /ISAPI/ContentMgmt/record/tracks/<ID> .
The parameters are returned in the message XML_Track by the
output parameter lpOutputParam.
Set parameters of a specific Call NET_DVR_STDXMLConfig to pass through the request URI:
recording schedule PUT /ISAPI/ContentMgmt/record/tracks/<ID> and set
lpInBuffer of lpInputParam to the message XML_Track .
122
Device Network SDK (General) Developer Guide
123
Device Network SDK (General) Developer Guide
124
Device Network SDK (General) Developer Guide
125
Device Network SDK (General) Developer Guide
126
Device Network SDK (General) Developer Guide
127
Device Network SDK (General) Developer Guide
128
Device Network SDK (General) Developer Guide
129
Device Network SDK (General) Developer Guide
Steps
Note
Before setting the linkage action parameters, you can call NET_DVR_GetDVRConfig with
"NET_DVR_GET_EXCEPTIONCFG_V40" (command No.: 6177) for getting the default or
configured linkage action parameters.
3. Optional: Configure arming mode (refer to Receive Alarm/Event in Listening Mode ) and set
lCommand in the registered alarm callback function ( MSGCallBack ) to "COMM_ALARM_V40"
(command No.: 0x4007).
The exception alarm information is returned in the structure NET_DVR_ALARMINFO_V40 .
130
Device Network SDK (General) Developer Guide
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
131
Device Network SDK (General) Developer Guide
The device software and hardware capability is returned in the message XML_BasicCapability
by output buffer (pOutBuf).
If the node <audioException> is returned in the message and its value is true, it indicates that
the audio exception detection is supported, and you can continue to perform this task.
Otherwise, the audio exception detection is not supported by the device, please end this task.
2. Optional: Call NET_DVR_GetDeviceConfig with "NET_DVR_GET_AUDIOEXCEPTIONPARAM"
(command No.: 3366), and set the input parameter pointer (lpInBuffer) to the structure
NET_DVR_CHANNEL_GROUP for getting the audio exception detection parameters, including
detection rule, arming schedule, alarm linkage, and so on, for reference.
The audio exception detection parameters is returned in the structure
NET_DVR_AUDIO_EXCEPTION by output parameter lpOutBuffer.
3. Call NET_DVR_SetDeviceConfig with "NET_DVR_SET_AUDIOEXCEPTIONPARAM" (command No.:
3367), set the input parameter pointer (lpInBuffer) to the structure
NET_DVR_CHANNEL_GROUP , and set the input parameter (lpInParamBuffer) to the structure
NET_DVR_AUDIO_EXCEPTION for setting the audio exception detection parameters.
Note
• To receive the alarm in the platform, the linkage action must be set to "0x04" (upload to
center).
• The above audio exception detection parameters can also be configured by logging in to the
device via web browser.
4. Receive the audio exception alarm in arming mode (see Receive Alarm/Event in Arming Mode )
or in listening mode (see Receive Alarm/Event in Listening Mode ) when the alarm is triggered.
Note
• The command (lCommand) to receive audio exception alarms should be set to
"COMM_ALARM_AUDIOEXCEPTION" (command No.: 0x1150) in the APIs
NET_DVR_SetDVRMessageCallBack_V50 and NET_DVR_StartListen_V30 .
• For the alarm details, refer to the structure NET_DVR_AUDIOEXCEPTION_ALARM .
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
132
Device Network SDK (General) Developer Guide
133
Device Network SDK (General) Developer Guide
Steps
134
Device Network SDK (General) Developer Guide
Note
The <ID> in the request URL refers to the channel No., and it should be set to the format
"certificateRevocation-<channelID>".
The parameters are returned in the message XML_EventTrigger or
XML_EventTriggerNotificationList by the output parameter lpOutputParam.
6. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/Event/triggers/
<eventType>-<ID> or /ISAPI/Event/triggers/<ID>/notifications and set lpInBuffer of
lpInputParam to the message XML_EventTrigger or XML_EventTriggerNotificationList for
setting the linkage parameters of certificate expiry alarm.
Note
The <ID> in the request URL refers to the channel No., and it should be set to the format
"certificateRevocation-<channelID>".
7. Optional: Set lCommand of alarm/event callback function MSGCallBack to
"COMM_VCA_ALARM" (command No.: 0x4993) for receiving certificate expiry alarm in arming
135
Device Network SDK (General) Developer Guide
mode (refer to Receive Alarm/Event in Arming Mode for details) or listening mode (refer to
Receive Alarm/Event in Listening Mode for details).
The certificate expiry alarm information is called back in the message
JSON_EventNotificationAlert_CertificateExpiryAlarmMsg .
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
136
Device Network SDK (General) Developer Guide
Steps
137
Device Network SDK (General) Developer Guide
Note
The traffic pre-alarm only supports the default linkage action (upload to center) and arming
schedule (all-day schedule).
The network traffic alarm information is called back in the message
JSON_EventNotificationAlert_NetworkTrafficPrealarmMsg .
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
138
Device Network SDK (General) Developer Guide
139
Device Network SDK (General) Developer Guide
Steps
140
Device Network SDK (General) Developer Guide
141
Device Network SDK (General) Developer Guide
Note
The vibration detection alarm details is called back in the message
JSON_EventNotificationAlert_vibrationDetection and the corresponding alarm type
(eventType) is "vibrationDetection".
9. Optional: Call NET_DVR_FindPicture and set byFileType to "0x58" in the structure
NET_DVR_FIND_PICTURE_PARAM to search for the pictures of the vibration detection events
that trigger alarms.
1) Call NET_DVR_FindNextPicture_V50 to get the pictures.
2) Call NET_DVR_CloseFindPicture to stop searching for pictures and release resources.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release resources.
142
Device Network SDK (General) Developer Guide
Steps
Note
• If the configured alarm is triggered or event occurred, the alarm/event information will be
uploaded by device and returned in the callback function. You can view the alarm/event and
do some processing operations.
• For the integration via device network SDK (HCNetSDK), to receive different types of alarm/
event information, the parameter lCommand (data type to be uploaded) in the configured
callback function should be different (refer to the typical alarm/event configurations). For the
integration via text protocol, the lCommand should be set to "COMM_ISAPI_ALARM"
(command No.: 0x6009) and the input parameter pAlarmInfo in the callback function
MSGCallBack should be set to NET_DVR_ALARM_ISAPI_INFO .
143
Device Network SDK (General) Developer Guide
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //Device IP address
[Link] = 8000; //Service port No.
strcpy([Link], "admin"); //User name
strcpy([Link], "abcd1234"); //Password
//Device information, output parameter
NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};
lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
if (lUserID < 0)
{
printf("Login failed, error code: %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}
//Enable arming
NET_DVR_SETUPALARM_PARAM_V50 struSetupParamV50={0};
[Link]=sizeof(NET_DVR_SETUPALARM_PARAM_V50);
//Alarm category to be uploaded
[Link]=1;
//Arming level
[Link]=1;
144
Device Network SDK (General) Developer Guide
if (lHandle < 0)
{
printf("NET_DVR_SetupAlarmChan_V50 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
Sleep(20000);
//Disarm the uploading channel
if (!NET_DVR_CloseAlarmChan_V30(lHandle))
{
printf("NET_DVR_CloseAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//Log out
NET_DVR_Logout(lUserID);
//Release resources
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
145
Device Network SDK (General) Developer Guide
Steps
Note
For the integration via device network SDK (HCNetSDK), to receive different types of alarm/
event information, the parameter lCommand (data type to be uploaded) in the configured
callback function should be different (refer to the typical alarm/event configurations). For the
integration via text protocol, the lCommand should be set to "COMM_ISAPI_ALARM" and the
146
Device Network SDK (General) Developer Guide
147
Device Network SDK (General) Developer Guide
}
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout (if logged in) and NET_DVR_Cleanup to log out and release resources.
148
Device Network SDK (General) Developer Guide
Steps
149
Device Network SDK (General) Developer Guide
Note
• If the configured alarm is triggered or event occurred, the alarm/event information will be
uploaded by device and returned in the callback function. You can view the alarm/event and
do some processing operations.
• To receive different types of alarm/event information, the parameter lCommand (data type to
be uploaded) in the configured callback function should be different (refer to Supported
Alarm/Event Types for details).
• To receive the subscription result (subscription failed), the parameter lCommand (data type
to be uploaded) in the configured callback function should be set to
"COMM_ALARM_SUBSCRIBE_EVENT". And the result is returned in the message
XML_SubscribeEventResponse
150
Device Network SDK (General) Developer Guide
setting up the persistent connection and set the callback function ( fRemoteConfigCallback ) for
searching for alarms or events by specific conditions.
Note
For getting the real-time alarm or event, strStartTime and strStopTime in the structure
NET_DVR_ALARM_SEARCH_COND do not need to be configured.
The search result is returned in the structure NET_DVR_ALARM_SEARCH_RESULT by lpBuffer of
the callback function.
3. When the needed information is obtained or searching failed, call NET_DVR_StopRemoteConfig
to disconnect the persistent connection and stop searching.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
151
Device Network SDK (General) Developer Guide
Note
To check whether setting disk quota parameters is supported, you can call
NET_DVR_GetDeviceAbility and set the capability type dwAbilityType to
"DEVICE_SOFTHARDWARE_ABILITY" (macro definition value: 0x001) for getting the device software
and hardware capability.
The capability is returned in the message XML_BasicCapability by pOutBuf. If this function is
supported, the node QuotaRatio will be returned and its value is 1.
152
Device Network SDK (General) Developer Guide
Steps
153
Device Network SDK (General) Developer Guide
Note
If you choose this operation to download files, the following steps are not required.
2. Optional: Call NET_DVR_PlayBackControl_V40 with the command of
NET_DVR_SET_TRANS_TYPE (command No.: 32) to set the transcoding type for the data in the
downloaded files.
Note
The input parameter IpInBuffer refers to a 4-byte integer container format value, which
contains 1-PS, 2-TS, 3-RTP, 5-MP4 (3GPP, it is supported only when downloading by file).
3. Call NET_DVR_PlayBackControl_V40 with the command of NET_DVR_PLAYSTART (command
No.: 1) to start downloading.
Note
The input parameter IpInBuffer refers to a 4-byte integer offset, which is used to implement the
ANR function.
4. Optional: Call NET_DVR_PlayBackControl_V40 via different commands to control the
downloading, such as pausing downloading, getting downloading progress, and so on.
Note
When downloading by time, getting and setting downloading progress are not supported.
5. Call NET_DVR_StopGetFile to stop downloading.
Example
Sample Code of Downloading Video Files by Time
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
154
Device Network SDK (General) Developer Guide
NET_DVR_PLAYCOND struDownloadCond={0};
[Link]=1;
[Link] = 2013;
[Link] = 6;
[Link] = 14;
[Link] = 9;
[Link] = 50;
[Link] =0;
[Link] = 2013;
[Link] = 6;
[Link] = 14;
[Link] = 10;
[Link] = 7;
[Link] = 0;
//---------------------------------------
//Download by time
int hPlayback;
hPlayback = NET_DVR_GetFileByTime_V40(lUserID, "./test.mp4",&struDownloadCond);
if(hPlayback < 0)
{
printf("NET_DVR_GetFileByTime_V40 fail,last error %d\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//---------------------------------------
//Start downloading
if(!NET_DVR_PlayBackControl_V40(hPlayback, NET_DVR_PLAYSTART, NULL, 0, NULL,NULL))
{
printf("Play back control failed [%d]\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
155
Device Network SDK (General) Developer Guide
NET_DVR_Cleanup();
return;
}
int nPos = 0;
for(nPos = 0; nPos < 100&&nPos>=0; nPos = NET_DVR_GetDownloadPos(hPlayback))
{
printf("Be downloading... %d %%\n",nPos);
Sleep(5000); //millisecond
}
if(!NET_DVR_StopGetFile(hPlayback))
{
printf("failed to stop get file [%d]\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
if(nPos<0||nPos>100)
{
printf("download err [%d]\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
printf("Be downloading... %d %%\n",nPos);
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resources
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
HDD Configuration
156
Device Network SDK (General) Developer Guide
HDD Formatting
157
Device Network SDK (General) Developer Guide
HDD Clearing
158
Device Network SDK (General) Developer Guide
Function API
Get HDD data sync status Call NET_DVR_STDXMLConfig to transmit /ISAPI/
ContentMgmt/Storage/hdd/<ID>/syncStatus?format=json by
GET method.
The progress is returned in the message JSON_SyncStatus by
lpOutputParam.
Function API
Format SSD file system Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
SSDFileSystem/format?format=json by PUT method.
Search for formatting progress Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
of SSD file system SSDFileSystem/format/status?format=json by GET method.
The progress information is returned in the message
JSON_SSDFormatStatus by lpOutputParam.
159
Device Network SDK (General) Developer Guide
Function API
Get upgrade status of SSD file Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
system SSDFileSystem/upgrade?format=json by GET method.
The status is returned in the message JSON_SSDUpgrade by
lpOutputParam.
Upgrade SSD file system Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
SSDFileSystem/upgrade?format=json by PUT method.
Search for upgrade progress of Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
SSD file system SSDFileSystem/upgrade/status?format=json by GET method.
The progress information is returned in the message
JSON_SSDUpgradeStatus by lpOutputParam.
Search for SSD storage quotas Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
SSDFileSystem/capacity?format=json by GET method.
The storage quotas information is returned in the message
JSON_SSDCapacity by lpOutputParam.
SSD Configuration
Function API
Get SSD management Call NET_DVR_STDXMLConfig to transmit /ISAPI/
capability ContentMgmt/Storage/ssd/<ID>/capabilities?format=json by
GET method.
The capacity is returned in the message JSON_Cap_SSD by
lpOutputParam.
Upgrade SSD firmware Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
SSDFileSystem/format/status?format=json by POST method.
Get SSD firmware upgrade Call NET_DVR_STDXMLConfig to transmit /ISAPI/System/
progress SSDFileSystem/upgrade?format=json by GET method.
Get a single SSD information Call NET_DVR_STDXMLConfig to transmit /ISAPI/
ContentMgmt/Storage/ssd/<ID> by GET method.
The SSD information is returned in the message XML_ssd by
lpOutputParam.
Get all SSDs information Call NET_DVR_STDXMLConfig to transmit /ISAPI/
ContentMgmt/Storage/ssd by GET method.
The SSD information is returned in the message XML_ssdList by
lpOutputParam.
160
Device Network SDK (General) Developer Guide
Function API
Run SSD S.M.A.R.T detection Call NET_DVR_STDXMLConfig to transmit /ISAPI/
ContentMgmt/Storage/ssd/<ID>/SMARTTest/start by PUT
method and set lpInputParam to XML_SSDSMARTTest .
Get SSD S.M.A.R.T detection Call NET_DVR_STDXMLConfig to transmit /ISAPI/
status ContentMgmt/Storage/ssd/<ID>/SMARTTest/status by GET
method.
The status is returned in the message
XML_SSD_SmartTestStatus by lpOutputParam.
161
Device Network SDK (General) Developer Guide
Steps
Note
If the progress is "4" (network disconnected), you should stop uploading first and perform step1
again when the network restored.
3. Call NET_DVR_UploadClose to stop uploading file.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
162
Device Network SDK (General) Developer Guide
Note
Before searching files via the above method, you can call NET_DVR_STDXMLConfig to transmit /
ISAPI/ContentMgmt/search/profile by GET method to get the storage search capability
( XML_CMSearchProfile ) for reference.
163
Device Network SDK (General) Developer Guide
Steps
Note
Viewing video distribution on calendar is not supported when login via ISAPI protocol.
The video distribution is returned in the structure NET_DVR_MRD_SEARCH_RESULT by output
parameter pointer (lpOutBuffer).
2. Call NET_DVR_FindFile_V50 to set time and recording type for search.
Note
When login via ISAPI protocol, only the continuously recorded videos can be searched.
The time periods with video are marked by blue blocks on the time bar.
164
Device Network SDK (General) Developer Guide
3. Call NET_DVR_FindNextFile_V50 to get the file information (such as file name, file size, start
and end time, and so on) item by item.
4. Call NET_DVR_FindClose_V30 to stop searching when searching ended or exception.
Example
Sample Code of Searching Video Files
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
[Link] = 0; //Synchronous login mode
strcpy([Link], "[Link]"); //IP address
[Link] = 8000; //Service port
strcpy([Link], "admin"); //User name
strcpy([Link], "abcd1234"); //Password
NET_DVR_FILECOND_V40 struFileCond={0};
[Link] = 0xFF;
[Link] = 1;
[Link] = 0xFF;
[Link] = 0;
[Link] = 2011;
[Link] = 3;
[Link] = 1;
[Link] = 10;
165
Device Network SDK (General) Developer Guide
[Link] = 6;
[Link] =50;
[Link] = 2011;
[Link] = 3;
[Link] = 1;
[Link] = 11;
[Link] = 7;
[Link] = 0;
//---------------------------------------
//Search video files
int lFindHandle = NET_DVR_FindFile_V40(lUserID, &struFileCond);
if(lFindHandle < 0)
{
printf("find file fail,last error %d\n",NET_DVR_GetLastError());
return;
}
NET_DVR_FINDDATA_V40 struFileData;
while(true)
{
int result = NET_DVR_FindNextFile_V40(lFindHandle, &struFileData);
if(result == NET_DVR_ISFINDING)
{
continue;
}
else if(result == NET_DVR_FILE_SUCCESS)
{
char strFileName[256] = {0};
sprintf(strFileName, "./%s", [Link]);
saveRecordFile(lUserID, [Link], strFileName);
break;
}
else if(result == NET_DVR_FILE_NOFIND || result == NET_DVR_NOMOREFILE)
{
break;
}
else
{
printf("find file fail for illegal get file state");
break;
}
}
//Stop searching
if(lFindHandle >= 0)
{
NET_DVR_FindClose_V30(lFindHandle);
}
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resources
166
Device Network SDK (General) Developer Guide
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
167
Device Network SDK (General) Developer Guide
168
Device Network SDK (General) Developer Guide
Steps
169
Device Network SDK (General) Developer Guide
170
Device Network SDK (General) Developer Guide
Function API
Get configuration capability of Call NET_DVR_STDXMLConfig to transmit /ISAPI/
current storage working mode ContentMgmt/Storage/capabilities by GET method.
The capability is returned in the message XML_Cap_storage by
lpOutputParam.
Get current working mode of Call NET_DVR_STDXMLConfig to transmit /ISAPI/
storage. ContentMgmt/storage by PUT method.
The information is returned in the message XML_storage by
lpOutputParam.
Set current working mode of Call NET_DVR_STDXMLConfig to transmit /ISAPI/
storage. ContentMgmt/storage by PUT method and set lpInputParam to
XML_storage .
Start disk data reconstruction Call NET_DVR_STDXMLConfig to transmit /ISAPI/
ContentMgmt/Storage/dataReconstruction?format=json by
PUT method and set lpInputParam to
JSON_DataReconstruction .
Get disk data reconstruction Call NET_DVR_STDXMLConfig to transmit /ISAPI/
progress ContentMgmt/Storage/dataReconstruction/progress?
format=json by GET method.
The progress is returned in the message
JSON_Reconstruction_ProgressLists by lpOutputParam.
171
Device Network SDK (General) Developer Guide
Note
To check whether the device supports adding remarks to the video files, you can call
NET_DVR_STDXMLConfig to transmit /ISAPI/ContentMgmt/capabilities by GET method to get the
device storage capability ( XML_RacmCap ). If it supports, the node <isSupportRemark> will be
returned and its value is "true".
172
Device Network SDK (General) Developer Guide
Digital Channel
Get parameters of one digital channel
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/ContentMgmt/
InputProxy/channels/<ID> . The parameters are returned by output parameter pointer
lpOutBuffer in XML_InputProxyChannel .
Set parameters of one digital channel
173
Device Network SDK (General) Developer Guide
174
Device Network SDK (General) Developer Guide
175
Device Network SDK (General) Developer Guide
Note
This function is only available for certain camera
models.
176
Device Network SDK (General) Developer Guide
Note
To check whether the function is supported by the
device, you can call NET_DVR_STDXMLConfig to
transmit /ISAPI/System/capabilities by GET method
to get device capability XML_DeviceCap . If it
supports, the node <supportSmartOverlapChannles>
will be returned and its value is "true".
177
Device Network SDK (General) Developer Guide
Other Settings
178
Device Network SDK (General) Developer Guide
179
Device Network SDK (General) Developer Guide
180
Device Network SDK (General) Developer Guide
181
Device Network SDK (General) Developer Guide
Note
To check if getting socket IP is supported by device, you can call NET_DVR_GetSTDAbility and set
the dwAbilityType to "NET_DVR_GET_SYSTEM_CAPABILITIES" to get the device capability
( XML_DeviceCap ). If supports, the node <isSupportGetLinkSocketIP> will be returned.
Note
Check whether the device supports MAC address filter configuration via node
<isSupportMACFilter> in the network capability set XML_NetworkCap .
Get MAC Address Filter Configuration Parameters
Call NET_DVR_GetSTDConfig with the command of
NET_DVR_GET_MACFILTER_CFG
(command No.: 3644) and set the condition parameter IpCondBuffer in the structure of to null.
Then the parameters are returned by the output parameter lpOutBuffer in the structure .
Set MAC Address Filter
Call NET_DVR_SetSTDConfig with the command of
NET_DVR_SET_MACFILTER_CFG
182
Device Network SDK (General) Developer Guide
(command No.: 3645), set the condition parameter IpCondBuffer and input parameter
lpInBuffer in the structure of to null and for setting MAC address filter.
Access Protocol
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
Access Protocol ISAPI/System/Network/Integrate/capabilities .
The configuration capability is returned in the message
XML_Cap_Integrate by lpOutputParam.
Get Access Protocol Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/System/Network/Integrate .
The parameters are returned in the message XML_Integrate by
lpOutputParam.
Set Access Protocol Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/System/Network/Integrate and set lpInputParam to
XML_Integrate .
Hik-Connect Access
Function Description
Get the Hik-Connect access Call NET_DVR_STDXMLConfig to transmit the request
configuration capability URI: GET /ISAPI/System/Network/EZVIZ/capabilities .
The capability is returned in the message XML_Cap_EZVIZ
by lpOutputParam
Get Hik-Connect Access Parameters Call NET_DVR_GetDVRConfig with "NET_DVR_GET_
EZVIZ_ACCESS_CFG" (command No.: 3398).
The Hik-Connect access parameters are returned in the
structure NET_DVR_EZVIZ_ACCESS_CFG by lpOutBuffer.
Set Hik-Connect Access Parameters Call NET_DVR_SetDVRConfig with "NET_DVR_SET_EZVIZ_
ACCESS_CFG" (command No.: 3399), and set lpInBuffer to
the structure NET_DVR_EZVIZ_ACCESS_CFG .
Edit Verification Code for Hik-Connect Call NET_DVR_STDXMLConfig to transmit the request
URI: PUT /ISAPI/System/Network/EZVIZ/secretKey?
format=json , and set lpInBuffer to the message
JSON_EZVIZSecretKey for editing the verification code for
Hik-Connect.
183
Device Network SDK (General) Developer Guide
Function Description
Note
You can check whether device supports this function via
the node <EZVIZSecretKey> in
XML_AccessProtocolAbility .
Note
To check if the device supports accessing to Hik-Connect, you can get the network application
capability ( XML_NetAppAbility ).
Function Description
Get EHome Server Access Parameters Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CMS_
CFG" (command No.: 2070).
The EHome server access parameters are returned in the
structure NET_DVR_CMS_PARAM by lpOutBuffer.
Set EHome Server Access Parameters Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CMS_
CFG" (command No.: 2071) and set lpInBuffer to the
structure NET_DVR_CMS_PARAM .
Note
To check if the device supports accessing to EHome server, you can get the network application
capability ( XML_NetAppAbility ).
Function Description
Get RTSP Parameters Call NET_DVR_GetRtspConfig to get the RTSP parameters.
184
Device Network SDK (General) Developer Guide
Function Description
The parameters are returned in the structure
NET_DVR_RTSPCFG by the output buffer lpOutBuffer.
Set RTSP Parameters Call NET_DVR_SetRtspConfig and set the input buffer
lpInBuffer to the structure NET_DVR_RTSPCFG .
SNMP Access
Function Description
Get batch configuration parameters of Call NET_DVR_STDXMLConfig to transmit the request
SNMP URI: GET /ISAPI/System/Network/SNMP .
The parameter is returned in the message XML_SNMP by
the output parameter lpOutputParam.
Get advanced configuration Call NET_DVR_STDXMLConfig to transmit the request
parameters of SNMP URI: GET /ISAPI/System/Network/SNMP/advanced .
The parameter is returned in the message
XML_SNMPAdvanced by the output parameter
lpOutputParam.
Get all trap address parameters of Call NET_DVR_STDXMLConfig to transmit the request
SNMP in version 3 URI: GET /ISAPI/System/Network/SNMP/advanced/
trapReceivers .
The parameters are returned in the message
XML_SNMPTrapReceiverList by the output parameter
lpOutputParam.
Set all trap address parameters of Call NET_DVR_STDXMLConfig to transmit the request
SNMP in version 3 URI: PUT /ISAPI/System/Network/SNMP/advanced/
trapReceivers , and set lpInBuffer to the message
XML_SNMPTrapReceiverList .
Add a new trap address of SNMP in Call NET_DVR_STDXMLConfig to transmit the request
version 3 URI: POST /ISAPI/System/Network/SNMP/advanced/
trapReceivers , and set lpInBuffer to the message
XML_SNMPTrapReceiver .
Delete all trap addresses of SNMP in Call NET_DVR_STDXMLConfig to transmit the request
version 3 URI: DELETE /ISAPI/System/Network/SNMP/advanced/
trapReceivers , and set lpInBuffer to NULL.
Get a single trap address's parameters Call NET_DVR_STDXMLConfig to transmit the request
of SNMP in version 3 URI: GET /ISAPI/System/Network/SNMP/advanced/
trapReceivers/<ID> .
185
Device Network SDK (General) Developer Guide
Function Description
The parameter is returned in the message
XML_SNMPTrapReceiver by the output parameter
lpOutputParam.
Set parameters for a single trap Call NET_DVR_STDXMLConfig to transmit the request
address of SNMP in version 3 URI: PUT /ISAPI/System/Network/SNMP/advanced/
trapReceivers/<ID> , and set lpInBuffer to the message
XML_SNMPTrapReceiver .
Delete a single address of SNMP in Call NET_DVR_STDXMLConfig to transmit the request
version 3 URI: DELETE /ISAPI/System/Network/SNMP/advanced/
trapReceivers/<ID> , and set lpInBuffer to NULL.
186
Device Network SDK (General) Developer Guide
Function Description
(command No.: 6112) and set the input buffer
pointer (lpInBuffer) to the structure .
Get UPnP Port Mapping Status Call NET_DVR_GetUpnpNatState . And the
mapping status is returned by the parameter
lpState in the structure .
Log Server
Function Description
Get Log Server Configuration Call NET_DVR_STDXMLConfig to pass through the request URL:
Capability GET /ISAPI/System/logServer/capabilities .
The capability is returned in the message XML_LogServerCap by
the output parameter lpOutputParam.
Get Log Server Parameters Call NET_DVR_STDXMLConfig to pass through the request URL:
GET /ISAPI/System/logServer .
The parameters are returned in the message XML_LogServer by
the output parameter lpOutputParam.
Set Log Server Parameters Call NET_DVR_STDXMLConfig to pass through the request URL:
PUT /ISAPI/System/logServer and set the input parameter
lpInputParam to the message XML_LogServer .
Function Description
Get FTP Server Configuration Call NET_DVR_STDXMLConfig to pass through the request URL:
Capability GET /ISAPI/System/Network/ftp/capabilities .
The capability is returned in the message
XML_Cap_FTPNotificationList by the output parameter
lpOutputParam.
Get Parameters of A Specific Call NET_DVR_STDXMLConfig to pass through the request URL:
FTP Server GET /ISAPI/System/Network/ftp/<ID> .
187
Device Network SDK (General) Developer Guide
Function Description
The parameters are returned in the message
XML_FTPNotification by the output parameter lpOutputParam.
Set Parameters of A Specific Call NET_DVR_STDXMLConfig to pass through the request URL:
FTP Server PUT /ISAPI/System/Network/ftp/<ID> and set the input
parameter lpInputParam to the message XML_FTPNotification .
Function Description
Get SIP Parameters Call NET_DVR_GetDVRConfig with "NET_DVR_GET_SIP_CFG_
V50" (command No.: 16044) and set lChannel to 0XFFFFFFFF.
The parameters are returned in the structure
NET_DVR_SIP_CFG_V50 by lpOutBuffer.
Set SIP Parameters Call NET_DVR_SetDVRConfig with "NET_DVR_SET_SIP_CFG_
V50" (command No.: 16045), set lChannel to 0XFFFFFFFF, and
set lpInBuffer to the structure NET_DVR_SIP_CFG_V50 .
Wireless Hotspot
188
Device Network SDK (General) Developer Guide
Wireless Dial-up
189
Device Network SDK (General) Developer Guide
Network Keepalive
190
Device Network SDK (General) Developer Guide
Traffic Monitoring
9.4.6 Multicast
The multicast is to realize the group communication where information is addressed to a group of
destination computers simultaneously.
Get Parameters of Multicast Based on NPQ
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/System/Network/
extension .
The parameters are returned in the message XML_networkExtension by the output parameter
(lpOutputParam).
Set Parameters of Multicast Based on NPQ
Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/System/Network/
extension and set the input parameter (lpInputParam) to the message XML_networkExtension .
191
Device Network SDK (General) Developer Guide
192
Device Network SDK (General) Developer Guide
193
Device Network SDK (General) Developer Guide
194
Device Network SDK (General) Developer Guide
USB Mode
Function API
Get USB Mode Configuration Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
Capability ISAPI/System/usb/capabilities?format=json
Get or Set USB Mode Call NET_DVR_STDXMLConfig to transmit the request URI: GET
or PUT /ISAPI/System/usb?format=json
195
Device Network SDK (General) Developer Guide
Note
Before getting people counting data replenishment capability, you should check whether this
function is supported by the device via the node <isSupportCountingCollection> in
XML_VideoCap , request URL: GET /ISAPI/System/Video/capabilities .
Perform People Counting Data Replenishment
Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/System/Video/
inputs/channels/counting/collection?format=json , and the search condition parameters are
inputted by lpInBuffer in JSON_PeopleCounting_CollectionDescription .
Heat Map Data Replenishment
Get Capability of Heat Map Data Replenishment
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/System/Video/
inputs/channels/heatMap/collection/capabilities?format=json
Note
Before getting people counting data replenishment capability, you should check whether this
function is supported by the device via the node <isSupportHeatmapCollection> in
XML_VideoCap , URL: GET /ISAPI/System/Video/capabilities .
Perform Heat Map Data Replenishment
Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/System/Video/
inputs/channels/heatMap/collection?format=json , and set the input parameters lpInBuffer to
JSON_HeatMap_CollectionDescription .
Temperature Data Replenishment
196
Device Network SDK (General) Developer Guide
Note
Before getting temperature data replenishment capability, you should check whether this
function is supported by the device via the node <isSupportTemperatureCollection> in
XML_ThermalCap , URL: GET /ISAPI/Thermal/capabilities .
Perform Temperature Data Replenishment
Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/Thermal/
temperature/collection?format=json , and set the input parameter lpInBuffer to
JSON_CollectionDescription .
Vehicle Detection Data Replenishment
Get Intelligent Search Capability
Call NET_DVR_STDXMLConfig to transmit /ISAPI/SDT/Management/IntelligentSearch/
capabilities?format=json by GET method.
The capability is returned in JSON_IntelligentSearchCap .
Perform Vehicle Detection Data Replenishment
Call NET_DVR_STDXMLConfig to transmit /ISAPI/SDT/Management/IntelligentSearch?
format=json by POST method.
Note
Before searching for vehicle detection data, you should check whether the device supports this
function. If it supports, the node <isSupportIntelligentSearch> will be returned in the intelligent
management capability JSON_Cap_IntelliManagement (call /ISAPI/SDT/Management/
capabilities?format=json by GET method to get) and its value is "true".
197
Device Network SDK (General) Developer Guide
Steps
Note
• This step is only available for rear-end devices with up to 64 network channels.
• For the integration based on text protocol transmission, the channel No. starts from 1, for the
integration based on Device Network SDK, the channel No. of device with up to 64 network
channels starts from 33, so when the SDK's API is called by the platform or system for
transmitting text protocol to device, the channel No. returned by device starts from 1, but the
start channel No. of platform or system should starts from 33, this may cause the problem.
198
Device Network SDK (General) Developer Guide
12.1.1 NET_DVR_Cleanup
Release the resources after the program is ended.
API Definition
BOOL NET_DVR_Cleanup(
);
Return Values
Returns TURE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes may be returned by this API are 0 and 3. See details in Device Network
SDK Errors .
Remarks
• When calling this API, you cannot call other APIs at the same time.
• NET_DVR_Init and this API should be called by pair. That is, once the NET_DVR_Init is called, you
should call NET_DVR_Cleanup to release the resources when exiting the program.
12.1.2 NET_DVR_CloseFormatHandle
Destroy the formatting handle and release the resources to stop formatting HDD.
API Definition
BOOL NET_DVR_CloseFormatHandle(
LONG lFormatHandle
);
Parameters
lFormatHandle
[IN] Handle returned by NET_DVR_FormatDisk .
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
199
Device Network SDK (General) Developer Guide
12.1.3 NET_DVR_FormatDisk
Remotely format a HDD.
API Definition
LONG NET_DVR_FormatDisk(
LONG lUserID,
LONG lDiskNumber
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lDiskNumber
[IN] HDD No., which starts from 0, 0xff-all HDDs (excepts the read-only HDDs).
Return Value
Return -1 for failure, and return other values as the parameters of NET_DVR_CloseFormatHandle .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
If the network disconnected during formatting, the formatting will continue but you cannot get the
formatting status.
See Also
NET_DVR_GetFormatProgress
12.1.4 NET_DVR_GetDeviceAbility
Get the device capabilities.
API Definition
BOOL NET_DVR_GetDeviceAbility(
LONG lUserID,
DWORD dwAbilityType,
char *pInBuf,
DWORD dwInLength,
char *pOutBuf,
DWORD dwOutLength
);
200
Device Network SDK (General) Developer Guide
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwAbilityType
[IN] Capability types, which are different according to different devices and functions.
pInBuf
[IN] Input parameter buffer pointer, which are different according to different devices and
functions, and they are returned in the structure or messages.
dwInLength
[IN] Size of input buffer.
pOutBuf
[OUT] Output parameter buffer pointer, which are different according to different devices and
functions, and they are returned in the structure or messages.
dwOutLength
[OUT] Size of buffer for receiving data.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.5 NET_DVR_GetDeviceConfig
Get device configuration information in batch (with sending data).
API Definition
BOOL NET_DVR_GetDeviceConfig(
LONG lUserID,
DWORD dwCommand,
DWORD dwCount,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
LPVOID lpStatusList,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
201
Device Network SDK (General) Developer Guide
dwCommand
[IN] Device getting commands. The commands are different for different getting functions.
dwCount
[IN] Number of configurations (cameras) to get at a time. 0, 1-one camera, 2-two cameras, 3-
three cameras, and so on. Up to 64 cameras' configuration information can be obtained at a
time.
lpInBuffer
[IN] Pointer of configuration condition buffer, which specifies the number (dwCount) of
configurations to get, and relates to the getting commands.
dwInBufferSize
[IN] Size of configuration condition buffer, which saves the obtained configuration information
(the number is dwCount).
lpStatusList
[OUT] Error information list, and its memory is allocated by user, each error information
contains 4 bytes (a unsigned 32-bit integer).
There is a one-to-one correspondence between the errors in the list and the cameras need to
search, e.g., lpStatusList[2] corresponds to lpInBuffer[2].
If the parameter value is 0 or 1, it refers to getting succeeded, otherwise, this parameter value is
the error code.
lpOutBuffer
[OUT] Parameters returned by device, which relates to the getting commands. And there is a
one-to-one correspondence between the parameters and the cameras need to search.
If the lpStatusList of one camera is larger than 1, the corresponding lpOutBuffer is invalid.
dwOutBufferSize
[IN] Total size of returned results (the number is dwCount).
Return Values
Returns TRUE for success, and returns FALSE for failure. If returns TRUE, it does not mean that all
configurations are obtained, you can check the value of lpStatusList[n] to judge which one is
succeeded.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_SetDeviceConfig
12.1.6 NET_DVR_GetDeviceStatus
Call this API to get device status.
202
Device Network SDK (General) Developer Guide
API Definition
BOOL NET_DVR_GetDeviceStatus(
LONG lUserID,
DWORD dwCommand,
DWORD dwCount,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
LPVOID lpStatusList,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Commands for getting the device status.
dwCount
[IN] Number of devices' statuses to be obtained.
lpInBuffer
[IN] Condition buffer of getting status, which is different acoording to different commands
(dwCommand).
dwInBufferSize
[IN] Condition buffer size.
lpStatusList
[OUT] Error information list, and its memory is allocated by user, each error information
contains 4 bytes (a unsigned 32-bit integer).
There is a one-to-one correspondence between the errors in the list and the cameras that need
to be searched, e.g. lpStatusList[2] corresponds to lpInBuffer[2].
If the parameter value is 0, it refers to getting succeeded; if the value is larger than 0, it indicates
getting failed.
lpOutBuffer
[OUT] Status details returned by device, which veries with the command (dwCommand), and
one-to-one corresponds to the cameras that need to be searched.
If the IpStatusList value of a camera is larger than 0, the corresponding IpOutBuffer is invalid.
dwOutBufferSize
[IN] Output buffer size
203
Device Network SDK (General) Developer Guide
Return Values
Returns TRUE for success, and returns FALSE for all failed. If returns TRUE, it does not mean that all
settings are succeeded, you can check the value of lpStatusList[n] to judge which one is succeeded.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
Remarks
• If you want to get all devices' statuses, you should set the dwCount to 0xffffffff, set lpInBuffer to
NULL, set dwInBufferSize to 0, set lpStatusList to NULL.
• For IpOutBuffer, the first 4-byte is the total number of structures returned by device, and the
following bytes contain the structures details. If the configured output buffer is insufficient, only
a part of structures will be returned.
12.1.7 NET_DVR_GetDVRConfig
Get the device configuration information.
API Definition
BOOL NET_DVR_GetDVRConfig(
LONG lUserID,
DWORD dwCommand,
LONG lRuleID,
LONG lChannel,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize,
LPDWORD lpBytesReturned
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device getting commands, which are different according to different getting functions.
lRuleID
[IN] Rule ID.
lChannel
[IN] Channel No. (NIC No.), which varies with different commands. 0xffffffff-invalid or all
channels, 1-main NIC, 2-extended NIC.
lpOutBuffer
[OUT] Pointer of buffer to receive data. For different getting functions, the structures of this
parameter are different.
204
Device Network SDK (General) Developer Guide
dwOutBufferSize
[IN] Size of buffer to receive data (unit: byte). It cannot be 0.
lpBytesReturned
[OUT] Pointer of actually received data size. It cannot be NULL.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API: 0, 3, 6, 7, 8, 9, 10, 12, 17, 41, 43, 44, 47, 72,
73, and 76. See the corresponding error types and descriptions in the Device Network SDK Errors .
See Also
NET_DVR_SetDVRConfig
12.1.8 NET_DVR_GetErrorMsg
Return the error information of the last operation.
API Definition
char *NET_DVR_GetErrorMsg(
LONG *pErrorNo
);
Parameters
pErrorNo
[OUT] Error code pointer.
Return Values
The return values are the pointers of error information, see Device Network SDK Errors for details.
Remarks
You can call NET_DVR_GetLastError to get the error codes.
12.1.9 NET_DVR_GetFormatProgress
Get HDD formatting progress.
API Definition
BOOL NET_DVR_GetFormatProgress(
LONG lFormatHandle,
LONG *pCurrentFormatDisk,
205
Device Network SDK (General) Developer Guide
LONG *pCurrentDiskPos,
LONG *pFormatStatic
);
Parameters
lFormatHandle
[IN] Formatting handle, which is returned by NET_DVR_FormatDisk .
pCurrentFormatDisk
[OUT] Pointer of HDD No. that is formatting, the No. starts from 0, and -1 indicates the
initialization status.
pCurrentDiskPos
[OUT] Pointer of HDD formatting progress, its value is between 0 and 100.
pFormatStatic
[OUT] Pointer of HDD formatting status, values: 0-formatting, 1-formatted, 2-formatting failed,
3-starting formatting failed as the network exception or network HDD loss.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.10 NET_DVR_GetIPCProtoList_V41
Get the network camera protocol list supported by the device.
API Definition
BOOL NET_DVR_GetIPCProtoList_V41(
LONG lUserID,
NET_DVR_IPC_PROTO_LIST_V41 lpProtoList
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40
lpProtoList
[IN] Network camera protocol list, refer to the structure NET_DVR_IPC_PROTO_LIST_V41 for
details.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
206
Device Network SDK (General) Developer Guide
Remarks
This API is used to get the external network camera protocols supported by device. When calling
this API, set pBuffer and dwBufLen in the structure NET_DVR_IPC_PROTO_LIST_V41 to "null" and
"0", and then get the valid number of network camera protocols. Finally, allocate the cache
according to the number of protocols and call this API again to get protocol details.
12.1.11 NET_DVR_GetLastError
Return the error code of the last operation.
API Definition
DWORD NET_DVR_GetLastError(
);
Return Values
The return values are error codes, see Device Network SDK Errors for details.
Remarks
You can also call NET_DVR_GetErrorMsg to directly get the error information.
12.1.12 NET_DVR_GetLinkAddr
Get the IP address and port information of the stream sender and recipient.
API Definition
BOOL NET_DVR_GetLinkAddr(
LONG lLinkHandle,
NET_DVR_LINK_KIND enumLinkKind,
LPNET_DVR_LINK_ADDR lpLinkAddr
);
Parameters
lLinkHandle
Returned handle when live view, playback, two-way audio, or audio forward is enabled.
enumLinkKind
Stream types, see details in NET_DVR_LINK_KIND .
lpLinkAddr
Pointer of the structure about IP address and port information of the stream sender and
recipient, see details in NET_DVR_LINK_ADDR .
207
Device Network SDK (General) Developer Guide
Return Value
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.13 NET_DVR_GetNextRemoteConfig
Get the next search result.
API Definition
LONG NET_DVR_GetNextRemoteConfig(
LONG lHandle,
void *lpOutBuff,
DWORD dwOutBuffSize
);
Parameters
lHandle
[IN] Search handle, which is the value returned by NET_DVR_StartRemoteConfig .
lpOutBuff
[OUT] Output parameter buffer pointer, which relates to the commands (dwCommand) of
NET_DVR_StartRemoteConfig .
dwOutBuffSize
[IN] Buffer size.
Return Values
Returns -1 for failure, and returns other values for the current statuses, see details in the following
table.
Status Value Description
NET_SDK_GET_NEXT_STATUS_ 1000 The data is obtained. The API NET_DVR_
SUCCESS GetNextRemoteConfig should be called again to
get the next item of data.
NET_SDK_GET_NETX_STATUS_ 1001 Waiting. The API NET_DVR_GetNextRemoteConfig
NEED_WAIT can be called again.
NET_SDK_GET_NEXT_STATUS_ 1002 All data is obtained. The API
FINISH NET_DVR_StopRemoteConfig can be called to end.
NET_SDK_GET_NEXT_STATUS_ 1003 Getting data exception. The API
FAILED NET_DVR_StopRemoteConfig can be called to end.
208
Device Network SDK (General) Developer Guide
12.1.14 NET_DVR_GetRemoteConfigState
Get the status of persistent connection.
API Definition
BOOL NET_DVR_GetRemoteConfigState(
LONG lHandle,
void *pState
);
Parameters
lHandle
[IN] Handle, which is returned by NET_DVR_StartRemoteConfig .
pState
[OUT] A 4-byte status value, the returned statuses are different according to different remote
configuration commands
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.15 NET_DVR_GetRtspConfig
Get RTSP (Real-Time Streaming Protocol) parameters.
Structure Definition
BOOL NET_DVR_GetRtspConfig(
LONG lUserID,
DWORD dwCommand,
LPNET_DVR_RTSPCFG lpOutBuffer,
DWORD dwOutBufferSize
);
Parameters
lUserID
[IN] The value returned by NET_DVR_Login_V40 .
209
Device Network SDK (General) Developer Guide
dwCommand
[IN] Reserved, set to 0.
lpOutBuffer
[OUT] Output buffer, see details in the structure NET_DVR_RTSPCFG .
dwOutBufferSize
[IN] Size of the output buffer.
Return Values
Return TRUE for success, and return FALSE for failure. If FALSE is returned, you can call
NET_DVR_GetLastError to get the error code.
12.1.16 NET_DVR_GetSDKLocalCfg
Get the HCNetSDK's local configuration parameters.
API Definition
BOOL NET_DVR_GetSDKLocalCfg(
NET_SDK_LOCAL_CFG_TYPE enumType,
void *lpOutBuff
);
Parameters
enumType
[IN] Configuration options. Different values of configuration options correspond to different
parameters, see details in NET_SDK_LOCAL_CFG_TYPE .
lpOutBuff
[OUT] Output parameters. For different configuration options, the structures of output
parameters are different, see details in NET_SDK_LOCAL_CFG_TYPE .
Return Values
Returns TRUE for success, and returns FALSE for failure. If FALSE is returned, you can call
NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_SetSDKLocalCfg
12.1.17 NET_DVR_GetSTDAbility
Get the device capabilities.
210
Device Network SDK (General) Developer Guide
API Definition
BOOL NET_DVR_GetSTDAbility(
LONG lUserID,
DWORD dwAbilityType,
NET_DVR_STD_ABILITY lpAbilityParam
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwAbilityType
[IN] Capability types, which are different according to different functions.
lpAbilityParam
[IN/OUT] Capability details, including condition parameter, input parameter, output parameter,
and so on (see details in the structure NET_DVR_STD_ABILITY ), which are different according
to different capability types.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.18 NET_DVR_GetSTDConfig
Get the device configuration information.
API Definition
BOOL NET_DVR_GetSTDConfig(
LONG lUserID,
DWORD dwCommand,
NET_DVR_STD_CONFIG lpConfigParam
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device configuration commands, which are different according to different configuration
functions.
lpConfigParam
211
Device Network SDK (General) Developer Guide
[IN][OUT] Set input and output parameters, which are different according to different
configuration functions. For different configuration functions, the lpCondBuffer and lpOutBuffer
in the IpConfigParam are also different. See the structure NET_DVR_STD_CONFIG for details.
Note
When getting configuration parameters, the lpInBuffer in the lpConfigParam is invalid, you can
set it to NULL.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_SetSTDConfig
12.1.19 NET_DVR_GetUpnpNatState
Get UPnP port mapping status.
API Definition
BOOL NET_DVR_GetUpnpNatState(
LONG lUserID,
NET_DVR_UPNP_NAT_STATE lpState
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lpState
[OUT] UPnP port mapping status, see details in the structure .
Return Values
Return TRUE for success, and return FALSE for failure.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
12.1.20 NET_DVR_Init
Initialize the programming environment before calling other APIs.
212
Device Network SDK (General) Developer Guide
API Definition
BOOL NET_DVR_Init(
);
Return Values
Returns TURE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes of this API are 0, 41, and 53. See details in Device Network SDK Errors .
Remarks
Before initializing, you can call NET_DVR_SetSDKInitCfg to set the initialization parameters, such as
supported capabilities, loading path of component libraries (only supported by Linux system), and
so on.
See Also
NET_DVR_Cleanup
12.1.21 NET_DVR_InquestGetEncryptState
Get encryption status of device stream.
API Definition
BOOL NET_DVR_InquestGetEncryptState(
LONG lUserID,
LONG lChannel,
BOOL *bEncrypt
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lChannel
[IN] Channel No., 0xffffffff-invalid or all channels.
bEncrypt
[OUT] Encryption status: TRUE-encrypted, FALSE-not encrypted.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
213
Device Network SDK (General) Developer Guide
See Also
NET_DVR_InquestStreamEncrypt
12.1.22 NET_DVR_InquestSetSecretKey
Set encryption key for encrypting stream.
API Definition
BOOL NET_DVR_InquestSetSecretKey(
LONG lUserID,
NET_DVR_INQUEST_SECRET_INFO pSecretInfo
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
pSecretInfo
[IN] Encryption key information, see details in the structure .
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.23 NET_DVR_InquestStreamEncrypt
Enable stream encryption.
API Definition
BOOL NET_DVR_InquestStreamEncrypt(
LONG lUserID,
LONG lChannel,
BOOL bEncrypt
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lChannel
[IN] Channel No., 0xffffffff-invalid or all channels.
214
Device Network SDK (General) Developer Guide
bEncrypt
[IN] Encryption flag: TRUE-encrypted, FALSE-not encrypted.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_InquestGetEncryptState
12.1.24 NET_DVR_Login_V40
Log in to the device (supports asynchronous login).
API Definition
LONG NET_DVR_Login_V40(
NET_DVR_USER_LOGIN_INFO pLoginInfo,
NET_DVR_DEVICEINFO_V40 lpDeviceInfo
);
Parameters
pLoginInfo
[IN] Login parameters, including device address, user name, password, and so on. See details in
the structure NET_DVR_USER_LOGIN_INFO .
lpDeviceInfo
[OUT] Device information. See details in the structure NET_DVR_DEVICEINFO_V40 .
Return Values
• For asynchronous login, the callback function ( fLoginResultCallBack ) configured in the
structure ( NET_DVR_USER_LOGIN_INFO ) returns the asynchronous login status, user ID and
device information.
• For synchronous login, this API returns -1 for logging failed, and returns other values for the
returned user IDs. The user ID is unique, and it helps to realize the further device operations.
• If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• When bUseAsynLogin in pLoginInfo is 0, it indicates that login is in synchronous mode; when
bUseAsynLogin in pLoginInfo is 1, it indicates that login is in asynchronous mode.
• Up to 2048 users are allowed to log in to HCNetSDK at same time, and the values of returned
UserID are ranging from 0 to 2047.
215
Device Network SDK (General) Developer Guide
See Also
NET_DVR_Logout
12.1.25 NET_DVR_Logout
Log out from devices.
API Definitions
BOOL NET_DVR_Logout(
LONG lUserID
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
Return Values
Returns TURE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes may be returned by this API are 0, 3, 7, 8, 9, 10, 14, 17, 41, 44, 47, 72,
and 73. See details in Device Network SDK Errors .
12.1.26 NET_DVR_RebootDVR
Reboot the device.
API Definition
BOOL NET_DVR_RebootDVR(
LONG lUserID
);
Parameters
lUserID
[IN] User ID, which is the returned value of NET_DVR_Login_V40 .
Return Values
Returns TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
216
Device Network SDK (General) Developer Guide
12.1.27 NET_DVR_RemoteControl
Implement remote control.
API Definition
BOOL NET_DVR_RemoteControl(
LONG lUserID,
DWORD dwCommand,
LPVOID lpInBuffer,
DWORD dwInBufferSize
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Control commands. To realize different functions, the commands are different.
lpInBuffer
[IN] Input parameters, which vary with different control commands.
dwInBufferSize
[IN] Size of input parameters.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.28 NET_DVR_RenderPrivateData
Whether to display intelligent information on live video.
API Definition
BOOL NET_DVR_RenderPrivateData(
LONG lRealHandle,
int iIntelType,
BOOL bTrue
);
Parameters
lRealHandle
[IN] Live view handle, which is returned by NET_DVR_RealPlay_V40 .
217
Device Network SDK (General) Developer Guide
iIntelType
[IN] Intelligent information types, which are enumerated in PRIDATA_RENDER .
bTrue
[IN] Whether to enable displaying the intelligent information on live video: true, false.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.29 PlayM4_RenderPrivateDataEx
Whether to display intelligent thermal information on the live video.
API Definition
BOOL NET_DVR_RenderPrivateDataEx(
LONG lRealHandle,
int iIntelType,
int iSubType,
BOOL bTrue
);
Parameters
lRealHandle
[IN] Live view handle, which is returned by NET_DVR_RealPlay_V40 .
iIntelType
[IN] Intelligent information types, which are enumerated in PRIDATA_RENDER .
iSubType
[IN] Sub types of thermal information to display; when the iIntelType is set to
"RENDER_FIRE_DETCET" (fire point detection information), the sub types are enumerated in
FIRE_ALARM ; when the iIntelType is set to "RENDER_TEM" (rule information of temperature
measurement), the sub types are enumerated in TEM_FLAG .
bTrue
[IN] Whether to enable displaying the intelligent information on live video: true, false.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
218
Device Network SDK (General) Developer Guide
12.1.30 NET_DVR_SDKChannelToISAPI
Convert channel No. between the private protocol and a text protocol.
API Definition
BOOL NET_DVR_SDKChannelToISAPI(
LONG lUserID,
LONG lInChannel,
BOOL bSDKToISAPI
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lInChannel
[IN] Channel No.
bSDKToISAPI
[OUT] Channel No. conversion type: "TRUE"-convert channel No. of private protocol to that of
text protocol, "FALSE"-convert channel No. of text protocol to that of private protocol.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.31 NET_DVR_SendRemoteConfig
Send data via the persistent connection.
API Definition
BOOL NET_DVR_SendRemoteConfig(
LONG lHandle,
DWORD dwDataType,
char *pSendBuf,
DWORD dwBufSize
);
Parameters
lHandle
Persistent configuration handle, which is returned by NET_DVR_StartRemoteConfig .
dwDataType
219
Device Network SDK (General) Developer Guide
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
Before calling this API, you must call NET_DVR_StartRemoteConfig to get the persistent
connection handle.
12.1.32 NET_DVR_SendWithRecvRemoteConfig
Set condition to get result one by one.
API Definition
LONG NET_DVR_SendWithRecvRemoteConfig(
LONG lHandle,
void *lpInBuff,
DWORD dwInBuffSize,
void *lpOutBuff,
DWORD dwOutBuffSize,
DWORD *dwOutDataLen
);
Parameters
lHandle
[IN] Handle returned by NET_DVR_StartRemoteConfig .
lpInBuff
[IN] Buffer to save input parameter structure, and this structure varies with the value of
dwCommand in API NET_DVR_StartRemoteConfig .
dwInBuffSize
[IN] Input buffer size, which equals to the size of input parameter structure (lpInBuff).
lpOutBuff
[OUT] Buffer to save output parameter structure, and this structure corresponds one-to-one
with the input parameter structure (lpInBuff).
dwOutBuffSize
220
Device Network SDK (General) Developer Guide
[IN] Output buffer size, which equals to the size of output parameter structure (lpOutBuff).
dwOutDataLen
[OUT] Pointer of actual received data size, and it cannot be set to "null".
Return Value
Return -1 for failure, and return other values as the status codes, refer to the table below.
Status Macro Definition Status Code Description
NET_SDK_CONFIG_STATUS_SUCCESS 1000 The data is obtained. The API NET_
DVR_SendWithRecvRemoteConfig
should be called again to get the next
item of data.
NET_SDK_CONFIG_STATUS_NEEDWAIT 1001 Waiting. The API NET_DVR_
SendWithRecvRemoteConfig can be
called again.
NET_SDK_CONFIG_STATUS_FINISH 1002 All data is obtained. The API
NET_DVR_StopRemoteConfig can be
called to end.
NET_SDK_CONFIG_STATUS_FAILED 1003 Getting data failed. The API NET_DVR_
SendWithRecvRemoteConfig can be
called to get the next item of data.
NET_SDK_CONFIG_STATUS_EXCEPTION 1004 Getting data exception. The API
NET_DVR_StopRemoteConfig can be
called to end.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code for reference.
Remarks
To get all information, you should call this API repeatedly.
12.1.33 NET_DVR_SetConnectTime
Set network connection timeout and connection attempts.
API Definition
BOOL NET_DVR_SetConnectTime(
DWORD dwWaitTime,
DWORD dwTryTimes
);
221
Device Network SDK (General) Developer Guide
Parameters
dwWaitTime
[IN] Timeout, unit: ms, value range: [300,75000]; the maximum timeout varies with different
operating systems.
dwTryTimes
[IN] Connection attempts (reserved).
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• For Windows operating system, the default connection timeout is 3000 ms; for Linux operating
system with version [Link] and above, he default connection timeout is 3500 ms.
• For HCNetSDK with version 4.0 and above, when the configured timeout is larger than or smaller
than the limit value, this API will not return FALSE, it will automatically use the timeout that is
closest to the limit value as the actual timeout.
12.1.34 NET_DVR_SetDeviceConfig
Set device parameters in batch (sending data is supported).
API Definition
BOOL NET_DVR_SetDeviceConfig(
LONG lUserID,
DWORD dwCommand,
DWORD dwCount,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
LPVOID lpStatusList,
LPVOID lpInParamBuffer,
DWORD dwInParamBufferSize
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device configuration commands, which are different according to different configurations.
dwCount
222
Device Network SDK (General) Developer Guide
[IN] Number of cameras to be set at a time. 0,1-one camera, 2-two cameras, 3-three cameras,
and so on. Up to 256 cameras can be configured at a time.
lpInBuffer
[IN] Pointer of configuration condition buffer, e.g., stream ID, which specifies the number
(dwCount) of cameras to set, and relates to the configuration commands.
dwInBufferSize
[IN] Size of configuration condition buffer, which saves the configured information of cameras
with the number of dwCount.
lpStatusList
[OUT] Error information list, and its memory is allocated by user, each error information
contains 4 bytes (a unsigned 32-bit integer).
There is a one-to-one correspondence between the errors in the list and the cameras that need
to be searched, e.g., lpStatusList[2] corresponds to lpInBuffer[2].
If the parameter value is 0, it refers to setting succeeded, otherwise, this parameter value is the
error code.
lpInParamBuffer
[IN] Device parameters to set, which relates to the configuration commands. And there is a one-
to-one correspondence between the parameters and the cameras that need to be searched.
dwInParamBufferSize
[IN] Set the size of content buffer.
Return Values
Returns TRUE for success, and returns FALSE for all failed. If returns TRUE, it does not indicate that
all settings are succeeded, you can get the value of lpStatusList[n] to check which one is
succeeded.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_GetDeviceConfig
12.1.35 NET_DVR_SetDeviceConfigEx
Set the device parameters in batch (sending data is supported).
API Definition
BOOL NET_DVR_SetDeviceConfigEx(
LONG lUserID,
DWORD dwCommand,
DWORD dwCount,
NET_DVR_IN_PARAM *lpInParam,
223
Device Network SDK (General) Developer Guide
NET_DVR_OUT_PARAM *lpOutParam
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device configuration commands, which are different according to different configuration
functions.
dwCount
[IN] Number of cameras to be set at a time. 0,1-one camera, 2-two cameras, 3-three cameras,
and so on. Up to 64 cameras can be configured at a time.
lpInParam
[IN] Input parameter buffer, see details in the structure NET_DVR_IN_PARAM (the value of each
member in the structure varies with the dwCommand).
lpOutParam
[IN] Output parameter buffer, see details in the structure NET_DVR_OUT_PARAM (the value of
each member in the structure varies with the dwCommand).
Return Values
Returns TRUE for success, and returns FALSE for all failed. If returns TRUE, it does not mean that all
settings are succeeded, you can check the value of lpStatusList[n] to check which one is
succeeded.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
Extended From: NET_DVR_SetDeviceConfig
12.1.36 NET_DVR_SetDVRConfig
Set the device parameters.
API Definition
BOOL NET_DVR_SetDVRConfig(
LONG lUserID,
DWORD dwCommand,
LONG lChannel,
LPVOID lpInBuffer,
DWORD dwInBufferSize
);
224
Device Network SDK (General) Developer Guide
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device configuration commands, which are different according to different configuration
functions.
lChannel
[IN] Channel No. (NIC No.), which varies with different commands. 0xFFFFFFFF-invalid, 1-main
NIC, 2-extended NIC.
lpInBuffer
[IN] Pointer of input data buffer. For different configuration functions, the structures of this
parameter are different.
dwInBufferSize
[IN] Size of input data buffer (unit: byte).
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API: 0, 3, 6, 7, 8, 9, 10, 12, 17, 41, 43, 44, 47, 72,
73, and 76. See the corresponding error types and descriptions in the Device Network SDK Errors .
See Also
NET_DVR_GetDVRConfig
12.1.37 NET_DVR_SetExceptionCallBack_V30
Sign up a window handle or callback function for receiving the message of exception,
reconnection, and so on.
225
Device Network SDK (General) Developer Guide
void* hWnd,
fExceptionCallBack cbExceptionCallBack,
void *pUser
);
Parameters
nMessage
[IN] Message, this parameter is reserved when programming in Linux operating system.
hWnd
[IN] Window handle for receiving exception message, this parameter is reserved when
programming in operating system.
cbExceptionCallBack
[IN] Callback function for receiving exception message, see details in fExceptionCallBack .
pUser
[IN] User data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
For programming in Windows operating system, the parameter hWnd and cbExceptionCallBack
can not be set to "NULL" at same time; for programming in Linux operating system, the parameter
cbExceptionCallBack can not be set to "NULL", otherwise, no exception message will be received.
Example
Sample Code of Setting Callback Function to Receive Exception Messages
//Register callback function for receiving exception messages
NET_DVR_SetExceptionCallBack_V30(WM_NULL, NULL, g_ExceptionCallBack, NULL);
226
Device Network SDK (General) Developer Guide
TRACE("%s",tempbuf);
//TODO: close transparent channel
break;s" case EXCEPTION_RECONNECT: //Preview reconnect
break;EXCEPTION_RECONNECT: //Preview reconnect
break;
default:
break;
}
};
12.1.38 NET_DVR_SetRtspConfig
Set RTSP (Real-Time Streaming Protocol) parameters.
Structure Definition
BOOL NET_DVR_SetRtspConfig(
LONG lUserID,
DWORD dwCommand,
LPNET_DVR_RTSPCFG lpInBuffer,
DWORD dwInBufferSize
);
Parameters
lUserID
[IN] The value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Reserved, set to 0.
lpInBuffer
[IN] Input buffer.
dwInBufferSize
[IN] The size of input buffer.
Return Values
Returns TRUE for success, and return FALSE for failure. If FALSE is returned, you can call
NET_DVR_GetLastError to get the error code.
12.1.39 NET_DVR_SetSDKInitCfg
Set initialization parameters.
227
Device Network SDK (General) Developer Guide
API Parameters
BOOL NET_DVR_SetSDKInitCfg(
NET_SDK_INIT_CFG_TYPE enumType,
void* const lpInBuff
);
Parameters
enumType
[IN] Initialization parameter type. Different type values correspond to different parameters, see
details in the table below.
228
Device Network SDK (General) Developer Guide
Return Values
Returns TURE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API should be called before calling NET_DVR_Init to initialize and check the dependent
libraries or capabilities. This API only takes effect for POSIX. For Windows, it takes no effect but
success will be returned.
12.1.40 NET_DVR_SetSDKLocalCfg
Set the local parameters.
API Definition
BOOL NET_DVR_SetSDKLocalCfg(
NET_SDK_LOCAL_CFG_TYPE enumType,
void* const lpInBuff
);
Parameters
enumType
[IN] Configuration options. Different values of configuration options correspond to different SDK
parameters, see details in NET_SDK_LOCAL_CFG_TYPE .
lpInBuff
[IN] Input parameters. For different configuration options, the structures of input parameters
are different, see details in NET_SDK_LOCAL_CFG_TYPE .
Return Values
Returns TRUE for success, and returns FALSE for failure. If FALSE is returned, you can call
NET_DVR_GetLastError to get the error code.
Before setting parameters for this function, make sure no device has logged in.
See Also
NET_DVR_GetSDKLocalCfg
12.1.41 NET_DVR_SetSTDConfig
Set the device parameters.
229
Device Network SDK (General) Developer Guide
API Definition
BOOL NET_DVR_SetSTDConfig(
LONG lUserID,
DWORD dwCommand,
NET_DVR_STD_CONFIG lpConfigParam
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device configuration commands, which are different according to different configuration
functions.
lpConfigParam
[IN][OUT] Set input and output parameters, which are different according to different
configuration functions. For different configuration functions, the lpCondBuffer and lpInBuffer
in the IpConfigParam are also different. See the structure NET_DVR_STD_CONFIG for details.
Note
When getting configuration parameters, the lpOutBuffer in the lpConfigParam is invalid, you
can set it to "NULL".
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_GetSTDConfig
12.1.42 NET_DVR_StartGetDevState
Enable device status checking.
API Definition
BOOL NET_DVR_StartGetDevState(
NET_DVR_CHECK_DEV_STATE *pParams
);
Parameters
pParams
230
Device Network SDK (General) Developer Guide
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
After enabling, the SDK will regularly check the device status, and the obtained device status will
be returned in the callback function of structure NET_DVR_CHECK_DEV_STATE .
See Also
NET_DVR_StopGetDevState
12.1.43 NET_DVR_StartRemoteConfig
Enable remote configuration.
API Definition
LONG NET_DVR_StartRemoteConfig(
LONG lUserID,
DWORD dwCommand,
LPVOID lpInBuffer,
DWORD dwInBufferLen,
fRemoteConfigCallback cbStateCallback,
LPVOID pUserData
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Configuration commands. For different functions, the commands and lpInBuffer are
different.
lpInBuffer
Input parameter buffer pointer, which relates to the configuration command.
dwInBufferLen
[IN] Size of input buffer.
cbStateCallback
[IN] Status callback function, see the definition in fRemoteConfigCallback .
pUserData
231
Device Network SDK (General) Developer Guide
Return Values
Returns -1 for failure, and returns other values for the handles of NET_DVR_GetNextRemoteConfig
and NET_DVR_StopRemoteConfig .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API specifies the information to search. After calling this API, you can call
NET_DVR_GetNextRemoteConfig to get the information one by one.
12.1.44 NET_DVR_STDControl
Control remotely.
API Definition
BOOL NET_DVR_STDControl(
LONG lUserID,
DWORD dwCommand,
LPNET_DVR_STD_CONTROL lpControlParam
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Control commands.
lpControlParam
[IN][OUT] Input parameters and output parameters of remote control. The parameters are
different according to different control commands, see details in the structure of
NET_DVR_STD_CONTROL .
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.1.45 NET_DVR_STDXMLConfig
Transmit request URL with XML or JSON format to implement some typical functions.
232
Device Network SDK (General) Developer Guide
API Definition
BOOL NET_DVR_STDXMLConfig(
LONG lUserID,
const NET_DVR_XML_CONFIG_INPUT *lpInputParam,
NET_DVR_XML_CONFIG_OUTPUT *lpOutputParam
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lpInputParam
[IN] Input parameters, refer to the structure NET_DVR_XML_CONFIG_INPUT for details.
lpOutputParam
[IN][OUT] Output parameters, refer to the structure NET_DVR_XML_CONFIG_OUTPUT for
details.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
The input parameter lpInputParam and output parameter lpOutputParam are different when
transmitting text protocol for implementing different functions, and each parameter corresponds
to a component of text protocol, see the relations below:
Parameter of NET_DVR_STDXMLConfig Component of Text Protocol
lpInputParam lpRequestUrl (see in structure Method+URL
NET_DVR_XML_CONFIG_INPU E.g., GET /ISAPI/System/
T) capabilities
lpInBuffer (see in structure Request Message
NET_DVR_XML_CONFIG_INPU
T)
lpOutputParam lpOutBuffer (see in structure Response Message
NET_DVR_XML_CONFIG_OUTP
UT )
lpStatusBuffer (see in structure Response Message
NET_DVR_XML_CONFIG_OUTP
UT )
233
Device Network SDK (General) Developer Guide
12.1.46 NET_DVR_StopGetDevState
Disable device status checking.
API Definition
BOOL NET_DVR_StopGetDevState(
);
Parameters
None
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_StartGetDevState
12.1.47 NET_DVR_StopRemoteConfig
Disconnect the persistent connection to stop remote configuration, and release resources.
API Definition
BOOL NET_DVR_StopRemoteConfig(
LONG lHandle
);
Parameters
lHandle
[IN] Handle, which is returned by NET_DVR_StartRemoteConfig .
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
234
Device Network SDK (General) Developer Guide
12.2.1 NET_DVR_ChangeWndResolution
Send the window change notification to PlayCtrl LibrarySDK when the size of display window
changed (only applicable for Linux system).
API Definition
BOOL NET_DVR_ChangeWndResolution(
LONG lRealHandle
);
Parameters
lRealHandle
[IN] Live view handle, which is returned by NET_DVR_RealPlay_V40 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.2.2 NET_DVR_GetCurrentAudioCompress_V50
Get the effective audio encoding parameters of two-way audio.
API Definition
BOOL NET_DVR_GetCurrentAudioCompress_V50(
LONG lUserID,
LPNET_DVR_AUDIO_CHANNEL *lpAudioChannel,
LPNET_DVR_COMPRESSION_AUDIO lpCompressAudio
);
Parameters
lUserID
[IN] User information returned by NET_DVR_Login_V40 .
lpAudioChannel
[IN] Audio channel information, refer to the structure NET_DVR_AUDIO_CHANNEL for details.
lpCompressAudio
[OUT] Audio encoding parameters, refer to the structure NET_DVR_COMPRESSION_AUDIO for
details.
235
Device Network SDK (General) Developer Guide
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.2.3 NET_DVR_PTZControl
Implement PTZ control.
API Definition
BOOL NET_DVR_PTZControl(
LONG lRealHandle,
DWORD dwPTZCommand,
DWORD dwStop
);
Parameters
lRealHandle
[IN] Value returned by NET_DVR_RealPlay_V40 .
dwPTZCommand
[IN] PTZ control commands, see details in the following table:
236
Device Network SDK (General) Developer Guide
237
Device Network SDK (General) Developer Guide
dwStop
[IN] Whether to enable PTZ control: 0-no, 1-yes.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• Before calling this API, you should start the live view.
• You should call this API for twice to perform each operation (including start and stop, which is
determined by the parameter dwStop).
• The PTZ control commands correspond to the control codes between device and PTZ, the device
will send the control codes to PTZ according to the configured decoder type and address. If the
decoder of device and PTZ mismatches, you should configure the device decoder again. If the
PTZ decoder is not supported by device, it is not available to call this API to control PTZ.
• By default, the PTZ movement is in maximum speed.
12.2.4 NET_DVR_PTZCruise
Set and start patrol during PTZ control.
API Definition
BOOL NET_DVR_PTZCruise(
LONG lRealHandle,
DWORD dwPTZCruiseCmd,
BYTE byCruiseRoute,
BYTE byCruisePoint,
WORD wInput
);
Parameters
lRealHandle
[IN] Value returned by NET_DVR_RealPlay_V40 .
dwPTZCruiseCmd
[IN] Patrol commands, see details in the following table:
238
Device Network SDK (General) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• Before setting or calling patrol, at least two presets should be configured.
• The patrol commands correspond to the control codes between device and PTZ, the device will
send the control codes to PTZ according to the configured decoder type and address. If the
decoder of device and PTZ mismatches, you should configure the device decoder again. If the
PTZ decoder is not supported by device, it is not available to call this API to set and start patrol.
See Also
NET_DVR_PTZPreset
12.2.5 NET_DVR_PTZPreset
Set and call preset during PTZ control.
API Definition
BOOL NET_DVR_PTZPreset(
LONG lRealHandle,
DWORD dwPTZPresetCmd,
239
Device Network SDK (General) Developer Guide
DWORD dwPresetIndex
);
Parameters
lRealHandle
[IN] Value returned by NET_DVR_RealPlay_V40 .
dwPTZPresetCmd
Preset commands, see details in the following table:
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
The preset commands correspond to the control codes between device and PTZ, the device will
send the control codes to PTZ according to the configured decoder type and address. If the
decoder of device and PTZ mismatches, you should configure the device decoder again. If the PTZ
decoder is not supported by device, it is not available to call this API to set and call preset.
12.2.6 NET_DVR_RealPlay_V40
Start live view.
API Definition
LONG NET_DVR_RealPlay_V40(
LONG lUserID,
NET_DVR_PREVIEWINFO lpPreviewInfo,
REALDATACALLBACK fRealDataCallBack_V30,
void *pUser
);
Parameters
lUserID
240
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and returns other values as the handle parameters of
NET_DVR_StopRealPlay .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• The callback function in this API can be set as null, so the callback function will not call back the
stream data to user. But the user can still call NET_DVR_SetRealDataCallBack or
NET_DVR_SetStandardDataCallBack to register a callback function to get the stream data.
• When the platform or system is offline, the device will keep the streaming connection for 10
seconds.
• For developing in Linux system, the live view API will import valid window handle and you should
call NET_DVR_ChangeWndResolution to notify the PlayCtrl Library SDK to get the window size
before changing the window size during live view. For developing in Window system, the
window size is self-adaptive without calling any other API.
12.2.7 NET_DVR_RealPlaySpecial
Start live view (get stream from URLs) .
API Definition
LONG NET_DVR_RealPlaySpecial(
LONG lUserID,
LPNET_DVR_PREVIEWINFO_SPECIAL lpPreviewInfo,
REALDATACALLBACK fRealDataCallBack_V30,
void *pUser
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40
lpPreviewInfo
241
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and return other values as the handle parameters of NET_DVR_StopRealPlay .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• The callback function in this API can be set to null, so the callback fucntion will not call back the
stream data to user. But the user can still call NET_DVR_SetRealDataCallBack or
NET_DVR_SetStandardDataCallBack to register a callback function to get the stream data.
• When the client is offline, the device will keep the streaming connection for 10 seconds.
• For developing in Linux system, the live view API will import the valid window handle and you
should call NET_DVR_ChangeWndResolutio to notify the player SDK to get the window size
before changing the window size during live view. For developing in Windows system, the
window size is self-adaptive without calling any other API.
See Also
NET_DVR_RealPlay_V40
12.2.8 NET_DVR_SetRealDataCallBack
Set a callback function for getting the real-time stream data.
API Definition
BOOL NET_DVR_SetRealDataCallBack(
LONG lRealHandle,
fRealDataCallBack cbRealDataCallBack,
DWORD dwUser
);
Parameters
lRealHandle
[IN] Value returned by NET_DVR_RealPlay_V40 .
cbRealDataCallBack
[IN] Stream data callback function, see details in fRealDataCallBack .
242
Device Network SDK (General) Developer Guide
dwUser
[IN] User data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• This API provides the function of starting/stopping callback and processing data. When the
callback function fRealDataCallBack is set to non-null, it will start callback and processing data.
Otherwise, callback and data processing will be stopped.
• The first called back packet is a file header in 40-byte, which is for the following decoding, and
then the encoded stream will be called back. The maximum size of callback data is 256 bytes.
12.2.9 NET_DVR_SetStandardDataCallBack
Register a callback function for getting the standard real-time stream data.
API Definition
BOOL NET_DVR_SetStandardDataCallBack(
LONG lRealHandle,
fStdDataCallBack cbStdDataCallBack,
DWORD dwUser
);
Parameters
lRealHandle
[IN] Value returned by NET_DVR_RealPlay_V40 .
cbRealDataCallBack
[IN] Standard stream data callback function, see details in fStdDataCallBack .
dwUser
[IN] User data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
243
Device Network SDK (General) Developer Guide
Remarks
• This API provides the function of starting/stopping callback and processing data. When the
callback function fStdDataCallBack is set as non-null, it will start callback and processing data.
Otherwise, callback and data processing will be stopped.
• The first called back packet is a file header in 40-byte, which is for the following decoding, and
then the standard stream (with 12-byte RTP header) will be called back.
• The callback function of standard stream should be supported by device.
12.2.10 NET_DVR_StopRealPlay
Stop live view.
API Definition
BOOL NET_DVR_StopRealPlay(
LONG lRealHandle
);
Parameters
lRealHandle
[IN] Live view handle, which is returned by NET_DVR_RealPlay_V40 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned: 0, 3, 12, 17, 41, 67, and 65. See details in Device
Network SDK Errors .
12.3.1 NET_DVR_CloseFindPicture
Stop picture search, and release the resources.
API Definition
BOOL NET_DVR_CloseFindPicture(
LONG lFindHandle
);
244
Device Network SDK (General) Developer Guide
Parameters
lFindHandle
[IN] Handle for searching by tag, which is returned by NET_DVR_FindPicture .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.3.2 NET_DVR_CloseSmartSearchPicture
Stop picture dual-VCA, and release the resources.
API Definition
BOOL NET_DVR_CloseSmartSearchPicture(
LONG lFindHandle
);
Parameters
lFindHandle
[IN] Handle for picture dual-VCA, which is returned by NET_DVR_SmartSearchPicture .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.3.3 NET_DVR_FindClose_V30
Stop searching for files and release resources.
API Definition
BOOL NET_DVR_FindClose_V30(
LONG lFindHandle
);
Parameters
lFindHandle
[IN] Handle for searching files, which is returned by NET_DVR_FindFile_V50 or
NET_DVR_FindFileByEvent_V50 .
245
Device Network SDK (General) Developer Guide
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API are shown as the follows: 0, 3, 12, and 17.
See error details in Device Network SDK Errors .
12.3.4 NET_DVR_FindFile_V50
Search for video files by file type or by time.
API Definition
LONG NET_DVR_FindFile_V50(
LONG lUserID,
NET_DVR_FILECOND_V50 pFindCond
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
pFindCond
[IN] File information structure to be found, see details in the structure
NET_DVR_FILECOND_V50 .
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API: 0, 2, 3, 4, 7, 8, 9, 10, 12, 17, 19, 23, 41, 43,
44, 47, 72, and 73. For error details, refer to Device Network SDK Errors .
Remarks
This API specifies the video files to be found. After calling this API, you can call
NET_DVR_FindNextFile_V50 to get the file details.
See Also
NET_DVR_FindClose_V30
12.3.5 NET_DVR_FindFileByEvent_V50
Search for video files by event.
246
Device Network SDK (General) Developer Guide
API Definition
LONG NET_DVR_FindFileByEvent_V50(
LONG lUserID,
NET_DVR_SEARCH_EVENT_PARAM_V50 lpSearchEventParam
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
lpSearchEventParam
[IN] Structure of video file information to search, see details in the structure
NET_DVR_SEARCH_EVENT_PARAM_V50 .
Return Values
Return -1 for failure, and return other value as the handle for playback.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• After searching video files by event, you can call NET_DVR_FindNextEvent_V50 to get the file
information.
• The video files searched by event only support playback by time.
12.3.6 NET_DVR_FindNextEvent_V50
Get video files one by one after searching by event.
API Definition
LONG NET_DVR_FindNextEvent_V50(
LONG lFindHandle,
NET_DVR_SEARCH_EVENT_RET_V50 lpSearchEventRet
);
Parameters
lFindHandle
[IN] Handle for playback, which is returned by NET_DVR_FindFileByEvent_V50 .
lpSearchEventRet
[OUT] Search results, see details in the structure NET_DVR_SEARCH_EVENT_RET_V50 .
247
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and return other values as the current getting status, see details in the
following table.
Status Value Description
NET_DVR_FILE_SUCCESS 1000 Getting file information succeeded.
NET_DVR_FILE_NOFIND 1001 No file found.
NET_DVR_ISFINDING 1002 Searching. Please wait.
NET_DVR_NOMOREFILE 1003 No more file found. Search ended.
NET_DVR_FILE_EXCEPTION 1004 Search exception.
NET_DVR_FIND _TIMEOUT 1005 Search timed out.
12.3.7 NET_DVR_FindNextFile_V50
Get video files one by one after searching by time.
API Definition
LONG NET_DVR_FindNextFile_V50(
LONG lFindHandle,
NET_DVR_FINDDATA_V50 pFindData
);
Parameters
lFindHandle
[IN] Handle for playback, which is returned by NET_DVR_FindFile_V50 .
pFindData
[OUT] Search results, see details in the structure NET_DVR_FINDDATA_V50 .
Return Values
Return -1 for failure, and return other values as the current getting status, see details in the
following table.
248
Device Network SDK (General) Developer Guide
12.3.8 NET_DVR_FindNextLabel
Get the searched video tags one by one.
API Definition
LONG NET_DVR_FindNextLabel(
LONG lFindHandle,
NET_DVR_FINDLABEL_DATA *lpFindData
);
Parameters
lFindHandle
[IN] Handle for searching by tag, which is returned by NET_DVR_FindRecordLabel .
lpFindData
[OUT] Pointer of searched video tags, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the getting status, see details in the table below.
Status Value Description
NET_DVR_FILE_SUCCESS 1000 Getting tag information succeeded.
NET_DVR_FILE_NOFIND 1001 No tag found.
249
Device Network SDK (General) Developer Guide
12.3.9 NET_DVR_FindNextPicture_V50
Get the searched pictures one by one.
API Definition
LONG NET_DVR_FindNextPicture_V50(
LONG lFindHandle,
NET_DVR_FIND_PICTURE_V50 *lpFindData
);
Parameters
lFindHandle
[IN] Handle for searching for pictures, which is returned by NET_DVR_FindPicture .
lpFindData
[OUT] Pointer of searched pictures, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the getting status, see details in the table below.
Status Value Description
NET_DVR_FILE_SUCCESS 1000 Getting picture information succeeded.
NET_DVR_FILE_NOFIND 1001 No picture found.
NET_DVR_ISFINDING 1002 Searching. Please wait.
NET_DVR_NOMOREFILE 1003 No more picture found. Search ended.
NET_DVR_FILE_EXCEPTION 1004 Search exception.
NET_DVR_FIND _TIMEOUT 1005 Search timed out.
250
Device Network SDK (General) Developer Guide
12.3.10 NET_DVR_FindNextSmartPicture_V50
Get the results of picture dual-VCA one by one.
API Definition
LONG NET_DVR_FindNextSmartPicture(
LONG lFindHandle,
NET_DVR_SMART_SEARCH_PIC_RET_V50 *lpFindData
);
Parameters
lFindHandle
[IN] Handle for picture dual-VCA, which is returned by NET_DVR_SmartSearchPicture .
lpFindData
[OUT] Pointer of picture dual-VCA results, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the getting status, see details in the table below.
Status Value Description
NET_DVR_FILE_SUCCESS 1000 Getting results succeeded.
NET_DVR_FILE_NOFIND 1001 No results.
NET_DVR_ISFINDING 1002 Executing. Please wait.
NET_DVR_NOMOREFILE 1003 No more result. Dual-VCA ended.
NET_DVR_FILE_EXCEPTION 1004 Dual-VCA exception.
NET_DVR_FIND _TIMEOUT 1005 Search timed out.
251
Device Network SDK (General) Developer Guide
12.3.11 NET_DVR_FindPicture
Search for pictures by type and time.
API Definition
LONG NET_DVR_FindPicture(
LONG lUserID,
NET_DVR_FIND_PICTURE_PARAM *pFindParam
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
pFindParam
[IN] Pointer of picture search conditions, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the parameter of NET_DVR_FindNextPicture_V50
or NET_DVR_CloseFindPicture .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• This API is only used to search for the pictures in the local storage.
• After searching pictures, you can call NET_DVR_FindNextPicture_V50 to get the search results.
12.3.12 NET_DVR_FindRecordLabel
Search for video tags.
API Definition
LONG NET_DVR_FindRecordLabel(
LONG lUserID,
NET_DVR_FIND_LABEL *lpFindLabel
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
lpFindLabel
[IN] Pointer of video tag information to search, refer to the structure for details.
252
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and return other value as the parameter of NET_DVR_FindNextLabel or
NET_DVR_StopFindLabel .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
Up to 4000 video tags can be searched at one time.
12.3.13 NET_DVR_GetPicture_V50
Get the picture data.
API Definition
BOOL NET_DVR_GetPicture_V50(
LONG lUserID,
NET_DVR_PIC_PARAM lpPicParam
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
lpPicParam
[IN] Picture parameters, see details in the structure NET_DVR_PIC_PARAM .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.3.14 NET_DVR_PlayBackByName
Playback by file.
API Definition
LONG NET_DVR_PlayBackByName(
LONG lUserID,
char *sPlayBackFileName,
HWND hWnd
);
253
Device Network SDK (General) Developer Guide
Parameters
lUserID
Value returned by NET_DVR_Login_V40 .
sPlayBackFileName
[IN] Video file with specific name for playback, and up to 100 bytes are allowed by file name.
hWnd
[IN] Playback window handle. If it is set to null, the stream data is still received, but the data will
not be decoded and displayed.
Return Values
Return -1 for failure, and return other values as the parameters of NET_DVR_StopPlayBack .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are shown as the follows: 0, 1, 3, 5, 7, 8, 9, 10, 14, 17,
33, 41, 43, 44, 47, 64, 65, 66, 72, and 73. See error descriptions in Device Network SDK Errors .
Remarks
• This API only specifies the video files to play, so after calling this API, you must call
NET_DVR_PlayBackControl_V40 with the command of NET_DVR_PLAYSTART to start playback.
• After successfully calling this API, you can call NET_DVR_SetPlayDataCallBack_V40 to register
the callback function to get the stream data of video files and process the data by yourself as
needed.
12.3.15 NET_DVR_PlayBackByTime_V50
Start playback by time.
API Definition
LONG NET_DVR_PlayBackByTime_V50(
LONG lUserID,
NET_DVR_VOD_PARA_V50 *lpVodParam
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
lpVodParam
[IN] Pointer of playback by time parameters, refer to the structure for details.
254
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and return other value as the handle of NET_DVR_PlayBackControl_V40 or
NET_DVR_StopPlayBack .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
12.3.16 NET_DVR_PlayBackControl_V40
Control playback or video file downloading.
API Definition
BOOL NET_DVR_PlayBackControl_V40(
LONG lPlayHandle,
DWORD dwControlCode,
LPVOID lpInBuffer,
DWORD dwInLen,
LPVOID lpOutBuffer,
DWORD *lpOutLen
);
Parameters
lPlayHandle
[IN] Handle for playback or downloading, which is returned by
NET_DVR_PlayBackByTime_V50 , NET_DVR_PlayBackByName , NET_DVR_GetFileByName , or
NET_DVR_GetFileByTime_V40 .
dwControlCode
[IN] Control commands for playback or downloading, and different commands determine
different input and output parameters, see details in the following table:
255
Device Network SDK (General) Developer Guide
256
Device Network SDK (General) Developer Guide
257
Device Network SDK (General) Developer Guide
258
Device Network SDK (General) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are shown as the follows: 0, 1, 3, 5, 7, 8, 9, 10, 14, 17,
23, 33, 41, 43, 44, 64, 65, 66, 72, and 73, see details in Device Network SDK Errors .
Remarks
• For the integration based on OPEN ISAPI Protocol, only the following playback control
commands are supported: NET_DVR_PLAYSTART (start playing), NET_DVR_PLAYPAUSE (pausing
259
Device Network SDK (General) Developer Guide
12.3.17 NET_DVR_SearchNextInfo
Get the searched videos with VCA information one by one.
API Definition
LONG NET_DVR_SearchNextInfo(
LONG lSearchHandle,
NET_DVR_SMART_SEARCH_RET lpSmartSearchRet
);
Parameters
lSearchHandle
[IN] Search handle, which is returned by NET_DVR_SmartSearch_V40 .
lpSmartSearchRet
[OUT] Pointer for saving the search results, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the getting status, see details in the table below.
Status Value Description
NET_DVR_FILE_SUCCESS 1000 Getting file information succeeded.
NET_DVR_FILE_NOFIND 1001 No file found.
NET_DVR_ISFINDING 1002 Searching. Please wait.
NET_DVR_NOMOREFILE 1003 No more file found. Search ended.
NET_DVR_FILE_EXCEPTION 1004 Search exception.
260
Device Network SDK (General) Developer Guide
Remarks
• Before calling this API, you must call NET_DVR_SmartSearch_V40 to get the search handle.
• The searched videos can only be played back by time.
12.3.18 NET_DVR_SetPlayDataCallBack_V40
Sign up the callback function for getting the video data.
API Definition
BOOL NET_DVR_SetPlayDataCallBack_V40(
LONG lPlayHandle,
fPlayDataCallBack_V40 cbPlayDataCallBack,
void *pUser
);
Parameters
lPlayHandle
[IN] Handle for playback, which is returned by NET_DVR_PlayBackByName or
NET_DVR_PlayBackByTime_V50 .
fPlayDataCallBack
[IN] Video data callback function, see details in fPlayDataCallBack_V40 .
pUser
[IN] User data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are shown as the follows: 0 and 3. See error
descriptions in Device Network SDK Errors .
Remarks
• Operations with long time consumption cannot be performed in the callback function.
• This API provides the function of starting/stopping callback and processing data. When the
callback function is set as non-null, it will start callback and processing data. Otherwise, callback
and data processing will be stopped.
• The first called back packet is a file header in 40-byte, which is for the following decoding, and
then the encoded stream will be called back.
261
Device Network SDK (General) Developer Guide
12.3.19 NET_DVR_SmartSearch_V40
Start VCA search.
API Definition
LONG NET_DVR_SmartSearch_V40(
LONG lUserID,
NET_DVR_SMART_SEARCH_PARAM_V40 lpSmartSearchParam
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
lpSmartSearchParam
[IN] VCA search parameter structure,refer to for details.
Return Values
Return -1 for failure, and return other value as the parameter of NET_DVR_SearchNextInfo or
NET_DVR_StopSearch .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
12.3.20 NET_DVR_SmartSearchPicture
Start picture dual-VCA.
API Definition
LONG NET_DVR_FindPicture(
LONG lUserID,
NET_DVR_SMART_SEARCH_PIC_PARA *pFindParam
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
pFindParam
[IN] Pointer of picture dual-VCA conditions, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the parameter of
NET_DVR_FindNextSmartPicture_V50 or NET_DVR_CloseSmartSearchPicture .
262
Device Network SDK (General) Developer Guide
12.3.21 NET_DVR_StopFindLabel
Stop searching for video tags.
API Definition
BOOL NET_DVR_StopFindLabel(
LONG lFindHandle
);
Parameters
lFindHandle
[IN] Handle for searching by tag, which is returned by NET_DVR_FindRecordLabel .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.3.22 NET_DVR_StopPlayBack
Stop playback.
API Definition
BOOL NET_DVR_StopPlayBack(
LONG lPlayHandle
);
Parameters
lPlayHandle
[IN] Handle for playback, which is returned by NET_DVR_PlayBackByName or
NET_DVR_PlayBackByTime_V50 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
263
Device Network SDK (General) Developer Guide
The error codes may be returned by this API are shown as the follows: 0, 3, 12, 17, 41, 65, and 67.
See error descriptions in Device Network SDK Errors .
12.3.23 NET_DVR_StopSearch
Stop VCA search.
API Definition
BOOL NET_DVR_StopSearch(
LONG lSearchHandle
);
Parameters
lSearchHandle
[IN] Search handle, which is returned by NET_DVR_SmartSearch_V40 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API: 0, 3, 12, and 17. For details, refer to Device
Network SDK Errors .
12.3.24 NET_DVR_UpdateRecordIndex
Refresh the video index manually.
API Definition
BOOL NET_DVR_UpdateRecordIndex(
LONG lUserID,
DWORD dwChannel
);
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
dwChannel
Device channel No.
Returned Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
264
Device Network SDK (General) Developer Guide
12.4.1 NET_DVR_GetDownloadState
Get the file downloading progress and status.
API Definition
LONG NET_DVR_GetDownloadState(
LONG lDownloadHandle,
DWORD *pProgress
);
Parameters
lDownloadHandle
[IN] Handle for downloading files, which is returned by NET_DVR_StartDownload .
pProgress
[OUT] Returned progress value, which is ranging from 1 to 100.
Return Values
Returns -1 for calling failed, and returns other values as the downloading status codes: 1-
Downloaded, 2-Downloading, 3-Downloading Failed, 4-Network Disconnected, Unknown Status.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
12.4.2 NET_DVR_GetFileByName
Download video files by file name.
API Definition
LONG NET_DVR_GetFileByName(
LONG lUserID,
char *sDVRFileName,
char *sSavedFileName
);
Parameters
lUserID
Value returned by NET_DVR_Login_V40 .
sDVRFileName
265
Device Network SDK (General) Developer Guide
[IN] Video file with specific name for downloading, and up to 100 bytes are allowed by file
name.
sSavedFileName
[IN] Local saving path of downloaded files, it should be a absolute path (including file name).
Return Values
Returns -1 for failure, and returns other values as the parameters of NET_DVR_StopGetFile .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are shown as the follows: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
14, 17, 23, 33, 34, 41, 43, 44, 47, 72, 73, and 76. See error descriptions in Device Network SDK
Errors .
Remarks
• You can call the API NET_DVR_FindFile_V50 to search video files before downloading the files.
• This API only specifies the video files to download, so after calling this API, you must call
NET_DVR_PlayBackControl_V40 with
NET_DVR_PLAYSTART
(command No.: 1) to start downloading.
12.4.3 NET_DVR_GetFileByTime_V40
Download video files by time.
API Definition
LONG NET_DVR_GetFileByTime_V40(
LONG lUserID,
char *sSavedFileName,
LPNET_DVR_PLAYCOND pDownloadCond
);
Parameters
lUserID
Value returned by NET_DVR_Login_V40 .
sSavedFileName
[IN] Local saving path of downloaded files, it should be a absolute path (including file name).
pDownloadCond
[IN] Downloading condition, see details in the structure NET_DVR_PLAYCOND .
Return Values
Return -1 for failure, and return other values as the parameters of NET_DVR_StopGetFile .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
266
Device Network SDK (General) Developer Guide
The error codes may be returned by this API are shown as the follows: 0, 1, 3, 5, 7, 8, 9, 10, 14, 17,
34, 41, 43, 44, 47, 72, and 73. See error descriptions in Device Network SDK Errors .
Remarks
• This API only specifies the video files to download, so after calling this API, you must call
NET_DVR_PlayBackControl_V40 with the command of NET_DVR_PLAYSTART to start
downloading.
• If the size of saved video file is larger than the maximum limitation (by default, it is 1024 MB),
the video will be automatically separated into multiple video segments and save as multiple
files. The naming rule is to add a numeric identifier based on the original file name for each file
segment (i.e., *_1.mp4, *_2.mp4). You can also call NET_DVR_GetSDKLocalCfg and
NET_DVR_SetSDKLocalCfg (configuration type: NET_DVR_LOCAL_CFG_TYPE_GENERAL) to get
and set the separation mode and maximum limitation.
12.4.4 NET_DVR_GetUploadResult
Get the uploaded data information.
API Definition
BOOL NET_DVR_GetUploadResult(
LONG lUploadHandle,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize
);
Parameters
lUploadHandle
[IN] Handling for uploading files, which is returned by NET_DVR_UploadFile_V40 .
lpOutBuffer
[OUT] Buffer of uploaded data information, different uploading types (dwUploadType)
correspond to different information.
dwOutBufferSize
[OUT] Buffer size
Return Value
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.4.5 NET_DVR_GetUploadState
Get the file uploading progress and status.
267
Device Network SDK (General) Developer Guide
API Definition
LONG NET_DVR_GetUploadState(
LONG lUploadHandle,
DWORD *pProgress
);
Parameters
lUploadHandle
[IN] Handling for uploading files, which is returned by NET_DVR_UploadFile_V40 .
pProgress
[OUT] Returned progress value.
Return Values
Return -1 for failure, and return other values as the uploading status codes, see details in the
following table.
Table 12-2 Uploading Status Code
Return Value Description
1 Uploaded successfully.
2 Uploading.
3 Uploading failed.
4 Network disconnected. Unknown status.
6 HDD error.
7 No HDD for saving inquest files.
8 Insufficient capacity.
9 Insufficient device resource.
10 No more files can be uploaded.
11 Too large file size.
15 File type error.
19 Invalid file format.
20 Incorrect file content.
21 The uploaded audio sampling rate is not
supported.
22 Insufficient storage in the face library.
268
Device Network SDK (General) Developer Guide
12.4.6 NET_DVR_StartDownload
Start downloading files
API Definition
LONG NET_DVR_StartDownload(
LONG lUserID,
DWORD dwDownloadType,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
269
Device Network SDK (General) Developer Guide
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwDownloadType
[IN] Downloading commands which specify the file type to download, see details in the
enumeration NET_SDK_DOWNLOAD_TYPE .
lpInBuffer
[IN] Input parameters, which are different according to different downloading commands.
dwInBufferSize
[IN] Input buffer size.
sFileName
[IN] Path for saving downloaded files (absolute path, includes file name).
Return Values
Returns -1 for failure, and returns other values as the parameters of NET_DVR_StopDownload and
NET_DVR_GetDownloadState .
If returning failed, you can call NET_DVR_GetLastError to get the error code.
12.4.7 NET_DVR_StopDownload
Stop downloading files.
API Definition
BOOL NET_DVR_StopDownload(
LONG lHandle
);
Parameters
lHandle
[IN] Handle for downloading files, which is returned by NET_DVR_StartDownload .
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
270
Device Network SDK (General) Developer Guide
12.4.8 NET_DVR_StopGetFile
Stop downloading video files.
API Definition
BOOL NET_DVR_StopGetFile(
LONG lFileHandle
);
Parameters
lFileHandle
[IN] Handle for downloading, which is returned by NET_DVR_GetFileByName or
NET_DVR_GetFileByTime_V40 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are shown as the follows: 0, 3, 12, 17, and 41. See
error descriptions in Device Network SDK Errors .
12.4.9 NET_DVR_UploadClose
Stop uploading files.
API Definition
BOOL NET_DVR_UploadClose(
LONG lUploadHandle
);
Parameters
lUploadHandle
[IN] Handle for uploading files, which is returned by NET_DVR_UploadFile_V40 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.4.10 NET_DVR_UploadFile_V40
Upload file.
271
Device Network SDK (General) Developer Guide
API Definition
LONG NET_DVR_UploadFile_V40(
LONG lUserID,
DWORD dwUploadType,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
char *sFileName,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwUploadType
[IN] Uploading commands, which specify the file type to upload, see details in the enumeration
NET_SDK_UPLOAD_TYPE .
lpInBuffer
[IN] Input parameters, which are different according to different uploading commands.
dwInBufferSize
[IN] Input buffer size.
sFileName
[IN] Name of the file to be uploaded. For the complete file path (including the file name), the
maximum size is 128 bytes, and the maximum size of the file name is 32 bytes.
lpOutBuffer
[OUT] Output parameters, which are different according to different uploading commands.
dwOutBufferSize
[OUT] Output buffer size.
Return Values
Return -1 for failure, and return other values as the parameter of NET_DVR_UploadClose and
NET_DVR_GetUploadState .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
12.4.11 NET_DVR_UploadSend
Send data.
272
Device Network SDK (General) Developer Guide
API Definition
LONG NET_DVR_UploadSend(
LONG lUploadHandle,
LPNET_DVR_SEND_PARAM_IN pstruSendParamIN,
void *lpOutBuffer
);
Parameters
lUploadHandle
[IN] File uploading handle, returned by NET_DVR_UploadFile_V40 .
pstruSendParamIN
[IN] Uploaded data. See the structure NET_DVR_SEND_PARAM_IN for details.
lpOutBuffer
[OUT] Output parameter, reserved, set to NULL
Return Value
Return 0 for success, and return -1 for failure.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
12.5.1 NET_DVR_CloseAlarmChan_V30
Close alarm uploading channel.
API Definition
BOOL NET_DVR_CloseAlarmChan_V30(
LONG lAlarmHandle
);
Parameters
lAlarmHandle
Value returned by NET_DVR_SetupAlarmChan_V50 .
Return Values
Return TURE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes of this API are 0, 3, 6, 12, 17, 41, and 47. See details in the Device
Network SDK Errors .
273
Device Network SDK (General) Developer Guide
12.5.2 NET_DVR_GetAlarmSubscribe
Get the event/alarm subscription parameters.
API Definition
BOOL NET_DVR_GetAlarmSubscribe(
LONG lAlarmHandle,
char *pData,
DWORD dwDataLen
);
Parameters
lAlarmHandle
[IN] Value returned by NET_DVR_SetupAlarmChan_V50
pData
[OUT] Pointer to data buffer, see details in XML_SubscribeEvent
dwDataLen
[IN] Size of data buffer, unit: byte, it cannot be 0.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.5.3 NET_DVR_SetAlarmSubscribe
Set the event/alarm subscription parameters.
API Definition
BOOL NET_DVR_SetAlarmSubscribe(
LONG lAlarmHandle,
char *pData,
DWORD dwDataLen
);
Parameters
lAlarmHandle
[IN] Value returned by NET_DVR_SetupAlarmChan_V50
pData
[IN] Pointer to data buffer, see details in XML_SubscribeEvent
dwDataLen
274
Device Network SDK (General) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.5.4 NET_DVR_SetDVRMessageCallBack_V50
Set callback functions for getting the video data.
API Definition
BOOL NET_DVR_SetDVRMessageCallBack_V50(
int iIndex,
MSGCallBack fMessageCallBack,
void *pUser
);
Parameters
iIndex
[IN] Callback function index No., which ranges from 0 to 15.
fMessageCallBack
[IN] Callback function, see details in MSGCallBack .
pUser
[IN] User data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE returned, call NET_DVR_GetLastError to get the error code.
Remarks
• This API supports setting multiple callback functions for different channels (up to 16 channels are
supported) at same time, and the configured callback functions are distinguished by the index
No.
• All alarm/event information will be returned in each configured callback function, and you can
distinguish the devices via the pAlarmInfo in the callback function ( MSGCallBack ).
Example
Sample Code of Setting Multiple Callback Functions to Receive Different Alarms/Events in Arming
Mode
#include <stdio.h>
#include <iostream>
#include "Windows.h"
275
Device Network SDK (General) Developer Guide
#include "HCNetSDK.h"
using namespace std;
int iNum=0;
void CALLBACK MessageCallbackNo1(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD
dwBufLen, void* pUser)
{
int i=0;
char filename[100];
FILE *fSnapPic=NULL;
FILE *fSnapPicPlate=NULL;
//This sample code is for reference only. Actually, it is not recommended to process the data and save file in the
callback function directly.
//You'd better process the data in the message response funcion via message mode (PostMessage).
switch(lCommand)
{
case COMM_ALARM:
{
NET_DVR_ALARMINFO struAlarmInfo;
memcpy(&struAlarmInfo, pAlarmInfo, sizeof(NET_DVR_ALARMINFO));
switch ([Link])
{
case 3: //Motion detection alarm
for (i=0; i<16; i++) //#define MAX_CHANNUM 16 //The maximum number of channels
{
if ([Link][i] == 1)
{
printf("Channel Number with Motion Detection Alarm %d\n", i+1);
}
}
break;
default:
break;
}
break;
}
case COMM_UPLOAD_PLATE_RESULT:
{
NET_DVR_PLATE_RESULT struPlateResult={0};
memcpy(&struPlateResult, pAlarmInfo, sizeof(struPlateResult));
printf("License Plate Number: %s\n", [Link]);//License plate number
276
Device Network SDK (General) Developer Guide
case VCA_WHITE_PLATE:
printf("Vehicle Color: White\n");
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
default:
break;
}
//Scene picture
if ([Link] != 0 && [Link] == 1 )
{
sprintf(filename,"testpic_%[Link]",iNum);
fSnapPic=fopen(filename,"wb");
fwrite(struPlateResult.pBuffer1,[Link],1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate picture
if ([Link] != 0 && [Link] == 1)
{
sprintf(filename,"testPicPlate_%[Link]",iNum);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struPlateResult.pBuffer1,[Link],1,fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
break;
}
case COMM_ITS_PLATE_RESULT:
{
NET_ITS_PLATE_RESULT struITSPlateResult={0};
memcpy(&struITSPlateResult, pAlarmInfo, sizeof(struITSPlateResult));
for (i=0;i<[Link];i++)
{
printf("License Plate Number: %s\n", [Link]);//License plate number
switch([Link])//License plate color
{
case VCA_BLUE_PLATE:
printf("Vehicle Color: Blue\n");
break;
case VCA_YELLOW_PLATE:
printf("Vehicle Color: Yellow\n");
break;
case VCA_WHITE_PLATE:
printf("Vehicle Color: White\n");
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
277
Device Network SDK (General) Developer Guide
default:
break;
}
//Save scene picture
if (([Link][i].dwDataLen != 0)&&([Link][i].byType== 1)||
([Link][i].byType == 2))
{
sprintf(filename,"testITSpic%d_%[Link]",iNum,i);
fSnapPic=fopen(filename,"wb");
fwrite([Link][i].pBuffer, [Link][i].dwDataLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate thumbnails
if (([Link][i].dwDataLen != 0)&&([Link][i].byType == 0))
{
sprintf(filename,"testPicPlate%d_%[Link]",iNum,i);
fSnapPicPlate=fopen(filename,"wb");
fwrite([Link][i].pBuffer, [Link][i].dwDataLen, 1, \
fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
}
break;
}
default:
break;
}
}
//This sample code is for reference only. Actually, it is not recommended to process the data and save file in the
callback function directly.
//You'd better process the data in the message response funcion via message mode (PostMessage).
switch(lCommand)
{
case COMM_ALARM:
{
NET_DVR_ALARMINFO struAlarmInfo;
memcpy(&struAlarmInfo, pAlarmInfo, sizeof(NET_DVR_ALARMINFO));
switch ([Link])
{
278
Device Network SDK (General) Developer Guide
279
Device Network SDK (General) Developer Guide
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
break;
}
case COMM_ITS_PLATE_RESULT:
{
NET_ITS_PLATE_RESULT struITSPlateResult={0};
memcpy(&struITSPlateResult, pAlarmInfo, sizeof(struITSPlateResult));
for (i=0;i<[Link];i++)
{
printf("License Plate Number: %s\n", [Link]);//License plate number
switch([Link])//License plate color
{
case VCA_BLUE_PLATE:
printf("Vehicle Color: Blue\n");
break;
case VCA_YELLOW_PLATE:
printf("Vehicle Color: Yellow\n");
break;
case VCA_WHITE_PLATE:
printf("Vehicle Color: White\n");
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
default:
break;
}
//Save scene picture
if (([Link][i].dwDataLen != 0)&&([Link][i].byType== 1)||
([Link][i].byType == 2))
{
sprintf(filename,"testITSpic%d_%[Link]",iNum,i);
fSnapPic=fopen(filename,"wb");
fwrite([Link][i].pBuffer, [Link][i].dwDataLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate thumbnails
if (([Link][i].dwDataLen != 0)&&([Link][i].byType == 0))
{
sprintf(filename,"testPicPlate%d_%[Link]",iNum,i);
fSnapPicPlate=fopen(filename,"wb");
fwrite([Link][i].pBuffer, [Link][i].dwDataLen, 1, \
fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
280
Device Network SDK (General) Developer Guide
}
break;
}
default:
break;
}
}
void main() {
//---------------------------------------
//Initialize
NET_DVR_Init();
//Set the connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
//Log in to device
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
lUserID = NET_DVR_Login_V30("[Link]", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}
//Enable arming
NET_DVR_SETUPALARM_PARAM struSetupParam={0};
[Link]=sizeof(NET_DVR_SETUPALARM_PARAM);
281
Device Network SDK (General) Developer Guide
Sleep(20000);
//Disarm uploading channel
if (!NET_DVR_CloseAlarmChan_V30(lHandle))
{
printf("NET_DVR_CloseAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//User logout
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
See Also
NET_DVR_SetupAlarmChan_V50
12.5.5 NET_DVR_SetupAlarmChan_V50
Set up persistent connection to receive alarm/event information (supports alarm/event
subscription).
API Definition
LONG NET_DVR_SetupAlarmChan_V50(
LONG lUserID,
NET_DVR_SETUPALARM_PARAM_V50 lpSetupParam,
char *pData,
DWORD dwDataLen,
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lpSetupParam
[IN] Arming parameters, refer to the structure NET_DVR_SETUPALARM_PARAM_V50 for
details.
pData
[IN] Alarm/event subscription conditions.
dwDataLen
[IN] Length of alarm/event subscription conditions.
282
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and return other values as the handles of NET_DVR_CloseAlarmChan_V30 .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API supports alarm/event subscription, you can specify the types of alarm or event to be
uploaded by device by setting pData and dwDataLen.
12.5.6 NET_DVR_StartListen_V30
Register callback function for receiving alarm/event information and start listening (supports
multiple threads).
API Definition
LONG NET_DVR_StartListen_V30(
char *sLocalIP,
WORD wLocalPort,
MSGCallBack DataCallback,
void *pUserData
);
Parameters
sLocalIP
[IN] IP address of local PC. It can be set to null.
wLocalPort
[IN] Listening port No. of local PC. It is configured by user, and it should be the same with that of
device.
DataCallback
[IN] Alarm/event information callback function, see details in MSGCallBack .
pUserData
[IN] User data.
Return Values
Return -1 for failure, and return other values for the handle parameters of
NET_DVR_StopListen_V30 .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes of this API are 0, 3, 6, 12, 17, 41, 44, 47, 72, and 75. See details in the
Device Network SDK Errors .
283
Device Network SDK (General) Developer Guide
Remarks
• To receive the alarm/event information sent by device, you should set the management host
server address or listening host server address of device to the IP address of PC (which is same
with the sLocalIP), or set the management host server port or listening host server port to the
listening port No. of PC (which is same with the wLocalPort).
• The callback function in this API is prior to other callback functions, that is, if the callback
function is configured in this API, other callback functions will not receive the alarm information.
All the device alarm information is returned in same callback function, and you can distinguish
the devices via the alarm device information (pAlarmInfo).
12.5.7 NET_DVR_StopListen_V30
Stop listening (supports multiple threads).
API Definition
BOOL NET_DVR_StopListen_V30(
LONG lListenHandle
);
Parameters
lListenHandle
Listening handle, which is returned by NET_DVR_StartListen_V30 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes of this API are 0, 3, 12, and 17. See details in the Device Network SDK
Errors .
12.6.1 NET_DVR_AddDVR_V30
Add the audio channel of a device to the broadcast group for receiving the audio from PC.
API Definition
LONG NET_DVR_AddDVR_V30(
LONG lUserID,
284
Device Network SDK (General) Developer Guide
DWORD dwVoiceChan
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwVoiceChan
[IN] Audio channel No., which starts from 1.
Return Values
Return -1 for failure, and return other values as the parameters of NET_DVR_DelDVR_V30 .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by the API are as the follows: 0, 3, 7, 8, 9, 10, 12, 17, 41, and 47.
See the error descriptions in Device Network SDK Errors .
Remarks
• Before you can realize the audio broadcast function, you should call
NET_DVR_ClientAudioStart_V30 to collect the audio data from the local PC, and then call this
API to add the device one by one and send the collected data to device.
• Up to 512 devices can be added.
12.6.2 NET_DVR_ClientAudioStart_V30
Enable collecting audio from PC for the audio broadcast.
API Definition
BOOL NET_DVR_ClientAudioStart_V30(
fVoiceDataCallBack cbVoiceDataCallBack,
void *pUser
);
Parameters
cbVoiceDataCallBack
[IN] Audio data callback function, see details in fVoiceDataCallBack .
pUser
[IN] Pointer of user data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
285
Device Network SDK (General) Developer Guide
The error codes may be returned by the API are as the follows: 0 and 12. See the error descriptions
in Device Network SDK Errors .
Remarks
• This API is not supported when programming in Linux operating system.
• When programming in Windows 7 operating system, if there is no external audio device, this API
will return FALSE.
• Before you can realize the audio broadcast function, you should call this API to collect the audio
data from the local PC, and then call NET_DVR_AddDVR_V30 to add the device one by one and
send the collected data to device.
See Also
NET_DVR_ClientAudioStop
12.6.3 NET_DVR_ClientAudioStop
Stop collecting audio from PC for audio broadcast.
API Definition
BOOL NET_DVR_ClientAudioStop(
);
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by the API are as the follows: 0 and 12. See the error descriptions
in Device Network SDK Errors .
See Also
NET_DVR_ClientAudioStart_V30
12.6.4 NET_DelDVR_V30
Remove the audio channel of the device from the broadcast group.
API Definition
BOOL NET_DVR_DelDVR_V30(
LONG lVoiceHandle
);
Parameters
lVoiceHandle
286
Device Network SDK (General) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.6.5 NET_DVR_GetCurrentAudioCompress_V50
Get the effective audio encoding parameters of two-way audio.
API Definition
BOOL NET_DVR_GetCurrentAudioCompress_V50(
LONG lUserID,
LPNET_DVR_AUDIO_CHANNEL *lpAudioChannel,
LPNET_DVR_COMPRESSION_AUDIO lpCompressAudio
);
Parameters
lUserID
[IN] User information returned by NET_DVR_Login_V40 .
lpAudioChannel
[IN] Audio channel information, refer to the structure NET_DVR_AUDIO_CHANNEL for details.
lpCompressAudio
[OUT] Audio encoding parameters, refer to the structure NET_DVR_COMPRESSION_AUDIO for
details.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.6.6 NET_DVR_EncodeMP3Frame
Encode MP3 audio data.
API Definition
BOOL NET_DVR_EncodeMP3Frame(
unsigned int iType,
unsigned char *pInBuffer,
unsigned char *pOutBuffer
);
287
Device Network SDK (General) Developer Guide
Parameters
iType
[IN] Audio encoding type.
pInBuffer
[IN] Input buffer.
pOutBuffer
[OUT] Output buffer.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_DecodeMP3Frame
12.6.7 NET_DVR_DecodeMP3Frame
Decode MP3 audio data.
API Definition
BOOL NET_DVR_DecodeMP3Frame(
void *pDecHandle,
unsigned char *pInBuffer,
unsigned char *pOutBuffer
);
Parameters
pDecHandle
Audio decoding handle returned by NET_DVR_EncodeMP3Frame .
pInBuffer
[IN] Input buffer.
pOutBuffer
[OUT] Output buffer.
Return Value
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
288
Device Network SDK (General) Developer Guide
12.6.8 NET_DVR_InitG711Encoder
Initialize resources for G.711 audio encoding. This API is available for Linux operating system only.
API Definition
void* NET_DVR_InitG711Encoder(
NET_DVR_AUDIOENC_INFO *enc_info
);
Parameters
enc_info
[OUT] Encoding information, see details in the structure NET_DVR_AUDIOENC_INFO .
Return Values
Return -1 for failure, return other values as the handles for audio encoding, or return NULL for
success.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_ReleaseG711Encoder
NET_DVR_EncodeG711Frame
12.6.9 NET_DVR_EncodeG711Frame
Encode audio in G.711 mode.
289
Device Network SDK (General) Developer Guide
pOutBuffer
[OUT] Output buffer, the size of output data after encoding is 160 bytes.
API Definition (For Linux Operating System and 64-Bit Windows Operating System)
BOOL NET_DVR_EncodeG711Frame(
void *handle,
NET_DVR_AUDIOENC_PROCESS_PARAM *p_enc_proc_param
);
Parameters (For Linux Operating System and 64-Bit Windows Operating System)
handle
[IN] Handle for audio encoding, which is returned by NET_DVR_InitG711Encoder .
p_enc_proc_param
[IN][OUT] Encoding parameters, see details in the structure
NET_DVR_AUDIOENC_PROCESS_PARAM .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• This API is mainly for two-way audio function. You can encode the original audio data by this API
and send the encoded audio data to the platform or system. And then the
NET_DVR_DecodeG711Frame can be called to decode the data after receiving the encoded
audio data.
• Initialization is required before call this API, and after calling this API, you should also release the
resource.
See Also
NET_DVR_ReleaseG711Encoder
Example
G.711 Encoding and Decoding (For Linux Operating System and 64-Bit Windows Operating System)
void Test_VoiceTalk_DecEncG711()
{
printf("Test_VoiceTalk_DecEncG711\n");
const unsigned int AUDIO_CODEC_BUF_SIZE = 8192;
const unsigned int AUDIO_DEC_DATA_SIZE = 2048;
/**************Encode Audio in G.711 Mode**************/
LPVOID hEncoderInstance=0;
//Encoding information structure
NET_DVR_AUDIOENC_INFO enc_info;
//Initialize resources for encoding
hEncoderInstance = NET_DVR_InitG711Encoder(&enc_info);
290
Device Network SDK (General) Developer Guide
FILE *out_file;
FILE *in_file;
unsigned char *indata_buf;
unsigned char *outdata_buf;
int frame = 0;
char *inputfilename = "tst_8k_ch_male.wav";
//Input audio file with WAV format
char *outputfilename = "temp.g711";
//Output the encoded audio file
if ((in_file = fopen(inputfilename,"rb"))==0)
{
printf("error opening output file %s\n",inputfilename);
exit(99);
}
if ((out_file = fopen(outputfilename, "wb"))==0)
{
printf("error opening output file %s\n",outputfilename);
exit(99);
}
NET_DVR_AUDIOENC_PROCESS_PARAM enc_param;
memset(&enc_param, 0 ,sizeof(NET_DVR_AUDIOENC_PROCESS_PARAM));
enc_param.g711_type = 0;
enc_param.in_buf = indata_buf;
enc_param.out_buf = outdata_buf;
while(1)
{
int num_read;
//Read the file according to the frame size in encoding information structure. The input buffer size should be
larger than this size.
num_read = fread(indata_buf, sizeof(char), enc_info.in_frame_size ,in_file);
if(num_read==0) {
fclose(in_file);
fclose(out_file);
break;
}
291
Device Network SDK (General) Developer Guide
dec_proc_param.g711_type = 0;
dec_proc_param.in_buf = indata_buf;
dec_proc_param.out_buf = outdata_buf;
dec_proc_param.in_data_size = 0;
while(1)
{
if(dwRead==0) {
292
Device Network SDK (General) Developer Guide
fclose(in_file);
fclose(out_file);
break;
}
DWORD outsize = 0;
BOOL err = NET_DVR_DecodeG711Frame(hDecInstance, &dec_proc_param);
if (err == 1)
{
//The dec_proc_param.out_frame_size is decoded output data
fwrite(dec_proc_param.out_buf, sizeof(char), dec_proc_param.out_frame_size, out_file);
frame++;
printf("g711 Dec frame(%d)\n",frame);
printf("dec_proc_param.proc_data_size(%d)\n",dec_proc_param.proc_data_size);
printf("dec_proc_param.out_frame_size(%d)\n",dec_proc_param.out_frame_size);
//The dec_proc_param.proc_data_size is the size of data in the input buffer.
dec_proc_param.in_data_size = dec_proc_param.in_data_size - dec_proc_param.proc_data_size;
//Move the data in the inout buffer to overwrite the processed data.
memmove(dec_proc_param.in_buf, dec_proc_param.in_buf + dec_proc_param.proc_data_size,
dec_proc_param.in_data_size);
ret = NET_DVR_ReleaseG711Decoder(hDecInstance);
if (ret== FALSE)
{
printf("NET_DVR_ReleaseG711Decoder fail,err %d!\n", NET_DVR_GetLastError());
}
}
12.6.10 NET_DVR_ReleaseG711Encoder
Release resources of G.711 audio encoding. This API is only available for Linux operating system.
API Definition
BOOL NET_DVR_ReleaseG711Encoder(
void *pEncodeHandle
);
293
Device Network SDK (General) Developer Guide
Parameters
pEncodeHandle
[IN] Handle for audio encoding, which is returned by NET_DVR_InitG711Encoder .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_EncodeG711Frame
12.6.11 NET_DVR_InitG711Decoder
Initialize resources to decode audio data for G.711 encoding. This API is available for Linux
operating system only.
API Definition
void* NET_DVR_InitG711Decoder(
);
Return Values
Return -1 for failure, and return other values as the handles for audio decoding, or return NULL for
success.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_ReleaseG711Decoder
NET_DVR_DecodeG711Frame
12.6.12 NET_DVR_DecodeG711Frame
Decode the audio to G711 format.
294
Device Network SDK (General) Developer Guide
API Definition (For Linux Operating System and 64-Bit Windows Operating System)
BOOL NET_DVR_DecodeG711Frame(
void *handle,
NET_DVR_AUDIODEC_PROCESS_PARAM *p_dec_proc_param
);
Parameters (For Linux Operating System and 64-Bit Windows Operating System)
handle
[IN] Handle for audio decoding, which is returned by NET_DVR_InitG711Decoder .
p_dec_proc_param
[IN][OUT] Decoding parameters, see details in the structure
NET_DVR_AUDIODEC_PROCESS_PARAM .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are as the follows: 0, 3, and 17. See the error
descriptions in Device Network SDK Errors .
Remarks
• This API is mainly for two-way audio and audio forwarding function. You can encode the original
audio data by NET_DVR_EncodeG711Frame and send the encoded audio data to the Client.
While the Client can call this API to decode the data after receiving the encoded audio data.
• Initialization is required before call this API, and after calling this API, you should also release the
resource.
See Also
NET_DVR_ReleaseG711Decoder
Example
G.711 Encoding and Decoding (For Linux Operating System and 64-Bit Windows Operating System)
295
Device Network SDK (General) Developer Guide
void Test_VoiceTalk_DecEncG711()
{
printf("Test_VoiceTalk_DecEncG711\n");
const unsigned int AUDIO_CODEC_BUF_SIZE = 8192;
const unsigned int AUDIO_DEC_DATA_SIZE = 2048;
/**************Encode Audio in G.711 Mode**************/
LPVOID hEncoderInstance=0;
//Encoding information structure
NET_DVR_AUDIOENC_INFO enc_info;
//Initialize resources for encoding
hEncoderInstance = NET_DVR_InitG711Encoder(&enc_info);
printf("enc_info.in_frame_size = %d", enc_info.in_frame_size);
FILE *out_file;
FILE *in_file;
unsigned char *indata_buf;
unsigned char *outdata_buf;
int frame = 0;
char *inputfilename = "tst_8k_ch_male.wav";
//Input audio file with WAV format
char *outputfilename = "temp.g711";
//Output the encoded audio file
if ((in_file = fopen(inputfilename,"rb"))==0)
{
printf("error opening output file %s\n",inputfilename);
exit(99);
}
if ((out_file = fopen(outputfilename, "wb"))==0)
{
printf("error opening output file %s\n",outputfilename);
exit(99);
}
NET_DVR_AUDIOENC_PROCESS_PARAM enc_param;
memset(&enc_param, 0 ,sizeof(NET_DVR_AUDIOENC_PROCESS_PARAM));
enc_param.g711_type = 0;
enc_param.in_buf = indata_buf;
enc_param.out_buf = outdata_buf;
while(1)
{
int num_read;
//Read the file according to the frame size in encoding information structure. The input buffer size should be
296
Device Network SDK (General) Developer Guide
297
Device Network SDK (General) Developer Guide
dec_proc_param.g711_type = 0;
dec_proc_param.in_buf = indata_buf;
dec_proc_param.out_buf = outdata_buf;
dec_proc_param.in_data_size = 0;
while(1)
{
if(dwRead==0) {
fclose(in_file);
fclose(out_file);
break;
}
DWORD outsize = 0;
BOOL err = NET_DVR_DecodeG711Frame(hDecInstance, &dec_proc_param);
if (err == 1)
{
//The dec_proc_param.out_frame_size is decoded output data
fwrite(dec_proc_param.out_buf, sizeof(char), dec_proc_param.out_frame_size, out_file);
frame++;
printf("g711 Dec frame(%d)\n",frame);
printf("dec_proc_param.proc_data_size(%d)\n",dec_proc_param.proc_data_size);
printf("dec_proc_param.out_frame_size(%d)\n",dec_proc_param.out_frame_size);
//The dec_proc_param.proc_data_size is the size of data in the input buffer.
dec_proc_param.in_data_size = dec_proc_param.in_data_size - dec_proc_param.proc_data_size;
//Move the data in the inout buffer to overwrite the processed data.
memmove(dec_proc_param.in_buf, dec_proc_param.in_buf + dec_proc_param.proc_data_size,
dec_proc_param.in_data_size);
ret = NET_DVR_ReleaseG711Decoder(hDecInstance);
if (ret== FALSE)
{
printf("NET_DVR_ReleaseG711Decoder fail,err %d!\n", NET_DVR_GetLastError());
}
}
298
Device Network SDK (General) Developer Guide
12.6.13 NET_DVR_ReleaseG711Decoder
Release resources of audio decoding (for G.711 encoding). This API is only available for Linux
operating system.
API Definition
BOOL NET_DVR_ReleaseG711Decoder(
LPVOID *pDecHandle
);
Parameters
pDecHandle
[IN] Handle for audio decoding, which is returned by NET_DVR_InitG711Decoder .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_InitG711Decoder
NET_DVR_DecodeG711Frame
12.6.14 NET_DVR_InitG722Encoder
Initialize resources for G.722 audio encoding.
API Definition (For Linux Operating System and 64-Bit Windows Operating System)
void *NET_DVR_InitG722Encoder(
NET_DVR_AUDIOENC_INFO *enc_info
);
Parameters (For Linux Operating System and 64-Bit Windows Operating System)
enc_info
[IN] Encoding information, see details in the structure NET_DVR_AUDIOENC_INFO .
299
Device Network SDK (General) Developer Guide
Return Values
Return -1 for failure, and return other values as the handles for audio encoding, or return NULL for
success.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_ReleaseG722Encoder
NET_DVR_EncodeG722Frame
12.6.15 NET_DVR_EncodeG722Frame
Encode audio in G.722 mode.
API Definition (For Linux Operating System and 64-Bit Windows Operating System)
BOOL NET_DVR_EncodeG722Frame(
void *handle,
NET_DVR_AUDIOENC_PROCESS_PARAM *param
);
Parameters (For Linux Operating System and 64-Bit Windows Operating System)
handle
[IN] Handle for audio encoding, which is returned by NET_DVR_InitG722Encoder .
param
300
Device Network SDK (General) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• This API is mainly for two-way audio and audio forwarding function. You can encode the original
audio data by this API and send the encoded audio data to the platform/system. And then the
API NET_DVR_DecodeG722Frame can be called to decode the data after receiving the encoded
audio data.
• Initialization is required before call this API, and after calling this API, you should also release the
resource.
See Also
NET_DVR_ReleaseG722Encoder
Example
G.722 Encoding and Decoding (For Linux Operating System and 64-Bit Windows Operating System)
void Test_VoiceTalk_DecEncG722()
{
printf("Test_VoiceTalk_DecEncG722\n");
hEncInstance = NET_DVR_InitG722Encoder(&info_param);
if ((long)hEncInstance == -1)
{
printf("NET_DVR_InitG722Encoder fail,err %d!\n", NET_DVR_GetLastError());
return;
}
NET_DVR_AUDIOENC_PROCESS_PARAM enc_proc_param;
FILE *infile;
FILE *outfile;
char * infile_path = "tst_16k_ch_fmale.wav";
char * outfile_path = "temp.g722";
const unsigned int AUDIO_CODEC_BUF_SIZE = 8192;
const unsigned int HIK_CODEC722_IN_SAMPLES = 320;
const unsigned int HIK_CODEC722_OUT_BITS = 160;
const unsigned int AUDIO_DEC_DATA_SIZE = 2048;
short encode_input[2048]; //20ms
unsigned char encoded_data[2048];
301
Device Network SDK (General) Developer Guide
infile=fopen(infile_path,"rb");
outfile=fopen(outfile_path,"wb");
if(infile == NULL)
{
printf("infile open error.");
return ;
}
if(outfile == NULL)
{
printf("outfile open error.");
return ;
}
while (1)
{
int encode_samples = fread((short *)enc_proc_param.in_buf,1,info_param.in_frame_size,infile);
if (encode_samples < 640)
{
fclose(infile);
fclose(outfile);
break;
}
blockcount++;
BOOL ret = NET_DVR_EncodeG722Frame(hEncInstance, &enc_proc_param);
if (ret != 1)
{
exit(-1);
}
fwrite(
enc_proc_param.out_buf,
sizeof(unsigned char),
enc_proc_param.out_frame_size,
outfile
);
printf("g722 Enc frame %d \n", blockcount);
}
NET_DVR_ReleaseG722Encoder(hEncInstance);
302
Device Network SDK (General) Developer Guide
NET_DVR_AUDIODEC_PROCESS_PARAM dec_proc_param;
char * infile_path2 = "temp.g722";
char * outfile_path2 = "g722_ret.pcm";
unsigned char decode_input[2048];
short decode_data[2048];
infile=fopen(infile_path2,"rb");
outfile=fopen(outfile_path2,"wb");
if(infile == NULL)
{
printf("infile open error.");
return ;
}
if(outfile == NULL)
{
printf("outfile open error.");
return ;
}
dec_proc_param.in_buf = (unsigned char *)decode_input;
dec_proc_param.out_buf = (unsigned char *)decode_data;
dec_proc_param.reserved[0] = 0;
dec_proc_param.in_data_size = 0;
int decode_samples = fread(dec_proc_param.in_buf, sizeof(char), AUDIO_DEC_DATA_SIZE,infile);
dec_proc_param.in_data_size += decode_samples;
blockcount= 0;
while (1)
{
if (decode_samples == 0){
fclose(infile);
fclose(outfile);
break;
}
BOOL ret = NET_DVR_DecodeG722Frame(hDecInstance ,&dec_proc_param);
if (ret == 1)
{
//dec_proc_param->out_buf=output;
fwrite(
dec_proc_param.out_buf,
sizeof(unsigned char),
dec_proc_param.out_frame_size,
outfile
);
blockcount++;
printf("g722 Dec frame %d \n", blockcount);
303
Device Network SDK (General) Developer Guide
AUDIO_DEC_DATA_SIZE - dec_proc_param.in_data_size,infile);
dec_proc_param.in_data_size += decode_samples;
}
}
else
{
}
}
NET_DVR_ReleaseG722Decoder(hDecInstance);
}
12.6.16 NET_DVR_ReleaseG722Encoder
Release resources of G.722 audio encoding. This API is available for both the Windows and Linux
operating system.
API Definition
void NET_DVR_ReleaseG722Encoder(
void pEncodeHandle
);
Parameters
pEncodeHandle
[IN] Handle for audio encoding, which is returned by NET_DVR_InitG722Encoder .
Return Values
No return values. But if calling failed, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_EncodeG722Frame
12.6.17 NET_DVR_InitG722Decoder
Initialize resources to decode audio data for G.722 encoding.
304
Device Network SDK (General) Developer Guide
API Definition (For Linux Operating System and 64-Bit Windows Operating System)
void* NET_DVR_InitG722Decoder(
);
Return Values
Return -1 for failure, and return other values as the handles for audio decoding, or return NULL for
success.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_ReleaseG722Decoder
NET_DVR_DecodeG722Frame
12.6.18 NET_DVR_DecodeG722Frame
Decode the audio to G722 format.
305
Device Network SDK (General) Developer Guide
API Definition (For Linux Operating System and 64-Bit Windows Operating System)
BOOL NET_DVR_DecodeG722Frame(
void *handle,
NET_DVR_AUDIODEC_PROCESS_PARAM *param
);
Parameters (For Linux Operating System and 64-Bit Windows Operating System)
handle
[IN] Handle for audio decoding, which is returned by NET_DVR_InitG722Decoder .
param
[IN][OUT] Decoding parameters, see details in the structure
NET_DVR_AUDIODEC_PROCESS_PARAM .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The error codes may be returned by this API are as the follows: 0, 3, and 17. See the error
descriptions in Device Network SDK Errors .
Remarks
• This API is mainly for two-way audio and audio forwarding function. You can encode the original
audio data by NET_DVR_EncodeG722Frame and send the encoded audio data to the Client.
While the Client can call this API to decode the data after receiving the encoded audio data.
• Initialization is required before call this API, and after calling this API, you should also release the
resource.
See Also
NET_DVR_ReleaseG722Decoder
Example
G.722 Encoding and Decoding (For Linux Operating System and 64-Bit Windows Operating System)
void Test_VoiceTalk_DecEncG722()
{
printf("Test_VoiceTalk_DecEncG722\n");
hEncInstance = NET_DVR_InitG722Encoder(&info_param);
if ((long)hEncInstance == -1)
{
printf("NET_DVR_InitG722Encoder fail,err %d!\n", NET_DVR_GetLastError());
306
Device Network SDK (General) Developer Guide
return;
}
NET_DVR_AUDIOENC_PROCESS_PARAM enc_proc_param;
FILE *infile;
FILE *outfile;
char * infile_path = "tst_16k_ch_fmale.wav";
char * outfile_path = "temp.g722";
const unsigned int AUDIO_CODEC_BUF_SIZE = 8192;
const unsigned int HIK_CODEC722_IN_SAMPLES = 320;
const unsigned int HIK_CODEC722_OUT_BITS = 160;
const unsigned int AUDIO_DEC_DATA_SIZE = 2048;
short encode_input[2048]; //20ms
unsigned char encoded_data[2048];
infile=fopen(infile_path,"rb");
outfile=fopen(outfile_path,"wb");
if(infile == NULL)
{
printf("infile open error.");
return ;
}
if(outfile == NULL)
{
printf("outfile open error.");
return ;
}
while (1)
{
int encode_samples = fread((short *)enc_proc_param.in_buf,1,info_param.in_frame_size,infile);
if (encode_samples < 640)
{
fclose(infile);
fclose(outfile);
break;
}
blockcount++;
BOOL ret = NET_DVR_EncodeG722Frame(hEncInstance, &enc_proc_param);
if (ret != 1)
{
exit(-1);
}
fwrite(
enc_proc_param.out_buf,
sizeof(unsigned char),
enc_proc_param.out_frame_size,
outfile
307
Device Network SDK (General) Developer Guide
);
printf("g722 Enc frame %d \n", blockcount);
}
NET_DVR_ReleaseG722Encoder(hEncInstance);
NET_DVR_AUDIODEC_PROCESS_PARAM dec_proc_param;
char * infile_path2 = "temp.g722";
char * outfile_path2 = "g722_ret.pcm";
unsigned char decode_input[2048];
short decode_data[2048];
infile=fopen(infile_path2,"rb");
outfile=fopen(outfile_path2,"wb");
if(infile == NULL)
{
printf("infile open error.");
return ;
}
if(outfile == NULL)
{
printf("outfile open error.");
return ;
}
dec_proc_param.in_buf = (unsigned char *)decode_input;
dec_proc_param.out_buf = (unsigned char *)decode_data;
dec_proc_param.reserved[0] = 0;
dec_proc_param.in_data_size = 0;
int decode_samples = fread(dec_proc_param.in_buf, sizeof(char), AUDIO_DEC_DATA_SIZE,infile);
dec_proc_param.in_data_size += decode_samples;
blockcount= 0;
while (1)
{
if (decode_samples == 0){
fclose(infile);
fclose(outfile);
break;
}
BOOL ret = NET_DVR_DecodeG722Frame(hDecInstance ,&dec_proc_param);
if (ret == 1)
{
//dec_proc_param->out_buf=output;
fwrite(
308
Device Network SDK (General) Developer Guide
dec_proc_param.out_buf,
sizeof(unsigned char),
dec_proc_param.out_frame_size,
outfile
);
blockcount++;
printf("g722 Dec frame %d \n", blockcount);
}
}
else
{
}
}
NET_DVR_ReleaseG722Decoder(hDecInstance);
}
12.6.19 NET_DVR_ReleaseG722Decoder
Release resources of audio decoding (for G.722 encoding). This API is available for both the
Windows and Linux operating system.
API Definition
void NET_DVR_ReleaseG722Decoder(
void *pDecHandle
);
Parameters
pDecHandle
[IN] Handle for decoding audio, which is returned by NET_DVR_InitG722Decoder .
Return Values
No return values. But if calling failed, you can call NET_DVR_GetLastError to get the error code.
309
Device Network SDK (General) Developer Guide
See Also
NET_DVR_DecodeG722Frame
12.6.20 NET_DVR_InitG726Encoder
Initialize resources for G.726 audio encoding. This API is available for both the Windows and Linux
operating system.
API Definition
void* NET_DVR_InitG726Encoder(
void *pEncMoudle
);
Parameters
pEncModule
[OUT] Handle of encoding module, which can be set as input parameter when encoding.
Return Values
Return -1 for failure, and returns other values as the handles for audio encoding.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_ReleaseG726Encoder
NET_DVR_EncodeG726Frame
12.6.21 NET_DVR_EncodeG726Frame
Encode audio in G.726 mode. This API is available for both the Windows and Linux operating
system.
API Definition
BOOL NET_DVR_EncodeG726Frame(
void *pEncHandle,
unsigned char *pInBuffer,
unsigned char *pOutBuffer,
BYTE byReset
);
Parameters
pEncHandle
[IN] Handle for encoding audio, which is returned by NET_DVR_InitG726Encoder .
310
Device Network SDK (General) Developer Guide
pInBuffer
[IN] Input buffer pointer, which is used to save the audio data with PCM format that sampled
according to the sampling standard (sampling frequency is 16000, sample in 16-bit, single
channel). The predefined input data size is 640 bytes.
pOutBuffer
[OUT] Output buffer pointer, the encoded output data size is 80 bytes.
byReset
[IN] Whether to reset. The first frame should be reset.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• This API is mainly for two-way audio and audio forwarding function. You can encode the original
audio data by this API and send the encoded audio data to the platform/system. And then the
API NET_DVR_DecodeG726Frame can be called to decode the data after receiving the encoded
audio data.
• Initialization is required before call this API, and after calling this API, you should also release the
resource.
See Also
NET_DVR_ReleaseG726Encoder
Example
G.726 Encoding and Decoding (For Linux Operating System)
void Test_VoiceTalk_DecEncG726()
{
const unsigned int AUDIO_CODEC_BUF_SIZE = 1024;
/**************Encode Audio in G.726 Mode**************/
LPVOID hEncoder=0, hEncoderInstance=0;
hEncoderInstance = NET_DVR_InitG726Encoder(&hEncoder);
if(hEncoder==0 || hEncoderInstance==0)
{
printf("NET_DVR_InitG726Encoder fail,err %d!\n", NET_DVR_GetLastError());
}
FILE *Fi;
FILE *Fo;
unsigned char *enc_inbuf;
unsigned char *enc_outbuf;
char *inputfilename = "tst_8k_ch_male.pcm";
char *outputfilename = "temp.g726";
if ((enc_inbuf = (unsigned char *) calloc(AUDIO_CODEC_BUF_SIZE, sizeof(char))) == NULL)
{
311
Device Network SDK (General) Developer Guide
if (ret == 1)
{
fwrite(enc_outbuf, sizeof(char), G726_ENC_OUT_SIZE, Fo);
}
else
{
printf("encode error!\n");
break;
}
NET_DVR_ReleaseG726Encoder(hEncoderInstance);
312
Device Network SDK (General) Developer Guide
hDecInstance = NET_DVR_InitG726Decoder(&hDec);
if (hDec == 0 || hDecInstance == 0)
{
printf("NET_DVR_InitG726Decoder fail,err %d!\n", NET_DVR_GetLastError());
}
if (ret == 1)
{
fwrite(enc_outbuf, sizeof(char), G726_EBCIN_DECOUT_SIZE, Fo);
}
else
{
printf("decode err:0x%x", ret);
break;
}
printf("g726 Dnc frame: %d\n", cur_blk);
}
NET_DVR_ReleaseG726Decoder(hDecInstance);
}
313
Device Network SDK (General) Developer Guide
12.6.22 NET_DVR_ReleaseG726Encoder
Release resources of G.726 audio encoding. This API is available for both the Windows and Linux
operating system.
API Definition
void NET_DVR_ReleaseG726Encoder(
void *pEncHandle
);
Parameters
pEncHandle
[IN] Handle for audio encoding, which is returned by NET_DVR_InitG726Encoder .
Return Values
No return values. But if calling failed, you can call NET_DVR_GetLastError to get the error code.
12.6.23 NET_DVR_InitG726Decoder
Initialize resources to decode audio data for G.726 encoding. This API is available for both the
Windows and Linux operating system.
API Definition
void* NET_DVR_InitG726Decoder(
void **pDecMoudle
);
Parameters
pDecMoudle
[OUT] Handle of decoding module, which can be set as the input parameter when decoding.
Return Values
Return -1 for failure, and returns other values as the handles for decoding.
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_ReleaseG726Decoder
NET_DVR_DecodeG726Frame
314
Device Network SDK (General) Developer Guide
12.6.24 NET_DVR_DecodeG726Frame
Decode the audio to G726 format. This API is available for both the Windows and Linux operating
system.
API Definition
BOOL NET_DVR_DecodeG726Frame(
void *pDecHandle,
unsigned char *pInBuffer,
unsigned char *pOutBuffer,
BYTE byReset
);
Parameters
pDecHandle
[IN] Handle for decoding audio, which is returned by NET_DVR_InitG726Decoder .
pInBuffer
[IN] Input buffer pointer. The encoded data size is 80 bytes.
pOutBuffer
[OUT] Output buffer pointer, get the PCM audio data according to the sampling standard
(sampling frequency is 8000, sampling in 16-bit and single channel). The predefined output data
size is 640 bytes.
byReset
[IN] Whether to reset. The first frame should be reset.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• This API is mainly for two-way audio and audio forwarding function. You can encode the original
audio data by NET_DVR_EncodeG726Frame and send the encoded audio data to the platform or
system. And this API can be called to decode the data after receiving the encoded audio data.
• Initialization is required before call this API, and after calling this API, you should also release the
resource.
See Also
NET_DVR_ReleaseG726Decoder
Example
G.726 Encoding and Decoding (For Linux Operating System)
315
Device Network SDK (General) Developer Guide
void Test_VoiceTalk_DecEncG726()
{
const unsigned int AUDIO_CODEC_BUF_SIZE = 1024;
/**************Encode Audio in G.726 Mode**************/
LPVOID hEncoder=0, hEncoderInstance=0;
hEncoderInstance = NET_DVR_InitG726Encoder(&hEncoder);
if(hEncoder==0 || hEncoderInstance==0)
{
printf("NET_DVR_InitG726Encoder fail,err %d!\n", NET_DVR_GetLastError());
}
FILE *Fi;
FILE *Fo;
unsigned char *enc_inbuf;
unsigned char *enc_outbuf;
char *inputfilename = "tst_8k_ch_male.pcm";
char *outputfilename = "temp.g726";
if ((enc_inbuf = (unsigned char *) calloc(AUDIO_CODEC_BUF_SIZE, sizeof(char))) == NULL)
{
printf("Error in memory allocation!\n");
exit(0);
}
if ((enc_outbuf = (unsigned char *) calloc(AUDIO_CODEC_BUF_SIZE, sizeof(char))) == NULL)
{
printf("Error in memory allocation!\n");
exit(0);
}
if ((Fi = fopen(inputfilename, "rb")) == NULL)
{
printf("file open error!\n");
exit(0);
}
if ((Fo = fopen(outputfilename, "wb")) == NULL)
{
printf("file open error!\n");
exit(0);
}
printf("G726_EBCIN_DECOUT_SIZE = %d\n", G726_EBCIN_DECOUT_SIZE); // 640
printf("G726_ENC_OUT_SIZE = %d\n", G726_ENC_OUT_SIZE); // 80
printf("G726_EBCIN_DECOUT_SIZE = %d\n", G726_DEC_IN_SIZE); // 80
int reset = 1;
for (int cur_blk = 0; ; cur_blk++)
{
reset = (reset == 1 && cur_blk == 0) ? 1 : 0;
if (fread(enc_inbuf, sizeof(char), G726_EBCIN_DECOUT_SIZE, Fi) < G726_EBCIN_DECOUT_SIZE)
{
fclose(Fi);
fclose(Fo);
break;
}
316
Device Network SDK (General) Developer Guide
if (ret == 1)
{
fwrite(enc_outbuf, sizeof(char), G726_ENC_OUT_SIZE, Fo);
}
else
{
printf("encode error!\n");
break;
}
NET_DVR_ReleaseG726Encoder(hEncoderInstance);
if (ret == 1)
317
Device Network SDK (General) Developer Guide
{
fwrite(enc_outbuf, sizeof(char), G726_EBCIN_DECOUT_SIZE, Fo);
}
else
{
printf("decode err:0x%x", ret);
break;
}
printf("g726 Dnc frame: %d\n", cur_blk);
}
NET_DVR_ReleaseG726Decoder(hDecInstance);
}
12.6.25 NET_DVR_ReleaseG726Decoder
Release resources of audio decoding (for G.726 encoding). This API is available for both the
Windows and Linux operating system.
API Definition
void NET_DVR_ReleaseG726Decoder(
void *pDecHandle
);
Parameters
pDecHandle
[IN] Handle for decoding audio, which is returned by NET_DVR_InitG726Decoder .
Return Values
No return values. But if calling failed, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_DecodeG726Frame
12.6.26 NET_DVR_SetVoiceDataCallBack
Set a callback function for collecting the audio data.
API Definition
BOOL NET_DVR_SetVoiceDataCallBack(
LONG lVoiceComHandle,
BOOL bNeedCBNoEncData,
fVoiceDataCallBack cbVoiceDataCallBack,
318
Device Network SDK (General) Developer Guide
void *pUser
);
Parameters
lVoiceComHandle
[IN] Value returned by NET_DVR_StartVoiceCom_V30 or NET_DVR_StartVoiceCom_MR_V30 .
bNeedCBNoEncData
[IN] Audio data types need to be called back: 0-Encoded audio data. 1-Original PCM data. For
audio forwarding, only the encoded audio data can be called back. So the parameter is invalid
for the audio forwarding.
cbVoiceDataCallBack
[IN] Audio data callback function, see details in fVoiceDataCallBack .
pUser
[IN] Pointer of user data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_StartVoiceCom_MR_V30
NET_DVR_StartVoiceCom_V30
12.6.27 NET_DVR_StartVoiceCom_MR_V30
Enable audio forwarding function and get the encoded audio data.
API Definition
LONG NET_DVR_StartVoiceCom_MR_V30(
LONG lUserID,
DWORD dwVoiceChan,
fVoiceDataCallBack cbVoiceDataCallBack,
void *pUser
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwVoiceChan
319
Device Network SDK (General) Developer Guide
[IN] Audio channel No. For the two-way audio channels of device, it starts from [Link] the
network channels of device, it starts from the value of (Initial two-way audio channel No.
(byStartDTalkChan)+network channel No.-1).
For example, when the Client starts two-way audio with the network camera linked by network
channel No.02 via the NVR, the dwVoiceChan equals to byStartDTalkChan+1.
cbVoiceDataCallBack
[IN] Audio data callback function, see details in fVoiceDataCallBack . The obtained audio data is
encoded, so you should call the audio decoding API to decode the audio data to PCM data.
pUser
[IN] Pointer of user data.
Return Values
Returns -1 for failure, and returns other values as the handle parameters of
NET_DVR_VoiceComSendData or NET_DVR_StopVoiceCom .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• Before enabling the audio forwarding function, you can call NET_DVR_SetDVRConfig with the
command of NET_DVR_SET_COMPRESSCFG_AUD (command No.: 1058) to set the audio
encoding type for device in the structure NET_DVR_COMPRESSION_AUDIO .
• When the audio is encoded to G722 format, the sampling frequency is 16000, and audio is
sampled in 16-bit and single channel. The definition of audio format is:
const int SAMPLES_PER_SECOND = 16000;
const int CHANNEL = 1;
const int BITS_PER_SAMPLE = 16;
WAVEFORMATEX m_wavFormatEx;
m_wavFormatEx.cbSize = sizeof(m_wavFormatEx);
m_wavFormatEx.nBlockAlign = CHANNEL * BITS_PER_SAMPLE / 8;
m_wavFormatEx.nChannels = CHANNEL;
m_wavFormatEx.nSamplesPerSec = SAMPLES_PER_SECOND;
m_wavFormatEx.wBitsPerSample = BITS_PER_SAMPLE;
m_wavFormatEx.nAvgBytesPerSec = SAMPLES_PER_SECOND*m_wavFormatEx.nBlockAlign
• When the audio is encoded to G711 format, the sampling frequency is 8000, and audio is
sampled in 16-bit and single channel. The definition of audio format is:
const int SAMPLES_PER_SECOND_G711_MU = 8000;
const int CHANNEL = 1;
const int BITS_PER_SAMPLE = 16;
WAVEFORMATEX m_wavFormatEx;
m_wavFormatEx.cbSize = sizeof(m_wavFormatEx);
m_wavFormatEx.nBlockAlign = CHANNEL * BITS_PER_SAMPLE / 8;
m_wavFormatEx.nChannels = CHANNEL;
m_wavFormatEx.nSamplesPerSec = SAMPLES_PER_SECOND_G711_MU;
m_wavFormatEx.wBitsPerSample = BITS_PER_SAMPLE;
m_wavFormatEx.nAvgBytesPerSec = SAMPLES_PER_SECOND_G711_MU* m_wavFormatEx.nBlockAlign;
320
Device Network SDK (General) Developer Guide
See Also
NET_DVR_StopVoiceCom
12.6.28 NET_DVR_StartVoiceCom_V30
Enable two-way audio function.
API Definition
LONG NET_DVR_StartVoiceCom_V30(
LONG lUserID,
DWORD dwVoiceChan,
BOOL bNeedCBNoEncData,
fVoiceDataCallBack cbVoiceDataCallBack,
void *pUser
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwVoiceChan
[IN] Audio channel No. For the two-way audio channels of device, it starts from [Link] the
network channels of device, it starts from the value of (Initial two-way audio channel No.
(byStartDTalkChan) + network channel No.-1).
For example, when the Client starts two-way audio with the network camera linked by network
channel 02 via the NVR, the dwVoiceChan = byStartDTalkChan + 1.
bNeedCBNoEncData
[IN] Audio data types need to be called back: 0-Encoded audio data. 1-Original PCM data.
cbVoiceDataCallBack
[IN] Audio data callback function, see details in fVoiceDataCallBack .
pUser
[IN] Pointer of user data.
Return Values
Return -1 for failure, and return other values as the handle parameters of
NET_DVR_StopVoiceCom .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
321
Device Network SDK (General) Developer Guide
Remarks
• This API is supported for programming in 64-bit Windows/Linux operating system and 32-bit
Windows operating system.
• Before enabling the audio forwarding function, you can call NET_DVR_SetDVRConfig with the
command of NET_DVR_SET_COMPRESSCFG_AUD (command No.: 1058) to set the audio
encoding type for device in the structure NET_DVR_COMPRESSION_AUDIO .
• When the audio is encoded to G722 format, the sampling frequency is 16000, and audio is
sampled in 16-bit and single channel. The definition of audio format is:
const int SAMPLES_PER_SECOND = 16000;
const int CHANNEL = 1;
const int BITS_PER_SAMPLE = 16;
WAVEFORMATEX m_wavFormatEx;
m_wavFormatEx.cbSize = sizeof(m_wavFormatEx);
m_wavFormatEx.nBlockAlign = CHANNEL * BITS_PER_SAMPLE / 8;
m_wavFormatEx.nChannels = CHANNEL;
m_wavFormatEx.nSamplesPerSec = SAMPLES_PER_SECOND;
m_wavFormatEx.wBitsPerSample = BITS_PER_SAMPLE;
m_wavFormatEx.nAvgBytesPerSec = SAMPLES_PER_SECOND*m_wavFormatEx.nBlockAlign
• When the audio is encoded to G711 or G726 format, the sampling frequency is 8000, and audio
is sampled in 16-bit and single channel. The definition of audio format is:
const int SAMPLES_PER_SECOND_G711_MU = 8000;
const int CHANNEL = 1;
const int BITS_PER_SAMPLE = 16;
WAVEFORMATEX m_wavFormatEx;
m_wavFormatEx.cbSize = sizeof(m_wavFormatEx);
m_wavFormatEx.nBlockAlign = CHANNEL * BITS_PER_SAMPLE / 8;
m_wavFormatEx.nChannels = CHANNEL;
m_wavFormatEx.nSamplesPerSec = SAMPLES_PER_SECOND_G711_MU;
m_wavFormatEx.wBitsPerSample = BITS_PER_SAMPLE;
m_wavFormatEx.nAvgBytesPerSec = SAMPLES_PER_SECOND_G711_MU* m_wavFormatEx.nBlockAlign;
• This API cannot be called by multiple threads at same time.
See Also
NET_DVR_StopVoiceCom
12.6.29 NET_DVR_StopVoiceCom
Stop two-way audio or forwarding audio.
API Definition
BOOL NET_DVR_StopVoiceCom(
LONG lVoiceComHandle
);
322
Device Network SDK (General) Developer Guide
Parameters
lVoiceComHandle
Value returned by NET_DVR_StartVoiceCom_V30 or NET_DVR_StartVoiceCom_MR_V30 .
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_StartVoiceCom_MR_V30
NET_DVR_StartVoiceCom_V30
12.6.30 NET_DVR_VoiceComSendData
Forward the audio data.
API Definition
BOOL NET_DVR_VoiceComSendData(
LONG lVoiceComHandle,
char *pSendBuf,
DWORD dwBufSize
);
Parameters
lVoiceComHandle
[IN] Value returned by NET_DVR_StartVoiceCom_MR_V30 .
pSendBuf
[IN] Buffer for saving audio data.
dwBufSize
[IN] Audio data size. When the audio is encoded to G722 format, the size of data sent for each
time is 80 bytes. When the audio is encoded to G726 format, the size of data sent for each time
is 160 bytes.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API is used to send the encoded audio data to device, so for different audio encoding types,
the API used to decode the audio data are also different.
323
Device Network SDK (General) Developer Guide
12.7.1 NET_DVR_CloseUpgradeHandle
Close the remote upgrading handle and release resources.
API Definition
BOOL NET_DVR_CloseUpgradeHandle(
LONG lUpgradeHandle
);
Parameters
lUpgradeHandle
[in] The value returned by NET_DVR_Upgrade_V50 .
Return Values
Returns TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The possible error codes returned by the API are listed as below:
Error Type Value Error Message
NET_DVR_NOERROR 0 No error.
NET_DVR_NOINIT 3 SDK is not initialized.
NET_DVR_ORDER_ERROR 12 API calling order error.
NET_DVR_PARAMETER_ERROR 17 Parameter error. Input or output parameter in the SDK API
is NULL.
12.7.2 NET_DVR_FindDVRLog_V50
Search for log files.
API Definition
LONG NET_DVR_FindDVRLog(
LONG lUserID,
NET_DVR_FIND_LOG_COND *pFindCond
);
324
Device Network SDK (General) Developer Guide
Parameters
lUserID
[IN] User ID, which is returned by NET_DVR_Login_V40 .
pFindCond
[IN] Pointer of log search conditions, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the parameter of NET_DVR_FindNextLog_V50 or
NET_DVR_FindLogClose_V30 .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
12.7.3 NET_DVR_FindLogClose_V30
Stop searching for logs and release log search resources.
API Definition
BOOL NET_DVR_FindLogClose_V30(
LONG lLogHandle
);
Parameters
lLogHandle
[in] Handle of log search, which is returned by NET_DVR_FindDVRLog_V50 .
Return Values
Returns TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
12.7.4 NET_DVR_FindNextLog_V50
Get the searched log files one by one.
API Definition
LONG NET_DVR_FindNextLog_50(
LONG lLogHandle,
NET_DVR_LOG_V50 *lpLogData
);
325
Device Network SDK (General) Developer Guide
Parameters
lLogHandle
[IN] Handle for log search, which is returned by NET_DVR_FindDVRLog_V50 .
lpLogData
[OUT] Pointer for saving the log files, refer to the structure for details.
Return Values
Return -1 for failure, and return other value as the getting status, see details in the table below.
Status Value Description
NET_DVR_FILE_SUCCESS 1000 Getting log file succeeded.
NET_DVR_FILE_NOFIND 1001 No log found.
NET_DVR_ISFINDING 1002 Searching. Please wait.
NET_DVR_NOMOREFILE 1003 No more log found. Search ended.
NET_DVR_FILE_EXCEPTION 1004 Search exception.
12.7.5 NET_DVR_GetUpgradeProgress
Get the progress of remote upgrade.
API Definition
int NET_DVR_GetUpgradeProgress(
LONG lUpgradeHandle
);
Parameters
lUpgradeHandle
[IN] Upgrade handle, which is returned by NET_DVR_Upgrade_V50 .
Return Values
Return -1 for failure, and return other values as the upgrade progress percentage (from 0 to 100).
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
326
Device Network SDK (General) Developer Guide
12.7.6 NET_DVR_GetUpgradeState
Get the status of remote upgrade.
API Definition
int NET_DVR_GetUpgradeState(
LONG lUpgradeHandle
);
Parameters
lUpgradeHandle
[IN] Upgrade handle, which is returned by NET_DVR_Upgrade_V50 .
Return Values
Return -1 for failure, and return other values as the upgrade status, see details in the table below:
12.7.7 NET_DVR_SetLogToFile
Write log files.
327
Device Network SDK (General) Developer Guide
API Definition
BOOL NET_DVR_SetLogToFile(
DWORD nLogLevel,
char *strLogDir,
BOOL bAutoDel
);
Parameters
nLogLevel
[IN] Log level: 0-disable log (default), 1-output error log only, 2-output error and debug log, 3-
output all logs (i.e., error, debug, and information).
strLogDir
[IN] Saving path of log file. The default path of Windows operating system is C:\\SdkLog\\, and
the default path of Linux operating system is /home/sdklog/.
bAutoDel
[IN] Whether to enable automatically deleting log files when the maximum number reached:
"TRUE" (default)-yes and delete the exceeded number of log files; "FALSE"-no and compress the
log files when the number reaches 50.
Return Values
Return TRUE for success and FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
• The log file path must be absolute path, and should be finished with "\\" (Windows) or "/"
(Linux). It is suggested to manually create file firstly. If no file path is allocated, it will use the
default path. If the path is changed, it will use the new path when writing the next file.
• You can call the API for multiple times to create new log files and up to 10 files can be created at
the same time.
12.7.8 NET_DVR_Upgrade_V50
Remotely upgrade device firmware.
API Definition
LONG NET_DVR_Upgrade_V50(
DWORD lUserID,
NET_DVR_UPGRADE_PARAM lpUpgradeParam
);
328
Device Network SDK (General) Developer Guide
Parameters
lUserID
[in] Value returned by NET_DVR_Login_V40 .
lpUpgradeParam
[in] Upgrade parameters, see details in the structure NET_DVR_UPGRADE_PARAM .
Return Value
Return -1 for failure, and return other values as the parameters of
NET_DVR_GetUpgradeProgress .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
12.8.1 CHAR_ENCODE_CONVERT
Encoding type conversion callback function.
Parameters
pInput
[IN] Input string, whose memory and size is applied and provided by the third-party platform
dwInputLen
[IN] Input buffer size.
dwInEncodeType
[IN] Encoding types of input string: 0-no encoding information, 1-GB2312 (Simplified Chinese),
2-GBK, 3-BIG5 (Traditional Chinese), 4-Shift_JIS (Japanese), 5-EUC-KR (Korean), 6-UTF-8, 7-
ISO8859-1, 8-ISO8859-2, 9-ISO8859-3, ..., 21-ISO8859-15 (Western Europe).
pOutput
[OUT] Output string, whose memory is applied by the third-party platform.
329
Device Network SDK (General) Developer Guide
dwOutputLen
[OUT] Output buffer size.
dwOutEncodeType
[OUT] Encoding tupes of output string: 0-no encoding information, 1-GB2312 (Simplified
Chinese), 2-GBK, 3-BIG5 (Traditional Chinese), 4-Shift_JIS (Japanese), 5-EUC-KR (Korean), 6-
UTF-8, 7-ISO8859-1, 8-ISO8859-2, 9-ISO8859-3, ..., 21-ISO8859-15 (Western Europe).
Return Values
Return -1 for failure, and return 0 for success.
12.8.2 DEV_WORK_STATE_CB
Callback function of device status information
Parameters
pUserdata
[OUT] Custom data.
lUserID
[OUT] User ID, which is returned by NET_DVR_Login_V40 .
lpWorkState
[OUT] Device status information. See details in the structure NET_DVR_WORKSTATE_V40 . If
getting device status failed, this parameter's value is null. You can directly call
NET_DVR_GetLastError to get the error code.
12.8.3 fExceptionCallBack
Exception message callback function.
330
Device Network SDK (General) Developer Guide
void *pUser
);
331
Device Network SDK (General) Developer Guide
12.8.4 fLoginResultCallBack
332
Device Network SDK (General) Developer Guide
12.8.5 fPlayDataCallBack_V40
Video data callback function.
Parameters
lPlayHandle
[IN] Current playback handle.
dwDataType
[OUT] Data type, see details in the following table:
333
Device Network SDK (General) Developer Guide
See Also
NET_DVR_SetPlayDataCallBack_V40
12.8.6 fRealDataCallBack
Stream data callback function.
Parameters
lRealHandle
[OUT] Current live view handle.
dwDataType
[OUT] Data type, see details in the following table.
334
Device Network SDK (General) Developer Guide
dwBufSize
[OUT] Buffer size.
dwUser
[OUT] User data.
Remarks
This callback function is not applicable for the operations or API that may take a long time.
12.8.7 fRemoteConfigCallback
Function for calling back the persistent connection status and data to be transmitted.
Parameters
dwType
[OUT] Connection statuses, see the macro definitions below:
enum _NET_SDK_CALLBACK_TYPE_{
NET_SDK_CALLBACK_TYPE_STATUS = 0,
NET_SDK_CALLBACK_TYPE_PROGRESS = 1,
NET_SDK_CALLBACK_TYPE_DATA = 2
}NET_SDK_CALLBACK_TYPE
NET_SDK_CALLBACK_TYPE_STATUS
Connection status.
NET_SDK_CALLBACK_TYPE_PROGRESS
Connection progress.
NET_SDK_CALLBACK_TYPE_DATA
Related data to be called back.
lpBuffer
[OUT] Pointer of buffer for saving progress, status, and related data to be called back, which
relates to dwType, see details in the following table.
335
Device Network SDK (General) Developer Guide
dwType lpBuffer
NET_SDK_CALLBACK_TYPE_STATUS If dwBufLen is 4, lpBuffer is 4-byte connection
status; if dwBufLen is 8, lpBuffer consists of 4-
byte connection status and 4-byte error code.
The connection status is enumerated in
NET_SDK_CALLBACK_STATUS_NORMAL
NET_SDK_CALLBACK_TYPE_PROGRESS Connection progress value.
NET_SDK_CALLBACK_TYPE_DATA Data structures to be returned, which are
different according to different commands
(dwCommand) in
NET_DVR_StartRemoteConfig .
dwBufLen
[OUT] Buffer size.
pUserData
[OUT] User data.
12.8.8 fStdDataCallBack
Standard stream data callback function.
Parameters
lRealHandle
[OUT] Current live view handle.
dwDataType
[OUT] Data type, see details in the following table.
336
Device Network SDK (General) Developer Guide
Remarks
This callback function is not applicable for the operations or API that may take a long time.
12.8.9 fVoiceDataCallBack
Audi data callback function.
337
Device Network SDK (General) Developer Guide
Parameters
pRecvDataBuffer
[OUT] Pointer of buffer to save the audio data (PCM) collected from the local PC.
dwBufSize
[OUT] Audio data size.
pUser
[OUT] Pointer of user data.
12.8.10 MSGCallBack
Alarm/event information callback function.
Parameters
lCommand
[OUT] Uploaded message type. You can distinguish the alarm/event information via the type.
pAlarmer
[OUT] Alarm device information, including serial No., IP address, login handle, and so on, see
details in NET_DVR_ALARMER .
pAlarmInfo
[OUT] Alarm/event information, the details are returned in different structures according to
lCommand.
dwBufLen
[OUT] Size of alarm/event information buffer.
pUser
[OUT] User data.
12.8.11 REALDATACALLBACK
Stream data callback function.
338
Device Network SDK (General) Developer Guide
Parameters
lRealHandle
[OUT] Current live view handle, which is returned by NET_DVR_RealPlay_V40 .
dwDataType
[OUT] Data type, see details in the following table.
Remarks
This callback function is not applicable for the operations or API that may take a long time.
339
Device Network SDK (General) Developer Guide
A.1 DATE_TIME
A.2 NET_ALARM_CVR_SUBINFO_UNION
340
Device Network SDK (General) Developer Guide
A.3 NET_ALARM_RECORD_EXCEPTION
A.4 NET_ALARM_RECORDFILE_LOSS
341
Device Network SDK (General) Developer Guide
A.5 NET_ALARM_RESOURCE_USAGE
A.6 NET_ALARM_STREAM_EXCEPTION
342
Device Network SDK (General) Developer Guide
A.7 NET_DVR_ADDRESS
IP address and port parameter structure.
struct{
NET_DVR_IPADDR struIP;
WORD wPort;
BYTE byRes[2];
}NET_DVR_ADDRESS,*LPNET_DVR_ADDRESS;
Members
struIP
IP address, see details in the structure .
wPort
Port number.
byRes
Reserved.
A.8 NET_DVR_ADVANCE_COND_UNION
Condition union for searching by group.
Structure Definition
union{
BYTE byLen[36];
NET_VCA_HUMAN_FEATURE struHumanFeature;
NET_DVR_OBJECT_FEATURE struObjectFeature;
}NET_DVR_ADVANCE_COND_UNION,*LPNET_DVR_ADVANCE_COND_UNION;
Members
byLen
Union size, which is 36bytes.
struHumanFeature
343
Device Network SDK (General) Developer Guide
Human body features, refer to the structure NET_VCA_HUMAN_FEATURE in the HCNetSDK user
manual of face applications for details.
struObjectFeature
Object features, refer to the structure for details.
See Also
A.9 NET_DVR_AES_KEY_INFO
Encryption key information structure of AES algorithm
Structure Definition
struct{
BYTE sAESKey[16];
BYTE byRes[64];
}NET_DVR_AES_KEY_INFO, *LPNET_DVR_AES_KEY_INFO;
Members
sAESKey
Stream encryption key.
byRes
Reserved.
A.10 NET_DVR_AGC_PARAM
AGC parameter structure
Structure Definition
struct{
BYTE bySceneType;
BYTE byLightLevel;
BYTE byGainLevel;
BYTE byRes[5];
}NET_DVR_AGC_PARAM,*LPNET_DVR_AGC_PARAM;
Members
bySceneType
AGC mode: 1-normal scene, 2-highlight scene, 3-manual
344
Device Network SDK (General) Developer Guide
byLightLevel
Brightness level, value range: [1,100]; it is valid when bySceneType is set to "3".
byGainLevel
Gain level, value range: [1,100]; it is valid when bySceneType is set to "3".
byRes
Reserved, set to 0.
A.11 NET_DVR_ALRAM_FIXED_HEADER
345
Device Network SDK (General) Developer Guide
346
Device Network SDK (General) Developer Guide
347
Device Network SDK (General) Developer Guide
Remarks
dwAlarmType==0, 23 corresponds to the structure struIOAlarm; dwAlarmType==
2/3/6/9/10/11/13/15/16/28 corresponds to the structure struAlarmChannel; dwAlarmType==
1/4/5 corresponds to the structure struAlarmHardDisk; dwAlarmType== 17 corresponds to the
structure struRecordingHost; dwAlarmType== 31 corresponds to the structure struVoltageInstable;
for other value, the union is not available.
A.12 NET_DVR_ALARM_HOT_SPARE
Hot spare (N+1 mode) exception alarm information structure
Structure Definition
struct{
DWORD dwSize;
DWORD dwExceptionCase;
NET_DVR_IPADDR struDeviceIP;
BYTE byRes[256];
}NET_DVR_ALARM_HOT_SPARE, *LPNET_DVR_ALARM_HOT_SPARE;
Members
dwSize
Structure size
dwExceptionCase
Alarm reason: 0- network exception
struDeviceIP
IP address of exception device, refer to the structure NET_DVR_IPADDR_UNION
byRes
348
Device Network SDK (General) Developer Guide
Reserved, set it to 0.
A.13 NET_DVR_ALARM_ISAPI_INFO
Remarks
When enabling the listening mode, you should call the network configuration API based on text
protocol to set the IP address for the listening service.
349
Device Network SDK (General) Developer Guide
A.14 NET_DVR_ALARM_ISAPI_PICDATA
A.15 NET_DVR_ALARM_SEARCH_COND
Structure about alarm search condition parameters.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_TIME_SEARCH_COND strStartTime;
NET_DVR_TIME_SEARCH_COND strStopTime;
DWORD dwAlarmComm;
char sAlarmUID[64];
WORD wEventType;
WORD wSubEventType;
BYTE bySupport;
BYTE byNoBoundary;
BYTE byRes[122];
}NET_DVR_ALARM_SEARCH_COND, *LPNET_DVR_ALARM_SEARCH_COND;
Members
dwSize
Structure size.
strStartTime
Start time, see details in the structure NET_DVR_TIME_SEARCH_COND . If this member is NULL,
it indicates that the start time is not a filtering condition.
strStopTime
350
Device Network SDK (General) Developer Guide
End time, see details in the structure NET_DVR_TIME_SEARCH_COND . If this member is NULL,
it indicates that the end time is not a filtering condition.
dwAlarmComm
Alarm command, currently the following commands are supported: "COMM_VCA_ALARM"
(0x4993), "COMM_UPLOAD_FACESNAP_RESULT" (0x1112), and "COMM_SNAP_MATCH_ALAR"
(0x2902). If this member is NULL, it indicates that the alarm command is not a filtering
condition.
sAlarmUID
UID which is returned by the device when uploading alarms, and its length is 64 bytes. The UID
can be made up of time (it should be accurate to millisecond) and random number.
wEventType
Event type: 0-all events, 1-multi-target-type detection (mixedTargetDetection), 2-smart radar
detection and video analysis (radarVideoDetection). This member is valid when dwAlarmComm
is "COMM_VCA_ALARM" (0x4993).
wSubEventType
Sub event type: 0-all sub events, other values depend on the member wEventType.
bySupport
Whether to enable uploading for function demonstration: 0-no, 1-yes. Bit0 refers to the multi-
target-type detection alarm (mixedTargetDetection). Some smart radar detection and video
analysis cameras do not support uploading multi-target-type detection alarm by default, and
this member should be set to 1 for enabling uploading and function demonstration. For other
devices, this member does not need to be parsed. If the device supports uploading multi-target-
type detection alarms, the alarms can be uploaded directly.
byNoBoundary
Whether form data is contained in the returned alarm information: 0-form data is contained, 1-
form data is not contained. This member is valid when dwAlarmComm is
"COMM_VCA_ALARM" (0x4993).
byRes
Reserved.
A.16 NET_DVR_ALARM_SEARCH_RESULT
Structure about alarm search result parameters.
Structure Definition
struct{
DWORD dwSize;
DWORD dwAlarmComm;
NET_DVR_ALARMER struAlarmer;
351
Device Network SDK (General) Developer Guide
DWORD dwAlarmLen;
char *pAlarmInfo;
BYTE byRes[128];
}NET_DVR_ALARM_SEARCH_RESULT, *LPNET_DVR_ALARM_SEARCH_RESULT;
Members
dwSize
Structure size.
dwAlarmComm
Alarm command, currently the following commands are supported: "COMM_VCA_ALARM"
(0x4993), "COMM_UPLOAD_FACESNAP_RESULT" (0x1112), and "COMM_SNAP_MATCH_ALAR"
(0x2902). If this member is NULL, it indicates that the alarm command is not a filtering
condition.
struAlarmer
Alarm device information, see details in the structure NET_DVR_ALARMER .
dwAlarmLen
Data length of alarm or event information.
pAlarmInfo
Alarm or event information.
byRes
Reserved.
A.17 NET_DVR_ALARMHOST_NETCFG_V50
Structure about parameters of alarm receiving center.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_ALARMHOST_NETPARAM_V50 struNetCenter[MAX_CENTERNUM/*4*/];
BYTE byRes1[128];
}NET_DVR_ALARMHOST_NETCFG_V50, *LPNET_DVR_ALARMHOST_NETCFG_V50;
Members
dwSize
Structure size.
struNetCenter
352
Device Network SDK (General) Developer Guide
Parameters of alarm receiving center, up to 4 alarm receiving centers can be set for security
control panel and only 1 alarm receiving center can be set for access controller, refer to the
structure NET_DVR_ALARMHOST_NETPARAM_V50 for details.
byRes1
Reserved.
A.18 NET_DVR_ALARMHOST_NETPARAM_V50
Network parameter structure of alarm receiving center.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_IPADDR struIP;
WORD wPort;
BYTE byAddressType;
BYTE byEnable;
BYTE byDomainName[MAX_DOMAIN_NAME/*64*/];
BYTE byReportProtocol;
BYTE byDevID[ACCOUNTNUM_LEN_32/*32*/];
BYTE byProtocolVersion;
BYTE byRes1[3];
BYTE byEHomeKey[NET_SDK_EHOME_KEY_LEN/*32*/];
BYTE byRes2[28];
}NET_DVR_ALARMHOST_NETPARAM_V50, *LPNET_DVR_ALARMHOST_NETPARAM_V50;
Members
dwSize
Structure size.
struIP
IP address of upload center, valid when byAddressType is 0 or 1.
wPort
Port No. of upload center.
byAddressType
Address type: 0-no meaning, 1-ipv4/ipv6 address, 2-domain name.
byEnable
Enable the upload center: 0-no, 1-yes.
byDomainName
Domain name, valid when byAddressType is 2.
byReportProtocol
353
Device Network SDK (General) Developer Guide
Report protocol: 1-private, 2-NAL2300, 3-eHome (access controller only supports EHome).
byDevID
Device ID, valid for security control panel when protocol is NAL2300, and valid length is 9; for
access controller, the valid length is 32.
Valid characters: 0 to 9, a to f, A to F.
byProtocolVersion
EHome protocol version: 0-invalid, 1-V2.0, 2-V4.0, 3-V5.0.
byRes1
Reserved.
byEHomeKey
EHome key, which is used for EHome protocol version 5.0, can only be configured and cannot be
obtained.
byRes2
Reserved.
A.19 NET_DVR_ALARMINCFG_V40
Alarm input parameters (expended) structure.
Structure Definition
struct{
DWORD dwSize;
BYTE sAlarmInName[NAME_LEN/*32*/];
BYTE byAlarmType;
BYTE byAlarmInHandle;
BYTE byChannel;
BYTE byInputType;
DWORD dwHandleType;
DWORD dwMaxRelAlarmOutChanNum;
DWORD dwRelAlarmOutChanNum;
DWORD dwRelAlarmOut[MAX_ALARMOUT_V40/*4128*/];
NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS/*7*/][MAX_TIMESEGMENT_V30/*8*/];
DWORD dwMaxRecordChanNum;
DWORD dwCurRecordChanNum;
DWORD dwRelRecordChan[MAX_CHANNUM_V40/*512*/];
DWORD dwMaxEnablePtzCtrlNun;
DWORD dwEnablePresetChanNum;
NET_DVR_PRESETCHAN_INFO struPresetChanInfo[MAX_CHANNUM_V40/*512*/];
BYTE byPresetDurationTime[MAX_CHANNUM_V40/*512*/];
BYTE byRes2[4];
DWORD dwEnableCruiseChanNum;
NET_DVR_CRUISECHAN_INFO struCruiseChanInfo[MAX_CHANNUM_V40/*512*/];
DWORD dwEnablePtzTrackChanNum;
354
Device Network SDK (General) Developer Guide
NET_DVR_PTZTRACKCHAN_INFO struPtzTrackInfo[MAX_CHANNUM_V40/*512*/];
WORD wEventType[NET_SDK_MAX_EVENT_NUM/*64*/];
BYTE byRes[128];
}NET_DVR_ALARMINCFG_V40,*LPNET_DVR_ALARMINCFG_V40;
Members
dwSize
Structure size
sAlarmInName
Alarm input name
byAlarmType
Alarm device type: 0-NO, 2- NC
byAlarmInHandle
Whether to handle the alarm? 0- No, 1- Yes
byChannel
Alarm input triggered smart recognition channel
byInputType
Input type: 0-relay (corresponding to sensor alarm type), 1-pulse mode (corresponding to pulse
alarm type)
dwHandleType
Exception handling
0x00: no response
0x01: monitor warning
0x02: audible warning
0x04: notify the surveillence center
0x08: trigger alarm output
0x10: send Jpeg snapshot by E-mail
0x20: interact with wireless sound and light alarm
0x40: e-map linkage (supported by PCNVR only)
0x200: capture image and upload to FTP
E.g. dwHandleType==0x01|0x04, it indicates that when alarm triggered, there is monitor
warning, and alarm is uploaded to center
dwMaxRelAlarmOutChanNum
The maximum channel output of devices triggered by alarm (read-only)
dwRelAlarmOutChanNum
The number of output channels triggered by alarm
dwRelAlarmOut
355
Device Network SDK (General) Developer Guide
The output channel No. triggered by alarm, for example, when dwRelAlarmOut[8]=0xffffffff, it
indicated that configure dwRelAlarmOut[0] to dwRelAlarmOut[7] alarm output channel.
struAlarmTime
Arming time, 7days/week, 8 time segments/day, see details in structure .
dwMaxRecordChanNum
Max. number of device linked recording channel (read-only)
dwRelRecordChan
Actually triggered recording channels
dwMaxEnablePtzCtrlNun
The maximum number of available presets
dwEnablePresetChanNum
The number of used presets
struPresetChanInfo
Channel that enable preset function, when dwEnablePresetChanNum is 0, it indicates that no
preset enabled, and when dwEnablePresetChanNum is not 0, it indicates that
struPresetChanInfo[0]~struPresetChanInfo [dwEnablePresetChanNum-1] are valid. See details in
structure .
byPresetDurationTime
Preset dwell time, ranges from 0 to 20, unit: second, the default time is 10s
byRes2
Reserved, set to 0
dwEnableCruiseChanNum
Number of enabled patrols
struCruiseChanInfo
Channel that enabled patrol function:when dwEnableCruiseChanNum is not 0,
struCruiseChanInfo[0]~struCruiseChanInfo[dwEnableCruiseChanNum-1] is valild, when
dwEnableCruiseChanNum is 0, the patrol function of channel is not enabled. See details in
structure .
dwEnablePtzTrackChanNum
Number of enabled patterns
struPtzTrackInfo
Channel that enabled pattern function: when dwEnablePtzTrackChanNum is not 0,
struPtzTrackInfo[0]~struPtzTrackInfo[dwEnablePresetChanNum-1] is valid, when
dwEnablePtzTrackChanNum is 0, pattern function of channel is not enabled. See details in
structure
wEventType
356
Device Network SDK (General) Developer Guide
A.20 NET_DVR_ALARMINFO_DEV
Remarks
For pNO: if dwAlarmType is 0, 3, 6, or 7, it may be channel No.; if dwAlarmType is 5, it may be disk
No.
A.21 NET_DVR_ALARMINFO_DEV_V40
357
Device Network SDK (General) Developer Guide
Remarks
For pNO: if dwAlarmType is 0, 3, 6, or 7, it may be channel No.; if dwAlarmType is 5, it may be disk
No.
A.22 NET_DVR_ALARMINFO_V30
358
Device Network SDK (General) Developer Guide
Remarks
The time interval to upload the alarm of face picture library changed is 1 hour; for other alarm
type, the alarm information is uploaded in real-time, and the time interval is 1s. Currently, editing
the time interval is not supported.
A.23 NET_DVR_ALARMINFO_V40
Remarks
• The time interval to upload the alarm of face picture library changed is 1 hour; for other alarm
type, the alarm information is uploaded in real-time, and the time interval is 1s. Currently,
editing the time interval is not supported.
• The content of pAlarmData varies with the value of dwAlarmType in the structure
NET_DVR_ALRAM_FIXED_HEADER , see details in the table below:
359
Device Network SDK (General) Developer Guide
A.24 NET_DVR_ALARMER
360
Device Network SDK (General) Developer Guide
A.25 NET_DVR_ALARMOUTCFG_V30
Alarm output parameters structure.
Structure Definition
struct{
DWORD dwSize;
BYTE sAlarmOutName[NAME_LEN/*32*/];
DWORD dwAlarmOutDelay;
NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS/*7*/][MAX_TIMESEGMENT_V30/*8*/];
BYTE byAlarmOutHandle;
BYTE byNormalSatus;
BYTE byRes[14];
}NET_DVR_ALARMOUTCFG_V30,*LPNET_DVR_ALARMOUTCFG_V30;
Members
dwSize
Structure size
sAlarmOutName
Name
361
Device Network SDK (General) Developer Guide
dwAlarmOutDelay
Alarm output delay: 0-"5s", 1-"10s", 2-"30s", 3-"1 minute", 4-"2 minutes", 5-"5 minutes", 6-"10
minutes", 7-manual, the default value is 5 minutes.
struAlarmOutTime
Time period of activating alarm output, see details in .
byAlarmOutHandle
Whether to handle alarm: 0-yes, 1-no
byNormalSatus
Alarm output type: 0-remain open, 1-remain closed
byRes
Reserved, set as 0.
A.26 NET_DVR_AREA_SMARTSEARCH_COND_UNION
VCA search condition union.
Structure Definition
union{
BYTE byLen[6144];
BYTE byMotionScope[64][96];
NET_DVR_TRAVERSE_PLANE_SEARCHCOND struTraversPlaneCond;
NET_DVR_INTRUSION_SEARCHCOND struIntrusionCond;
NET_DVR_FACEDETECTION_SEARCHCOND struFaceSnapCond;
}NET_DVR_AREA_SMARTSEARCH_COND_UNION,*LPNET_DVR_AREA_SMARTSEARCH_COND_UNION;
Members
byLen
Union size, which is 6144 bytes.
byMotionScope
Motion detection region, the array size is 96*64, for P video standard, only 22*18 array is valid,
for N video standard, only 22*15 array is valid. Value: 1-set as motion detection region, 0-not
set as motion detection region.
struTraversPlaneCond
Conditions for searching videos recorded based on line crossing detection, refer to the structure
for details.
struIntrusionCond
Conditions for searching videos recorded based on intrusion detection, refer to the structure for
details.
362
Device Network SDK (General) Developer Guide
struFaceSnapCond
Conditions for searching videos recorded based on face detection, refer to the structure for
details.
Remarks
• For P video standard, the image with the size 704*576 is divided into 22*18 blocks; for N video
standard, the image with the size 704*480 is divided in to 22*15 blocks. And then set each block
as motion detection region or not.
• For P video standard, if the image size is 1280*720, when setting motion detection region, the
image should be zoomed out to 704*576.
See Also
A.27 NET_DVR_ATMFINDINFO
Condition structure for searching files with ATM information.
Structure Definition
struct{
BYTE byTransactionType;
BYTE byRes[3];
DWORD dwTransationAmount;
}NET_DVR_ATMFINDINFO, *LPNET_DVR_ATMFINDINFO;
Members
byTransactionType
Transaction type: 0-all, 1-search, 2-withdraw, 3-deposit, 4-change password, 5-transfer, 6-search
without card, 7-deposit without card, 8-retract cash, 9-retract card, 10-custom.
byRes
Reserved, set to 0.
dwTransationAmount
Transaction amount, -1: search without displaying amount.
See Also
NET_DVR_SPECIAL_FINDINFO_UNION
A.28 NET_DVR_AUDIOENC_INFO
Audio encoder information structure
363
Device Network SDK (General) Developer Guide
Structure Definition
struct{
DWORD in_frame_size;
int reserved[16];
}NET_DVR_AUDIOENC_INFO, LPNET_DVR_AUDIOENC_INFO;
Members
in_frame_size
Data size of an input frame, unit: byte.
reserved
Reserved.
A.29 NET_DVR_AUDIODEC_INFO
Audio decoding information structure
Structure Definition
struct{
int nchans;
int sample_rate;
int aacdec_profile;
int reserved[16];
}NET_DVR_AUDIODEC_INFO, LPNET_DVR_AUDIODEC_INFO;
Members
nchans
Number of audio channels.
sample_rate
Sampling rate.
aacdec_profile
Reserved.
reserved
Reserved.
A.30 NET_DVR_AUDIOENC_PROCESS_PARAM
Audio encoding parameter structure
364
Device Network SDK (General) Developer Guide
Structure Definition
struct{
unsigned char *in_buf;
unsigned char *out_buf;
DWORD out_frame_size;
int g726enc_reset;
int g711_type;
ENUM_AUDIO_ENC_MODE enc_mode;
int reserved[16];
}NET_DVR_AUDIOENC_PROCESS_PARAM, LPNET_DVR_AUDIOENC_PROCESS_PARAM;
Members
in_buf
Input data buffer, and its size should be larger than or equal to in_frame_size in the structure
of .
out_buf
Output data buffer, its size should be larger than or equal to input data buffer (in_buf).
out_frame_size
Size of an encoded frame, unit: byte.
g726enc_reset
Resetting switch.
g711_type
G711 encoding type: 0-U law, 1-A law. This parameter is for G711 audio encoding only.
enc_mode
Audio encoding mode.
reserved
Reserved.
A.31 NET_DVR_AUDIODEC_PROCESS_PARAM
Audio decoding parameter structure
Structure Definition
struct{
unsigned char *in_buf;
unsigned char *out_buf;
DWORD in_data_size;
DWORD proc_data_size;
DWORD out_frame_size;
NET_DVR_AUDIODEC_INFO dec_info;
365
Device Network SDK (General) Developer Guide
int g726dec_reset;
int g711_type;
int reserved[16];
}NET_DVR_AUDIODEC_PROCESS_PARAM, LPNET_DVR_AUDIODEC_PROCESS_PARAM;
Members
in_buf
Input data buffer, the recommended size for input data buffer is 8192 bytes.
out_buf
Output data buffer, the recommended size for output data buffer is 8192 bytes.
in_data_size
Size of input data buffer, unit: byte.
proc_data_size
Size of processed data in decoding library, unit: byte. If the value of this parameter is smaller
than that of in_data_size, it indicates that the data processing is not completed.
out_frame_size
Size of a decoded frame, unit: byte.
dec_info
Decoding information, see details in the structure .
g726dec_reset
Resetting switch.
g711_type
G711 encoding type: 0-U law, 1-A law. This parameter is for G711 decoding only.
reserved
Reserved.
A.32 NET_DVR_AUDIOEXCEPTION_ALARM
Audio exception alarm information structure
Structure Definition
struct{
DWORD dwSize;
BYTE byAlarmType;
BYTE byRes1;
WORD wAudioDecibel;
NET_VCA_DEV_INFO struDevInfo;
WORD wDevInfoIvmsChannelEx;
366
Device Network SDK (General) Developer Guide
BYTE byRes[62];
}NET_DVR_AUDIOEXCEPTION_ALARM, *LPNET_DVR_AUDIOEXCEPTION_ALARM;
Members
dwSize
Structure size
byAlarmType
Alarm type: 1-audio loss detection, 2-sudden increase of sound intensity, 3-sudden decrease of
sound intensity
byRes1
Reserved, set to 0.
wAudioDecibel
Sound intensity (valid when byAlarmType is 2 or 3), which is ranging from 0 to 100.
struDevInfo
Alarm device information, refer to the structure NET_VCA_DEV_INFO
wDevInfoIvmsChannelEx
Extended channel No., and the maximum channel No. is 255.
byRes
Reserved, set to 0.
A.33 NET_VCA_AUDIO_ABNORMAL
Table A-9 Structure about Detection Parameters for Sudden Increase of Sound Intensity
Member Data Type Description
wDecibel WORD Sound intensity.
bySensitivity BYTE Sensitivity, value range: [1,100].
byAudioMode BYTE Sound detection mode: 0-
enable sensitivity detection, 1-
enable decibel threshold
detection, 2-enable both.
byEnable BYTE Whether to enable sudden
increase of sound intensity
detection: 0-no, 1-yes.
367
Device Network SDK (General) Developer Guide
A.34 NET_DVR_AUDIO_CHANNEL
Audio channel information structure
Structure Definition
struct{
DWORD dwChannelNum;
BYTE byres[32];
}NET_DVR_AUDIO_CHANNEL, *LPNET_DVR_AUDIO_CHANNEL;
Members
dwChannelNum
Channel No.
byres
Reserved, set to 0.
A.35 NET_DVR_AUDIO_EXCEPTION
Table A-10 Structure about Audio Exception Detection Parameters
Member Data Type Description
dwSize DWORD Structure size.
byEnableAudioInException BYTE Whether to enable audio
exception detection alarm: 0-
no, 1-yes.
byRes1 Array [BYTE] Reserved, set to 0. The
maximum size is 3 bytes.
struAudioAbnormal NET_VCA_AUDIO_ABNORMAL Parameters of sudden increase
of sound intensity detection.
struAlarmSched NET_DVR_SCHEDTIME Arming schedule. Up to 7 (the
value of the macro definition
368
Device Network SDK (General) Developer Guide
369
Device Network SDK (General) Developer Guide
A.36 NET_DVR_AUDIO_STEEP_DROP
Table A-11 Structure about Parameters for Sudden Decrease of Sound Intensity Detection
Member Data Type Description
bySensitivity BYTE Sensitivity, value range: [1,100].
byEnable BYTE Whether to enable sudden
decrease of sound intensity
detection: 0-no, 1-yes.
byRes Array [BYTE] Reserved, set to 0. The
maximum size is 6 bytes.
See Also
NET_DVR_AUDIO_EXCEPTION
A.37 NET_DVR_AUXILIARY_DEV_UPGRADE_PARAM
Auxiliary device upgrade structure.
Structure Definition
struct{
DWORD dwSize;
DWORD dwDevNo;
BYTE byDevType;
BYTE byRes[131];
}NET_DVR_AUXILIARY_DEV_UPGRADE_PARAM,*LPNET_DVR_AUXILIARY_DEV_UPGRADE_PARAM;
Members
dwSize
Structure size
dwDevNo
Device No.
byDevType
Upgraded device type: 0-keyboard, 1-mechanical movement, 2-network module, 3-router, 4-
zone, 5-RS-485 wireless extension module
byRes
Reserved, set to 0.
370
Device Network SDK (General) Developer Guide
A.38 NET_DVR_BACKLIGHT
Backlight compensation (BLC) parameter structure
Structure Definition
struct{
BYTE byBacklightMode;
BYTE byBacklightLevel;
BYTE byRes1[2];
DWORD dwPositionX1;
DWORD dwPositionY1;
DWORD dwPositionX2;
DWORD dwPositionY2;
BYTE byRes2[4];
}NET_DVR_BACKLIGHT, *LPNET_DVR_BACKLIGHT;
Members
byBacklightMode
BLC mode: 0-diabled, 1-top, 2-bottom, 3-left, 4-right, 5-middle, 6- custom, 10-enable, 11-auto,
12-BLC in multiple areas.
byBacklightLevel
BLC level, which is between 0x0 and 0xF.
byRes1
Reserved, set to 0.
dwPositionX1
X-coordinate of position 1.
dwPositionY1
Y-coordinate of position 1.
dwPositionX2
X-coordinate of position 2.
dwPositionY2
Y-coordinate of position 2.
byRes2
Reserved, set to 0.
A.39 NET_DVR_BEHAVIOR_INFO
Structure about behavior analysis picture information.
371
Device Network SDK (General) Developer Guide
Structure Definition
struct{
NET_VCA_RECT struVcaRect;
BYTE byRes2[240];
}NET_DVR_BEHAVIOR_INFO, *LPNET_DVR_BEHAVIOR_INFO;
Members
struVcaRect
Thumbnail coordinates (normalized), refer to the structure for details.
byRes2
Reserved, set to 0.
See Also
A.40 NET_DVR_BEHAVIOUR_COND
Behavior analysis condition structure.
Structure Definition
struct{
DWORD dwSearchType;
BYTE byHumanMisinfo;
BYTE byRes[251];
}NET_DVR_BEHAVIOUR_COND, *LPNET_DVR_BEHAVIOUR_COND;
Members
dwSearchType
Search type, represented by bit, value: 0-no, 1-yes.
dwSearchType&0x1: Line Crossing Detection
dwSearchType&0x2: Intursion Detection
dwSearchType&0x4: Unattended Baggage
dwSearchType&0x8: Object Removal
dwSearchType&0x10: Region Entrance
dwSearchType&0x20 : Region Exiting
dwSearchType&0x40: Illegal Parking
dwSearchType&0x80: Loitering
dwSearchType&0x100: People Gathering
372
Device Network SDK (General) Developer Guide
Remarks
For functions like intrusion detection, line crossing detection, and region exiting detection, if false
alarm prevention is enabled, the false alarm will be filtered and stored locally instead of being
uploaded.
A.41 NET_DVR_BINOC_RECTIFY_PARAM
Structure about correction parameters of the dual-lens image.
Structure Definition
struct{
float fCamInternalMatrix[3][3];
float fDistCoeffs[8];
float fRotateMatrix[3][3];
float fProjectMatrix[3][4];
BYTE byRes[64];
}NET_DVR_BINOC_RECTIFY_PARAM, *LPNET_DVR_BINOC_RECTIFY_PARAM;
Members
fCamInternalMatrix
Matrix of camera internal parameters (including focal length and principle point coordinates).
fDistCoeffs
Lens distortion coefficient.
fRotateMatrix
373
Device Network SDK (General) Developer Guide
A.42 NET_DVR_BUF_INFO
Structure about buffer information.
Structure Definition
struct{
void* pBuf;
DWORD nLen;
}NET_DVR_BUF_INFO,*LPNET_DVR_BUF_INFO;
Members
pBuf
Buffer pointer
nLen
Buffer size
See Also
NET_DVR_IN_PARAM
NET_DVR_OUT_PARAM
A.43 NET_DVR_BUILTIN_SUPPLEMENTLIGHT
Configuration parameter structure of supplement light
Structure Definition
struct{
DWORD dwSize;
BYTE byMode;
BYTE byBrightnessLimit;
BYTE bySupplementLightMode;
BYTE byMixedLightRegulatMode;
BYTE byLrLightBrightness;
BYTE byHighLrLightBrightness;
BYTE byHighBrightnessLimit;
BYTE byLowLrLightBrightness;
374
Device Network SDK (General) Developer Guide
NET_DVR_SCHEDULE_DAYTIME struSchedTime;
BYTE byLowBrightnessLimit;
BYTE byWhiteLightBrightness;
BYTE byIrLightbrightnessLimit;
BYTE byWhiteLightbrightnessLimit
BYTE byRes1[252];
}NET_DVR_BUILTIN_SUPPLEMENTLIGHT, *LPNET_DVR_BUILTIN_SUPPLEMENTLIGHT;
Members
dwSize
Structure size.
byMode
Supplement light mode: 0-scheduled, 1-enabled, 2-disabled, 3-auto (non-photosensitive)
byBrightnessLimit
Brightness range of supplement light: [0,100]; it is available only when byMode is set to 0 or 1,
or byMixedLightRegulatMode is set to 1.
bySupplementLightMode
Light type: 0-white light, 1-hybrid light
byMixedLightRegulatMode
Brightness control mode of hybrid supplement light: 0-auto, 1-manual; it is available when
bySupplementLightMode is set to 1.
byLrLightBrightness
Brightness range of IR supplement light: [0,100]; it is available when byMixedLightRegulatMode
is set to 1.
byHighLrLightBrightness
Brightness range of far IR light; it is available when byMixedLightRegulatMode is set to 1.
byHighBrightnessLimit
Brightness range of far white light; it is available when byMixedLightRegulatMode is set to 1.
byLowLrLightBrightness
Brightness range of far near light; it is available when byMixedLightRegulatMode is set to 1.
struSchedTime
Scheduled time period (refer to the structure NET_DVR_SCHEDULE_DAYTIME for
NET_DVR_SCHEDULE_DAYTIME details), during which, the supplement light is enabled
automatically; it is available when byMode is set to 0.
byLowBrightnessLimit
Brightness range of near white light; it is available when byMixedLightRegulatMode is set to 1.
byWhiteLightBrightness
White light brightness
375
Device Network SDK (General) Developer Guide
byIrLightbrightnessLimit
IR light brightness limit
byWhiteLightbrightnessLimit
White light brightness limit
byRes1
Reserved, set to 0.
A.44 NET_DVR_BV_CORRECT_PARAM
Structure about the correction parameters of the left camera and the right camera.
Structure Definition
struct{
DWORD dwSize;
float fReprojectMatrix[4][4];
NET_DVR_BINOC_RECTIFY_PARAM struLCamParam;
NET_DVR_BINOC_RECTIFY_PARAM struRCamParam;
BYTE byLensType;
BYTE byRes1[3];
float fRotateMatrix[3][3];
float fTransMatrix[3];
DWORD dwOriImgWidth;
DWORD dwOriImgHeight;
BYTE byRes[196];
}NET_DVR_BV_CORRECT_PARAM,*LPNET_DVR_BV_CORRECT_PARAM;
Members
dwSize
Structure size.
fReprojectMatrix
Reprojection matrix.
struLCamParam
Correction parameters of the left camera, see details in the structure
NET_DVR_BINOC_RECTIFY_PARAM .
struRCamParam
Correction parameters of the right camera, see details in the structure
NET_DVR_BINOC_RECTIFY_PARAM .
byLensType
Focal length of the lens: 0-"unknown", 1-"8mm", 2-"12mm", 3-"16mm", 4-"25mm", 5-"35mm",
6-"50mm", 7-"4mm", 8-"6mm", 9-"2.0mm", 10-"2.8mm", 11-"4.3mm".
376
Device Network SDK (General) Developer Guide
byRes1
Reserved.
fRotateMatrix
Rotation matrix of the left camera relative to the right camera after dual-lens calibration.
fTransMatrix
Translation matrix. RotateMatrix and TransMatrix are used to describe the position of the left
camera relative to the right camera
dwOriImgWidth
Width of the original calibrated image. For example, if the resolution of the image is 1920*1080,
the value of this member is 1920.
dwOriImgHeight
Height of the original calibrated image. For example, if the resolution of the image is
1920/1080, the value of this member is 1080.
byRes
Reserved.
A.45 NET_DVR_CAMERAPARAMCFG
Camera parameter structure
Structure Size
struct{
DWORD dwSize;
NET_DVR_VIDEOEFFECT struVideoEffect;
NET_DVR_GAIN struGain;
NET_DVR_WHITEBALANCE struWhiteBalance;
NET_DVR_EXPOSURE struExposure;
NET_DVR_GAMMACORRECT struGammaCorrect;
NET_DVR_WDR struWdr;
NET_DVR_DAYNIGHT struDayNight;
NET_DVR_BACKLIGHT struBackLight;
NET_DVR_NOISEREMOVE struNoiseRemove;
BYTE byPowerLineFrequencyMode;
BYTE byIrisMode;
BYTE byMirror;
BYTE byDigitalZoom;
BYTE byDeadPixelDetect;
BYTE byBlackPwl;
BYTE byEptzGate;
BYTE byLocalOutputGate;
BYTE byCoderOutputMode;
BYTE byLineCoding;
BYTE byDimmerMode;
377
Device Network SDK (General) Developer Guide
BYTE byPaletteMode;
BYTE byEnhancedMode;
BYTE byDynamicContrastEN;
BYTE byDynamicContrast;
BYTE byJPEGQuality;
NET_DVR_CMOSMODECFG struCmosModeCfg;
BYTE byFilterSwitch;
BYTE byFocusSpeed;
BYTE byAutoCompensationInterval;
BYTE bySceneMode;
}NET_DVR_CAMERAPARAMCFG, *LPNET_DVR_CAMERAPARAMCFG;
Members
dwSize
Structure size.
struVideoEffect
Video effect parameters, refer to the structure NET_DVR_VIDEOEFFECT for details.
struGain
Gain parameters, refer to the structure NET_DVR_GAIN for details.
struWhiteBalance
White balance parameters, refer to the structure NET_DVR_WHITEBALANCE for details.
struExposure
Exposure parameters, refer to the structure NET_DVR_EXPOSURE for details.
struGammaCorrect
Gamma correction parameters, refer to the structure NET_DVR_GAMMACORRECT for details.
struWdr
Wide dynamic range (WDR) parameters, refer to the structure NET_DVR_WDR for details.
struDayNight
Day/night auto switch parameters, refer to the structure NET_DVR_DAYNIGHT for details.
struBackLight
Backlight compensation (BLC) parameters, refer to the structure NET_DVR_BACKLIGHT for
details.
struNoiseRemove
Digital noise reduction parameters, refer to the structure NET_DVR_NOISEREMOVE for details.
byPowerLineFrequencyMode
Power supply frequency: 0-50 Hz; 1-60 Hz.
byIrisMode
378
Device Network SDK (General) Developer Guide
Iris mode: 0: auto; 1: manual, 2: P-Iris1, 3: Union 3-9mm F1.6-2.7 (T5280-PQ1) [IPC5.1.7], 4:
Union 2.8-12mm F1.6-2.7 (T5289-PQ1) [IPC5.1.7], 5: HIK 3.8-16mm F1.5(HV3816P-8MPIR), 6:
HIK 11-40mm F1.7 (HV1140P-8MPIR), 7: HIK 2.7-12mm F1.2(TV2712P-MPIR), 8:
MZ5721D-12MPIR, 9: MZ1555D-12MPIR, 10: MZ5721D-12MPIR(RS485), 11:
MZ1555D-12MPIR(RS485).
byMirror
Mirror: 0-off, 1-left and right, 2-top and bottom, 3-center.
byDigitalZoom
Digital zoom: 0: enable, 1: ×2, 2: ×4.
byDeadPixelDetect
Whether to enable the dead pixel detection: 0-no, 1-yes.
byBlackPwl
Black level compensation parameter, which is between 0 and 255.
byEptzGate
Whether to enable E-PTZ: 0-disable, 1-enable.
byLocalOutputGate
Local output status:
0: disable local output
1: enable local BNC output
2: disable HDMI® output
20: enable HDMI®(720P50) output
21: enable HDMI®(720P60) output
22: enable HDMI®(1080I60) output
23: enable HDMI®(1080I50) output
24: enable HDMI®(1080P24) output
25: enable HDMI®(1080P25) output
26: enable HDMI®(1080P30) output
27: enable HDMI®(1080P50) output
28: enable HDMI®(1080P60) output
40: SDI_720P50
41: SDI_720P60
42: SDI_1080I50
43: SDI_1080I60
44: SDI_1080P24
45: SDI_1080P25
46: SDI_1080P30
379
Device Network SDK (General) Developer Guide
47: SDI_1080P50
48: SDI_1080P60
49: SDI_720P25
50: SDI_720P30
51: SDI_1080I25
52: SDI_1080I30
60: YPBPR_720P50
61: YPBPR_720P60
62: YPBPR_1080I50
63: YPBPR_1080I60
64: YPBPR_1080P24
65: YPBPR_1080P25
66: YPBPR_1080P30
67: YPBPR_1080P50
68: YPBPR_1080P60
69: YPBPR_720P25
70: YPBPR_720P30
71: HDMI_1080P
72: HDMI_720P
73: HDMI_2160P
byCoderOutputMode
Encoder FPGA output mode: 0-directly output, 3-moving pixel.
byLineCoding
Whether to enable line coding: 0-no, 1-yes.
byDimmerMode
Dimming mode (available for thermal device): 0-semiautomatic, 1-automatic.
byPaletteMode
Palette mode (available for thermal device): 0-white heat, 1-black heat, 2-palette 2, ..., 8-palette
8.
byEnhancedMode
Enhancement mode (available for thermal device): 0-disable, 1, 2, 3, 4.
byDynamicContrastEN
Whether to enable dynamic contrast enhancement: 0-no, 1-yes.
byDynamicContrast
Dynamic contrast, its value is between 0 and 100.
380
Device Network SDK (General) Developer Guide
byJPEGQuality
JPEG picture quality, its value is between 0 and 100. This member is not available for intelligent
traffic cameras with version 3.5 or above.
struCmosModeCfg
Camera lens configuration parameters in CMOS mode, refer to the structure
NET_DVR_CMOSMODECFG for details.
byFilterSwitch
Whether to enable filtering: 0-no, 1-yes.
byFocusSpeed
Focus adjusting speed, its value is between 0 and 10.
byAutoCompensationInterval
Time interval of auto shutter compensation, its value is between 1 and 120, unit: minute.
bySceneMode
Scene mode: 0-outdoor, 1-indoor
A.46 NET_DVR_CAMERAPARAMCFG_EX
Camera configuration parameter structure
Structure Definition
struct{
DWORD dwSize;
NET_DVR_VIDEOEFFECT struVideoEffect;
NET_DVR_GAIN struGain;
NET_DVR_WHITEBALANCE struWhiteBalance;
NET_DVR_EXPOSURE struExposure;
NET_DVR_GAMMACORRECT struGammaCorrect;
NET_DVR_WDR struWdr;
NET_DVR_DAYNIGHT struDayNight;
NET_DVR_BACKLIGHT struBackLight;
NET_DVR_NOISEREMOVE struNoiseRemove;
BYTE byPowerLineFrequencyMode;
BYTE byIrisMode;
BYTE byMirror;
BYTE byDigitalZoom;
BYTE byDeadPixelDetect;
BYTE byBlackPwl;
BYTE byEptzGate;
BYTE byLocalOutputGate;
BYTE byCoderOutputMode;
BYTE byLineCoding;
BYTE byDimmerMode;
BYTE byPaletteMode;
381
Device Network SDK (General) Developer Guide
BYTE byEnhancedMode;
BYTE byDynamicContrastEN;
BYTE byDynamicContrast;
BYTE byJPEGQuality;
NET_DVR_CMOSMODECFG struCmosModeCfg;
BYTE byFilterSwitch;
BYTE byFocusSpeed;
BYTE byAutoCompensationInterval;
BYTE bySceneMode;
NET_DVR_DEFOGCFG struDefogCfg;
NET_DVR_ELECTRONICSTABILIZATION struElectronicStabilization;
NET_DVR_CORRIDOR_MODE_CCD struCorridorMode;
BYTE byExposureSegmentEnable;
BYTE byBrightCompensate;
BYTE byCaptureModeN;
BYTE byCaptureModeP;
NET_DVR_SMARTIR_PARAM struSmartIRParam;
NET_DVR_PIRIS_PARAM struPIrisParam;
NET_DVR_LASER_PARAM_CFG struLaserParam;
NET_DVR_FFC_PARAM struFFCParam;
NET_DVR_DDE_PARAM struDDEParam;
NET_DVR_AGC_PARAM struAGCParam;
BYTE byLensDistortionCorrection;
BYTE byDistortionCorrectionLevel;
BYTE byCalibrationAccurateLevel;
BYTE byZoomedInDistantViewLevel;
NET_DVR_SNAP_CAMERAPARAMCFG struSnapCCD;
NET_DVR_OPTICAL_DEHAZE struOpticalDehaze;
NET_DVR_THERMOMETRY_AGC struThermAGC;
BYTE byFusionMode;
BYTE byHorizontalFOV;
BYTE byVerticalFOV;
BYTE byBrightnessSuddenChangeSuppression
BYTE byGPSEnabled
BYTE byRes2[155];
}NET_DVR_CAMERAPARAMCFG_EX, *LPNET_DVR_CAMERAPARAMCFG_EX;
Members
dwSize
Structure size.
struVideoEffect
Video effect parameter, refer to the structure NET_DVR_VIDEOEFFECT for details.
struGain
Gain parameter, refer to the structure NET_DVR_GAIN for details.
struWhiteBalance
White balance parameter, refer to the structure NET_DVR_WHITEBALANCE for details.
struExposure
382
Device Network SDK (General) Developer Guide
383
Device Network SDK (General) Developer Guide
384
Device Network SDK (General) Developer Guide
JPEG picture quality, its value is between 0 and 100. This member is not available for intelligent
traffic cameras with version 3.5 or above.
struCmosModeCfg
Camera lens configuration parameters in CMOS mode, refer to the structure
NET_DVR_CMOSMODECFG for details.
byFilterSwitch
Whether to enable filtering: 0-no, 1-yes.
byFocusSpeed
Focus adjusting speed, its value is between 0 and 10.
byAutoCompensationInterval
Time interval of auto shutter compensation, its value is between 1 and 120, unit: minute.
bySceneMode
Scene mode: 0-outdoor, 1-indoor
struDefogCfg
Defog parameters, refer to the structure NET_DVR_DEFOGCFG for details.
struElectronicStabilization
Electronic image stabilization parameters, refer to the structure
NET_DVR_ELECTRONICSTABILIZATION for details.
struCorridorMode
Rotate mode parameter, refer to the structure NET_DVR_CORRIDOR_MODE_CCD for details.
byExposureSegmentEnable
Whether to adjust exposure time and gain by step: 0-no, 1-yes. For example, to enhance the
exposure, first lengthen the exposure time to the medium value, and then enlarge the gain to
the medium value, finally enhance the exposure and gain to the maximum level.
byBrightCompensate
Brightness, value range: [0,100].
byCaptureModeN
Video input format (NTSC standard): 0-close, 1-640 × 480@25fps, 2-640 × 480@30ps, 3-704 ×
576@25fps, 4-704 × 480@30fps, 5-1280 × 720@25fps, 6-1280 × 720@30fps, 7-1280 ×
720@50fps, 8-1280 × 720@60fps, 9-1280 × 960@15fps, 10-1280 × 960@25fps, 11-1280 ×
960@30fps,12-1280 × 1024@25fps,13--1280 × 1024@30fps,14-1600 × 900@15fps,15-1600 ×
1200@15fps,16-1920 × 1080@15fps,17-1920 × 1080@25fps,18-1920 × 1080@30fps,19-1920 ×
1080@50fps,20-1920 × 1080@60fps, 21-2048 × 1536@15fps,22-2048 × 1536@20fps,23-2048 ×
1536@24fps,24-2048 × 1536@25fps,25-2048 × 1536@30fps,26-2560 × 2048@25fps,27-2560 ×
2048@30fps,28-2560 × 1920@7.5fps,29-3072 × 2048@25fps,30-3072 × 2048@30fps, 31-2048
× 1536@12.5,32-2560 × 1920@6.25,33-1600 × 1200@25,34-1600 × 1200@30,35-1600 ×
1200@12.5, 36-1600 × 900@12.5, 37-1600@900@15, 38-800 × 600@25, 39-800 × 600@30,
385
Device Network SDK (General) Developer Guide
386
Device Network SDK (General) Developer Guide
struFFCParam
FFC parameters, refer to the structure NET_DVR_FFC_PARAM for details.
struDDEParam
DDE parameters, refer to the structure NET_DVR_DDE_PARAM for details.
struAGCParam
AGC parameters, refer to the structure NET_DVR_AGC_PARAM for details.
byLensDistortionCorrection
Whether to enable lens distortion correction: 0-no, 1-yes.
byDistortionCorrectionLevel
Distortion correction level: 0-reserved, 1-level 1, 2-level 2, 3-level 3, 255-custom
byCalibrationAccurateLevel
Distortion correction strength, value range: [0,100].
byZoomedInDistantViewLevel
Remote zooming level, value range: [0,100].
struSnapCCD
CCD parameters of capture camera, refer to the structure NET_DVR_SNAP_CAMERAPARAMCFG
for details.
struOpticalDehaze
Optical defog parameters, refer to the structure NET_DVR_OPTICAL_DEHAZE for details.
struThermAGC
AGC parameters of temperature measurement, refer to the structure
NET_DVR_THERMOMETRY_AGC for details.
byFusionMode
Visual and thermal image fusion mode: 0-thermal image mode,1-fusion mode, 2- PIP mode, 3-
visible light mode, 4-black and white fusion mode, 5-jungle (fusion color mode), 6-desert (fusion
color mode), 7-snow (fusion color mode), 8-sea (fusion color mode), 9-city (fusion color mode).
byHorizontalFOV
Horizontal FOV, value range: [0,100].
byVerticalFOV
Vertical FOV, value range: [0,100].
byBrightnessSuddenChangeSuppression
Whether to enable suppression of brightness sudden change: 0-no, 1-yes.
byGPSEnabled
Whether to enable GPS: 0-no, 1-yes
byRes2
387
Device Network SDK (General) Developer Guide
Reserved, set to 0.
A.47 NET_DVR_CERT_ADDITION_PARAM
Additional certification information structure.
Structure Definition
struct{
DWORD dwSize;
char csCustomID[64];
BYTE byRes1[2];
BYTE byCertificateMode;
BYTE byPrivateKeyMode;
BYTE byPassword[64];
BYTE byRes[128];
}NET_DVR_CERT_ADDITION_PARAM, *LPNET_DVR_CERT_ADDITION_PARAM;
Members
dwSize
Structure size.
csCustomID
Custom ID.
byRes1
Reserved.
byCertificateMode
Certificate mode: 0-self-signed certificate, 1-certificate and private key. This member is valid
when wCertType in the structure NET_DVR_CERT_PARAM is "1" (certificate).
byPrivateKeyMode
Private key mode: 0-independent key, 1-PKCS#12. This member is valid when
byCertificateMode is "1" (certificate and private key method).
byPassword
Password. If byPrivateKeyMode is 0, this member refers to the private key password; if
byPrivateKeyMode is 1, this member refers to the PKCS#12 password.
byRes
Reserved.
A.48 NET_DVR_CERT_PARAM
Certificate parameter structure.
388
Device Network SDK (General) Developer Guide
Structure Definition
struct{
DWORD dwSize;
WORD wCertFunc;
WORD wCertType;
BYTE byFileType;
BYTE byRes1[2];
BYTE byAddition;
NET_DVR_CERT_ADDITION_PARAM *pStruAdditionParam;
BYTE byRes[28];
}NET_DVR_CERT_PARAM, *LPNET_DVR_CERT_PARAM;
Members
dwSize
Structure size.
wCertFunc
Certificate function: 0-802.1x (for Wi-Fi access), 1-HTTPS, 3-ieee802.1x (for wired LAN access),
4-SSH
wCertType
Certificate type: 0-CA, 1-certificate, 2-private key file
byFileType
File type: 0-PEM, 1-PFX
byRes1
Reserved
byAddition
Whether to use additional structure: 0-no, 1-yes
pStruAdditionParam
Pointer of the additional information structure, see details in the structure
NET_DVR_CERT_ADDITION_PARAM
byRes
Reserved, set to 0
Remarks
• When importing custom CA certificate, the member wCertType should be set to 0 (CA),
byAddition should be set to 1, and the member csCustomID in the structure
NET_DVR_CERT_ADDITION_PARAM should be configured.
• When importing client/server self-signed certificate, the member wCertType should be set to 1
(certificate), byAddition should be set to 1; in the structure
NET_DVR_CERT_ADDITION_PARAM , the member byCertificateMode should be set to 0 (self-
signed certificate), and csCustomID should be configured.
389
Device Network SDK (General) Developer Guide
• When importing client/server certificate along with the PKCS#12 private key, the member
wCertType should be set to 1 (certificate), byAddition should be set to 1; in the structure
NET_DVR_CERT_ADDITION_PARAM , the member byCertificateMode should be set to 1
(certificate and private key), byPrivateKeyMode should be set to 1 (PKCS#12), byPassword
should be set to the PKCS#12 password, and csCustomID should be configured.
• When importing client/server certificate along with the independent private key, you should
perform the following two steps.
1. Import certificate file: the member wCertType should be set to 1 (certificate), byAddition
should be set to 1; in the structure NET_DVR_CERT_ADDITION_PARAM , the member
byCertificateMode should be set to 1 (certificate and private key), byPrivateKeyMode should
be set to 0 (independent key), and csCustomID should be configured.
2. Import the private key file of the certificate: the member wCertType should be set to 2
(private key file), byAddition should be set to 1; in the structure
NET_DVR_CERT_ADDITION_PARAM , the member byCertificateMode should be set to 1
(certificate and private key), byPrivateKeyMode should be set to 0 (independent key),
byPassword should be set to the password of the private key file, and csCustomID should be
configured.
• When downloading CA certificate, the member wCertType should be set to 0 (CA), and the
member csCustomID in the structure NET_DVR_CERT_ADDITION_PARAM should be configured.
• When downloading client/server certificate, the member wCertType should be set to 1
(certificate), and the member csCustomID in the structure NET_DVR_CERT_ADDITION_PARAM
should be configured.
A.49 NET_DVR_CETTIFICATE_INFO
Certificate information structure
Structure Definition
struct{
DWORD dwSize;
char szIssuer[MAX_CERTIFICATE_ISSUER_LEN/*64*/];
char szSubject[MAX_CERTIFICATE_SUBJECT_LEN/*64*/];
NET_DVR_TIME struStartTime;
NET_DVR_TIME struEndTime;
BYTE byRes1[1024];
}NET_DVR_CETTIFICATE_INFO, *LPNET_DVR_CETTIFICATE_INFO;
Members
dwSize
Structure size.
szIssuer
Certificate issuer.
390
Device Network SDK (General) Developer Guide
szSubject
Certificate holder.
struStartTime
Start time of expiry date, refer to the structure NET_DVR_TIME for details.
struEndTime
End time of expiry date, refer to the structure NET_DVR_TIME for details.
byRes1
Reserved.
A.50 NET_DVR_CHANNELSTATE_V30
Structure of channel state information
Table A-12 Channel Status Structure
Member Data Type Description
byRecordStatic BYTE Whether the channel is recording: 0-no, 1-yes.
bySignalStatic BYTE Video signal status: 0-normal, 1-lost.
byHardwareStatic BYTE Channel hardware status: 0-normal, 1-exception
(e.g. DSP exception).
byRes1 BYTE A reserved byte. Set to 0.
dwBitRate DWORD Actual bit rate.
dwLinkNum DWORD The total number of clients connected with the
channel.
struClientIP NET_DVR_IPADDR_UN Client IP address. The maximum length is 6
ION [] bytes.
dwIPLinkNum DWORD Total number of connections of the digital
channel.
byExceedMaxLink BYTE Whether the maximum connections reached
(Up to 6 connections are allowed): 0-no, 1-yes.
byRes BYTE Reserved, set to 0. The maximum length is 3
bytes.
dwAllBitRate DWORD The sum of actual bit rate of this channel.
dwChannelNo DWORD The current channel No., 0xffffffff-invalid.
391
Device Network SDK (General) Developer Guide
A.51 NET_DVR_CHAN_FILTER_CFG
Structure about linking POS rules and channels
Structure Definition
struct{
DWORD dwSize;
BYTE byFilterID;
BYTE byFontSize;
BYTE byShowPosInfo;
BYTE byOverlayMode;
DWORD dwDelayTime;
NET_DVR_POS_OSD_REGION struOsdPosInfo;
NET_DVR_RGB_COLOR struOsdColor;
NET_DVR_SCHEDTIME struAlarmSched[MAX_DAYS][MAX_TIMESEGMENT_V30/*8*/];
NET_DVR_HANDLEEXCEPTION_V40 struHandleException;
DWORD dwMaxRelRecordChanNum;
DWORD dwRelRecordChanNum;
DWORD dwRelRecordChan[MAX_CHANNUM_V30/*64*/];
DWORD dwTimeOut;
BYTE byRes[60];
}NET_DVR_CHAN_FILTER_CFG,*LPNET_DVR_CHAN_FILTER_CFG;
Members
dwSize
Stucture size.
byFilterID
POS filtering rule ID.
byFontSize
Font size: 0- 8*16,1- 16*32,2- 32*64.
byShowPosInfo
Whether to overlay POS information in stream: 0-no, 1-yes.
byOverlayMode
Overlaying mode: 0-scrolling, 1-page turning.
dwDelayTime
Delay time, value ranges from 5 to 3600, unit:s.
struOsdPosInfo
POS information overlapping area.
struOsdColor
Color of overlapped POS information.
392
Device Network SDK (General) Developer Guide
struAlarmSched
Arming schedule, up to 8 periods can be scheduled for each day.
struHandleException
Exception handling type.
dwMaxRelRecordChanNum
The maximum number of video channels that can be triggered by alarm (read-only).
dwRelRecordChanNum
Actual number of video channels that can be triggered by alarm.
dwRelRecordChan
Video channels that can be triggered by alarm, the first dwRelRecordChanNum channels can be
configured.
dwTimeOut
Timeout time, value ranges from 5 to 3600, unit: s. Interval during which no POS data can be
received.
byRes
Reserved.
Remarks
• When the value of dwMaxRelRecordChanNum is larger than 64, the channels will be divided in
to groups and each group will be numbered (dwGroup) in the structure
NET_DVR_CHANNEL_GROUP , and up to 64 channels can be contained in a group.
• The video channel No. links with the group No., e.g., when the group No. is 0, the No. of
channels in the group is between 1 and 64; when the group No. is 1, the No. of channels in the
group is between 65 and 128, and so on. If the group No. is 0xffffffff, it indicates that the No. of
channels in current group and the following channels is invalid.
A.52 NET_DVR_CHANNEL_GROUP
Channel No. and group No. information structure.
Structure Definition
struct{
DWORD dwSize;
DWORD dwChannel;
DWORD dwGroup;
BYTE byID;
BYTE byRes1[3];
DWORD dwPositionNo;
BYTE byRes[56];
}NET_DVR_CHANNEL_GROUP,*LPNET_DVR_CHANNEL_GROUP;
393
Device Network SDK (General) Developer Guide
Members
dwSize
Structure size
dwChannel
Channel No.
dwGroup
Group No., which starts from 0, 0-group No.1, 1-group No.2, ...
byID
Device region configuration ID
byRes1
Reserved, set to 0.
dwPositionNo
Scene No., for network camera, it is 0; for speed dome, it starts from 1.
byRes
Reserved, set to 0.
A.53 NET_DVR_CHECK_DEV_STATE
Table A-13 Structure about Checking Parameters of Device Status
Member Data Type Description
dwTimeout DWORD Time interval to check device status for once,
unit: millisecond. The default value is 0, which
represents 30,000 ms. The minimum time
interval is 1,000 ms.
fnStateCB DEV_WORK_STATE_CB Callback function of device status information.
pUserData void* Custom data.
byRes BYTE[] Reserved, set to 0. The maximum length is 60
bytes.
A.54 NET_DVR_CMOSMODECFG
Camera lens parameter structure of CMOS mode
394
Device Network SDK (General) Developer Guide
Structure Definition
struct{
BYTE byCaptureMod;
BYTE byBrightnessGate;
BYTE byCaptureGain1;
BYTE byCaptureGain2;
DWORD dwCaptureShutterSpeed1;
DWORD dwCaptureShutterSpeed2;
BYTE byRes[4];
}NET_DVR_CMOSMODECFG, *LPNET_DVR_CMOSMODECFG;
Members
byCaptureMod
Capture mode: 0-mode 1, 1-mode 2.
byBrightnessGate
Brightness threshold.
byCaptureGain1
Capture gain 1, its value is between 0 and 100.
byCaptureGain2
Capture gain 2, its value is between 0 and 100.
dwCaptureShutterSpeed1
Shutter speed 1 for capture.
dwCaptureShutterSpeed2
Shutter speed 2 for capture.
byRes
Reserved, set to 0.
A.55 NET_DVR_CMS_PARAM
Platform access parameter structure
Structure Definition
struct{
DWORD dwSize;
NET_DVR_IPADDR struAddr;
WORD wServerPort;
BYTE bySeverProtocolType;
BYTE byStatus;
BYTE sDeviceId[NAME_LEN/*32*/];
char sPassWord[PASSWD_LEN/*16*/];
395
Device Network SDK (General) Developer Guide
BYTE sPlatformEhomeVersion[NAME_LEN/*32*/];
BYTE byNetWork;
BYTE byAddressType;
BYTE byProtocolVersion;
BYTE byRes1;
BYTE sDomainName[MAX_DOMAIN_NAME/*64*/];
BYTE byEnable;
BYTE byRes[172];
}NET_DVR_CMS_PARAM,*LPNET_DVR_CMS_PARAM;
Members
dwSize
Structure size
struAddr
Platform IP address, see details in the structure , it is valid when byAddressType is 0 or 1.
wServerPort
Platform listening port number.
bySeverProtocolType
Platform protocol type: 1-private, 2-Ehome.
byStatus
Device registration status in the platform: 1-unregistered, 2- registered
sDeviceId
Device ID, which is provided by the platform.
sPassWord
Password, which is provided by platform.
sPlatformEhomeVersion
EHome protocol version information of this platform.
byNetWork
Network mode: 0-reserved, 1-auto, 2-wired network in priority, 3-wired network, 4- mobile
network (3G network)
byAddressType
Address type: 0-reserved, 1-ipv4/ipv6 address, 2-domain name
byProtocolVersion
Protocol version: 0-reserved, 1-Version 2.0, 2-Version 4.0
byRes1
Reserved, set to 0
sDomainName
Platform server domain name, it is valid when byAddressType is 2.
396
Device Network SDK (General) Developer Guide
byEnable
Whether to enable: 0-no, 1-yes
byRes
Reserved, set to 0
A.56 NET_DVR_COLOR
Structure about image parameters.
Structure Definition
struct{
BYTE byBrightness;
BYTE byContrast;
BYTE bySaturation;
BYTE byHue;
}NET_DVR_COLOR, *LPNET_DVR_COLOR;
Members
byBrightness
Brightness, ranges from 0 to 255
byContrast
Contrast, ranges from 0 to 255
bySaturation
Saturation, ranges from 0 to 255
byHue
Hue, ranges from 0 to 255
A.57 NET_DVR_COMPRESSION_AUDIO
Audio parameter structure of two-way audio.
Structure Definition
struct{
BYTE byAudioEncType;
BYTE byAudioSamplingRate;
BYTE byAudioBitRate;
BYTE byres[4];
BYTE bySupport;
}NET_DVR_COMPRESSION_AUDIO, *LPNET_DVR_COMPRESSION_AUDIO;
397
Device Network SDK (General) Developer Guide
Members
byAudioEncType
Audio encoding type: 0-G722, 1-G711_U, 2-G711_A, 5-MP2L2, 6-G726, 7-AAC, 8-PCM, 9-G722,
10-G723, 11-G729, 12-AAC_LC, 13-AAC_LD, 14-Opus, 15-MP3.
byAudioSamplingRate
Audio sampling rate: 0-default, 1-16kHZ, 2-32kHZ, 3-48kHZ, 4-44.1kHZ, 5-8kHZ.
byAudioBitRate
Audio encoding bit rate, refer to BITRATE_ENCODE_INDEX for details.
byres
Reserved, set to 0.
bySupport
Audio data size.
Remarks
After setting the audio parameter for two-way audio, you must reboot the device to take effect.
A.58 NET_DVR_COMPRESSION_INFO_V30
Structure about stream encoding parameters.
Structure Definition
struct{
BYTE byStreamType;
BYTE byResolution;
BYTE byBitrateType;
BYTE byPicQuality;
DWORD dwVideoBitrate;
DWORD dwVideoFrameRate;
WORD wIntervalFrameI;
BYTE byIntervalBPFrame;
BYTE byres1;
BYTE byVideoEncType;
BYTE byAudioEncType;
BYTE byVideoEncComplexity;
BYTE byEnableSvc;
BYTE byFormatType;
BYTE byAudioBitRate;
BYTE bySteamSmooth;
BYTE byAudioSamplingRate;
BYTE bySmartCodec;
BYTE byDepthMapEnable;
398
Device Network SDK (General) Developer Guide
WORD wAverageVideoBitrate;
}NET_DVR_COMPRESSION_INFO_V30, *LPNET_DVR_COMPRESSION_INFO_V30;
Members
byStreamType
Stream type: 0- video stream, 1-video and audio stream, 0xfe-auto (same as the source).
For event information encoding parameter (struEventRecordPara), the highest-bit of
byStreamType indicates whether to enable event information encoding. That is, when setting
struEventRecordPara:
byStreamType&0x80 == 0: disable event information encoding
(byStreamType&0x80 == 1)&&(byStreamType&0x7f == 0) : enable event information encoding
and set stream type to video stream;
(byStreamType&0x80 == 1)&&(byStreamType&0x7f == 1) : enable event information encoding
and set stream type to video and audio stream;
byStreamType==0xfe: enable event information encoding and set stream type as same as the
source.
byResolution
Resolution: CIF(528 × 384/528 × 320), 1-CIF(352 × 288/352 × 240), 2-QCIF(176 × 144/176 × 120),
3-4CIF(704 × 576/704 × 480) or D1(720 × 576/720 × 486), 4-2CIF(704 × 288/704 × 240), 6-
QVGA(320 × 240), 7-QQVGA(160 × 120), 12-384 × 288, 13-576 × 576, 16-VGA(640 × 480), 17-
UXGA(1600 × 1200), 18-SVGA(800 × 600), 19-HD720P(1280 × 720), 20-XVGA(1280 × 960), 21-
HD900P(1600 × 900), 22-1360 × 1024, 23-1536 × 1536, 24-1920 × 1920, 27-1920 × 1080p,
28-2560 × 1920, 29-1600 × 304, 30-2048 × 1536, 31-2448 × 2048, 32-2448 × 1200, 33-2448 ×
800, 34-XGA(1024 × 768), 35-SXGA(1280 × 1024), 36-WD1(960 × 576/960 × 480), 37-1080i(1920
× 1080), 38-WXGA(1440 × 900), 39-HD_F(1920 × 1080/1280 × 720), 40-HD_H(1920 × 540/1280
× 360), 41-HD_Q(960 × 540/630 × 360), 42-2336 × 1744, 43-1920 × 1456, 44-2592 × 2048,
45-3296 × 2472, 46-1376 × 768, 47-1366 × 768, 48-1360 × 768, 49-WSXGA+, 50-720 × 720,
51-1280 × 1280, 52-2048 × 768, 53-2048 × 2048, 54-2560 × 2048, 55-3072 × 2048, 56-2304 ×
1296, 57-WXGA(1280 × 800), 58-1600 × 600, 59-1600 × 900, 60-2752 × 2208, 61-384 × 288,
62-4000 × 3000, 63-4096 × 2160, 64-3840 × 2160, 65-4000 × 2250, 66-3072 × 1728, 67-2592 ×
1944, 68-2464 × 1520, 69-1280 × 1920, 70-2560 × 1440, 71-1024 × 1024, 72-160 × 128, 73-324
× 240, 74-324 × 256, 75-336 × 256, 76-640 × 512, 77-2720 × 2048, 78-384 × 256, 79-384 × 216,
80-320 × 256, 81-320 × 180, 82-320 × 192, 83-512 × 384, 84-325 × 256, 85-256 × 192, 86- 640 ×
360, 87-1776x1340, 88-1936x1092, 89-2080x784, 90-2144x604, 91-1920 × 1200, 92-4064 ×
3040, 93-3040 × 3040, 94-3072 × 2304, 95-3072 × 1152, 96-2560 × 2560, 97-2688 × 1536,
98-2688 × 1520, 99-3072 × 3072, 100-3392 × 2008, 101-4000 × 3080, 102-960 × 720, 103-1024
× 1536, 104-704 × 1056, 105-352 × 528, 106-2048 × 1530, 107-2560 × 1600, 108-2800 × 2100,
109-4088 × 4088, 110-4000 × 3072, 111-960 × 1080(1080p Lite), 112-640 × 720(half 720p),
113-640 × 960, 114-320 × 480, 115-3840 × 2400, 116-3840 × 1680, 117-2560 × 1120, 118-704 ×
320, 119-1200 × 1920, 120-480 × 768, 121-768 × 480, 122-320 × 512, 123-512 × 320, 124-4096
× 1800, 125-1280 × 560, 126-2400 × 3840, 127-480 × 272, 128-512 × 272, 129-2592 × 2592,
399
Device Network SDK (General) Developer Guide
Note
• When the index number of the current resolution exceeds 254, the returned/configured value
of this member is 254 and the returned/configured value of dwResolution in the structure
NET_DVR_MULTI_STREAM_COMPRESSIONCFG is the index number of the current resolution.
• When the index number of the current resolution is smaller than 254, the returned/
configured value of this member is the index number of the current resolution.
byBitrateType
Bit rate type: 0- variable bit rate, 1-constant bit rate, 0xfe: auto
byPicQuality
Image quality: 0-best, 1-better, 2-good, 3-normal, 4-worse, 5-bad, 0xfe-auto.
dwVideoBitrate
Video bitrate: 0-Reserved, 1-16K (Reserved), 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k,
9-192K, 10-224K, 11-256K, 12-320K, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K,
19-1024K, 20-1280K, 21-1536K, 22-1792K, 23-2048K, 24-3072K, 25-4096K, 26-8192K,
27-16384K, 0xfffffffe-auto.
dwVideoFrameRate
Video frame rate: 0-all, 1-1/16, 2-1/8, 3-1/4, 4-1/2, 5-1, 6-2, 7-4, 8-6, 9-8, 10-10, 11-12, 12-16,
13-20, 14-15, 15-18, 16-22, 17-25, 18-30, 19-35, 20-40, 21-45, 22-50, 23-55, 24-60, 25-3, 26-5,
27-7, 28-9, 29-100, 30-120, 31-24, 32-48, 33-8.3, 0xfffffffe-auto.
wIntervalFrameI
Interval of I frame, 0xfffe-auto (same with source), 0xffff-invalid.
byIntervalBPFrame
Frame format: 0-BBP, 1-BP, 2-single P frame, 0xff-invalid.
byres1
Reserved, set to 0.
byVideoEncType
400
Device Network SDK (General) Developer Guide
Video encoding format: 0- private H.264, 1- standard H.264, 2- standard MPEG4, 7- M-JPEG, 8-
MPEG2, 9- SVAC, 10- standard h265, 0xfe- auto (same with source), 0xff- invalid.
byAudioEncType
Audio encoding format: 0-G.722, 1-G.711_U, 2- G.711_A, 5- MP2L2, 6-G.726, 7-AAC, 8-PCM, 12-
AAC_LC,13-AAC_LD,14-Opus,15-MP3, 0xfe-auto, 0xff-invalid.
byVideoEncComplexity
Video encoding complexity: 0-low, 1-medium, 2-high, 0xfe-auto (same as the source).
byEnableSvc
Whether to enable SVC (Scalable Video Coding): 0-no, 1-yes, 2-auto
byFormatType
Container format: 1-raw stream, 2-RTP, 3-PS, 4-TS, 5-private, 6-FLV, 7-ASF, 8-3GP, 0xff-invalid.
byAudioBitRate
Audio encoding bit rate, refer to BITRATE_ENCODE_INDEX for details.
bySteamSmooth
Stream smooth level, the value is between 1 and 100, 1-clear, 100-smooth.
byAudioSamplingRate
Audio sampling rate: 0-default, 1-16kHZ, 2-32kHZ, 3-48kHZ, 4-44.1kHZ, 5-8kHZ.
bySmartCodec
Whether to enable high performance encoding (enable high performance means Smart 264
when byVideoEncType==1: enable Smart264; byVideoEncType==10: Smart265): 0-disable, 1-
enable.
When bySmartCodec is 1 and byVideoEncType is 1, you can configure upper-limit bitrate
(dwVideoBitrate) and average bit rate (wAverageVideoBitrate) for variable bitrate, and
configure upper-limit bit rate (dwVideoBitrate) for constant bit rate.
byDepthMapEnable
Whether to enable depth map: 0-no, 1-yes; If it is enabled, the video parameters of sub-stream
of channel No.2 cannot be configured, and by default, the resolution of output depth map is
960 × 540.
wAverageVideoBitrate
Average video bit rate (it is valid when bySmartCodec is enabled): 0-0K, 1-16K, 2-32K, 3-48k,
4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K, 13-384K, 14-448K,
15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K, 23-2048K,
24-2560K, 25-3072K, 26-4096K, 27-5120K, 28-6144K, 29-7168K, 30-8192K.
Highest-bit (bit15)==1: custom stream; bit0 to bit14: stream value.
401
Device Network SDK (General) Developer Guide
Remarks
• The supports of video resolution, frame rate, audio and video encoding type, container format,
and so on, depend on the device encoding capability.
• After setting the video encoding type, you should reboot the device to take effect.
• The average bit rate is used to control video size. When setting this parameter, you'd better refer
to the recommended value, which varies under different devices. You can get the average bit
rate from the dynamic capability of front-end device.
• If Smart264 or Smart265 is enabled, the following functions are not available, such as ROI, SVC,
main/sub-stream smooth, high frame rate, resolution 2048 × 1536, vehicle detection, multi-
target-type detection, traffic enforcement, heat map, and so on.
A.59 NET_DVR_COMPRESSIONCFG_V30
Channel encoding parameter structure
Structure Definition
struct{
DWORD dwSize;
NET_DVR_COMPRESSION_INFO_V30 struNormHighRecordPara;
NET_DVR_COMPRESSION_INFO_V30 struNormLowRecordPara;
NET_DVR_COMPRESSION_INFO_V30 struEventRecordPara;
NET_DVR_COMPRESSION_INFO_V30 struNetPara;
}NET_DVR_COMPRESSIONCFG_V30, *LPNET_DVR_COMPRESSIONCFG_V30;
Members
dwSize
Structure size
struNormHighRecordPara
Encoding parameters of video stream, that is, the encoding parameters of sub-stream, refer to
the structure NET_DVR_COMPRESSION_INFO_V30 for details.
struNormLowRecordPara
Encoding parameters of video stream, that is, the encoding parameters of sub-stream, refer to
the structure NET_DVR_COMPRESSION_INFO_V30 for details.
struEventRecordPara
Encoding parameters of event or alarm stream. When the alarm is triggered or event occurred,
the main stream will automatically switch to the encoding settings of event or alarm stream.
Refer to the structure NET_DVR_COMPRESSION_INFO_V30 for details.
struNetPara
402
Device Network SDK (General) Developer Guide
Stream encoding parameters for network transmission, that is, the encoding parameters of sub-
stream, refer to the structure NET_DVR_COMPRESSION_INFO_V30 for details.
A.60 NET_DVR_CONNECT_POS_CFG
Structure about POS connection configuration.
Structure Definition
struct{
DWORD dwSize;
BYTE byConnectMode;
BYTE byRes1[3];
NET_DVR_POS_CONNECTMODE_UNION struPosConnMode;
BYTE byRes[64];
}NET_DVR_CONNECT_POS_CFG,*LPNET_DVR_CONNECT_POS_CFG;
Members
dwSize
Structure size
byConnectMode
Connection mode: 0-network listening (TCP), 1-network receiving, 2-port receiving, 3-network
listening (UDP), 4-network detection (sniff) , 5-multicasting, 6- USB_232 port mode
byRes1
Reserved, set it to 0.
struPosConnMode
Connection mode configuration.
byRes
Reserved, set it to 0.
A.61 NET_DVR_CORRIDOR_MODE_CCD
Rotate mode parameter structure
Structure Definition
struct{
BYTE byEnableCorridorMode;
BYTE byRes[11];
}NET_DVR_CORRIDOR_MODE_CCD, *LPNET_DVR_CORRIDOR_MODE_CCD;
403
Device Network SDK (General) Developer Guide
Members
byEnableCorridorMode
Whether to enable rotate mode: 0-no, 1-yes.
byRes
Reserved, set to 0.
Remarks
When the rotate mode is enable, the image will rotate 90 degree in anticlockwise, for example,
1280 × 720 will rotate to 720 × 1280. This mode can enlarge vertical surveillance range, and it is
applicable to corridors, roads, and so on.
A.62 NET_DVR_CRUISECHAN_INFO
A.63 NET_DVR_DAYNIGHT
Day/night auto switch parameter structure
Structure Definition
struct{
BYTE byDayNightFilterType;
BYTE bySwitchScheduleEnabled;
BYTE byBeginTime;
BYTE byEndTime;
BYTE byDayToNightFilterLevel;
BYTE byNightToDayFilterLevel;
BYTE byDayNightFilterTime;
BYTE byBeginTimeMin;
BYTE byBeginTimeSec;
BYTE byEndTimeMin;
BYTE byEndTimeSec;
BYTE byAlarmTrigState;
}NET_DVR_DAYNIGHT, *LPNET_DVR_DAYNIGHT;
404
Device Network SDK (General) Developer Guide
Members
byDayNightFilterType
Day/night auto switch mode: 0-day, 1-night, 2-auto (photoresistance mode), 3-scheduled, 4-
alarm input triggered, 5-auto mode 2 (no photosensitivity), 6-black light, 7-auto (black light), 8-
scheduled (black light).
bySwitchScheduleEnabled
Scheduled mode: 0-enable, 1-disable.
byBeginTime
Start time of scheduled mode, unit: hour, its value is between 0 and 23.
byEndTime
End time of scheduled mode, unit: hour, its value is between 0 and 23.
byDayToNightFilterLevel
Level for switching day to night, for network camera, the level is between 0 and 7; for speed
dome, the level is between 1 and 3.
byNightToDayFilterLevel
Level for switching night to day, for network camera, the level is between 0 and 7; for speed
dome, the level is between 1 and 3.
byDayNightFilterTime
Switching time interval: 60 s
byBeginTimeMin
Start time of scheduled mode, unit: minute, its value is between 0 and 59.
byBeginTimeSec
Start time of scheduled mode, unit: second, its value is between 0 and 59.
byEndTimeMin
End time of scheduled mode, unit: minute, its value is between 0 and 59.
byEndTimeSec
End time of scheduled mode, unit: second, its value is between 0 and 59.
byAlarmTrigState
Alarm input triggering status: 0-day, 1-night.
A.64 NET_DVR_DAYTIME
Time parameter structure.
405
Device Network SDK (General) Developer Guide
Structure Definition
struct{
BYTE byHour;
BYTE byMinute;
BYTE bySecond;
BYTE byRes;
WORD wMilliSecond;
BYTE byRes1[2];
}NET_DVR_DAYTIME, *LPNET_DVR_DAYTIME;
Members
byHour
Hour, ranges from 0 to 24
byMinute
Minute, ranges from 0 to 60
bySecond
Second, ranges from 0 to 60
byRes
Reserved, set to 0
wMilliSecond
Millisecond, ranges from 0 to 1000
byRes1
Reserved, set to 0
A.65 NET_DVR_DEC_DDNS_DEV
Configuration parameter structure about getting stream by DDNS.
Structure Definition
struct{
NET_DVR_DEV_DDNS_INFO struDdnsInfo;
NET_DVR_STREAM_MEDIA_SERVER struMediaServer;
}NET_DVR_DEC_DDNS_DEV,*LPNET_DVR_DEC_DDNS_DEV;
Members
struDdnsInfo
DDNS configuration parameters, see the structure NET_DVR_DEV_DDNS_INFO for details.
struMediaServer
406
Device Network SDK (General) Developer Guide
See Also
NET_DVR_DEC_STREAM_MODE
A.66 NET_DVR_DEFOGCFG
Defog parameter structure
Structure Definition
struct{
BYTE byMode;
BYTE byLevel;
BYTE byRes[6];
}NET_DVR_DEFOGCFG, *LPNET_DVR_DEFOGCFG;
Members
byMode
Defog mode: 0-disable, 1-auto, 2-remain enabled
byLevel
Defog level, value range: [0,100]
byRes
Reserved, set to 0.
A.67 NET_DVR_DEVICECFG_V50
407
Device Network SDK (General) Developer Guide
408
Device Network SDK (General) Developer Guide
409
Device Network SDK (General) Developer Guide
A.68 NET_DVR_DEV_DDNS_INFO
Configuration parameter structure about DDNS.
410
Device Network SDK (General) Developer Guide
Structure Definition
struct{
BYTE byDevAddress[MAX_DOMAIN_NAME/*64*/];
BYTE byTransProtocol;
BYTE byTransMode;
BYTE byDdnsType;
BYTE byRes1;
BYTE byDdnsAddress[MAX_DOMAIN_NAME/*64*/];
WORD wDdnsPort;
BYTE byChanType;
BYTE byFactoryType;
DWORD dwChannel;
BYTE byStreamId[STREAM_ID_LEN/*32*/];
BYTE sUserName[NAME_LEN/*32*/];
BYTE sPassword[PASSWD_LEN/*16*/];
WORD wDevPort;
BYTE byRes2[2];
}NET_DVR_DEV_DDNS_INFO,*LPNET_DVR_DEV_DDNS_INFO;
Members
byDevAddress
Device domain name
byTransProtocol
Transfer protocol type: 0-TCP, 1-UDP, 2-multicast
byTransMode
Stream mode: 0-main stream, 1-sub-stream
byDdnsType
DDNS type: 0-IPServer, 1-Dyndns, 2- PeanutHull, 3- NO-IP, 4-hiDDNS
byRes1
Reserved
byDdnsAddress
DDNS address
wDdnsPort
DDNS port number
byChanType
Channel type: 0-normal channel, 1-channel-zero, 2-stream ID
byFactoryType
Front-end device manufacturer
dwChannel
Device channel No.
411
Device Network SDK (General) Developer Guide
byStreamId
Stream ID, it is valid only when the byChanType is 2.
sUserName
User name for log in to device
sPassword
Device password.
wDevPort
Device port number
byRes2
Reserved
See Also
NET_DVR_DEC_DDNS_DEV
A.69 NET_DVR_DEC_STREAM_DEV_EX
Configuration parameter structure about getting stream from device.
Structure Definition
struct{
NET_DVR_STREAM_MEDIA_SERVER struStreamMediaSvrCfg;
NET_DVR_DEV_CHAN_INFO_EX struDevChanInfo;
}NET_DVR_DEC_STREAM_DEV_EX,*LPNET_DVR_DEC_STREAM_DEV_EX;
Members
struStreamMediaSvrCfg
Stream media server configuration parameters, see the structure
NET_DVR_STREAM_MEDIA_SERVER for details.
struDevChanInfo
Device channel configuration parameters, see the structure NET_DVR_DEV_CHAN_INFO_EX for
details.
See Also
NET_DVR_DEC_STREAM_MODE
A.70 NET_DVR_DEC_STREAM_MODE
Configuration parameter union about streaming mode.
412
Device Network SDK (General) Developer Guide
Structure Definition
union{
NET_DVR_DEC_STREAM_DEV_EX struDecStreamDev;
NET_DVR_PU_STREAM_URL struUrlInfo;
NET_DVR_DEC_DDNS_DEV struDdnsDecInfo;
BYTE byRes[300];
}NET_DVR_DEC_STREAM_MODE,*LPNET_DVR_DEC_STREAM_MODE;
Members
struDecStreamDev
Get stream from device or stream media server by IP address or domain name, see the
structure NET_DVR_DEC_STREAM_DEV_EX for the configuration details.
struUrlInfo
Get stream from device or stream media server by URL, see the structure
NET_DVR_PU_STREAM_URL for the configuration details.
struDdnsDecInfo
Get stream from device by DDNS, see the structure NET_DVR_DEC_DDNS_DEV for the
configuration details.
byRes
Reserved, set to 0.
A.71 NET_DVR_DEFOCUS_ALARM
Defocus alarm information structure
Structure Definition
struct{
DWORD dwSize;
NET_VCA_DEV_INFO struDevInfo;
WORD wDevInfoIvmsChannelEx;
BYTE byRes1[2];
DWORD dwRelativeTime;
DWORD dwAbsTime;
BYTE byTimeDiffFlag;
char cTimeDifferenceH;
char cTimeDifferenceM;
BYTE byRes[49];
}NET_DVR_DEFOCUS_ALARM,*LPNET_DVR_DEFOCUS_ALARM;
Members
dwSize
413
Device Network SDK (General) Developer Guide
Structure size.
struDevInfo
Front-end device information, refer to the structure NET_VCA_DEV_INFO for details.
wDevInfoIvmsChannelEx
Extended the parameter byIvmsChannel in NET_VCA_DEV_INFO , its value range is extended.
byRes1
Reserved, set to 0.
dwRelativeTime
Time of UTC ± 00:00, which is valid only when the value of byTimeDiffFlag is "1".
dwAbsTime
Local time.
byTimeDiffFlag
Whether the time difference parameter is valid: 0-invalid, 1-valid.
cTimeDifferenceH
Time difference between time and UTC time, unit: hour, the value is between -12 and +14 ("+"
indicates the east time zone), it is valid when byTimeDiffFlag is "1".
cTimeDifferenceM
Time difference between time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byTimeDiffFlag is "1".
byRes
Reserved, set to 0.
A.72 NET_DVR_DEVICEINFO_V30
Device parameter structure (V30).
414
Device Network SDK (General) Developer Guide
415
Device Network SDK (General) Developer Guide
416
Device Network SDK (General) Developer Guide
417
Device Network SDK (General) Developer Guide
Remarks
• The maximum number of digital channels equal to byIPChanNum+byHighDChanNum*256.
• For login via text protocol, the following parameters are not supported: byMainProto,
bySubProto, bySupport, bySupport1, bySupport2, bySupport3, bySupport4, bySupport5,
bySupport6, bySupport7, byMultiStreamProto, byStartDTalkChan, byVoiceInChanNum,
byStartVoiceInChanNo, byMirrorChanNum, and wStartMirrorChanNo.
See Also
NET_DVR_DEVICEINFO_V40
A.73 NET_DVR_DEVSERVER_CFG
Structure of module service configuration
Structure Definition
struct{
DWORD dwSize;
BYTE byIrLampServer;
BYTE bytelnetServer;
BYTE byABFServer;
BYTE byEnableLEDStatus;
BYTE byEnableAutoDefog;
BYTE byEnableSupplementLight;
BYTE byEnableDeicing;
BYTE byEnableVisibleMovementPower;
BYTE byEnableThermalMovementPower;
BYTE byEnablePtzPower;
BYTE byPowerSavingControl;
BYTE byCaptureWithSupplimentLightEnabled;
BYTE byRes[244];
}NET_DVR_DEVSERVER_CFG,*LPNET_DVR_DEVSERVER_CFG;
Members
dwSize
418
Device Network SDK (General) Developer Guide
Structure size
byIrLampServer
IR lamp settings: 0- disable, 1- enable
bytelnetServer
Telnet settings: 0- disable, 1- enable
byABFServer
ABF settings: 0- enable, 1- disable
byEnableLEDStatus
LED light setting: 0-disable, 1-enable
byEnableAutoDefog
Auto defog control: 0- enable, 1- disable
byEnableSupplementLight
Supplement light control: 0- enable, 1- disable
byEnableDeicing
Enable deicing function: 0- No, 1- Yes
byEnableVisibleMovementPower
Enable visible light function: 0- No, 1- Yes
byEnableThermalMovementPower
Enable thermal imaging function: 0- No, 1- Yes
byEnablePtzPower
Enable PTZ: 0- No, 1- Yes
byPowerSavingControl
Low-power consumption strategy: 0-reserved, 1-sleepy mode, 2-low-power mode. When in low-
power mode, the visible light, thermal imaging, and PTZ function will all take effect.
byCaptureWithSupplimentLightEnabled
Enable snapshot supplement light or not: 0-disable, 1-enable
byRes
reserved
Remarks
• Only admin user can set the telnet.
• ABF: Auto Back Focus, which realizes the focus adjustment of the sensor. While, normal focus
mode only realizes the auto or manual focus adjustment of the lens.
419
Device Network SDK (General) Developer Guide
A.74 NET_DVR_DEV_CHAN_INFO_EX
Structure about front-end device information.
Structure Definition
struct{
BYTE byChanType;
BYTE byStreamId[STREAM_ID_LEN/*32*/];
BYTE byRes1[3];
DWORD dwChannel;
BYTE byRes2[24];
BYTE byAddress[MAX_DOMAIN_NAME/*64*/];
WORD wDVRPort;
BYTE byChannel;
BYTE byTransProtocol;
BYTE byTransMode;
BYTE byFactoryType;
BYTE byDeviceType;
BYTE byDispChan;
BYTE bySubDispChan;
BYTE byResolution;
BYTE byRes[2];
BYTE sUserName[NAME_LEN/*32*/];
BYTE sPassword[PASSWD_LEN/*16*/];
}NET_DVR_DEV_CHAN_INFO_EX,*LPNET_DVR_DEV_CHAN_INFO_EX;
Members
byChanType
Channel type: 0-normal channel, 1-channel-zero, 2-stream ID, 3-local input source
byStreamId
Stream ID, it is valid only when the byChanType is 2.
byRes1
Reserved
dwChannel
Channel No., it is valid only when the byChanType is 0, 1, 3. If the channel type is local input
source, this member is the local source index No.
byRes2
Reserved
byAddress
Device IP address or domain name
wDVRPort
Device port number
420
Device Network SDK (General) Developer Guide
byChannel
Invalid
byTransProtocol
Transfer protocol type: 0-TCP, 1-UDP
byTransMode
Stream mode: 0-main stream, 1-sub-stream
byFactoryType
Front-end device manufacturer
byDeviceType
Device type (for MVC only): 1-network camera, 2-encoding device
byDispChan
Display channel No.
bySubDispChan
Sub display channel No.
byResolution
Resolution: 1- CIF, 2- 4CIF, 3- 720P, 4- 1080P, 5- 500W
byRes
Reserved, set to 0.
sUserName
User name for log in to device.
sPassword
Device password.
See Also
NET_DVR_DEC_STREAM_DEV_EX
A.75 NET_DVR_DIRECTION
Direction structure.
Structure Definition
struct {
NET_VCA_POINT struStartPoint;
NET_VCA_POINT struEndPoint;
}NET_DVR_DIRECTION, *LPNET_DVR_DIRECTION;
421
Device Network SDK (General) Developer Guide
Members
struStartPoint
Start point of the direction, see details in the structure .
struEndPoint
End point of the direction, see details in the structure .
A.76 NET_DVR_DISKSTATE
Table A-14 HDD Status Structure
Member Data Type Description
dwVolume DWORD HDD capacity, unit: MB.
dwFreeSpace DWORD Free space of HDD, unit: MB.
dwHardDiskStatic DWORD HDD status: 0-active, 1-sleepy, 2-exception, 3-
sleepy HDD error, 4-unformatted, 5-network
disconnected, 6-formatting.
A.77 NET_DVR_DISK_QUOTA
Disk quota information structure
Structure Definition
struct{
BYTE byQuotaType;
BYTE byRes1[5];
WORD wStoragePeriod;
DWORD dwHCapacity;
DWORD dwLCapacity;
DWORD dwHUsedSpace;
DWORD dwLUsedSpace;
BYTE byQuotaRatio;
BYTE byRes2[21];
}NET_DVR_DISK_QUOTA,*LPNET_DVR_DISK_QUOTA;
Members
byQuotaType
Disk quota type: 1-by capacity, 2-by proportion, 3-by time.
byRes1
Reserved.
422
Device Network SDK (General) Developer Guide
wStoragePeriod
Video saving period, unit: day, it is valid when byQuotaType is 3.
dwHCapacity
High 32-bit of allocated disk capacity, unit: MB
dwLCapacity
Low 32-bit of allocated disk capacity, unit: MB
dwHUsedSpace
High 32-bit of used disk capacity, unit: MB
dwLUsedSpace
Low 32-bit of used disk capacity, unit: MB
byQuotaRatio
Allocated disk proportion, unit: %
byRes2
Reserved.
See Also
A.78 NET_DVR_DISK_QUOTA_CFG
Disk quota settings structure
Structure Definition
struct{
DWORD dwSize;
NET_DVR_DISK_QUOTA struPicQuota;
NET_DVR_DISK_QUOTA struRecordQuota;
BYTE res2[60];
}NET_DVR_DISK_QUOTA_CFG,*LPNET_DVR_DISK_QUOTA_CFG;
Members
dwSize
Structure size.
struPicQuota
Disk capacity for saving pictures, refer to the structure for details.
struRecordQuota
Disk capacity for saving videos, refer to the structure for details.
res2
423
Device Network SDK (General) Developer Guide
Reserved, set to 0.
A.79 NET_DVR_DISK_QUOTA_CFG_V60
Structure about disk quota parameters.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_DISK_QUOTA_V60 struPicQuota;
NET_DVR_DISK_QUOTA_V60 struRecordQuota;
NET_DVR_DISK_QUOTA_V60 struAddInfoQuota;
NET_DVR_DISK_QUOTA_V60 struPubInfoFile;
BYTE byRes[256];
}NET_DVR_DISK_QUOTA_CFG_V60, *LPNET_DVR_DISK_QUOTA_CFG_V60;
Members
dwSize
Structure size.
struPicQuota
Picture quota, see details in the structure NET_DVR_DISK_QUOTA_V60 .
struRecordQuota
Video quota, see details in the structure NET_DVR_DISK_QUOTA_V60 .
struAddInfoQuota
Additional information quota, see details in the structure NET_DVR_DISK_QUOTA_V60 . This
member is only used for the cloud storage server, and currently only additional information of
heat map and people counting is supported.
struPubInfoFile
Information release file quota, see details in the structure NET_DVR_DISK_QUOTA_V60 .
byRes
Reserved, set to 0.
A.80 NET_DVR_DISK_QUOTA_V60
Structure about the disk quota information.
Structure Definition
struct{
BYTE byQuotaType;
424
Device Network SDK (General) Developer Guide
BYTE byRes1[5];
WORD wStoragePeriod;
DWORD dwHCapacity;
DWORD dwLCapacity;
DWORD dwHUsedSpace;
DWORD dwLUsedSpace;
BYTE byQuotaRatio;
BYTE byRes2[23];
}NET_DVR_DISK_QUOTA_V60, *LPNET_DVR_DISK_QUOTA_V60;
Members
byQuotaType
Disk quota type: 1-by capacity, 2-by proportion, 3-by time.
byRes1
Reserved.
wStoragePeriod
Video saving period, unit: day, it is valid when byQuotaType is 3.
dwHCapacity
High 32-bit of allocated disk capacity, unit: MB.
dwLCapacity
Low 32-bit of allocated disk capacity, unit: MB.
dwHUsedSpace
High 32-bit of used disk capacity, unit: MB.
dwLUsedSpace
Low 32-bit of used disk capacity, unit: MB.
byQuotaRatio
Allocated disk proportion, unit: %.
byRes2
Reserved.
A.81 NET_DVR_DDE_PARAM
DDE parameter structure
Structure Definition
struct{
BYTE byMode;
BYTE byNormalLevel;
BYTE byExpertLevel;
425
Device Network SDK (General) Developer Guide
BYTE byRes[5];
}NET_DVR_DDE_PARAM,*LPNET_DVR_DDE_PARAM;
Members
byMode
DDE mode: 1-disabled, 2-normal mode, 3-expert mode.
byNormalLevel
Normal mode level, value range: [1,100], it is valid when byMode is set to 2.
byExpertLevel
Expert mode level, value range: [1,100], it is valid when byMode is set to 3.
byRes
Reserved, set to 0.
A.82 NET_DVR_DDNS_STREAM_CFG
Structure about IP Server and stream server configuration.
Structure Definition
struct{
BYTE byEnable;
BYTE byRes1[3];
NET_DVR_IPADDR struStreamServer;
WORD wStreamServerPort;
BYTE byStreamServerTransmitType;
BYTE byRes2;
NET_DVR_IPADDR struIPServer;
WORD wIPServerPort;
BYTE byRes3[2];
BYTE sDVRName[NAME_LEN/*32*/];
WORD wDVRNameLen;
WORD wDVRSerialLen;
BYTE sDVRSerialNumber[SERIALNO_LEN/*48*/];
BYTE sUserName[NAME_LEN/*32*/];
BYTE sPassWord[PASSWD_LEN/*16*/];
WORD wDVRPort;
BYTE byRes4[2];
BYTE byChannel;
BYTE byTransProtocol;
BYTE byTransMode;
BYTE byFactoryType;
}NET_DVR_DDNS_STREAM_CFG, *LPNET_DVR_DDNS_STREAM_CFG;
Members
byEnable
426
Device Network SDK (General) Developer Guide
427
Device Network SDK (General) Developer Guide
A.83 NET_DVR_DEVICEINFO_V40
428
Device Network SDK (General) Developer Guide
429
Device Network SDK (General) Developer Guide
Remarks
• Four character types are allowed in the password, including digits, lowercase letters, uppercase
letters and symbols. The maximum password length is 16 bits, and there are four password
strength levels, see details below:
• Level 0 (Risky Password): The password length is less than 8 bits, or only contains one kind of
the character types. Or the password is the same with the user name, or is the mirror writing
of the user name.
• Level 1 (Weak Password): The password length is more than or equal to 8 bits, and contains
two kinds of the character types. Meanwhile, the combination should be (digits + lowercase
letters) or (digits + uppercase letters).
• Level 2 (Medium Password): The password length is more than or equal to 8 bits, and contains
two kinds of the character types. Meanwhile, the combination cannot be (digits + lowercase
letters) and (digits + uppercase letters).
• Level 3 (Strong Password): The password length is more than or equal to 8 bits, and at least
contains three kinds of the character types.
• For login via text protocol, the following parameters are not supported: bySupportLock,
byRetryLoginTime, byPasswordLevel, byProxyType, dwSurplusLockTime, byCharEncodeType,
and bySupportDev5.
430
Device Network SDK (General) Developer Guide
A.84 NET_DVR_DNMODE
Structure about day and night mode parameters of motion detection .
Structure Definition
struct{
BYTE byObjectSize;
BYTE byMotionSensitive;
BYTE byRes[6];
}NET_DVR_DNMODE, *LPNET_DVR_DNMODE;
Members
byObjectSize
Object size, the ratio between motion object and configured motion region, ranges from 0 to
100 (only detect the object with size larger than byObjectSize)
byMotionSensitive
Motion detection sensitivity, ranges from 1 to 100, the larger the more sensitivity, 0xff-disabled
byRes
Reserved, set to 0
See Also
NET_DVR_MOTION_MULTI_AREAPARAM
A.85 NET_DVR_DPC_PARAM
431
Device Network SDK (General) Developer Guide
Remarks
Control type, details as follows:
wCtrlType Macro Definition Value Description
DPC_CORRECT 1 Defective pixel correction
DPC_CORRECT_CANCEL 2 Cancel correction
DPC_CROSS_DISPALY_OPEN 3 Enable the crossed display of defective pixel
detection.
DPC_CROSS_DISPALY_CLOSE 4 Disable the crossed display of defective pixel
detection.
DPC_POINT 5 Defective pixel correction coordinates
DPC_UP 6 The defective pixel coordinate is upward
offset.
DPC_DOWN 7 The defective pixel coordinate is downward
offset.
DPC_RIGHT 8 The defective pixel coordinate is offset
towards right.
DPC_LEFT 9 The defective pixel coordinate is offset
towards left.
DPC_ALL_CORRECT 10 All the defective pixels correction.
DPC_SAVE 11 Save the defective pixels.
A.86 NET_DVR_ELECTRONICSTABILIZATION
Parameter structure of electronic image stabilization
Structure Definition
struct{
BYTE byEnable;
432
Device Network SDK (General) Developer Guide
BYTE byLevel;
BYTE byRes[6];
}NET_DVR_ELECTRONICSTABILIZATION,*LPNET_DVR_ELECTRONICSTABILIZATION;
Members
byMode
Whether to enable electronic image stabilization: 0-no, 1-yes.
byLevel
Level, value range: [0, 100]
byRes
Reserved, set to 0.
A.87 NET_DVR_ETHERNET_V30
A.88 NET_DVR_EVENT_CAPTURE_V40
Structure about parameters for capturing event pictures.
433
Device Network SDK (General) Developer Guide
Structure Definition
struct{
NET_DVR_JPEGPARA struJpegPara;
DWORD dwPicInterval;
NET_DVR_REL_CAPTURE_CHAN_V40 struRelCaptureChan[MAX_PIC_EVENT_NUM/*32*/];
NET_DVR_REL_CAPTURE_CHAN_V40 struAlarmInCapture[MAX_ALARMIN_CAPTURE/*16*/];
DWORD dwMaxGroupNum;
BYTE byCapTimes;
BYTE byRes[59];
}NET_DVR_EVENT_CAPTURE_V40, *LPNET_DVR_EVENT_CAPTURE_V40;
Members
struJpegPara
Quality of the captured event picture, see details in the structure NET_DVR_JPEGPARA .
dwPicInterval
Time interval of capturing event pictures which is between 500 and 65535, unit: ms.
struRelCaptureChan
The array subscript are shown below: 0-motion detection, 1-tampering alarm, 2-video loss, 3-
PIR alarm, 4-wireless alarm, 5-distress alarm, 6-intelligent capture, 7-face detection, 8-line
crossing detection, 9-intrusion detection, 10-scene change detection, 11-region entering
detection, 12-region exiting detection, 13-loitering detection, 14-people gathering detection,
15-rapid motion detection, 16-parking detection, 17-unattended baggage detection, 18-object
removal detection. For example, struRelCaptureChan[0] indicates that the motion detection will
trigger capture, see details in the structure NET_DVR_REL_CAPTURE_CHAN_V40 .
struAlarmInCapture
Alarm input that triggered capture. For example, struAlarmInCapture[0] indicates alarm input
1, and so forth, see details in the structure NET_DVR_REL_CAPTURE_CHAN_V40 .
dwMaxGroupNum
Maximum number of alarm input groups supported by the device. Each group contains 16
alarm inputs.
byCapTimes
Number of captured pictures.
byRes
Reserved.
A.89 NET_DVR_EXCEPTION_V40
Structure of exception parameters(expanded).
434
Device Network SDK (General) Developer Guide
Sturcture Definition
struct{
DWORD dwSize;
DWORD dwMaxGroupNum;
NET_DVR_HANDLEEXCEPTION_V41 struExceptionHandle[MAX_EXCEPTIONNUM_V30];
BYTE byRes[128];
}NET_DVR_EXCEPTION_V40,*LPNET_DVR_EXCEPTION_V40;
Members
dwSize
Structure size
dwMaxGroupNum
Max. number of exception type groups supported by the device (read only)
struExceptionHandle
Exception handle mode, see the structure NET_DVR_HANDLEEXCEPTION_V41 for details. The
exception types are shown below:
array[0]-HDD full
array[1]- HDD fault
array[2]- Network broken
array[3]- IP address conflict
array[4]- Illegal access
array[5]- Video input/output standard mismatch
array[6]- Video signal exception
array[7]- Recording exception
array[8]- RAID exception
array[9]- Recording resolution does not match with which of front-end camera
array[10]- Over driving
array[11]- Hot standby exception (for N+1)
array[12]- Temperature exception
array[13]- Sub-system exception
array[14]- Fan exception
array[15]- POE power supply exception
array[16]- POC exception
array[17]- Supply voltage exception
byRes
Reserved, set to 0.
435
Device Network SDK (General) Developer Guide
A.90 NET_DVR_EXPOSURE
CCD exposure control parameter structure.
Structure Definition
struct{
BYTE byExposureMode;
BYTE byAutoApertureLevel;
BYTE byRes[2];
DWORD dwVideoExposureSet;
DWORD dwRes;
}NET_DVR_BACKGROUND_PIC_CFG,*LPNET_DVR_BACKGROUND_PIC_CFG;
Members
byExposureMode
Exposure mode: 0-manual, 1-auto.
byAutoApertureLevel
Auto iris sensitivity, its value is between 0 and 10.
byRes
Reserved, set to 0.
dwVideoExposureSet
Custom video exposure time (unit: us), it is the minimum value when in auto exposure mode.
dwExposureUserSet
Custom exposure time (unit: us), it is snapshot shutter speed when snapshot in CCD mode.
dwRes
Reserved, set to 0.
A.91 NET_DVR_EZVIZ_ACCESS_CFG
Hik-Connect access parameter structure
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byDeviceStatus;
BYTE byAllowRedirect;
BYTE byDomainName[MAX_DOMAIN_NAME/*64*/];
BYTE byRes1;
BYTE byVerificationCode[NET_SDK_MAX_VERIFICATION_CODE_LEN/*32*/];
436
Device Network SDK (General) Developer Guide
BYTE byNetMode;
BYTE byOfflineStatus;
BYTE byRes2[2];
BYTE byOperateCode[NET_SDK_MAX_OPERATE_CODE_LEN/*64*/];
BYTE byRes[344];
}NET_DVR_EZVIZ_ACCESS_CFG,*LPNET_DVR_EZVIZ_ACCESS_CFG;
Members
dwSize
Structure size.
byEnable
Whether to access to Hik-Connect: 0-no, 1-yes.
byDeviceStatus
Device status: 0-reserved, 1-online, 2-offline
byAllowRedirect
Whether supports redirection: 0-reserved, 1-yes, 2-no
byDomainName
Domain name
byRes1
Reserved.
byVerificationCode
Verification code for Hik-Connect.
byNetMode
Network mode: 0-reserved; 1-auto, 2-wired network in priority, 3-wired network, 4-wireless
network.
byOfflineStatus
Device offline details: 0-reserved, 1-invalid verification code. This member is read-only, and it is
valid only when DeviceStatus is 2.
byRes2
Reserved
byOperateCode
Operation code, which is used for binding device.
byRes
Reserved.
437
Device Network SDK (General) Developer Guide
A.92 NET_DVR_FACEDETECTION_SEARCHCOND
Condition structure for searching videos recorded based on face detection.
Structure Definition
struct{
NET_VCA_POLYGON struFacePolygon;
DWORD dwPreTime;
DWORD dwDelayTime;
BYTE byRes[5972];
}NET_DVR_FACEDETECTION_SEARCHCOND,*LPNET_DVR_FACEDETECTION_SEARCHCOND;
Members
struFacePolygon
Face detection region parameters, refer to the structure for details.
dwPreTime
Pre-alarm time, unit: second.
dwDelayTime
Post-alarm time, unit: second.
byRes
Reserved, set to 0.
See Also
A.93 NET_DVR_FACE_PIC_DATA_INFO
Condition structure for face thumbnail dual-VCA.
Structure Definition
struct{
DWORD dwImageLen;
NET_VCA_RECT struVcaRect;
DWORD dwFaceScore;
BYTE byVcaRectOnly;
BYTE byRes1[3];
DWORD dwPID;
DWORD dwFaceSearchNum;
NET_VCA_RECT struMultiVcaRect[NET_DVR_MAX_FACE_SEARCH_NUM/*5*/];
BYTE byRes[136];
438
Device Network SDK (General) Developer Guide
DWORD *pImage;
}NET_DVR_FACE_PIC_DATA_INFO, *LPNET_DVR_FACE_PIC_DATA_INFO;
Members
dwImageLen
Picture size, it is valid when byVcaRectOnly is "0".
struVcaRect
Position coordinates of face thumbnail in the picture (normalized coordinates), it is valid when
byVcaRectOnly is "0". Refer to the structure for details.
dwFaceScore
Similarity, value range: from 0 to 100.
byVcaRectOnly
Whether to upload picture ID and coordinates: 0-no, 1-yes.
byRes1
Reserved.
dwPID
Picture ID, it is valid when byVcaRectOnly is "1".
dwFaceSearchNum
Number of regions to search face, it is valid when byVcaRectOnly is "1".
struMultiVcaRect
Position coordinates of face thumbnails in the picture (normalized coordinates), it is valid when
byVcaRectOnly is "1". Each array indicates a face thumbnail. Refer to the structure for details.
byRes
Reserved, set to 0.
pImage
Buffer for saving picture data, the picture format is JPG, it is valid when byVcaRectOnly is "0".
See Also
A.94 NET_DVR_FACE_SUB_PIC_INFO
Structure about human body recognition results.
Structure Definition
struct{
DWORD dwSimilarity;
NET_VCA_RECT struVcaRect;
439
Device Network SDK (General) Developer Guide
BYTE byRes2[236];
}NET_DVR_FACE_SUB_PIC_INFO, *LPNET_DVR_FACE_SUB_PIC_INFO;
Members
dwSimilarity
Similarity, value range: from 0 to 100.
struVcaRect
Face region coordinates (normalized coordinates). refer to the structure for details.
byRes2
Reserved, set to 0.
See Also
A.95 NET_DVR_FFC_PARAM
FFC parameter structure
Structure Definition
struct{
BYTE byMode;
BYTE byRes1;
WORD wCompensateTime;
BYTE byRes2[4];
}NET_DVR_FFC_PARAM,*LPNET_DVR_FFC_PARAM;
Members
byMode
FFC mode: 1-scheduled mode, 2-temperature mode, 3-disabled
byRes1
Reserved, set to 0.
wCompensateTime
Time (it is valid when the byMode is set to "1"), unit: minute, value: 10, 20, 30, 40, 50, 60, 120,
180, 240.
byRes2
Reserved, set to 0.
440
Device Network SDK (General) Developer Guide
A.96 NET_DVR_FILECOND_V50
File search condition structure.
Structure Definition
struct{
NET_DVR_STREAM_INFO struStreamID;
NET_DVR_TIME_SEARCH_COND struStartTime;
NET_DVR_TIME_SEARCH_COND struStopTime;
BYTE byFindType;
BYTE byDrawFrame;
BYTE byQuickSearch;
BYTE byStreamType;
DWORD dwFileType;
DWORD dwVolumeNum;
BYTE byIsLocked;
BYTE byNeedCard;
BYTE byOnlyAudioFile;
BYTE bySpecialFindInfoType;
char szCardNum[32];
char szWorkingDeviceGUID[16];
NET_DVR_SPECIAL_FINDINFO_UNION uSpecialFindInfo;
DWORD dwTimeout;
BYTE byRes[252];
}NET_DVR_FILECOND_V50, *LPNET_DVR_FILECOND_V50;
Memebers
struStreamID
Stream ID or channel No., see details in the structure of NET_DVR_STREAM_INFO .
struStartTime
Start time, see details in the structure of NET_DVR_TIME_SEARCH_COND .
struStopTime
End time, see details in the structure of NET_DVR_TIME_SEARCH_COND .
byFindType
File storage type for search: 0-search in normal volume, 1-search in storage volume, 2-search in
N+1 hot spare.
byDrawFrame
Whether to extract the frame: 0-no, 1-yes.
byQuickSearch
Whether to enable searching by calendar: 0-no, 1-yes.
byStreamType
Stream types: 0-main stream, 1-sub-stream, 2-third stream, 0xff-all.
441
Device Network SDK (General) Developer Guide
dwFileType
File types.
dwVolumeNum
Storage volume No., it is valid only when byFindType is 1.
byIsLocked
Whether to lock the file: 0-no, 1-yes, 0xff-lock or unlock all files.
byNeedCard
Whether the card search is required: 0-no, 1-yes.
byOnlyAudioFile
Audio or video file: 0-video file, 1-audio file.
bySpecialFindInfoType
Search condition type: 0-invalid, 1-search files with ATM information
szCardNum
Card No.,it is valid only when byNeedCard is 1.
szWorkingDeviceGUID
Working station GUID, which is obtained from N+1 hot spare, it is valid only when byFindType is
2.
uSpecialFindInfo
Specific search condition union, see details in NET_DVR_SPECIAL_FINDINFO_UNION .
dwTimeout
Timeout time of searching for files, value range: [5000,15000], 0-no changes of timeout time.
Unit: millisecond.
byRes
Reserved.
Remarks
For login based on ISAPI protocol, only the continuously recorded video can be searched.
Related API
NET_DVR_FindFile_V50
A.97 NET_DVR_FIND_LOG_COND
Structure about log search conditions.
442
Device Network SDK (General) Developer Guide
Structure Definition
struct{
DWORD dwSelectMode;
DWORD dwMainType;
DWORD dwSubType;
NET_DVR_TIME_V50 struStartTime;
NET_DVR_TIME_V50 struEndTime;
BOOL bOnlySmart;
BYTE byRes[128];
}NET_DVR_FIND_LOG_COND, *LPNET_DVR_FIND_LOG_COND;
Members
dwSelectMode
Search mode: 0-search all, 1-search by type, 2-search by time, 3-search by time and type.
dwMainType
Major log type.
dwSubType
Minor log type.
struStartTime
Start time of search, refer to the structure for details.
struStopTime
End time of search, refer to the structure for details.
bOnlySmart
Whether to search for log files with SMART information only: 0-no, 1-yes.
byRes
Reserved, set to 0.
Related API
NET_DVR_FindDVRLog_V50
A.98 NET_DVR_FINDDATA_V50
Structure about file search information.
Structure Definition
struct{
char sFileName[100];
NET_DVR_TIME_SEARCH struStartTime;
NET_DVR_TIME_SEARCH struStopTime;
NET_DVR_ADDRESS struAddr;
443
Device Network SDK (General) Developer Guide
DWORD dwFileSize;
BYTE byLocked;
BYTE byFileType;
BYTE byQuickSearch;
BYTE byStreamType;
DWORD dwFileIndex;
char sCardNum[32];
BYTE byRes[256];
}NET_DVR_FINDDATA_V50,*LPNET_DVR_FINDDATA_V50;
Members
sFileName
File name, it is invalid when searching by time.
struStartTime
File start time, see details in the structure .
struStopTime
File stop time, see details in the structure .
struAddr
Video segment address, see details in the structure , which is used for cluster playback.
dwFileSize
File size.
byLocked
Whether the file is locked: 0-no, 1-yes.
byFileType
Video file type, it is valid when searching by time. 0-continuous recording, 1- motion detection,
2- alarm triggered, 3- motion detection | alarm, 4-motion detection & alarm, 5-command
triggered, 6- manual recording, 7-VCA recording, 10-PIR alarm, 11-wireless alarm, 12-panic
alarm, 13-all, 14-intelligent traffic events, 15-line crossing, 16-intrusion, 17-sound exception, 18-
scene change, 19-line crossing|intrusion|face detection|sound exception|scene change, 20-
face detection, 21-sensor, 22-callback, 23-copy back recording, 24-video tampering, 25-POS
recording, 26-region entrance, 27-region exiting, 28-loitering detection, 29-people gathering,
30-fast moving, 31-parking detection, 32-unattended baggage, 33-object removal, 34-fire
source detection, 35-tampering detection, 36-ship detection, 37-temperature pre-alarm, 38-
temperature alarm, 39-fight detection, 40-getting up detection, 41-sleepy detection, 42-
temperature difference alarm, 43-offline temperature measurement alarm, 44-zone alarm, 45-
panic alarm, 46-inquiry service, 47-getting up detection, 48-climbing detection, 49-in-toilet
overtime, 50-running detection, 51-playground overstay detection, 75-dredger detection alarm.
It is valid when searching by time.
444
Device Network SDK (General) Developer Guide
Note
When logging in to device by ISAPI method, only continuous recording is supported.
byQuickSearch
Search result type, 0-result of normal search, 2-result of searching by time.
byStreamType
Stream type: 0-main stream, 1-sub-stream, 2-third stream.
dwFileIndex
File No.
sCardNum
Card No.
byRes
Reserved.
Remarks
When logging in to device by ISAPI method, the following parameters byLocked, byQuickSearch,
byStreamType, dwFileIndex, and sCard are not supported.
Related API
NET_DVR_FindNextFile_V50
A.99 NET_DVR_FIND_LABEL
Condition structure for searching video tags.
Structure Definition
struct{
DWORD dwSize;
LONG lChannel;
NET_DVR_TIME struStartTime;
NET_DVR_TIME struStopTime;
BYTE sLabelName[LABEL_NAME_LEN/*40*/];
BYTE byDrawFrame;
BYTE byISO8601;
signed char cStartTimeDifferenceH;
signed char cStartTimeDifferenceM;
signed char cStopTimeDifferenceH;
signed char cStopTimeDifferenceM;
BYTE byRes[34];
}NET_DVR_FIND_LABEL,*LPNET_DVR_FIND_LABEL;
445
Device Network SDK (General) Developer Guide
Members
dwSize
Structure size.
lChannel
No. of channel to be searched.
struStartTime
Start time of search, refer to the structure for details.
struStopTime
End time of search, refer to the structure for details.
sLabelName
Video tag name, if this parameter is set to "null", it indicates that all tags between the start time
and end time will be searched.
byDrawFrame
Whether to extract frame: 0-no, 1-yes.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cStartTimeDifferenceH
Time difference between start time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStartTimeDifferenceM
Time difference between start time and UTC time, unit: minute, the value is -30, +30, or +45
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceH
Time difference between stop time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceM
Time difference between stop time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byISO8601 is "1".
byRes
Reserved, set to 0.
Related API
NET_DVR_FindRecordLabel
446
Device Network SDK (General) Developer Guide
A.100 NET_DVR_FINDLABEL_DATA
Video tag information structure.
Structure Definition
struct{
BYTE sLabelName[LABEL_NAME_LEN/*40*/];
NET_DVR_TIME struTimeLabel;
NET_DVR_LABEL_IDENTIFY struLabelIdentify;
BYTE byISO8601;
signed char cTimeDifferenceH;
signed char cTimeDifferenceM;
BYTE byRes1[32];
}NET_DVR_FINDLABEL_DATA,*LPNET_DVR_FINDLABEL_DATA;
Members
sLabelName
Video tag name.
struTimeLabel
Video tag time, refer to the structure for details.
struLabelIdentify
Video tag ID, refer to the structure for details.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cTimeDifferenceH
Time difference between tag time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cTimeDifferenceM
Time difference between tag time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byISO8601 is "1".
byRes
Reserved, set to 0.
Related API
NET_DVR_FindNextLabel
447
Device Network SDK (General) Developer Guide
A.101 NET_DVR_FIND_PICTURE_PARAM
Picture search condition structure.
Structure Definition
struct{
DWORD dwSize;
LONG lChannel;
BYTE byFileType;
BYTE byNeedCard;
BYTE byProvince;
BYTE byEventType;
BYTE byRes1;
BYTE sCardNum[CARDNUM_LEN_V30/*40*/];
NET_DVR_TIME struStartTime;
NET_DVR_TIME struStopTime;
DWORD dwTrafficType;
DWORD dwVehicleType;
DWORD dwIllegalType;
BYTE byLaneNo;
BYTE bySubHvtType;
BYTE byRes2[2];
char sLicense[MAX_LICENSE_LEN/*16*/];
BYTE byRegion;
BYTE byCountry;
BYTE byArea;
BYTE byISO8601;
signed char cStartTimeDifferenceH;
signed char cStartTimeDifferenceM;
signed char cStopTimeDifferenceH;
signed char cStopTimeDifferenceM;
}NET_DVR_FIND_PICTURE_PARAM,*LPNET_DVR_FIND_PICTURE_PARAM;
Members
dwSize
Structure size.
lChannel
Channel No.
byFileType
Picture capture types: 0-continuous capture, 1-capture based on motion detection, 2- capture
based on alarm, 3-capture based on motion detection or alarm, 4-capture based on motion
detection and alarm, 6-manual capture, 9-intelligent picture, 10-capture based on PIR alarm,
11-capture based on wireless alarm, 12-capture based on panic alarm, 0xa-capture during live
view, 0xd-capture based on face detection, 0xe-captured based on line crossing detection, 0xf-
448
Device Network SDK (General) Developer Guide
captured based on intrusion detection, 0x10-capture based on scene change detection, 0x11-
capture during playback, 0x12-capture based on VCA detection, 0x13-capture based on region
entrance detection, 0x14-capture based on region exiting detection, 0x15-capture based on
loitering detection, 0x16-capture based on people gathering detection, 0x17-capture based on
fast moving detection, 0x18-capture based on parking detection, 0x19-captured based on
unattended baggage detection, 0x1a-captured based on object removal detection, 0x1b-capture
based on license plate detection, 0x1c-capture based on multi-target-type detection, 0x1d-
capture based on traffic law enforcement, 0x1e-capture based on fire source detection, 0x1f-
capture based on vandal-proof detection, 0x20-capture based on ship detection, 0x21-capture
based on temperature pre-alarm, 0x22-capture based on temperature alarm, 0x23-capture
based on temperature difference alarm, 0x24-capture based on illegal parking detection, 0x25-
face capture, 0x26-capture based on offline thermometry alarm, 0x2a-capture based on getting
up detection, 0x2b-capture based on climbing detection,0x2c-capture based on in-toilet
overtime alarm, 0x2d-capture based on hard hat detection, 0x2e-perimeter capture, 0x2f-
capture human body, 0x30-face capture and modeling, 0x31-multi-target-type detection, 0x32-
zone alarm, 0x33-panic alarm, 0x34-business consulting, 0x35-capture based on unregistered
street vendor detection, 0x36-capture based on people density detection (number of people
pre-alarm), 0x37-capture based on absence detection, 0x38-capture based on number of
people exception detection, 0x39-capture based on violent motion detection, 0x3a-capture
based on illegal parking detection, 0x3b-capture based on wrong-way driving detection, 0x3c-
capture based on driving on the lane line detection, 0x3d-capture based on motor vehicle on
non-vehicle lane detection, 0x3e-capture based on illegal lane change detection, 0x3f-capture
based on U-turning detection, 0x40-capture based on pedestrian detection, 0x41-capture based
on roadblock detection, 0x42-capture based on thrown object detection, 0x43-capture based on
fog detection, 0x44-capture based on construction detection, 0x45-capture based on congestion
detection, 0x46-capture based on traffic accident detection, 0x47-capture based on parallel
parking detection, 0x48-trigger alarm manually, 0x4d-dredger detection alarm, 0x52-capture
based on people queuing-up detection, 0x53-capture based on waiting time detection, 0x54-
capture based on vehicle arming (including manual arming, ordinary arming, and platform
arming), 0x55-capture based on waking up by schedule, 0x56-capture based on exhaust
emission, 0x57-capture based on grayscale alarm, 0x58-capture based on vibration detection,
0xff-all types.
byNeedCard
Whether the card No. is required: 0-no, 1-yes
byProvince
Reserved, set to 0.
byEventType
Event types: 0-all, 1-traffic incident, 2-enforcement.
byRes1
Reserved.
sCardNum
449
Device Network SDK (General) Developer Guide
Card No.
struStartTime
Start time of search, refer to the structure for details.
struStopTime
End time of search, refer to the structure for details.
dwTrafficType
Picture search conditions (for intelligent traffic devices only).
enum _VCA_OPERATE_TYPE_{
VCA_LICENSE_TYPE = 0x1,
VCA_PLATECOLOR_TYPE = 0x2,
VCA_CARDNO_TYPE = 0x4,
VCA_PLATETYPE_TYPE = 0x8,
VCA_LISTTYPE_TYPE = 0x10,
VCA_INDEX_TYPE = 0x20,
VCA_OPERATE_INDEX_TYPE = 0x40
}VCA_OPERATE_TYPE
VCA_LICENSE_TYPE
License plate number.
VCA_PLATECOLOR_TYPE
License plate color.
VCA_CARDNO_TYPE
Card No.
VCA_PLATETYPE_TYPE
License plate type.
VCA_LISTTYPE_TYPE
Vehicle list type
VCA_INDEX_TYPE
Data serial No.
VCA_OPERATE_INDEX_TYPE
Operation No.
dwVehicleType
Vehicle type (for intelligent traffic devices only).
enum _VCA_VEHICLE_TYPE_{
VCA_OTHER_TYPE = 0x1,
VCA_SMALLCAR_TYPE = 0x2,
VCA_BIGCAR_TYPE = 0x4,
VCA_BUS_TYPE = 0x8,
VCA_TRUCK_TYPE = 0x10,
VCA_CAR_TYPE = 0x20,
450
Device Network SDK (General) Developer Guide
VCA_MINIBUS_TYPE = 0x40,
VCA_SMALL_TRUCK_TYPE = 0x80
}VCA_VEHICLE_TYPE
VCA_OTHER_TYPE
Other
VCA_SMALLCAR_TYPE
Small-sized vehicle
VCA_BIGCAR_TYPE
Large-sized vehicle
VCA_BUS_TYPE
Coach
VCA_TRUCK_TYPE
Track
VCA_CAR_TYPE
Car
VCA_MINIBUS_TYPE
Minibus
VCA_SMALL_TRUCK_TYPE
Mini track
dwIllegalType
Violation detection type (for intelligent traffic devices only).
enum _VCA_ILLEGAL_TYPE_{
VCA_POSTPIC_TYPE = 0x1,
VCA_LOWSPEED_TYPE = 0x2,
VCA_HIGHSPEED_TYPE = 0x4,
VCA_RETROGRADE_TYPE = 0x8,
VCA_RUSH_REDLIGHT_TYPE = 0x10,
VCA_PRESS_LANE_TYPE = 0x20,
VCA_VIOLATE_GUIDE_TYPE = 0x40,
VCA_ROAD_STRAND_TYPE = 0x80,
VCA_VEHICLE_ILLEGAL_LANE_TYPE = 0x100,
VCA_ILLEGAL_LANE_CHANGE_TYPE = 0x200,
VCA_ILLEGAL_LANE_DRIVE_TYPE = 0x400,
VCA_VIOLATE_BAN_TYPE = 0x800,
VCA_CROSS_PARKING_TYPE = 0x1000,
VCA_GREEN_PARKING_TYPE = 0x2000
}VCA_ILLEGAL_TYPE
VCA_POSTPIC_TYPE
Checkpoint picture
451
Device Network SDK (General) Developer Guide
VCA_LOWSPEED_TYPE
Low speed
VCA_HIGHSPEED_TYPE
Overspeed
VCA_RETROGRADE_TYPE
Wrong-way driving
VCA_RUSH_REDLIGHT_TYPE
Red light running
VCA_PRESS_LANE_TYPE
Driving on lane line
VCA_VIOLATE_GUIDE_TYPE
Driving in wrong lane at intersection
VCA_ROAD_STRAND_TYPE
Intersection congestion
VCA_VEHICLE_ILLEGAL_LANE_TYPE
Motor vehicle on non-motor vehicle lane
VCA_ILLEGAL_LANE_CHANGE_TYPE
Illegal lane change
VCA_ILLEGAL_LANE_DRIVE_TYPE
Driving on wrong lane
VCA_VIOLATE_BAN_TYPE
Ban violation
VCA_CROSS_PARKING_TYPE
Parking at intersection
VCA_GREEN_PARKING_TYPE
Stopping at green light
byLaneNo
Lane No. (for intelligent traffic devices only), value range: [1, 99]
bySubHvtType
Sub search type of multi-target-type detection: 0-reserved, 1-motor vehicle, 2-non-motor
vehicle, 3-pedestrian
byRes2
Reserved, set as 0.
sLicense
License plate number, it is valid when byFileType is "0x1b".
452
Device Network SDK (General) Developer Guide
byRegion
Region No.: 0-reserved, 1-Europe, 2-Russian, 3-Europe and Russian (EU&CIS), 4-the Middle East,
0xff-all.
byCountry
Country index No., refer to COUNTRY_INDEX for details.
byArea
Area.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cStartTimeDifferenceH
Time difference between start time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStartTimeDifferenceM
Time difference between start time and UTC time, unit: minute, the value is -30, 0, +30, or +45
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceH
Time difference between stop time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceM
Time difference between stop time and UTC time, unit: minute, the value is -30, 0, +30, or +45
("+" indicates the east time zone), it is valid when byISO8601 is "1".
Related API
NET_DVR_FindPicture
A.102 NET_DVR_FIND_PICTURE_V50
Picture search result structure.
Structure Definition
struct{
char sFileName[PICTURE_NAME_LEN/*64*/];
NET_DVR_TIME struTime;
DWORD dwFileSize;
char sCardNum[CARDNUM_LEN_V30/*40*/];
BYTE byPlateColor;
BYTE byVehicleLogo;
BYTE byFileType;
BYTE byRecogResult;
453
Device Network SDK (General) Developer Guide
char sLicense[MAX_LICENSE_LEN/*16*/];
BYTE byEventSearchStatus;
BYTE byRes1[2];
BYTE byThermometryUnit;
float fFaceSnapTemperature;
NET_DVR_ADDRESS struAddr;
BYTE byISO8601;
signed char cTimeDifferenceH;
signed char cTimeDifferenceM;
BYTE byRes[68];
NET_DVR_PIC_EXTRA_INFO_UNION uPicExtraInfo;
}NET_DVR_FIND_PICTURE_V50,*LPNET_DVR_FIND_PICTURE_V50;
Members
sFileName
Picture name.
struTime
Picture time, refer to the structure for details.
dwFileSize
Picture size.
sCardNum
Card No.
byPlateColor
Vehicle color (for intelligent traffic device only), refer to the enumeration definition
VCA_PLATE_COLOR for details.
byVehicleLogo
Vehicle brand (for intelligent traffic device only).
byFileType
Picture capture types: 0-continuous capture, 1-capture based on motion detection, 2- capture
based on alarm, 3-capture based on motion detection or alarm, 4-capture based on motion
detection and alarm, 6-manual capture, 9-intelligent picture, 10-capture based on PIR alarm,
11-capture based on wireless alarm, 12-capture based on panic alarm, 0xa-capture during live
view, 0xd-capture based on face detection, 0xe-captured based on line crossing detection, 0xf-
captured based on intrusion detection, 0x10-capture based on scene change detection, 0x11-
capture during playback, 0x12-capture based on VCA detection, 0x13-capture based on region
entrance detection, 0x14-capture based on region exiting detection, 0x15-capture based on
loitering detection, 0x16-capture based on people gathering detection, 0x17-capture based on
fast moving detection, 0x18-capture based on parking detection, 0x19-captured based on
unattended baggage detection, 0x1a-captured based on object removal detection, 0x1b-capture
based on license plate detection, 0x1c-capture based on multi-target-type detection, 0x1d-
capture based on traffic law enforcement, 0x1e-capture based on fire source detection, 0x20-
454
Device Network SDK (General) Developer Guide
455
Device Network SDK (General) Developer Guide
Related API
NET_DVR_FindNextPicture_V50
A.103 NET_DVR_FOCUSMODE_CFG
456
Device Network SDK (General) Developer Guide
A.104 NET_DVR_GAIN
Parameter structure of CCD gain
struct{
BYTE byGainLevel;
BYTE byGainUserSet;
BYTE byRes[2];
DWORD dwMaxGainValue;
}NET_DVR_GAIN,*LPNET_DVR_GAIN;
Members
byGainLevel
Gain value, unit: dB, range: [0,100]
byGainUserSet
Customized gain value, unit: dB, range: [0,100]
byRes
Reserved, set to 0.
dwMaxGainValue
Maximum gain value, unit: dB.
A.105 NET_DVR_GAMMACORRECT
Gamma correction parameter structure
Structure Definition
struct{
BYTE byGammaCorrectionEnabled;
BYTE byGammaCorrectionLevel;
BYTE byRes[6];
}NET_DVR_GAMMACORRECT, *LPNET_DVR_GAMMACORRECT;
Members
byGammaCorrectionEnabled
Whether to enable Gamma correction: 0-no, 1-yes
byGammaCorrectionLevel
Correction level, which is between 0 and 100.
byRes
Reserved, set to 0.
457
Device Network SDK (General) Developer Guide
A.106 NET_DVR_GENERIC_DATA_CFG
A.107 NET_DVR_GENERIC_END
A.108 NET_DVR_GENERIC_START
458
Device Network SDK (General) Developer Guide
A.109 NET_DVR_GET_STREAM_UNION
Union of streaming mode.
Structure Definition
union{
NET_DVR_IPCHANINFO struChanInfo;
NET_DVR_PU_STREAM_CFG_V41 struPUStream;
NET_DVR_IPSERVER_STREAM struIPServerStream;
NET_DVR_DDNS_STREAM_CFG struDDNSStream;
NET_DVR_PU_STREAM_URL struStreamUrl;
NET_DVR_HKDDNS_STREAM struHkDDNSStream;
NET_DVR_IPCHANINFO_V40 struIPChan;
}NET_DVR_GET_STREAM_UNION,*LPNET_DVR_GET_STREAM_UNION;
Members
struChanInfo
Network channel information for getting stream directly, refer to the structure
NET_DVR_IPCHANINFO for details.
struPUStream
Get stream from stream media server, refer to the structure NET_DVR_PU_STREAM_CFG_V41
for details.
struIPServerStream
Get stream after getting device IP address by IPServer, refer to the structure
NET_DVR_IPSERVER_STREAM for details.
struDDNSStream
Get device IP address by IPServer, and then get stream from stream media server, refer to the
structure NET_DVR_DDNS_STREAM_CFG for details.
struStreamUrl
Get stream from the device or stream media server by URL
struHkDDNSStream
Connect to the device by hkDDNS and then get stream from the device, refer to the structure
NET_DVR_HKDDNS_STREAM for details.
struIPChan
Get stream directly from device (extended), refer to the structure NET_DVR_IPCHANINFO_V40
for details.
See Also
NET_DVR_STREAM_MODE
459
Device Network SDK (General) Developer Guide
A.110 NET_DVR_HANDLEEXCEPTION_V40
Structure about the linkage actions of alarm or exception.
Structure Definition
struct{
DWORD dwHandleType;
DWORD dwMaxRelAlarmOutChanNum;
DWORD dwRelAlarmOutChanNum ;
DWORD dwRelAlarmOut[MAX_CHANNUM_V30/*64*/];
BYTE byRes[128];
}NET_DVR_HANDLEEXCEPTION_V40, *LPNET_DVR_HANDLEEXCEPTION_V40;
Members
dwHandleType
Alarm or exception linkage actions, see details below:
• 0x00: No response
• 0x01: Monitor warning
• 0x02: Audible warning
• 0x04: Upload to center
• 0x08: Trigger alarm output
• 0x10: Capture JPEG picture and send Email
• 0x20: Wireless combined aural and visual alarm linkage
• 0x40: E-map linkage (only supported by PCNVR)
• 0x200: Capture and upload to FTP
• 0x1000: Capture and upload to cloud storage
• 0x8000: message alarm
E.g. dwHandleType==0x01|0x04 indicates that the alarm linkage action is monitor warning and
uploading to center.
dwMaxRelAlarmOutChanNum
The maximum number of alarm outputs can be triggered (read only)
dwRelAlarmOutChanNum
Number of triggered alarm outputs
dwRelAlarmOut
Triggered alarm outputs, the No. starts from 1, and ends at the value of
dwRelAlarmOutChanNum. The initial value is 0xfffffffff (not link with channel). E.g., if
dwRelAlarmOutChanNum is 5, the alarm output can be configured and triggered ranges from
dwRelAlarmOut[0] to dwRelAlarmOut[4].
byRes
Reserved.
460
Device Network SDK (General) Developer Guide
Remarks
• When the value of dwRelAlarmOutChanNum is larger than 64, the channels should be grouped,
and maximum 64 channels can be in a group.
• The video channel No. is linked with the group No., e.g., if the group No. is 0, the channel No. is
between 1 and 64; if the group No. is 1, the channel No. is between 65 and 128; if 0xffffffff
appears, it indicates that the following channel No. is invalid.
A.111 NET_DVR_HANDLEEXCEPTION_V41
461
Device Network SDK (General) Developer Guide
A.112 NET_DVR_HDCFG_V50
HDD configuration structure
Structure Definition
struct{
DWORD dwSize;
DWORD dwHDCount;
NET_DVR_SINGLE_HD_V50 struHDInfoV50[MAX_DISKNUM_V30/*33*/];
}NET_DVR_HDCFG_V50, *LPNET_DVR_HDCFG_V50;
Members
dwSize
Structure size.
dwHDCount
Number of local HDDs, this member is read-only.
struHDInfo
HDD parameters, refer to the structure NET_DVR_SINGLE_HD_V50 for details.
Remarks
After setting HDD parameters, you should reboot the device to take effect.
A.113 NET_DVR_HIDDEN_INFORMATION_CFG
Structure about hidden parameter configuration
462
Device Network SDK (General) Developer Guide
A.114 NET_DVR_HIDEALARM_V40
Structure about video tampering alarm parameters.
Structure Definition
struct{
DWORD dwEnableHideAlarm;
WORD wHideAlarmAreaTopLeftX;
WORD wHideAlarmAreaTopLeftY;
WORD wHideAlarmAreaWidth;
WORD wHideAlarmAreaHeight;
DWORD dwHandleType;
DWORD dwMaxRelAlarmOutChanNum;
DWORD dwRelAlarmOut[MAX_ALARMOUT_V40/*4128*/];
NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS/*7*/][MAX_TIMESEGMENT_V30/*8*/];
BYTE byRes[64];
}NET_DVR_HIDEALARM_V40, *LPNET_DVR_HIDEALARM_V40;
Members
dwEnableHideAlarm
Whether to enable video tampering alarm: 0-no, 1-yes
wHideAlarmAreaTopLeftX
X-coordinate of video tampering region.
wHideAlarmAreaTopLeftY
Y-coordinate of video tampering region.
wHideAlarmAreaWidth
Width of video tampering region
wHideAlarmAreaHeight
Height of video tampering region
dwHandleType
Alarm linkage actions, see details below:
463
Device Network SDK (General) Developer Guide
• 0x00: No response
• 0x01: Monitor warning
• 0x02: Audible warning
• 0x04: Upload to center
• 0x08: Trigger alarm output
• 0x10: Capture JPEG picture and send Email
• 0x20: Wireless combined aural and visual alarm linkage
• 0x40: E-map linkage (only supported by PCNVR)
• 0x200: Capture and upload to FTP
• 0x1000: Capture and upload to cloud storage
E.g. dwHandleType==0x01|0x04 indicates that the alarm linkage action is monitor warning and
uploading to center.
dwMaxRelAlarmOutChanNum
The maximum number of alarm outputs can be triggered (read only)
dwRelAlarmOut
Triggered alarm output No., which starts from 0, 0xffffffff-the following is invalid. For example, if
the start value of dwRelAlarmOut[8] is 0xffffffff, the alarm output No. (dwRelAlarmOut[0]+1),...,
(dwRelAlarmOut[7]+1) will be triggered.
struAlarmTime
Arming time, up to 8 time periods can be set on a day, see details in the structure
NET_DVR_SCHEDTIME .
byRes
Reserved, set to 0
Remarks
By default, the size of whole image is set to 704*576, so the coordinates, width, and height of
privacy mask region should be converted to adapt to the size 704*576.
See Also
NET_DVR_PICCFG_V40
A.115 NET_DVR_HKDDNS_STREAM
Structure about hkDDNS streaming configuration.
Structure Definition
struct{
BYTE byEnable;
BYTE byRes[3];
BYTE byDDNSDomain[64];
WORD wPort;
464
Device Network SDK (General) Developer Guide
WORD wAliasLen;
BYTE byAlias[NAME_LEN/*32*/];
WORD wDVRSerialLen;
BYTE byRes1[2];
BYTE byDVRSerialNumber[SERIALNO_LEN/*48*/];
BYTE byUserName[NAME_LEN/*32*/];
BYTE byPassWord[PASSWD_LEN/*16*/];
BYTE byChannel;
BYTE byRes2[11];
}NET_DVR_HKDDNS_STREAM,*LPNET_DVR_HKDDNS_STREAM;
Members
byEnable
Whether to enable: 0-no, 1-yes
byRes
Reserved, set to 0
byDDNSDomain
hiDDNS server address
wPort
hkDDNS port No., default: 80
wAliasLen
Alias size
byAlias
Alias
wDVRSerialLen
Serial [Link]
byRes1
Reserved, set to 0
byDVRSerialNumber
Serial nNo.
byUserName
Device user name
byPassWord
Device password
byChannel
Device channel No.
byRes2
Reserved, set to 0
465
Device Network SDK (General) Developer Guide
See Also
NET_DVR_GET_STREAM_UNION
A.116 NET_DVR_I_FRAME
Force I frame parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE sStreamID[STREAM_ID_LEN/*32*/];
DWORD dwChan;
BYTE byStreamType;
BYTE byRes[63];
}NET_DVR_I_FRAME,*LPNET_DVR_I_FRAME;
Members
dwSize
Structure size
sStreamID
Stream ID
dwChan
Device channel No.
byStreamType
Stream type: 0-main stream, 1-sub-stream, 2-third stream, 3-virtual stream, ...
byRes
Reserved, set to 0.
Related API
NET_DVR_RemoteControl
A.117 NET_DVR_IGNORE_STRING
Structure about ignoring string information
Structure Definition
struct{
BYTE sData[MAX_POS_FILTER_DATA_LEN/*128*/];
}NET_DVR_IGNORE_STRING, *LPNET_DVR_IGNORE_STRING;
466
Device Network SDK (General) Developer Guide
Members
sData
Ignored string.
A.118 NET_DVR_IN_PARAM
Structure about input parameters.
Structure Definition
struct{
NET_DVR_BUF_INFO
struCondBuf;
NET_DVR_BUF_INFO
struInParamBuf;
DWORD dwRecvTimeout;
BYTE byRes[32];
}NET_DVR_IN_PARAM,*LPNET_DVR_IN_PARAM;
Members
struCondBuf
Buffer for storing conditions
struInParamBuf
Buffer for storing input parameters
dwRecvTimeout
Data receiving timeout, unit: ms
byRes
Reserved, set to 0
A.119 NET_DVR_INIT_CFG_ABILITY
467
Device Network SDK (General) Developer Guide
Remarks
By default, up to 2048 channels are supported. More channels require higher computer
performance and network bandwidth.
See Also
NET_DVR_SetSDKInitCfg
A.120 NET_DVR_INQUEST_SECRET_INFO
Structure of stream encryption key information
Structure Definition
struct{
BYTE sSecretKey[16];
BYTE byRes[64];
}NET_DVR_INQUEST_SECRET_INFO,*LPNET_DVR_INQUEST_SECRET_INFO;
Members
sSecretKey
Stream encryption key.
byRes
Reserved
468
Device Network SDK (General) Developer Guide
Related API
NET_DVR_InquestSetSecretKey
A.121 NET_DVR_INTRUSION_SEARCHCOND
Condition structure for searching videos recorded based on intrusion detection.
Structure Definition
struct{
NET_VCA_INTRUSION struVcaIntrusion[MAX_INTRUSIONREGION_NUM/*8*/];
DWORD dwPreTime;
DWORD dwDelayTime;
NET_DVR_PTZPOS_INFO struPTZPosInfo;
BYTE byAdvanceType;
BYTE byRes1[3];
NET_DVR_ADVANCE_COND_UNION uAdvanceCond;
BYTE byRes[5348];
}NET_DVR_INTRUSION_SEARCHCOND,*LPNET_DVR_INTRUSION_SEARCHCOND;
Members
struVcaIntrusion
Intrusion detection region parameters, refer to the structure NET_VCA_INTRUSION in the
HCNetSDK user manual of behavior analysis applications for details.
dwPreTime
Pre-alarm time, unit: second.
dwDelayTime
Post-alarm time, unit: second.
struPTZPosInfo
Camera's PTZ position information in intrusion detection, refer to the structure for details.
byAdvanceType
Group types: 0-without group No., 1-group with human body properties, 2-group with object's
color share. Refer to the structure for details.
byRes1
Reserved, set to 0.
uAdvanceCond
Group attribute.
byRes
Reserved, set to 0.
469
Device Network SDK (General) Developer Guide
See Also
A.122 NET_DVR_IPADDR_UNION
IP Address Union
A.123 NET_DVR_IPCHANINFO
Structure about network device channel information.
Structure Definition
struct{
BYTE byEnable;
BYTE byIPID;
BYTE byChannel;
BYTE byIPIDHigh;
BYTE byRes[32];
}NET_DVR_IPCHANINFO, *LPNET_DVR_IPCHANINFO;
Members
byEnable
Network device channel online status, it is read only. 0-connecting to network device by HDVR
or NVR failed, the channel is offline; 1-connected, the channel is online.
byIPID
Low 8-byte in device ID, byIPID==iDevID/256.
byChannel
Channel No. of network device, for example, if the network channel No.1 of device A
corresponds to the channel No.4 of device B, the byChannel is 4.
byIPIDHigh
High 8-byte in device ID, byIPIDHigh==iDevID /256
byRes
Reserved, set to 0
470
Device Network SDK (General) Developer Guide
Remarks
The iDevID is the device ID, and iDevID==byIPIDHigh*256 + byIPID. It is used to search for the
device information (array parameter in struIPDevInfo in NET_DVR_IPPARACFG_V40 ). The relation
between iDevID and iDevInfoIndex is: iDevID==iDevInfoIndex+iGroupNO*64+1.
A.124 NET_DVR_IPCHANINFO_V40
Structure about network device channel information (extended).
Structure Definition
struct{
BYTE byEnable;
BYTE byRes1;
WORD wIPID;
DWORD dwChannel;
BYTE byTransProtocol;
BYTE byTransMode;
BYTE byFactoryType;
BYTE byRes[241];
}NET_DVR_IPCHANINFO_V40, *LPNET_DVR_IPCHANINFO_V40;
Members
byEnable
Network device channel online status, read only. 0-connecting to network channel by HDVR or
NVR failed, the channel is offline; 1-connected, the channel is online.
byRes1
Reserved, set to 0
wIPID
Network device ID
dwChannel
Network device channel No., e.g., if the network channel No.1 of device A corresponds to the
channel No.4 of device B, the byChannel is 4.
byTransProtocol
Transmission protocol type: 0-TCP, 1-UDP, 2-multicast, 0xff-aslf-adaptive
byTransMode
Stream type: 0-main stream, 1-sub-stream
byFactoryType
Call NET_DVR_GetIPCProtoList_V41 to get the network camera protocol list.
byRes
471
Device Network SDK (General) Developer Guide
Reserved, set as 0
A.125 NET_DVR_IPC_PROTO_LIST_V41
Structure about network camera protocol list.
Structure Definition
struct{
DWORD dwSize;
DWORD dwProtoNum;
BYTE *pBuffer;
DWORD dwBufferLen;
BYTE byRes[32];
}NET_DVR_IPC_PROTO_LIST_V41,*LPNET_DVR_IPC_PROTO_LIST_V41;
Members
dwSize
Structure size
dwProtoNum
Valid number of network camera protocols
pBuffer
Protocol list buffer, used to save structure NET_DVR_PROTO_TYPE (the number of structures is
the value of dwProtoNum).
dwBufferLen
Buffer size, size sum of structures NET_DVR_PROTO_TYPE (the number of structures is the
value of dwProtoNum).
byRes
Reserved, set to 0.
Related API
NET_DVR_GetIPCProtoList_V41
A.126 NET_DVR_IPDEVINFO_V31
Structure about network device information.
Structure Definition
struct{
BYTE byEnable;
BYTE byProType;
472
Device Network SDK (General) Developer Guide
BYTE byEnableQuickAdd;
BYTE byCameraType;
BYTE sUserName[NAME_LEN/*32*/];
BYTE sPassword[PASSWD_LEN/*16*/];
BYTE byDomain[MAX_DOMAIN_NAME/*64*/];
NET_DVR_IPADDR struIP;
WORD wDVRPort;
BYTE szDeviceID[DEV_ID_LEN/*1*/];
BYTE byEnableTiming;
BYTE byRes2;
}NET_DVR_IPDEVINFO_V31, *LPNET_DVR_IPDEVINFO_V31;
Members
byEnable
Whether the network device is enabled
byProType
Protocol type: 0-Hikvision private protocol (default), 1-Panasonic private protocol, 2-Sony
private protocol,...For getting more protocol types, you can call
NET_DVR_GetIPCProtoList_V41 .
byEnableQuickAdd
Whether supports quick adding: 0-no, 1-yes. When quickly adding, the device IP address and
protocol type are required.
byCameraType
Camera function: 0-none, 1-teacher tacking, 2-student tracking, 3-teacher panoramic view, 4-
student panoramic view, 5-multimedia, 6-teacher location, 7-student location, 8-blackboard
writing location, 9-blackboard writing
sUserName
User name
sPassword
Password
byDomain
Domain name
struIP
IP address, refer to the structure NET_DVR_IPADDR_UNION for details.
wDVRPort
Port No.
szDeviceID
Reserved.
byEnableTiming
473
Device Network SDK (General) Developer Guide
Whether enables automatic time synchronization between NVR and network camera: 0-
reserved, 1-no, 2-yes
byRes2
Reserved, set to 0
Remarks
• When all network channels of one network device are deleted, the "IPID-1" of all network
channel parameters in network device channel does not correspond to the subscript value of
this network device parameters, the local network device parameters will be deleted.
• If the domain name does not exist and IPv4 address is valid, the IPv4 address will be adopted to
access; if both the domain name and IPv4 do not exist, but IPv6 is valid, the IPv6 address will be
adopted to access.
A.127 NET_DVR_IPPARACFG_V40
Configuration parameter structure of network devices and channels.
Structure Definition
struct{
DWORD dwSize;
DWORD dwGroupNum;
DWORD dwAChanNum;
DWORD dwDChanNum;
DWORD dwStartDChan;
BYTE byAnalogChanEnable[MAX_CHANNUM_V30/*64*/];
NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE_V40/*64*/];
NET_DVR_STREAM_MODE struStreamMode[MAX_CHANNUM_V30/*64*/];
BYTE byRes2[20];
}NET_DVR_IPPARACFG_V40, *LPNET_DVR_IPPARACFG_V40;
Members
dwSize
Structure size
dwGroupNum
Total number of groups supported by device, read-only
dwAChanNum
Maximum number of analog channels, read-only
dwDChanNum
Number of digital channels, read-only
dwStartDChan
474
Device Network SDK (General) Developer Guide
A.128 NET_DVR_IPSERVER_STREAM
Structure about IP server mode configuration.
Structure Definition
struct{
BYTE byEnable;
BYTE byRes[3];
NET_DVR_IPADDR struIPServer;
WORD wPort;
WORD wDvrNameLen;
BYTE byDVRName[NAME_LEN/*32*/];
WORD wDVRSerialLen;
WORD byRes1[2];
BYTE byDVRSerialNumber[SERIALNO_LEN/*48*/];
BYTE byUserName[NAME_LEN/*32*/];
BYTE byPassWord[PASSWD_LEN/*16*/];
BYTE byChannel;
BYTE byRes2[11];
}NET_DVR_IPSERVER_STREAM, *LPNET_DVR_IPSERVER_STREAM;
Members
byEnable
Whether to enable: 0-no, 1-yes
byRes
Reserved, set to 0
struIPServer
IPServer IP address, refer to the structure NET_DVR_IPADDR_UNION for details.
wPort
475
Device Network SDK (General) Developer Guide
A.129 NET_DVR_ISP_CAMERAPARAMCFG
Image signal processing (ISP) parameter structure of front-end device.
Structure Definition
struct{
DWORD dwSize;
BYTE byWorkType;
BYTE byRes[3];
NET_DVR_SCHEDULE_DAYTIME struDayNightScheduleTime;
NET_DVR_CAMERAPARAMCFG_EX struSelfAdaptiveParam;
NET_DVR_CAMERAPARAMCFG_EX struDayIspAdvanceParam;
NET_DVR_CAMERAPARAMCFG_EX struNightIspAdvanceParam;
BYTE byRes1[512];
}NET_DVR_ISP_CAMERAPARAMCFG, *LPNET_DVR_ISP_CAMERAPARAMCFG;
Members
dwSize
476
Device Network SDK (General) Developer Guide
Structure size.
byWorkType
Working mode: 0-self-adaptive, 1-scheduled
byRes
Reserved, set to 0.
struDayNightScheduleTime
Switching time interval, it is valid when byWorkType is 1. The configured time interval indicates
the day, otherwise, it is the night. Refer to the structure NET_DVR_SCHEDULE_DAYTIME for
details.
struSelfAdaptiveParam
Self-adaptive parameters, it is valid when byWorkType is 0. Refer to the structure
NET_DVR_CAMERAPARAMCFG_EX for details.
struDayIspAdvanceParam
Day parameters, it is valid when byWorkType is 1. Refer to the structure
NET_DVR_CAMERAPARAMCFG_EX for details.
struNightIspAdvanceParam
Night parameters, it is valid when byWorkType is 1. Refer to the structure
NET_DVR_CAMERAPARAMCFG_EX for details.
byRes1
Reserved, set to 0.
Remarks
When byWorkType is 1, only a part of parameters in the structure
NET_DVR_CAMERAPARAMCFG_EX support day and night switching.
A.130 NET_DVR_JPEGPARA
Structure about information of picture in JPEG format.
Structure Definition
struct{
WORD wPicSize;
WORD wPicQuality;
}NET_DVR_JPEGPARA,*LPNET_DVR_JPEGPARA;
Members
wPicSize
477
Device Network SDK (General) Developer Guide
Picture size: 0-CIF(352 × 288/352 × 240), 1-QCIF(176 × 144/176 × 120), 2-4CIF(704 × 576/704 ×
480) or D1(720 × 576/720 × 486), 3-UXGA(1600 × 1200), 4-SVGA(800 × 600), 5-HD720P(1280 ×
720), 6-VGA(640 × 480), 7-XVGA(1280 × 960), 8-HD900P(1600 × 900), 9-HD1080P(1920 × 1080),
10-2560 × 1920, 11-1600 × 304, 12-2048 × 1536, 13-2448 × 2048, 14-2448 × 1200, 15-2448 ×
800, 16-XGA(1024 × 768), 17-SXGA(1280 × 1024), 18-WD1(960 × 576/960 × 480), 19-1080I
(1920 × 1080), 20-576 × 576, 21-1536 × 1536, 22-1920 × 1920, 23-320 × 240, 24-720 × 720,
25-1024 × 768, 26-1280 × 1280, 27-1600 × 600, 28-2048 × 768, 29-160 × 120, 75-336 × 256,
78-384 × 256, 79-384 × 216, 80-320 × 256, 82-320 × 192, 83-512 × 384, 127-480 × 272, 128-512
× 272, 161-288 × 320, 162-144 × 176, 163-480 × 640, 164-240 × 320, 165-120 × 160, 166-576 ×
720, 167-720 × 1280, 168-576 × 960, 180-180 × 240, 181-360 × 480, 182-540 × 720, 183-720 ×
960, 184-960 × 1280, 185-1080 × 1440, 215-1080 × 720 (reserved), 216-360 × 640 (reserved),
218-1440 × 1440, 500-384 × 288, 0xff-Auto.
wPicQuality
Picture quality: 0-high, 1-medium, 2-low
A.131 NET_DVR_JPEG_CAPTURE_CFG_V40
Structure about extended device capture parameters.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_TIMING_CAPTURE struTimingCapture;
NET_DVR_EVENT_CAPTURE_V40 struEventCapture;
BYTE byStreamType;
BYTE byRes3[19];
}NET_DVR_JPEG_CAPTURE_CFG_V40,*LPNET_DVR_JPEG_CAPTURE_CFG_V40;
Members
dwSize
Structure size.
struTimingCapture
Scheduled capture configuration, see details in the structure NET_DVR_TIMING_CAPTURE .
struEventCapture
Event capture configuration, see details in the structure NET_DVR_EVENT_CAPTURE_V40 .
byStreamType
Capture stream type: 0-main stream, 1-sub stream.
byRes3
Reserved, set to 0.
478
Device Network SDK (General) Developer Guide
A.132 NET_DVR_LABEL_IDENTIFY
Video tag ID structure.
Structure Definition
struct{
BYTE sLabelIdentify[LABEL_IDENTIFY_LEN/*64*/];
BYTE byRes[8];
}NET_DVR_LABEL_IDENTIFY,*LPNET_DVR_LABEL_IDENTIFY;
Members
sLabelIdentify
Video tag ID.
byRes
Reserved, set to 0.
A.133 NET_DVR_LASER_PARAM_CFG
Laser parameter structure
Structure Definition
struct{
BYTE byControlMode;
BYTE bySensitivity;
BYTE byTriggerMode;
BYTE byBrightness;
BYTE byAngle;
BYTE byLimitBrightness;
BYTE byEnabled;
BYTE byIllumination;
BYTE byLightAngle;
BYTE byRes[7];
}NET_DVR_LASER_PARAM_CFG, *LPNET_DVR_LASER_PARAM_CFG;
Members
byControlMode
Control mode: 0-invalid, 1-auto (default), 2-manual.
bySensitivity
Laser light sensitivity, value range: [0,100], default: 50.
byTriggerMode
479
Device Network SDK (General) Developer Guide
Laser light triggering mode: 0-invalid, 1-triggered by camera module (default), 2-triggered by
photoresister.
byBrightness
Laser light brightness, value range: [0,255], default: 100; this member is available when the
byControlMode is set to "2".
byAngle
Laser light range, the range is a circle, so this value is the angle between radiuses, value range:
[1,36], 0-invalid, default: 12.
byLimitBrightness
Adjustment range of laser light brightness, value rang: [0,100]; this member is available when
the byControlMode is set to "1".
byEnabled
Whether to enable manual control of laser light: 0-no, 1-yes.
byIllumination
Laser light strength, value range: [0,100].
byLightAngle
Supplement light angle, value range: [0,100].
byRes
Reserved, set to 0.
A.134 NET_DVR_LINK_ADDR
Structure about IP address and port information of the stream sender and recipient
480
Device Network SDK (General) Developer Guide
A.135 NET_DVR_LOCAL_ABILITY_PARSE_CFG
Structure about capability of analysis library configuration.
Structure Definition
struct{
BYTE byEnableAbilityParse;
BYTE byRes[127];
}NET_DVR_LOCAL_ABILITY_PARSE_CFG, *LPNET_DVR_LOCAL_ABILITY_PARSE_CFG;
Members
byEnableAbilityParse
Whether to enable capability analysis library: 0-disable, 1-enable (default).
byRes
Reserved, set to 0.
Remarks
By default, the analog capability is disabled, you can enable the analog capability via this structure,
and then call NET_DVR_GetDeviceAbility and load the "[Link]" to the directory of HCNetSDK
to get the capabilities of devices.
A.136 NET_DVR_LOCAL_ASYNC_CFG
481
Device Network SDK (General) Developer Guide
Remarks
• After enabling asynchronous configuration, the notifications about disconnection and
reconnection of devices will be received in asynchronous mode. This function can be adopted
when you need to manage tens of thousands of devices. By default, this function is disabled.
• After enabling asynchronous configuration, the interval configuration of heartbeat interaction
turns invalid (related command: "NET_SDK_LOCAL_CFG_TYPE_CHECK_DEV").
• After enabling asynchronous configuration, the API NET_DVR_SetConnectTime for setting
network connection timeout turns invalid.
A.137 NET_DVR_LOCAL_BYTE_ENCODE_CONVERT
Structure about encoding format conversion configuration.
Structure Definition
struct{
CHAR_ENCODE_CONVERT fnCharConvertCallBack
BYTE byRes[256];
}NET_DVR_LOCAL_BYTE_ENCODE_CONVERT, *LPNET_DVR_LOCAL_BYTE_ENCODE_CONVERT;
Members
fnCharConvertCallBack
Callback function of encoding type conversion, see details in CHAR_ENCODE_CONVERT .
byRes
Reserved, set to 0.
Remarks
• The device character encoding type is returned by the login API.
• By default, the encoding type conversion is realized by the "[Link]" of HCNetSDK, but the
users can set the encoding type conversion callback via this structure and call their own
encoding API to convert the encoding type.
A.138 NET_DVR_LOCAL_CERTIFICATION
Cettificate configuration parameter structure
Structure Definition
struct{
char szLoadPath[MAX_FILE_PATH_LEN/*256*/];
fnCertVerifyResultCallBack fnCB;
void *pUserData;
482
Device Network SDK (General) Developer Guide
BYTE byRes[64];
}NET_DVR_LOCAL_CERTIFICATION, *LPNET_DVR_LOCAL_CERTIFICATION;
Members
szLoadPath
Certificate saving path.
fnCB
Certificate verification callback function, see details below.
typedef BOOL(CALLBACK *fnCertVerifyResultCallBack)(
DWORD uiResult,
NET_DVR_CETTIFICATE_INFO lpCertificateInfo,
char *pUserData
);
uiResult
Certificate verification results: 0-verification failed, other values-verified.
lpCertificateInfo
Certificate information, see details in NET_DVR_CETTIFICATE_INFO .
pUserData
User data pointer.
pUserData
User data.
byRes
Reserved, set to 0.
See Also
NET_SDK_LOCAL_CFG_TYPE
A.139 NET_DVR_LOCAL_CFG_TYPE_PTZ
PTZ interaction configuration structure.
Structure Definition
struct{
BYTE byWithoutRecv;
BYTE byRes[63];
}NET_DVR_LOCAL_PTZ_CFG, *LPNET_DVR_LOCAL_PTZ_CFG;
Members
byWithoutRecv
483
Device Network SDK (General) Developer Guide
Remarks
This configuration is applicable to 3G network.
A.140 NET_DVR_LOCAL_CHECK_DEV
Heartbeat time interval configuration structure.
Structure Definition
struct{
DWORD dwCheckOnlineTimeout;
DWORD dwCheckOnlineNetFailMax;
BYTE byRes[256];
}NET_DVR_LOCAL_CHECK_DEV, *LPNET_DVR_LOCAL_CHECK_DEV;
Members
dwCheckOnlineTimeout
Online health monitoring time interval, unit: ms, range: 30-120 (s), 0-120s (default), the
recommended value is 30s.
dwCheckOnlineNetFailMax
The maximum number of network failure attempts, if the failure attempts are larger than this
threshold, exception message will the called back. 0-1 (default), the recommended value is 3.
byRes
Reserved, set to 0.
A.141 NET_DVR_LOCAL_GENERAL_CFG
General configurations structure.
Structure Definition
struct{
BYTE byExceptionCbDirectly;
BYTE byNotSplitRecordFile;
BYTE byResumeUpgradeEnable;
BYTE byAlarmJsonPictureSeparate;
BYTE byRes[4];
UINT64 i64FileSize;
DWORD dwResumeUpgradeTimeout;
484
Device Network SDK (General) Developer Guide
BYTE byAlarmReconnectMode;
BYTE byStdXmlBufferSize;
BYTE byMultiplexing;
BYTE byFastUpgrade;
BYTE byRes[232];
}NET_DVR_LOCAL_GENERAL_CFG, *LPNET_DVR_LOCAL_GENERAL_CFG;
Members
byExceptionCbDirectly
Exception callback type: 0-callback via thread pool, 1-callback via upper-layer.
byNotSplitRecordFile
Whether to subpackage the local video files: 0-yes (default), 1-no.
byResumeUpgradeEnable
Whether to enable upgrading ANR (Automatic Network Replenishment): 0-disable (default), 1-
enable.
byAlarmJsonPictureSeparate
Whether to separate the alarm data and the alarm picture which will be transmitted in JSON
format: 0-not separate, 1-separate (the lCommand in the callback function will be
"COMM_ISAPI_ALARM").
byRes
Reserved.
i64FileSize
Maximum file size, unit: byte. When subpackaging is enabled, if the saved video file size is larger
than the value of this parameter, the file will be subpackaged to multiple file segments for
storage.
dwResumeUpgradeTimeout
ANR reconnection timeout, unit: millisecond.
byAlarmReconnectMode
Reconnection mode: 0-dependent thread reconnection (default), 1-thread pool reconnection.
byStdXmlBufferSize
Buffer size for receiving data transmitted by ISAPI: 1-1 MB, other values-default.
byMultiplexing
Whether to enable multiplexing of normal link (non-TLS link): 0-disable, 1-enable.
byFastUpgrade
Upgrading mode: 1-normal upgrading, 2-fast upgrading.
byRes1
Reserved.
485
Device Network SDK (General) Developer Guide
A.142 NET_DVR_LOCAL_LOG_CFG
Log configuration structure.
Structure Definition
struct{
WORD wSDKLogNum;
BYTE byRes[254];
}NET_DVR_LOCAL_LOG_CFG, *LPNET_DVR_LOCAL_LOG_CFG;
Members
wSDKLogNum
Number of log files in overwritten mode, "0"-10 log files (default).
byRes
Reserved, set to 0.
A.143 NET_DVR_LOCAL_MEM_POOL_CFG
Local configuration structure of storage pool.
Structure Definition
struct{
DWORD dwAlarmMaxBlockNum;
DWORD dwAlarmReleaseInterval;
BYTE byRes[60];
}NET_DVR_LOCAL_MEM_POOL_CFG, *LPNET_DVR_LOCAL_MEM_POOL_CFG;
Members
dwAlarmMaxBlockNum
The maximum number of memory blocks can be applied, the maximum size of each applied
block is 64MB, if the required memory block size is larger than the threshold, do not apply for it
from the system. If the value of this parameter is set to 0, it refers that the number of memory
block can be applied is not limited.
dwAlarmReleaseInterval
The time interval between each free memory blocks to be released, unit: s, 0-not release the
free memory.
byRes
Reserved, set to 0.
486
Device Network SDK (General) Developer Guide
A.144 NET_DVR_LOCAL_MODULE_RECV_TIMEOUT_CFG
Structure about timeout configuration by module.
Structure Definition
struct{
DWORD dwPreviewTime;
DWORD dwAlarmTime;
DWORD dwVodTime;
DWORD dwElse;
BYTE byRes[512];
}NET_DVR_LOCAL_MODULE_RECV_TIMEOUT_CFG, *LPNET_DVR_LOCAL_MODULE_RECV_TIMEOUT_CFG;
Members
dwPreviewTime
Live view module receiving timeout, unit: millisecond, range: 0-3000,000, 0-restore to default
settings.
dwAlarmTime
Alarm module receiving timeout, unit: millisecond, range: 0-3000,000, 0-restore to default
settings.
dwVodTime
Playback module receiving timeout, unit: millisecond, range: 0-3000,000, 0-restore to default
settings.
dwElse
Other modules' receiving timeout, unit: millisecond, range: 0-3000,000, 0-restore to default
settings.
byRes
Reserved, set to 0.
A.145 NET_DVR_LOCAL_PORT_MULTI_CFG
Configuration parameter structure of port multiplier.
Structure Definition
struct{
BOOL bEnable;
BYTE byRes[60];
}NET_DVR_LOCAL_PORT_MULTI_CFG, *LPNET_DVR_LOCAL_PORT_MULTI_CFG;
487
Device Network SDK (General) Developer Guide
Members
bEnable
Whether to enable port multiplier: true-yes.
byRes
Reserved, set to 0.
See Also
NET_SDK_LOCAL_CFG_TYPE
A.146 NET_DVR_LOCAL_PROTECT_KEY_CFG
A.147 NET_DVR_LOCAL_SDK_PATH
Remarks
If the path of HCNetSDKCom folder and HCNetSDK libraries are same, but the path of executable
programs are different, you can call NET_DVR_SetSDKInitCfg to specify the path of HCNetSDKCom
folder to make sure the component libraries are loaded normally.
A.148 NET_DVR_LOCAL_STREAM_CALLBACK_CFG
488
Device Network SDK (General) Developer Guide
A.149 NET_DVR_LOCAL_TALK_MODE_CFG
Two-way audio configuration structure.
Structure Definition
struct{
BYTE byTalkMode;
BYTE byRes[127];
}NET_DVR_LOCAL_TALK_MODE_CFG, *LPNET_DVR_LOCAL_TALK_MODE_CFG;
Members
byTalkMode
Two-way audio mode: 0-enable two-way audio library (default), 1-enable Windows API mode.
byRes
Reserved, set to 0.
Remarks
If the two-way audio library is enabled, you must load the "[Link]" and "[Link]".
A.150 NET_DVR_LOCAL_TCP_PORT_BIND_CFG
Local binding configuration structure of TCP port.
Structure Definition
struct{
WORD wLocalBindTcpMinPort;
WORD wLocalBindTcpMaxPort;
BYTE byRes[60];
}NET_DVR_LOCAL_TCP_PORT_BIND_CFG, *LPNET_DVR_LOCAL_TCP_PORT_BIND_CFG;
489
Device Network SDK (General) Developer Guide
Members
wLocalBindTcpMinPort
The minimum TCP port number to be bound locally.
wLocalBindTcpMaxPort
The maximum TCP port number to be bound locally.
byRes
Reserved, set to 0.
Remarks
• Port bind strategy: provide a port number segment to ensure all used port numbers are in the
segment (except multicast); the ports from port pool are tried to bind one by one until the port
is not occupied, if all ports are occupied, error will be returned; binding the system reserved
ports (form 1 to 1024) is not suggested.
• The maximum port number to be bound should be equal to or larger than the minimum port
number, [0,0]: clear the binding; [0,non-0]: setting failed, as 0 can't be bound.
A.151 NET_DVR_LOCAL_UDP_PORT_BIND_CFG
Local binding configuration structure of UDP port.
Structure Definition
struct{
WORD wLocalBindUdpMinPort;
WORD wLocalBindUdpMaxPort;
BYTE byRes[60];
}NET_DVR_LOCAL_UDP_PORT_BIND_CFG, *LPNET_DVR_LOCAL_UDP_PORT_BIND_CFG;
Members
wLocalBindUdpMinPort
The minimum UDP port number to be bound locally.
wLocalBindUdpMaxPort
The maximum UDP port number to be bound locally.
byRes
Reserved, set to 0.
Remarks
• Port bind strategy: provide a port number segment to ensure all used port numbers are in the
segment (except multicast); the ports from port pool are tried to bind one by one until the port
490
Device Network SDK (General) Developer Guide
is not occupied, if all ports are occupied, error will be returned; binding the system reserved
ports (form 1 to 1024) is not suggested.
• The maximum port number to be bound should be equal to or larger than the minimum port
number, [0,0]: clear the binding; [0,non-0]: setting failed, as 0 can't be bound.
A.152 NET_DVR_LOG_V50
Structure about log file information.
Structure Definition
struct{
NET_DVR_TIME_V50 struLogTime;
DWORD dwMajorType;
DWORD dwMinorType;
BYTE sPanelUser[MAX_NAMELEN/*16*/];
BYTE sNetUser[MAX_NAMELEN/*16*/];
NET_DVR_IPADDR struRemoteHostAddr;
DWORD dwParaType;
DWORD dwChannel;
DWORD dwDiskNumber;
DWORD dwAlarmInPort;
DWORD dwAlarmOutPort;
DWORD dwInfoLen;
char sInfo[LOG_INFO_LEN/*11840*/];
BYTE byRes[128];
}NET_DVR_LOG_V50, *LPNET_DVR_LOG_V50;
Members
strLogTime
Log time, refer to the structure for details.
dwMajorType
Major log type, see details in HCNetSDK Log Types .
dwMinorType
Minor log type, see details in HCNetSDK Log Types .
sPanelUser
Operator name.
sNetUser
User name.
struRemoteHostAddr
Remote host server address, refer to the structure for details.
dwParaType
491
Device Network SDK (General) Developer Guide
This parameter is available for DS-9000 series devices, and it is valid only when the minor log
type is "MINOR_START_VT"/"MINOR_STOP_VT" (the parameter is the two-way audio channel
No.) and the major log type is "MAJOR_OPERATION", or the minor type is
"MINOR_LOCAL_CFG_PARM", "MINOR_REMOTE_GET_PARM"/ "MINOR_REMOTE_CFG_PARM".
The available parameter types are shown below:
492
Device Network SDK (General) Developer Guide
Reserved, set to 0.
Related API
NET_DVR_FindNextLog_V50
A.153 NET_DVR_MACFILTER_CFG
Structure about configuration parameters of MAC address filter
Structure Definition
struct{
DWORD dwSize;
BYTE byEnabled;
BYTE byPermissionType;
BYTE byRes1[2];
BYTE szMacAddress[MAC_ADDRESS_NUM/*48*/][MACADDR_LEN/*6*/];
BYTE byRes[128];
}NET_DVR_MACFILTER_CFG,*LPNET_DVR_MACFILTER_CFG;
Members
dwSize
Structure size
byEnabled
Enable MAC address filter or not: 0- Disable, 1- Enable
byPermissionType
MAC address filter type: 0-forbidden, 1-allowed
byRes1
Reserved, and set to 0
szMacAddress
Filtered MAC address, up to 48 MAC address can be supported, and each address is with the
length of 6 bytes.
byRes
Reserved, and set to 0
Remarks
The corresponding capability of MAC address filter configuration is XML_Cap_MACFilter , API:
NET_DVR_GetSTDAbility , capability set type: NET_DVR_GET_MACFILTER_CAPABILITIES.
493
Device Network SDK (General) Developer Guide
A.154 NET_DVR_MESSAGE_CALLBACK_PARAM_V51
Alarm Callback Configuration Parameters
A.155 NET_DVR_MIME_UNIT
See Also
NET_DVR_XML_CONFIG_INPUT
494
Device Network SDK (General) Developer Guide
A.156 NET_DVR_MONITOR_INFO
Structure about network listening mode configuration
Structure Definition
struct{
WORD wPort;
BYTE byRes1[2];
NET_DVR_IPADDR struRestrictRemoteIP;
BYTE byRes[164];
}NET_DVR_MONITOR_INFO,*LPNET_DVR_MONITOR_INFO;
Members
wPort
Listening port No.
byRes1
Reserved, set it to 0.
struRestrictRemoteIP
Remote access restriction IP.
byRes
Reserved, set it to 0.
A.157 NET_DVR_MOTION_MODE_PARAM
Parameter structure of motion detection region in different modes.
Structure Definition
struct{
NET_DVR_MOTION_SINGLE_AREA
struMotionSingleArea;
NET_DVR_MOTION_MULTI_AREA
struMotionMultiArea;
}NET_DVR_MOTION_MODE_PARAM, *LPNET_DVR_MOTION_MODE_PARAM;
Members
struMotionSingleArea
Single region mode, it is valid when byConfigurationMode is "0", refer to the structure
NET_DVR_MOTION_SINGLE_AREA for details.
495
Device Network SDK (General) Developer Guide
struMotionMultiArea
Multi-region mode, it is valid when byConfigurationMode is "1" or "2", refer to the structure
NET_DVR_MOTION_MULTI_AREA for details.
See Also
NET_DVR_MOTION_V40
A.158 NET_DVR_MOTION_MULTI_AREA
Structure about multiple regions configuration of motion detection.
Structure Definition
struct{
BYTE byDayNightCtrl;
BYTE byAllMotionSensitive;
BYTE byRes[2];
NET_DVR_SCHEDULE_DAYTIME
struScheduleTime;
NET_DVR_MOTION_MULTI_AREAPARAM
struMotionMultiAreaParam[MAX_MULTI_AREA_NUM/*24*/];
BYTE byRes1[60];
}NET_DVR_MOTION_MULTI_AREA, *LPNET_DVR_MOTION_MULTI_AREA;
Members
byDayNightCtrl
Day/night switch: 0-disabled (default), 1-auto, 2-scheduled
byAllMotionSensitive
Motion detection sensitive, it ranges from 0 to 5, if it is 0xff, it indicates that the sensitive
settings is disabled, and higher value corresponds to more sensitive.
byRes
Reserved, set to 0
struScheduleTime
Scheduled switching time, it is valid when byDayNightCtrl is 2, it is day when time is within
period, otherwise, it is night.
struMotionMultiAreaParam
Motion detection region parameter, up to 24 regions are supported.
byRes1
Reserved, set to 0
496
Device Network SDK (General) Developer Guide
See Also
NET_DVR_MOTION_MODE_PARAM
A.159 NET_DVR_MOTION_MULTI_AREAPARAM
Structure about motion detection region parameters.
Structure Definition
struct{
BYTE byAreaNo;
BYTE byRes[3];
NET_VCA_RECT
struRect;
NET_DVR_DNMODE
struDayNightDisable;
NET_DVR_DNMODE
struDayModeParam;
NET_DVR_DNMODE
struNightModeParam;
BYTE byRes1[8];
}NET_DVR_MOTION_MULTI_AREAPARAM, *LPNET_DVR_MOTION_MULTI_AREAPARAM;
Members
byAreaNo
Region ID, starts from 1
byRes
Reserved, set to 0
struRect
Coordinate information of single region (rectangle)
struDayNightDisable
Disable day/night mode, it is valid when byDayNightCtrl is 0
struDayModeParam
Day mode, it is valid when byDayNightCtrl is 1 or 2
struNightModeParam
Night mode, it is valid when byDayNightCtrl is 1 or 2
byRes1
497
Device Network SDK (General) Developer Guide
Reserved, set to 0
See Also
NET_DVR_MOTION_MODE_PARAM
A.160 NET_DVR_MOTION_SINGLE_AREA
Region parameter structure about motion detection in normal mode.
Structure Definition
struct{
BYTE byMotionScope[64][96];
BYTE byMotionSensitive;
BYTE byRes[3];
}NET_DVR_MOTION_SINGLE_AREA, *LPNET_DVR_MOTION_SINGLE_AREA;
Members
byMotionScope
Whether to set the block as motion detection region: 0-no, 1-yes, other values-reserved, set to
0. In the 96*64 array, for P video standard, only 22*18 is valid; for N video standard, only 22*15
is valid.
byMotionSensitive
Motion detection sensitive, it ranges from 0 to 5, if it is 0xff, it indicates that the sensitive
settings is disabled, and higher value corresponds to more sensitive.
byRes
Reserved, set to 0.
Remarks
For P video standard, the image size is 704*576, for N video standard, the image size is 704*480, so
the image with the size of 704*576 or 704*480 will be divided in to 22*18 blocks. And then each
block can be set as motion detection region. If the image size is larger than 704*576 in P video
standard, the image will be narrowed to 704*576 when setting motion detection region.
See Also
NET_DVR_MOTION_MODE_PARAM
A.161 NET_DVR_MOTION_V40
Structure about motion detection parameters.
498
Device Network SDK (General) Developer Guide
Structure Definition
struct{
NET_DVR_MOTION_MODE_PARAM struMotionMode;
BYTE byEnableHandleMotion;
BYTE byEnableDisplay;
BYTE byConfigurationMode;
BYTE byKeyingEnable;
DWORD dwHandleType;
DWORD dwMaxRelAlarmOutChanNum;
DWORD dwRelAlarmOut[MAX_ALARMOUT_V40/*4128*/];
NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS/*7*/][MAX_TIMESEGMENT_V30/*8*/];
DWORD dwMaxRecordChanNum;
DWORD dwRelRecordChan[MAX_CHANNUM_V40/*512*/];
BYTE byDiscardFalseAlarm;
BYTE byRes[127];
}NET_DVR_MOTION_V40, *LPNET_DVR_MOTION_V40;
Members
struMotionMode
Set motion detection region in the different modes (see the structure
NET_DVR_MOTION_MODE_PARAM for details).
byEnableHandleMotion
Whether to handle the motion detection: 0-no, 1-yes
byEnableDisplay
Whether to enable highlight display of motion detection: 0-no, 1-yes
byConfigurationMode
Motion detection mode: 0-normal, 1-expert (only for network camera), 2-coordinate system
mode (only for NVR)
byKeyingEnable
Whether to enable manual motion detection: 0-no, 1-yes
dwHandleType
Alarm linkage actions, see details below:
• 0x00: No response
• 0x01: Monitor warning
• 0x02: Audible warning
• 0x04: Upload to center
• 0x08: Trigger alarm output
• 0x10: Capture JPEG picture and send Email
• 0x20: Wireless combined aural and visual alarm linkage
• 0x40: E-map linkage (only supported by PCNVR)
499
Device Network SDK (General) Developer Guide
See Also
NET_DVR_PICCFG_V40
A.162 NET_DVR_MRD_SEARCH_PARAM
Condition structure for searching videos by calendar.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_STREAM_INFO struStreamInfo;
WORD wYear;
BYTE byMonth;
BYTE byDrawFrame;
BYTE byStreamType;
BYTE byLocalOrUTC;
BYTE byRes[30];
}NET_DVR_MRD_SEARCH_PARAM, *LPNET_DVR_MRD_SEARCH_PARAM;
500
Device Network SDK (General) Developer Guide
Members
dwSize
Structure size.
struStreamInfo
Camera information, refer to the structure for details.
wYear
Year
byMonth
Month
byDrawFrame
Whether to extract the frame: 0-no, 1-yes.
byStreamType
Stream type: 0-main stream, 1-sub-stream
byLocalOrUTC
Time type: 0-device local time, 1-UTC time
byRes
Reserved, set to 0.
A.163 NET_DVR_MRD_SEARCH_RESULT
Result structure for searching videos by calendar.
Structure Definition
struct{
DWORD dwSize;
BYTE byRecordDistribution[32];
BYTE byHasEventRecode[31];
BYTE byRes;
}NET_DVR_MRD_SEARCH_RESULT, *LPNET_DVR_MRD_SEARCH_RESULT;
Members
dwSize
Structure size.
byRecordDistribution
Video distribution on the calendar, e.g., byRecordDistribution[0]==1: video exists in the 1st of
the month, byRecordDistribution[0]==0: no video in the 1st of the month,
501
Device Network SDK (General) Developer Guide
A.164 NET_DVR_MULTI_STREAM_COMPRESSIONCFG
Encoding parameter structure of multi-stream.
Structure Definition
struct{
DWORD dwSize;
DWORD dwStreamType;
NET_DVR_COMPRESSION_INFO_V30 struStreamPara;
DWORD dwResolution;
BYTE byRes[76];
}NET_DVR_MULTI_STREAM_COMPRESSIONCFG,*LPNET_DVR_MULTI_STREAM_COMPRESSIONCFG;
Members
dwSize
Structure size.
dwStreamType
Stream type: 0-main stream, 1-sub-stream, 2-event stream, 3-stream 3, and so on.
struStreamPara
Stream encoding parameters, refer to the structure NET_DVR_COMPRESSION_INFO_V30 for
details.
dwResolution
The index number of the current resolution when the value of byResolution in
NET_DVR_COMPRESSION_INFO_V30 is 254 (the actual index number of the current resolution
exceeds 254).
byRes
Reserved, set to 0.
502
Device Network SDK (General) Developer Guide
A.165 NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND
Condition structure of multi-stream encoding parameter configuration.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_STREAM_INFO struStreamInfo;
DWORD dwStreamType;
BYTE byRes[32];
}NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND,*LPNET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND;
Members
dwSize
Structure size.
struStreamInfo
Stream information, i.e., stream ID or channel No., refer to the structure
NET_DVR_STREAM_INFO for details.
dwStreamType
Stream type: 0-main stream, 1-sub-stream, 2-event linked stream, 3-third-stream, 4-virtual
stream, ...
byRes
Reserved, set to 0.
A.166 NET_DVR_NAT_CFG
UPnP configuration structure.
Structure Definition
struct{
DWORD dwSize;
WORD wEnableUpnp;
WORD wEnableNat;
NET_DVR_IPADDR struIpAddr;
NET_DVR_NAT_PORT struHttpPort;
NET_DVR_NAT_PORT struCmdPort;
NET_DVR_NAT_PORT struRtspPort;
BYTE byFriendName[64];
BYTE byNatType;
BYTE byRes1[3];
NET_DVR_NAT_PORT struHttpsPort;
NET_DVR_NAT_PORT struSDKOverTLSPort;
503
Device Network SDK (General) Developer Guide
NET_DVR_NAT_PORT struRtspsPort;
BYTE byRes[44];
}NET_DVR_NAT_CFG, *LPNET_DVR_NAT_CFG;
Members
dwSize
Structure size
wEnableUpnp
Whether to enable UPnP: 0-no, 1-yes
wEnableNat
Whether to enable UPnP port mapping (NAT) function: 0-no, 1-yes
struIpAddr
IP address of NAT router in LAN, see details in the structure NET_DVR_IPADDR_UNION .
struHttpPort
Mapping configuration of web server HTTP port, see details in the structure
NET_DVR_NAT_PORT .
struCmdPort
Mapping parameters of command port (default: 8000), see details in the structure
NET_DVR_NAT_PORT .
struRtspPort
Mapping parameters of RTSP port, see details in the structure NET_DVR_NAT_PORT .
byFriendName
Service name
byNatType
Mapping mode of UPNP port: 0-manual, 1-auto
byRes1
Reserved, set to 0
struHttpsPort
Mapping parameters of HTTP port, see details in the structure NET_DVR_NAT_PORT .
struSDKOverTLSPort
Mapping parameters of SDKOverTLS port, see details in the structure NET_DVR_NAT_PORT .
struRtspsPort
Mapping parameters of RTSPS port, see details in the structure NET_DVR_NAT_PORT .
byRes
Reserved, set to 0
504
Device Network SDK (General) Developer Guide
Remarks
If the mapping mode (byNatType) of UPnP port is "auto", the external port number and internal
port number will be set as same automatically, and they cannot be edited. If the mapping mode
(byNatType) of UPnP port is "manual", the external port number can be set as different with the
internal port number.
A.167 NET_DVR_NAT_PORT
Port mapping configuration structure
Structure Definition
struct{
WORD wEnable;
WORD wExtPort;
BYTE byRes[12];
}NET_DVR_NAT_PORT, *LPNET_DVR_NAT_PORT;
Members
wEnable
Whether to enable mapping for this port.
wExtPort
Mapped external port number
byRes
Reserved
See Also
A.168 NET_DVR_NETCFG_V50
505
Device Network SDK (General) Developer Guide
506
Device Network SDK (General) Developer Guide
Remarks
• For device only supports the private protocol with version 3.0 or lower, when the parameter
byUseDhcp="0xff", you should set the device IP address to null, and then the device will
automatically get the DHCP information.
• When the parameter byIPv6Mode is set to 0 or 2, setting IPv6 address in the parameter
struEtherNet is not required, it will be obtained automatically by the device; when byIPv6Mode
is set to 1, you should set IPv6 address. As there are multiple IPv6 addresses, the IPv6 address of
current logged-in device may be different with that in struEtherNet.
A.169 NET_DVR_NET_RECEIVE
Structure about network receiving mode configuration
Structure Definition
struct{
WORD wNetPort;
BYTE byRes[2];
}NET_DVR_NET_RECEIVE,*LPNET_DVR_NET_RECEIVE;
Members
wNetPort
Network port.
byRes
Reserved, set it to 0.
A.170 NET_DVR_NET_SNIFF
Structure about network detection mode configuration
Structure Definition
struct{
BYTE byEnableSourcePort;
BYTE byEnableDestAddr;
BYTE byEnableDestPort;
BYTE byRes1;
BYTE bySourceIpAddr[MAX_DOMAIN_NAME/*64*/];
BYTE byDestinationIpAddr[MAX_DOMAIN_NAME/*64*/];
WORD wSourcePort;
WORD wDestinationPort;
BYTE byRes[16];
}NET_DVR_NET_SNIFF,*LPNET_DVR_NET_SNIFF;
507
Device Network SDK (General) Developer Guide
Members
byEnableSourcePort
Whether to enable filtering data source port: 0-disable, 1-enbale.
byEnableDestAddr
Whether to enable filtering target IP address: 0-disable, 1-enable.
byEnableDestPort
Whether to enable filtering port No. of target address: 0-disable, 1-enable.
byRes1
Reserved, set it to 0.
bySourceIpAddr
Data source IP address.
byDestinationIpAddr
Destination address where data is sent to.
wSourcePort
Port No. of data source.
wDestinationPort
Port No. of destination address where data is sent to.
byRes
Reserved.
A.171 NET_DVR_NOISEREMOVE
Digital noise reduction (DNR) parameter structure
Structure Definition
struct{
BYTE byDigitalNoiseRemoveEnable;
BYTE byDigitalNoiseRemoveLevel;
BYTE bySpectralLevel;
BYTE byTemporalLevel;
BYTE byDigitalNoiseRemove2DEnable;
BYTE byDigitalNoiseRemove2DLevel;
BYTE byRes[2];
}NET_DVR_NOISEREMOVE, *LPNET_DVR_NOISEREMOVE;
Members
byDigitalNoiseRemoveEnable
Whether to enable DNR: 0-no, 1-yes, enable normal mode, 2-yes, enable expert mode.
508
Device Network SDK (General) Developer Guide
byDigitalNoiseRemoveLevel
DNR level in normal mode, which is between 0x0 and 0xF.
bySpectralLevel
Spatial strength in expert mode, its value is between 0 and 100.
byTemporalLevel
Temporal strength in expert mode, its value is between 0 and 100.
byDigitalNoiseRemove2DEnable
Whether to enable 2D noise reduction of captured frame: 0-no, 1-yes; this member is only
available for intelligent traffic camera.
byDigitalNoiseRemove2DLevel
2D noise reduction level of captured frame, its value is between 0 and 100; this member is only
available for intelligent traffic camera.
byRes
Reserved, set to 0.
A.172 NET_DVR_OBJECT_FEATURE
Object's color features structure.
Structure Definition
struct{
BYTE byColorRatel;
BYTE byRed;
BYTE byGreen;
BYTE byBlue;
BYTE byRes[32];
}NET_DVR_OBJECT_FEATURE, *LPNET_DVR_OBJECT_FEATURE;
Members
byColorRatel
The color share threshold of the motion object, unit: percentage, value range: from 0 to 100.
byRed
Red component value in RGB.
byGreen
Green component value in RGB.
byBlue
Blue component value in RGB.
byRes
509
Device Network SDK (General) Developer Guide
Reserved, set to 0.
See Also
A.173 NET_DVR_ONLINEUPGRADE_SERVER
Structure of upgrade server status information
Structure Definition
struct{
DWORD dwSize;
BYTE byConnectStatus;
BYTE byRes[1019];
}NET_DVR_ONLINEUPGRADE_SERVER, *LPNET_DVR_ONLINEUPGRADE_SERVER;
Members
dwSize
Structure size
byConnectStatus
Connection status, 1-unconnected, 2-connected
byRes
Reserved.
Related API
NET_DVR_GetSTDConfig
A.174 NET_DVR_ONLINEUPGRADE_VERSION_COND
Search condition structure of latest version information
Structure Definition
struct{
DWORD dwSize;
BYTE byCheckFromSvr;
BYTE byRes[59];
}NET_DVR_ONLINEUPGRADE_VERSION_COND, *LPNET_DVR_ONLINEUPGRADE_VERSION_COND;
Members
dwSize
510
Device Network SDK (General) Developer Guide
Structure size
byCheckFromSvr
Whether server detection is required, 1-not required, the regular detection result of the device
is returned, 1-required, whether new version is detected via connecting with server
byRes
Reserved.
Related API
NET_DVR_GetSTDConfig
A.175 NET_DVR_ONLINEUPGRADE_VERSION_RET
Structure of online upgrade version information
Structure Definition
struct{
DWORD dwSize;
BYTE byNewVersionAvailable;
BYTE byNewVersion[MAX_VERSIIN_LEN/*64*/];
BYTE byChangeLog[SDK_LEN_2048/*2048*/];
BYTE byRes[971];
}NET_DVR_ONLINEUPGRADE_VERSION_RET, *LPNET_DVR_ONLINEUPGRADE_VERSION_RET;
Members
dwSize
Structure size
byNewVersionAvailable
Whether the latest version is available, 1- no, 2-yes
byNewVersion
Version No. of the latest version
byChangeLog
changes of the latest version
byRes
Reserved
Related API
NET_DVR_GetSTDConfig
511
Device Network SDK (General) Developer Guide
A.176 NET_DVR_OPTICAL_DEHAZE
Optical defog parameter structure
Structure Definition
struct{
BYTE byEnable;
BYTE byRes[7];
}NET_DVR_OPTICAL_DEHAZE, *LPNET_DVR_OPTICAL_DEHAZE;
Members
byEnable
Whether to enable optical defog: 0-no, 1-yes.
byRes
Reserved, set to 0.
A.177 NET_DVR_OUT_PARAM
Structure about output parameters.
Structure Definition
struct{
NET_DVR_BUF_INFO
struOutBuf;
void* lpStatusList;
BYTE byRes[32];
}NET_DVR_OUT_PARAM,*LPNET_DVR_OUT_PARAM;
Members
struOutBuf
Buffer for storing output parameters
pStatusList
Buffer for storing statuses
byRes
Reserved, set to 0
512
Device Network SDK (General) Developer Guide
A.178 NET_DVR_PHONECFG_V50
Phone configuration structure
Structure Definition
struct{
BYTE byWhiteList[MAX_PHONE_NUM/*32*/];
BYTE byPhonePerssion[32];
BYTE byAlarmHandler[32];
BYTE byAcsPassword[16];
BYTE byName[NAME_LEN/*32*/];
BYTE byRes[112];
}NET_DVR_PHONECFG_V50,*LPNET_DVR_PHONECFG_V50;
Members
byWhiteList
White list number
byPhonePerssion
Whether to enable certain function of this number, according to bit: 0x0: support receiving
alarm sms; 0x1: support sms control online and offline; 0x2: support call control online; 0x3:
support sms restart; 0x4: support controlling door operation
byAlarmHandler
whether to send a alarm in sms, values: 0- No, 1- Yes, according to bit: 0x0: full HDD; 0x1: HDD
error; 0x2: network disconnected; 0x3: IP address conflict; 0x4: illegal access; 0x5: video signal
exception; 0x6: input/ output video standard mismatched; 0x7: no video signal; 0x8: no audio
signal; 0x9: alarm input 0xa: video tampering detection alarm; 0xb: motion detection; 0xc:
recording exception; 0xd: PIR alarm; 0xe: wireless alarm; 0xf: emergency alarm; 0x10: audio
exception detection alarm; 0x11: scene detection alarm; 0x12: defocus detection alarm; 0x13:
face detection alarm; 0x14: line crossing detection alarm; 0x15: intrusion detection alarm; 0x16:
region exiting detection alarm; 0x17: region entrance alarm; 0x18: loitering detection alarm;
0x19: people gathering detection alarm; 0x1a: fast moving detection alarm; 0x1b: parking
detection alarm; 0x1c: unattended baggage detection alarm; 0x1d: object removal detection
alarm; 0x1e: data usage exceeds limit, refer to other SDK programming manual
byAcsPassword
Command to open door
byName
Contact name
byRes
Reserved, set as 0
513
Device Network SDK (General) Developer Guide
A.179 NET_DVR_PHY_DISK_INFO
Structure of single physical disk parameter.
Structure Definition
struct{
WORD wPhySlot;
BYTE byType;
BYTE byStatus;
BYTE byMode[40];
DWORD dwHCapacity;
DWORD dwLCapacity;
BYTE byArrrayName[MAX_NAMELEN/*16*/];
WORD wArrayID;
BYTE byRes[102];
}NET_DVR_PHY_DISK_INFO, *LPNET_DVR_PHY_DISK_INFO;
Members
wPhySlot
Slot number of hard disk
byType
Hard disk information: 0- general, 1- global hot spare, 2- RAID hot spare, 3- RAID disk
byStatus
Hard disk state: 0- normal,1- demotion,2- deleted, 3- HDD loss, 4- offline, 5- subnormal, 6-
extraneous HDD, 7- exception, 8- SMART status exception, 9- dormancy, 11- SMR disk does not
support RAID, 0xff- not-exist
byMode
Hard disk type (string)
dwHCapacity
Higher 32 bits of disk capacity (Unit: kb)
dwLCapacity
Lower 32 bits of disk capacity
wArrayID
Respective RAID ID
byRes
Reserved, please set to 0
514
Device Network SDK (General) Developer Guide
A.180 NET_DVR_PICCFG_V40
Image parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE sChanName[NAME_LEN/*32*/];
DWORD dwVideoFormat;
NET_DVR_VICOLOR struViColor;
DWORD dwShowChanName;
WORD wShowNameTopLeftX;
WORD wShowNameTopLeftY;
DWORD dwEnableHide;
NET_DVR_SHELTER struShelter[MAX_SHELTERNUM/*4*/];
DWORD dwShowOsd;
WORD wOSDTopLeftX;
WORD wOSDTopLeftY;
BYTE byOSDType;
BYTE byDispWeek;
BYTE byOSDAttrib;
BYTE byHourOsdType;
BYTE byFontSize;
BYTE byOSDColorType;
BYTE byAlignment;
BYTE byOSDMilliSecondEnable;
NET_DVR_VILOST_V40 struVILost;
NET_DVR_VILOST_V40 struAULost;
NET_DVR_MOTION_V40 struMotion;
NET_DVR_HIDEALARM_V40 struHideAlarm;
NET_DVR_RGB_COLOR struOsdColor;
DWORD dwBoundary;
BYTE byRes[120];
}NET_DVR_PICCFG_V40,*LPNET_DVR_PICCFG_V40;
Members
dwSize
Structure size.
sChanName
Channel name.
dwVideoFormat
Video standard (read-only): 0-not support, 1-NTSC, 2-PAL.
struViColor
Image parameter set by time period, see details in the structure NET_DVR_VICOLOR .
515
Device Network SDK (General) Developer Guide
dwShowChanName
Whether to display the channel name on the image of live view: 0-no, 1-yes (area size is
704*576).
wShowNameTopLeftX
X-coordinate of the display position of channel name.
wShowNameTopLeftY
Y-coordinate of the display position of channel name.
dwEnableHide
Whether to enable the privacy mask: 0-no, 1-yes.
struShelter
Privacy mask parameter, see details in NET_DVR_SHELTER .
dwShowOsd
Whether to enable OSD on the image of live view: 0-no, 1-yes (area size is 704*576).
wOSDTopLeftX
X-coordinate of OSD position.
wOSDTopLeftY
Y-coordinate of OSD position.
byOSDType
Displayed date format:
• 0: YYYY-MM-DD (year-month-day)
• 1: MM-DD-YYYY (month-day-year)
• 2: YYYY (year) MM (month) DD (day)
• 3: MM (month) DD (day) YYYY (year)
• 4: DD-MM-YYYY (day-month-year)
• 5: DD (day) MM (month) YYYY (year)
• 6: MM/DD/YYYY (month/day/year)
• 7: YYYY/MM/DD (year/month/day)
• 8: DD/MM/YYYY (day/month/year)
byDispWeek
Whether to display the day of the week: 0-no, 1-yes.
byOSDAttrib
OSD properties (transparent/non-transparent, flicker/non-flicker): 1-transparent, flicker; 2-
transparent, non-flicker; 3-non-transparent, flicker; 4-non-transparent, non-flicker.
byHourOsdType
Displayed time format: 0-24-hour, 1-12-hour or am./pm.
byFontSize
516
Device Network SDK (General) Developer Guide
A.181 NET_ITS_PICTURE_INFO
Captured picture information structure.
Structure Definition
struct{
DWORD dwDataLen;
BYTE byType;
BYTE byDataType;
BYTE byCloseUpType;
BYTE byPicRecogMode;
DWORD dwRedLightTime;
BYTE byAbsTime[32];
NET_VCA_RECT struPlateRect;
NET_VCA_RECT struPlateRecgRect;
517
Device Network SDK (General) Developer Guide
BYTE *pBuffer;
DWORD dwUTCTime;
BYTE byCompatibleAblity;
BYTE byTimeDiffFlag;
signed char cTimeDifferenceH;
signed char cTimeDifferenceM;
BYTE byRes2[4];
}NET_ITS_PICTURE_INFO, *LPNET_ITS_PICTURE_INFO;
Members
dwDataLen
Size of media data.
byType
Data type: 0-license plate picture, 1-scene picture, 2-composite picture, 3-close-up picture, 4-
binary picture, 5-stream, 6-driver's face thumbnail, 7-co-driver's face thumbnail, 8-non-motor
vehicle, 9-pedestrian, 10-raw data, 11-target picture, 12-driver room picture, 13-co-driver room
picture, 14-face thumbnail
byDataType
Data uploading type: 0-directly upload, 1-upload URL of cloud storage server
byCloseUpType
Close-up picture type: 0-reserved, 1-non-motor vehicle, 2-pedestrian
byPicRecogMode
Recognition mode: 0-recognize in forward direction, 1-recognize in backward direction
dwRedLightTime
Red light duration, unit: s
byAbsTime
Absolute time: yyyymmddhhmmssxxx, e.g.20090810235959999, the last three bits are
milliseconds.
struPlateRect
When byType is "1", this parameter indicates the position of license plate on the scene picture,
when byType is "8" or "9", this parameter indicates the person coordinates. See details in the
structure NET_VCA_RECT .
struPlateRecgRect
ANPR region coordinates, when byType is "12" or "13", this parameter indicates the coordinates
of driver. See details in the structure NET_VCA_RECT .
pBuffer
Buffer for saving data.
dwUTCTime
UTC time
518
Device Network SDK (General) Developer Guide
byCompatibleAblity
Compatible with capability filed, and it is represented by bit, value: 0-invalid, 1-valid. bit0-
whether the parameter dwUTCTime is valid.
byTimeDiffFlag
Whether the time difference parameter is valid: 0-invalid, 1-valid.
cTimeDifferenceH
Time difference between time and UTC time, unit: hour, the value is between -12 and +14 ("+"
indicates the east time zone), it is valid when byTimeDiffFlag is "1".
cTimeDifferenceM
Time difference between time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byTimeDiffFlag is "1".
byRes2
Reserved
Remarks
• If only the scene picture is uploaded, you can capture the close-up view from scene picture
according to the parameter struPlateRecgRect, and you can also adjust the width and height as
required.
• Picture URL format: [Link]
did=DevID&bid=BlkID&pid=PictureID&ptime=PicTime. E.g., [Link]
did=35b9cbd0-8ffa-1031-87e6-0025903c6a50&bid=387&pid=2952790009&ptime=1378106185
CVMIP
IP address of CVM (Cloud Video Management) server.
Port
Port number (default: 8009) of HTTP service provided by CVM (Cloud Video Management)
server.
DevID
Device ID of CVS (Cloud Video Server).
BlkID
Device block ID of CVS (Cloud Video Server)
PictureID
Picture ID generated by CVS (Cloud Video Server)
PicTime
Picture timestamp.
519
Device Network SDK (General) Developer Guide
A.182 NET_DVR_PIC_FEATURE_UNION
Picture features union.
Structure Definition
union{
BYTE byLen[256];
NET_DVR_PLATE_INFO struPlateInfo;
NET_DVR_FACE_SUB_PIC_INFO struFaceSubInfo;
NET_DVR_BEHAVIOR_INFO struBehavior;
}NET_DVR_PIC_FEATURE_UNION, *LPNET_DVR_PIC_FEATURE_UNION;
Members
byLen
Union size, which is 256 bytes.
struPlateInfo
Vehicle detection picture information, it is valid only when the picture type (wPicType) in the
structure is "0". For details, refer to the structure NET_DVR_PLATE_INFO in the HCNetSDK user
manual of traffic capture and analysis applications.
struFaceSubInfo
Face picture information, it is valid only when the picture type (wPicType) in the structure is
"1". For details, refer to the structure .
struBehavior
Behavior analysis picture information, it is valid only when the picture type (wPicType) in the
structure is from "3" to "12". For details, refer to the structure .
See Also
A.183 NET_DVR_PIC_PARAM
Picture parameters structure
Structure Definition
struct{
char *pDVRFileName;
char *pSavedFileBuf;
DWORD dwBufLen;
DWORD *lpdwRetLen;
NET_DVR_ADDRESS struAddr;
520
Device Network SDK (General) Developer Guide
BYTE byRes[256];
}NET_DVR_PIC_PARAM, *LPNET_DVR_PIC_PARAM;
Members
pDVRFileName
Picture name
pSavedFileBuf
The buffer to save the picture data
dwBufLen
The buffer size
lpdwRetLen
Actually received data length pointer, it cannot be NULL
struAddr
Picture address information, it will be returned when searching for pictures
byRes
Reserved
A.184 NET_DVR_PIRIS_PARAM
IR iris parameter structure
Structure Definition
struct{
BYTE byMode;
BYTE byPIrisAperture;
BYTE byRes[6];
}NET_DVR_PIRIS_PARAM, *LPNET_DVR_PIRIS_PARAM;
Members
byMode
IR iris mode: 0-auto, 1-manual.
byPIrisAperture
IR iris level (higher level corresponds to larger iris), value range: [1,100], the default value is 50;
this member can be configured when in manual mode (byMode is set to 1).
byRes
Reserved, set to 0.
521
Device Network SDK (General) Developer Guide
A.185 NET_DVR_PLAYCOND
A.186 NET_DVR_POE_CFG
522
Device Network SDK (General) Developer Guide
A.187 NET_DVR_POS_AVE
A.188 NET_DVR_POS_CONNECTMODE_UNION
523
Device Network SDK (General) Developer Guide
A.189 NET_DVR_POS_FILTER_CFG
A.190 NET_DVR_POS_GENERIC
Structure about generic text protocol information
Structure Definition
struct{
BYTE byCaseSensitive;
BYTE byRes1[7];
NET_DVR_GENERIC_START struTransactionStart;
NET_DVR_GENERIC_END struTransactionEnd;
NET_DVR_GENERIC_DATA_CFG struLineDeli;
NET_DVR_IGNORE_STRING struIgnoreString[MAX_IGNORE_STRING_NUM];
BYTE byRes[40];
}NET_DVR_POS_GENERIC, *LPNET_DVR_POS_GENERIC;
Members
byCaseSensitive
Whether it is case-sensitive: 0-no, 1-yes
byRes1
Reserved.
524
Device Network SDK (General) Developer Guide
struTransactionStart
Start transaction
struTransactionEnd
End transaction
struLineDeli
Line separator.
struIgnoreString
Number of ignored strings, the maximum is 4 currently.
byRes
Reserved.
A.191 NET_DVR_POS_HIDDEN_INFORMATION
Remarks
* will be used to replace and hide the POS information.
A.192 NET_DVR_POS_NUCLEUS
Structure about NUCLEUS protocol parameters
Structure Definition
struct{
char szEmployeeNo[SERIAL_NUM_LEN/*8*/];
char szTerminalNo[SERIAL_NUM_LEN/*8*/];
char szShiftNo[SERIAL_NUM_LEN/*8*/];
BYTE byRes[928];
}NET_DVR_POS_NUCLEUS,*LPNET_DVR_POS_NUCLEUS;
525
Device Network SDK (General) Developer Guide
Members
szEmployeeNo
Employee No.
szTerminalNo
POS No.
szShiftNo
Shift No., corresponding to different shift period.
byRes
Reserved.
A.193 NET_DVR_POS_OSD_REGION
Structure about POS information overlaying area.
Structure Definition
struct{
NET_VCA_POINT struStart;
NET_VCA_POINT struEnd;
}NET_DVR_POS_OSD_REGION,*LPNET_DVR_POS_OSD_REGION;
Members
struStart
Coordinates of start point.
struEnd
Coordinates of end point.
A.194 NET_DVR_POS_PROTOCOL_UNION
Union about POS protocol parameters
Structure Definition
union{
BYTE byLenth[952];
NET_DVR_POS_GENERIC struGeneric;
NET_DVR_POS_AVE struAve;
NET_DVR_POS_NUCLEUS struNUCLEUS;
}NET_DVR_POS_PROTOCOL_UNION,*LPNET_DVR_POS_PROTOCOL_UNION;
526
Device Network SDK (General) Developer Guide
Members
byLenth
Union size, 952 bytes.
struGeneric
Generic text protocol parameters, it is valid only when byProtocolType is set to 1.
struAve
AVE protocol parameters, it is valid only when byProtocolType is set to 2 or 3.
struNUCLEUS
NUCLEUS protocol parameters, it is valid only when byProtocolType is set to 5.
A.195 NET_DVR_POSINFO_OVERLAY
Text overlay parameter structure
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byBackpackEnanble;
BYTE bySexEnanble;
BYTE byCarryEnanble;
BYTE byRideEnanble;
BYTE byMaskEnanble;
BYTE byHatEnanble;
BYTE bySleeveEnanble;
BYTE byPantsTypeEnanble;
BYTE byHairEnanble;
BYTE byGlassesEnanble;
BYTE byAgeEnanble;
BYTE byHeightEnanble;
BYTE byRes[511];
}NET_DVR_POSINFO_OVERLAY,*LPNET_DVR_POSINFO_OVERLAY;
Members
dwSize
Structure size.
byEnable
whether to enable text overlay: 0-no, 1-yes.
byBackpackEnanble
whether to enable backpack information overlay: 0-no, 1-yes.
527
Device Network SDK (General) Developer Guide
bySexEnanble
whether to enable gender information overlay: 0-no, 1-yes.
byCarryEnanble
whether to enable carrying information overlay: 0-no, 1-yes.
byRideEnanble
whether to enable riding information overlay: 0-no, 1-yes.
byMaskEnanble
whether to enable wearing mask information overlay: 0-no, 1-yes.
byHatEnanble
whether to enable wearing hat information overlay: 0-no, 1-yes.
bySleeveEnanble
whether to enable tops information overlay: 0-no, 1-yes.
byPantsTypeEnanble
whether to enable overlay bottoms information overlay: 0-no, 1-yes.
byHairEnanble
whether to enable hair information overlay: 0-no, 1-yes.
byGlassesEnanble
Whether to enable wearing glasses information overlay: 0-no, 1-yes.
byAgeEnanble
whether to enable age information overlay: 0-no, 1-yes.
byHeightEnanble
whether to enable stature information overlay: 0-no, 1-yes.
byRes
Reserved, set to 0.
A.196 NET_DVR_PPPOECFG
528
Device Network SDK (General) Developer Guide
A.197 NET_DVR_PRESETCHAN_INFO
A.198 NET_DVR_PRESET_NAME
Preset name and predefined PTZ information structure.
Structure Definition
struct{
DWORD dwSize;
WORD wPresetNum;
BYTE byRes1[2];
BYTE byName[NAME_LEN/*32%/];
WORD wPanPos;
WORD wTiltPos;
WORD wZoomPos;
BYTE byRes2;
BYTE byPTZPosExEnable;
NET_PTZ_INFO_EX struPtzPosEx;
BYTE byRes[58];
}NET_DVR_PRESET_NAME, *LPNET_DVR_PRESET_NAME;
Members
dwSize
Structure size.
wPresetNum
Preset No.
byRes1
Reserved, set to 0.
529
Device Network SDK (General) Developer Guide
byName
Preset name.
wPanPos
Panning parameter (setting is not available).
wTiltPos
Tilting parameter (setting is not available).
wZoomPos
Zooming parameter (setting is not available).
byRes2
Reserved, set to 0.
byPTZPosExEnable
Whether to enable PTZ parameters extension, 0-no, 1-yes. The extended PTZ coordinates are
subject to the values of struPtzPosEx.
struPtzPosEx
Extended PTZ parameters, which supports high accuracy, see details in the structure .
byRes
Reserved, set to 0.
A.199 NET_DVR_PREVIEWINFO
530
Device Network SDK (General) Developer Guide
531
Device Network SDK (General) Developer Guide
532
Device Network SDK (General) Developer Guide
Remarks
• The parameters dwStreamType (stream type), dwLinkMode (connection type),
bPassbackRecord (ANR), byPreviewMode (delay live view mode), byStreamID (stream ID),
should be supported by device.
• The API NET_DVR_RealPlay_V40 supports live view in multicast mode (set dwLinkMode to 2)
without setting multicast group address. As the lower layer will automatically get the configured
multicast group address (struMulticastIpAddr in the structure NET_DVR_NETCFG_V50 ) from
the device .
• NPQ (Network Protocol Quality) is a service library to improve the transmission quality of video
and audio data by network technology. The transmission is based on UDP, and the transmitted
video and audio data is in RTP container format, so the network bandwidth usage can be
estimated according to the packet loss rate and RTT of RTCP. And then the stream sender will
change the stream encoding strategy and bit rate to meet the current network situation.
• When the value of dwLinkMode is 0, and the value of byVideoCodingType is 1, it indicates
getting raw stream data. The supported types of raw data includes thermal raw data,
temperature data, and real-time raw data. The default type is thermal raw data. The
temperature data is uploaded in the format of STREAM_FRAME_INFO_S .
A.200 NET_DVR_PREVIEWINFO_SPECIAL
Live view parameter structure.
533
Device Network SDK (General) Developer Guide
Structure Definition
typedef struct tagNET_DVR_PREVIEWINFO_SPECIAL{
char sURL[1024];
DWORD dwLinkMode;
HWND hPlayWnd;
DWORD bBlocked;
DWORD dwDisplayBufNum;
BYTE byRes[64];
}NET_DVR_PREVIEWINFO_SPECIAL, *LPNET_DVR_PREVIEWINFO_SPECIAL;
Members
sURL
Streaming URL returned by device, e.g., rtsp://admin:abcd12345@[Link]:554/Streaming/
Channels/101?transportmode=unicast
dwLinkMode
Connection mode: 0-TCP, 1-UDP, 2-, 3-RTP, 4-RTP/RTSP, 5-RTP/HTTP
hPlayWnd
Handle of display window, "NULL"-not decode and display.
Blocked
0-non-blocking streaming (check the success once requesting for connection, if receiving stream
failed or playing failed, the live view exception will be uploaded for notification, which can
reduce the pausing duration during auto-switch), 1-blocking streaming (check the success until
playing ended, if network exception, the connection failed message is returned after 5 second
timeout, so it is not application for auto-switch).
dwDisplayBufNum
Maximum frames can be buffered in the PlayCtrl library buffer, range: from 1 to 50 frames. If
this parameter is set to 0, the value will automatically change to 1.
byRes
Reserved, set to 0.
See Also
NET_DVR_RealPlaySpecial
A.201 NET_DVR_PROTO_TYPE
Structure about protocol parameters.
534
Device Network SDK (General) Developer Guide
Structure Definition
struct{
DWORD dwType;
BYTE byDescribe[DESC_LEN/*16*/];
}NET_DVR_PROTO_TYPE,*LPNET_DVR_PROTO_TYPE;
Members
dwType
Protocol value
byDescribe
Protocol description
Remarks
• The descriptions (byDescribe) of different protocol types (dwType) are shown in the table below.
enum tagNET_DVR_IPC_ENUM_UNIFY{
ENUM_IPC_PROTOCOL_INVALID = -1,
ENUM_IPC_PROTOCOL_HIKVISION = 0, //HIKVISION
ENUM_IPC_PROTOCOL_PANASONIC = 1, //PANASONIC
ENUM_IPC_PROTOCOL_SONY = 2, //SONY
ENUM_IPC_PROTOCOL_AXIS = 4, //AXIS
ENUM_IPC_PROTOCOL_SANYO = 5, //SANYO
ENUM_IPC_PROTOCOL_BOSCH = 6, //BOSCH
ENUM_IPC_PROTOCOL_ZAVIO = 7, //ZAVIO
ENUM_IPC_PROTOCOL_GRANDEYE, //GRANDEYE
ENUM_IPC_PROTOCOL_PROVIDEO = 16, //PROVIDEO
ENUM_IPC_PROTOCOL_ARECONT = 10, //ARECONT
ENUM_IPC_PROTOCOL_ACTI = 11, //ACTI
ENUM_IPC_PROTOCOL_PELCO = 12, //PELCO
ENUM_IPC_PROTOCOL_VIVOTEK = 13, //VIVOTEK
ENUM_IPC_PROTOCOL_DAHUA = 3, //DAHUA
ENUM_IPC_PROTOCOL_SAMSUNG = 15, //SAMSUNG
ENUM_IPC_PROTOCOL_PSIA = 17, //PSIA
ENUM_IPC_PROTOCOL_ONVIF = 18, //ONVIF
ENUM_IPC_PROTOCOL_BRICKCOM = 19, //BRICKCOM
ENUM_IPC_PROTOCOL_CANON = 23, //CANON
ENUM_IPC_PROTOCOL_HUINT = 32, //HUINT
ENUM_IPC_PROTOCOL_INFINOVA = 14, //INFINOVA
ENUM_IPC_PROTOCOL_HIK_STD_H264, //HIKVISION STANDARD H.264
ENUM_IPC_PROTOCOL_HIK_STD_MPEG4, //HIKVISION STANDARD MPEG4
ENUM_IPC_PROTOCOL_SUNELL, //SUNELL
ENUM_IPC_PROTOCOL_ATEME, //ATEME
ENUM_IPC_PROTOCOL_LAUNCH, //LAUNCH
ENUM_IPC_PROTOCOL_YAAN, //YAAN
ENUM_IPC_PROTOCOL_BLUESKY, //BLUESKY
ENUM_IPC_PROTOCOL_BLUESKYLIMIT, //BLUESKYLIMIT
ENUM_IPC_PROTOCOL_TDWY, //TIANDY
ENUM_IPC_PROTOCOL_HBGK, //HBGK
535
Device Network SDK (General) Developer Guide
ENUM_IPC_PROTOCOL_SANTACHI, //SANTACHI
ENUM_IPC_PROTOCOL_HIGHEASY, //HIGHEASY
ENUM_IPC_PROTOCOL_HANBANG, //HANBANG
ENUM_IPC_PROTOCOL_SAMSUNG_3120, //SAMSUNG 3120
ENUM_IPC_PROTOCOL_SAMSUNG_3080, //SAMSUNG 3080
ENUM_IPC_PROTOCOL_SAMSUNG_2000, //SAMSUNG 2000
ENUM_IPC_PROTOCOL_SAMSUNG_5200, //SAMSUNG 5200
ENUM_IPC_PROTOCOL_JINGYUAN, //JINGYUAN
ENUM_IPC_PROTOCOL_VIDEOTREC, //VIDEOTREC
ENUM_IPC_PROTOCOL_CHENOVA, //CHENOVA
ENUM_IPC_PROTOCOL_FENGHUO, //FENGHUO
ENUM_IPC_PROTOCOL_ZB_5301, //ZB_5301
ENUM_IPC_PROTOCOL_ZB_5401, //ZB_5401
ENUM_IPC_PROTOCOL_HAIXIN, //HISENSE
ENUM_IPC_PROTOCOL_ZHONGYINGXIN, //ZHONGYINGXIN
ENUM_IPC_PROTOCOL_AVUN, //AVUN
ENUM_IPC_PROTOCOL_GOVTY, //GOVTY
ENUM_IPC_PROTOCOL_SAE, //SAE
ENUM_IPC_PROTOCOL_DONGFANGWANGLI, //NETPOSA
ENUM_IPC_PROTOCOL_CHANGHONG, //CHANGHONG
ENUM_IPC_PROTOCOL_H3C, //H3C
ENUM_IPC_PROTOCOL_BAIAN, //BAIAN
ENUM_IPC_PROTOCOL_HAT, //HAT
ENUM_IPC_PROTOCOL_YUANYE, //YUANYE
ENUM_IPC_PROTOCOL_HIKCARD, //HIKVISION BOARD CARD
ENUM_IPC_PROTOCOL_HAIXINCAP, //HISENSE CAPTURE CAMERA
ENUM_IPC_PROTOCOL_WENANCAP, //WENAN CAPTURE CAMERA
ENUM_IPC_PROTOCOL_XUNMEI, //XUNMEI
ENUM_IPC_PROTOCOL_BAIWO, //BAIWO
ENUM_IPC_PROTOCOL_APD, //APD
ENUM_IPC_PROTOCOL_REACHDEV, //REACHDEV
ENUM_IPC_PROTOCOL_XUNMEI_DAHUA, //XUNMEI_DAHUA OEM
ENUM_IPC_PROTOCOL_HUANGHE, //HUANGHE
ENUM_IPC_PROTOCOL_LIANCHEN, //LIANCHEN
ENUM_IPC_PROTOCOL_CHENGYE, //CHENGYE
ENUM_IPC_PROTOCOL_VISIONDIGI, //VISIONDIGI
ENUM_IPC_PROTOCOL_HENGHE, //HENGHE
ENUM_IPC_PROTOCOL_KODAK, //KODAK
ENUM_IPC_PROTOCOL_AIRONIX, //AIRONIX
ENUM_IPC_PROTOCOL_LG, //LG
ENUM_IPC_PROTOCOL_HASEE, //HASEE
ENUM_IPC_PROTOCOL_8000ME, //8000ME
ENUM_IPC_PROTOCOL_POVITEL, //POVITEL
ENUM_IPC_PROTOCOL_YIVIEW, //YIVIEW
ENUM_IPC_PROTOCOL_TIANYUE, //TIANYUE
ENUM_IPC_PROTOCOL_HOWELL, //HOWELL
ENUM_IPC_PROTOCOL_WAPA, //WAPA
ENUM_IPC_PROTOCOL_SANLE, //SANLE
ENUM_IPC_PROTOCOL_HIKCARD_ENCRYPTION, //ENCRYPTED HIKVISION BOARD CARD
ENUM_IPC_PROTOCOL_JUNSDA, //JUNSDA
ENUM_IPC_PROTOCOL_LIYUAN, //LIYUAN
ENUM_IPC_PROTOCOL_XINCHAN, //XINCHAN
536
Device Network SDK (General) Developer Guide
ENUM_IPC_PROTOCOL_BITE, //BITE
ENUM_IPC_PROTOCOL_MEIAN, //MEIAN
ENUM_IPC_PROTOCOL_ROSEEK, //ROSEEK
ENUM_IPC_PROTOCOL_AEBELL, //AEBELL
ENUM_IPC_PROTOCOL_JSL_ST, //JSL ST
ENUM_IPC_PROTOCOL_VIMICRO, //VIMICRO
ENUM_IPC_PROTOCOL_TYPE, //MAX MANUFACTURER TYPE
}NET_DVR_IPC_ENUM_UNIFY
enum _NET_DVR_IPC_ENUM_{
ENUM_BUSINESS_INVALID = -1,
ENUM_BUSINESS_HIKVISION = 0,
ENUM_BUSINESS_PANASONIC,
ENUM_BUSINESS_SONY,
ENUM_BUSINESS_AXIS,
ENUM_BUSINESS_SANYO,
ENUM_BUSINESS_BOSCH,
ENUM_BUSINESS_ZAVIO,
ENUM_BUSINESS_GRANDEYE,
ENUM_BUSINESS_PROVIDEO,
ENUM_BUSINESS_ARECONT, //9
ENUM_BUSINESS_ACTI,
ENUM_BUSINESS_PELCO,
ENUM_BUSINESS_VIVOTEK,
ENUM_BUSINESS_INFINOVA,
ENUM_BUSINESS_DAHUA, //14
ENUM_BUSINESS_HIK_STD_H264 = 0x20,
ENUM_BUSINESS_HIK_STD_MPEG4,
ENUM_BUSINESS_SUNELL, //SUNELL
ENUM_BUSINESS_ATEME,
ENUM_BUSINESS_LAUNCH, //LAUNCH
ENUM_BUSINESS_YAAN, //YAAN
ENUM_BUSINESS_BLUESKY, //BLUESKY
ENUM_BUSINESS_BLUESKYLIMIT, //BLUESKYLIMIT
ENUM_BUSINESS_TDWY, //TIANDY
ENUM_BUSINESS_HBGK, //HBGK
ENUM_BUSINESS_SANTACHI, //SANTACHI
ENUM_BUSINESS_HIGHEASY, //HIGHEASY
ENUM_BUSINESS_SAMSUNG,
ENUM_BUSINESS_URL_RTSP = 0x40,//Streaming via URL
ENUM_BUSINESS_ONVIF,
ENUM_MAX_BUSINESS_TYPE, //Maximum manufacturer type
}NET_DVR_IPC_ENUM
• If the device supports unified network camera protocol, the supported protocol types are
enumerated in NET_DVR_IPC_ENUM_UNIFY; otherwise, the supported protocol types are
enumerated in NET_DVR_IPC_ENUM.
537
Device Network SDK (General) Developer Guide
A.202 NET_DVR_RTSPCFG
RTSP protocol parameter structure.
Structure Definition
struct{
DWORD dwSize;
WORD wPort;
WORD wRtspsPort;
BYTE byReserve[52];
}NET_DVR_RTSPCFG, *LPNET_DVR_RTSPCFG;
Members
dwSize
Structure size.
wPort
RTSP server listening port.
wRtspsPort
RTSPS sever listening port.
byReserve
Reserved, set to 0.
A.203 NET_DVR_RTSP_PARAMS_CFG
538
Device Network SDK (General) Developer Guide
A.204 NET_DVR_PTZTRACKCHAN_INFO
A.205 NET_DVR_PTZPOS
PTZ position parameter structure.
Structure Definition
struct{
WORD wAction;
WORD wPanPos;
WORD wTiltPos;
WORD wZoomPos;
}NET_DVR_PTZPOS, *LPNET_DVR_PTZPOS;
Members
wAction
Operation type, it is valid only when setting parameters. 1-locate PTZ parameter, 2-locate Pan
parameter, 3-locate Tilt parameter, 4-locate Zoom parameter, 5-locate Pan and Tilt parameter.
wPanPos
Pan parameter (horizontal)
wTiltPos
Tilt parameter (vertical)
wZoomPos
Zoom parameter (zoom in or out)
Remarks
The actual PTZ position value is the one-tenth of the received hexadecimal value. If the obtained
Pan value is 0x1750, the actual Pan value is 175 degree; if the obtained Tilt value is 0x0789, the
actual Tilt value is 78.9 degree; if the obtained Zoom value is 0x1100, the actual Zoom value is 110.
539
Device Network SDK (General) Developer Guide
A.206 NET_DVR_PTZPOS_INFO
PTZ position parameter structure.
Structure Definition
struct{
DWORD dwPanPos;
DWORD dwTiltPos;
DWORD dwZoomPos;
}NET_DVR_PTZPOS_INFO, *LPNET_DVR_PTZPOS_INFO;
Members
dwPanPos
Panning parameter (horizontal)
dwTiltPos
Tilting parameter (vertical)
dwZoomPos
Zooming parameter
See Also
A.207 NET_DVR_PTZ_POSITION
Structure about scene configuration.
Structure Definition
struct{
BYTE byEnable;
BYTE byRes1[3];
BYTE byPtzPositionName[NAME_LEN/*32*/];
NET_DVR_PTZPOS
struPtzPos;
BYTE byRes2[40];
}NET_DVR_PTZ_POSITION, *LPNET_DVR_PTZ_POSITION;
Members
byEnable
Whether to enable scene: 0-no, 1-yes
540
Device Network SDK (General) Developer Guide
byRes1
Reserved, set to 0
byPtzPositionName
Scene name
struPtzPos
PTZ coordinates
byRes2
Reserved, set to 0
Remarks
The byEnable is invalid when setting behavior analysis rule, but it is valid when setting local scene
parameters.
A.208 NET_DVR_PU_STREAM_CFG_V41
Dynamic decoding parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byStreamMode;
BYTE byStreamEncrypt;
BYTE byRes1[2];
NET_DVR_DEC_STREAM_MODE uDecStreamMode;
DWORD dwDecDelayTime;
BYTE sStreamPassword[STREAM_PASSWD_LEN/*12*/];
BYTE byRes2[48];
}NET_DVR_PU_STREAM_CFG_V41,*LPNET_DVR_PU_STREAM_CFG_V41;
Members
dwSize
Structure size
byStreamMode
Streaming mode: 0-invalid, 1-get stream by IP address or domain name, 2-get stream by URL, 3-
get stream from device by DDNS.
byStreamEncrypt
Whether to encrypt the stream: 0-no, 1-yes.
byRes1
Reserved, set to 0
541
Device Network SDK (General) Developer Guide
uDecStreamMode
Streaming configuration parameters, see the structure NET_DVR_DEC_STREAM_MODE for
details.
dwDecDelayTime
Decoding delay time duration, unit: millisecond.
sStreamPassword
Stream encryption password. The sensitive information should be encrypted.
byRes2
Reserved, set to 0.
A.209 NET_DVR_PU_STREAM_URL
Configuration parameter structure about getting stream by URL.
Structure Definition
struct{
BYTE byEnable;
BYTE strURL[240];
BYTE byTransPortocol;
WORD wIPID;
BYTE byChannel;
BYTE byRes[7];
}NET_DVR_PU_STREAM_URL,*LPNET_DVR_PU_STREAM_URL;
Members
byEnable
Enable/disable getting stream by URL: 0-disable, 1-enable.
strURL
Stream URL
byTransPortocol
Transfer protocol type: 0-TCP, 1-UDP
wIPID
Device ID= iDevInfoIndex + iGroupNO*64 +1
byChannel
Device channel No.
byRes
Reserved, set to 0.
542
Device Network SDK (General) Developer Guide
Remarks
The stream URL format is {rtsp://ip[:port]/urlExtension}[?username=username][?
password=password][?linkmode=linkmode]. You can also customize the URL format if the network
camera supports custom URL.
A.210 NET_DVR_REL_CAPTURE_CHAN_V40
Capture channel information.
Structure Definition
struct{
DWORD dwMaxRelCaptureChanNum;
DWORD dwChanNo[MAX_CHANNUM_V40/*512*/];
BYTE byRes[32];
}NET_DVR_REL_CAPTURE_CHAN_V40, *LPNET_DVR_REL_CAPTURE_CHAN_V40;
Members
dwMaxRelCaptureChanNum
Maximum number of channels that can be triggered by alarm input, which is read-only.
dwChanNo
No. of the channel that is triggered to capture, which is represented by value and permuted
compactly. 0xffffffff indicates that the subsequent value is invalid.
byRes
Reserved, set to 0.
A.211 NET_DVR_RGB_COLOR
Structure about color parameters.
Structure Definition
struct{
BYTE byRed;
BYTE byGreen;
BYTE byBlue;
BYTE byRes;
}NET_DVR_RGB_COLOR, *LPNET_DVR_RGB_COLOR;
Members
byRed
Red component in RGB color model.
543
Device Network SDK (General) Developer Guide
byGreen
Green component in RGB color model.
byBlue
Blue component in RGB color model.
byRes
Reserved
Remarks
The color component value is based on RGB888 standard.
A.212 NET_DVR_SCENE_INFO
Alarm scene information structure.
Structure Definition
struct {
DWORD dwSceneID;
BYTE bySceneName[NAME_LEN];
BYTE byDirection;
BYTE byRes1[3];
NET_DVR_PTZPOS struPtzPos;
BYTE byRes2[64];
}NET_DVR_SCENE_INFO,*LPNET_DVR_SCENE_INFO;
Members
dwSceneID
Scene ID, 0 means that this scene is invalid.
bySceneName
Scene name.
byDirection
Detection direction: 1-upward, 2-downward, 3-bidirectional, 4-westward, 5-northward, 6-
eastward, 7-southward, 8-other.
byRes1
Reserved.
struPtzPos
PTZ coordinates, see details in the structure .
byRes2
Reserved.
544
Device Network SDK (General) Developer Guide
A.213 NET_DVR_SCENECHANGE_DETECTION_RESULT
Structure about the information of the scene change alarm.
Structure Definition
struct{
DWORD dwSize;
NET_VCA_DEV_INFO struDevInfo;
WORD wDevInfoIvmsChannelEx;
BYTE byRes[126];
}NET_DVR_SCENECHANGE_DETECTION_RESULT, *LPNET_DVR_SCENECHANGE_DETECTION_RESULT;
Members
dwSize
Structure size.
struDevInfo
Front-end device information, see details in the structure NET_VCA_DEV_INFO .
wDevInfoIvmsChannelEx
Device channel No. for the HCNetSDK to access the device.
byRes
Reserved, set to 0.
A.214 NET_DVR_SCHEDTIME
A.215 NET_DVR_SCHEDULE_DAYTIME
Structure about auto-switch time interval parameters.
545
Device Network SDK (General) Developer Guide
Structure Definition
struct{
NET_DVR_DAYTIME
struStartTime;
NET_DVR_DAYTIME
struStopTime;
}NET_DVR_SCHEDULE_DAYTIME, *LPNET_DVR_SCHEDULE_DAYTIME;
Members
struStartTime
Start time
struStopTime
Stop time
A.216 NET_DVR_SEARCH_EVENT_PARAM_V50
Condition structure about searching videos by event.
Structure Definition
struct{
WORD wMajorType;
WORD wMinorType;
NET_DVR_TIME_SEARCH_COND struStartTime;
NET_DVR_TIME_SEARCH_COND struEndTime;
BYTE byLockType;
BYTE byRes[255];
union{
BYTE byLen[SEARCH_EVENT_INFO_LEN_V40/*800*/];
struct{
WORD wAlarmInNo[128];
BYTE byRes[544];
}struAlarmParam;
struct{
WORD wMotDetChanNo[MAX_CHANNUM_V30/*64*/];
BYTE byRes[672];
}struMotionParam;
struct{
WORD wChanNo[MAX_CHANNUM_V30/*64*/];
BYTE byRuleID;
BYTE byRes[671];
}struVcaParam;
struct{
BYTE byRoomIndex;
546
Device Network SDK (General) Developer Guide
BYTE byRes[799];
}struInquestParam;
struct{
BYTE byAll;
BYTE byRes1[3];
WORD wChanNo[MAX_CHANNUM_V30/*64*/];
BYTE byRes1[668];
}struVCADetect;
struct{
NET_DVR_STREAM_INFO struIDInfo;
DWORD dwCmdType;
BYTE byBackupVolumeNum;
BYTE byRes[723];
}struStreamIDParam;
struct{
WORD wChannel[MAX_CHANNUM_V30/*64*/];
BYTE byAllChan;
BYTE byCaseSensitive;
BYTE byCombinateMode;
BYTE byRes1;
char sKeyWord[MAX_POS_KEYWORDS_NUM/*3*/][MAX_POS_KEYWORD_LEN/*128*/];
BYTE byRes[284];
}struPosAlarm;
struct{
BYTE byCaseNo[SEARCH_CASE_NO_LEN/*56*/];
BYTE byCaseName[SEARCH_CASE_NAME_LEN/*100*/];
BYTE byLitigant1[SEARCH_LITIGANT_LEN/*32*/];
BYTE byLitigant2[SEARCH_LITIGANT_LEN/*32*/];
BYTE byChiefJudge[SEARCH_CHIEF_JUDGE_LEN/*32*/];
BYTE byCaseType;
BYTE byRes[547];
}struTrialParam;
struct{
DWORD dwMajor;
DWORD dwMinor;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byName[NAME_LEN/*32*/];
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE byRes[722];
}struACSAlarm;
struct{
WORD wDeviceType;
WORD wEventType;
WORD wChannel[MAX_CHANNUM_V30/*64*/];
BYTE byAllChan;
BYTE byCaseSensitive;
BYTE byCombinateMode;
BYTE bySearchType;
char sKeyWord[MAX_POS_KEYWORDS_NUM/*3*/][MAX_POS_KEYWORD_LEN/*128*/];
WORD wZoneNo;
BYTE byRes[278];
}struIOTAlarm;
547
Device Network SDK (General) Developer Guide
}uSeniorParam;
}NET_DVR_SEARCH_EVENT_PARAM_V50,*LPNET_DVR_SEARCH_EVENT_PARAM_V50;
Members
wMajorType
Major alarm/event types, see details below:
enum _MAIN_EVENT_TYPE_{
EVENT_MOT_DET = 0,
EVENT_ALARM_IN = 1,
EVENT_VCA_BEHAVIOR = 2,
EVENT_INQUEST = 3,
EVENT_VCA_DETECTION = 4,
EVENT_POS = 5,
EVENT_TRIAL_CASE = 6,
EVENT_ACS_CASE = 7,
EVENT_IOT_CASE = 8,
EVENT_STREAM_INFO = 100,
}MAIN_EVENT_TYPE
EVENT_MOT_DET
Motion detection
EVENT_ALARM_IN
Alarm input
EVENT_VCA_BEHAVIOR
Behavior analysis
EVENT_INQUEST
Inquest event (not support)
EVENT_VCA_DETECTION
VCA detection
EVENT_POS
POS information
EVENT_TRIAL_CASE
Trial case information (not support)
EVENT_ACS_CASE
Access control event
EVENT_IOT_CASE
IoT device event
EVENT_STREAM_INFO
Stream ID information
wMinorType
548
Device Network SDK (General) Developer Guide
Minor alarm/event types, which vary with the major types. 0xffff-all types. For motion
detection, alarm input, and POS recording, there is no minor type, so this parameter is set to
"oxffff"; for access control event, refer to the integration manual of access control applications;
for the major types of behavior analysis, VCA detection, and stream ID information, the
corresponding minor types are shown below:
Table A-15 EVENT_VCA_BEHAVIOR
Minor Type Value Description
EVENT_TRAVERSE_PLANE 0 Line crossing
EVENT_ENTER_AREA 1 Entering the area,support
regional rule
EVENT_EXIT_AREA 2 Leaving the area, support
regional rule
EVENT_INTRUSION 3 Perimeter intrusion, support
regional rule
EVENT_LOITER 4 Loitering, support regional
rule
EVENT_LEFT_TAKE 5 Droping/picking up, support
regional rule
EVENT_PARKING 6 Parking, support regional rule
EVENT_RUN 7 Running, support regional rule
EVENT_HIGH_DENSITY 8 People density in the area,
support regional rule
EVENT_STICK_UP 9 Sticking a note, support
regional rule
EVENT_INSTALL_SCANNER 10 Installing card reader, support
regional rule
EVENT_OPERATE_OVER_TIME 11 Operation timeout
EVENT_FACE_DETECT 12 Abnormal face detection
EVENT_LEFT 13 Unattended baggage
EVENT_TAKE 14 Object removal
EVENT_LEAVE_POSITION 15 Absence event
EVENT_TRAIL_INFO 16 Tailing
EVENT_HUMAN_ENTER 18 Human entrance
549
Device Network SDK (General) Developer Guide
550
Device Network SDK (General) Developer Guide
551
Device Network SDK (General) Developer Guide
552
Device Network SDK (General) Developer Guide
Reserved, set to 0.
uSeniorParam
Condition structure of searching for video files based on event/alarm, see details below:
byLen
Union size, which is 800 bytes.
struAlarmParam
Condition structure of searching for video files based on alarm input alarm, see details
below:
wAlarmInNo
Alarm input No., "0xffff"-the following are invalid. For example,
wAlarmInNo[0]==1&&wAlarmInNo[1]==2 indicates the alarm input event of alarm input
No.1 and alarm input No.2.
byRes
Reserved, set to 0.
struMotionParam
Condition structure of searching for video files based on motion detection, see details below:
wMotDetChanNo
The channel No., "0xffff"-the following are invalid. For
example,wMotDetChanNo[0]==1&&wMotDetChanNo[1]==2 indicates the motion
detection event of channel No.1 and channel No.2.
byRes
Reserved, set to 0.
struVcaParam
Condition structure of searching for video files based on behavior analysis, see details below:
wChanNo
The event triggered channel No., "0xffff"-the following are invalid. For example,
wChanNo[0]==1&&wChanNo[1]==2 indicates the behavior analysis event of channel No.1
and channel No.2.
byRuleID
Rule ID, 0xff-all
byRes
Reserved, set to 0.
struInquestParam
Condition structure of searching for video files based on inquest event, see details below:
byRoomIndex
553
Device Network SDK (General) Developer Guide
554
Device Network SDK (General) Developer Guide
Litigant No.2
byChiefJudge
Chief judge
byCaseType
Case type: 0-all, 1criminal case, 2-civil case.
byRes
Reserved, set to 0
struPosAlarm
Condition structure of searching for video files with POS information, see details below:
wChannel
Channel No., "0xffff"-the following are invalid. For example,
wChannel[0]==1&&wChannel[1]==2 indicates the video with POS information of channel
No.1 and channel No.2.
byAllChan
Whether to search in all channels: 0-no (wChannel is valid), 1-all channels (wChannel is
invalid).
byCaseSensitive
Whether to enable case sensitive: 0-no, 1-yes.
byCombinateMode
The keyword combination mode: 0-or, 1-and.
byRes1
Reserved, set to 0.
sKeyWord
Search by keyword.
byRes
Reserved, set to 0.
struACSAlarm
Condition structure of searching for video files based on access control event, see details
below:
dwMajor
Alarm/event major type, 0-all.
dwMinor
Alarm/event minor type, 0-all.
byCardNo
555
Device Network SDK (General) Developer Guide
Card No.
byName
Name
byMACAddr
Physical MAC address.
byRes
Reserved, set to 0.
struIOTAlarm
Condition structure of searching for video files based on IoT device event, see details below:
wDeviceType
Device type: 0-Hikvision access controller, 1-Hikvision video intercom, 2-Hikvision security
control panel, 3-GJD security control panel, 4-Luminite security control panel, 5-OPTEX
security control panel, 6-Detector
wEventType
Event searching sub type, it varies according to main type, 0xffff-all
wChannel
Channel No.
byAllChan
Search all channel: 0-no, the wChannel is valid, 1-all channel, the wChannel is invalid
byCaseSensitive
Case sensitivity or not: 1-no, 1-yes
byCombinateMode
Key word combination mode: 0-or, 1-and
bySearchType
Search method: 1-according to video source, now the channel is video channel.
sKeyWord
Key word
wZoneNo
Zone No., it is valid only when the wDeviceType values "2-Hikvision security control
panel" and the sub type wEventType values "1"
byRes
Reserved, set to 0.
Related API
NET_DVR_FindFileByEvent_V50
556
Device Network SDK (General) Developer Guide
A.217 NET_DVR_SEARCH_EVENT_RET_V50
Information structure of video files searched by event.
Structure Definition
struct{
WORD wMajorType;
WORD wMinorType;
NET_DVR_TIME_SEARCH struStartTime;
NET_DVR_TIME_SEARCH struEndTime;
NET_DVR_ADDRESS struAddr;
WORD wChan[MAX_CHANNUM_V40/*512*/];
BYTE byRes[256];
union{
BYTE byLen[800];
struct{
DWORD dwAlarmInNo;
BYTE byRes[796];
}struAlarmRet;
struct{
DWORD dwMotDetNo;
BYTE byRes[796];
}struMotionRet;
struct{
DWORD dwChanNo;
BYTE byRuleID;
BYTE byRes1[3];
BYTE byRuleName[NAME_LEN/*32*/];
NET_VCA_EVENT_UNION uEvent;
BYTE byRes[668];
}struVcaRet;
struct{
BYTE byRoomIndex;
BYTE byDriveIndex;
BYTE byRes1[6];
DWORD dwSegmentNo;
WORD wSegmetSize;
WORD wSegmentState;
BYTE byRes2[784];
}struInquestRet;
struct{
DWORD dwRecordType;
DWORD dwRecordLength;
BYTE byLockFlag;
BYTE byDrawFrameType;
BYTE byRes1[2];
BYTE byFileName[NAME_LEN/*32*/];
DWORD dwFileIndex;
BYTE byRes[752];
}struStreamIDRet;
557
Device Network SDK (General) Developer Guide
struct{
DWORD dwChanNo;
BYTE byRes[796];
}struPosRet;
struct{
BYTE byRoomIndex;
BYTE byDriveIndex;
WORD wSegmetSize;
DWORD dwSegmentNo;
BYTE bySegmentState;
BYTE byCaseType;
BYTE byRes[2];
BYTE byCaseNo[CASE_NO_RET_LEN/*52*/];
BYTE byCaseName[CASE_NAME_RET_LEN/*64*/];
BYTE byLitigant1[LITIGANT_RET_LEN/*24*/];
BYTE byLitigant2[LITIGANT_RET_LEN/*24*/];
BYTE byChiefJudge[CHIEF_JUDGE_RET_LEN/*24*/];
BYTE byRes1[600];
}struTrialRet;
}uSeniorRet;
}NET_DVR_SEARCH_EVENT_RET_V50,*LPNET_DVR_SEARCH_EVENT_RET_V50;
Members
wMajorType
Major types, see details below:
enum _MAIN_EVENT_TYPE_{
EVENT_MOT_DET = 0,
EVENT_ALARM_IN = 1,
EVENT_VCA_BEHAVIOR = 2,
EVENT_INQUEST = 3,
EVENT_VCA_DETECTION = 4,
EVENT_TRIAL_CASK = 6,
EVENT_STREAM_INFO = 100,
}MAIN_EVENT_TYPE
EVENT_MOT_DET
Motion detection
EVENT_ALARM_IN
Alarm input
EVENT_VCA_BEHAVIOR
Behavior analysis
EVENT_INQUEST
Inquest event (not support)
EVENT_VCA_DETECTION
558
Device Network SDK (General) Developer Guide
VCA detection
EVENT_POS
POS information
EVENT_TRIAL_CASK
Trial case information (not support)
EVENT_ACS_CASK
Access control event
EVENT_STREAM_INFO
Stream ID information
wMinorType
Minor alarm/event types, which vary with the major types. 0xffff-all types. For motion
detection, alarm input, and POS recording, there is no minor type, so this parameter is set to
"oxffff"; for access control event, refer to the integration manual of access control applications;
for the major types of behavior analysis, VCA detection, and stream ID information, the
corresponding minor types are shown below:
Table A-18 EVENT_VCA_BEHAVIOR
Minor Type Value Description
EVENT_TRAVERSE_PLANE 0 Line crossing
EVENT_ENTER_AREA 1 Entering the area,support
regional rule
EVENT_EXIT_AREA 2 Leaving the area, support
regional rule
EVENT_INTRUSION 3 Perimeter intrusion, support
regional rule
EVENT_LOITER 4 Loitering, support regional
rule
EVENT_LEFT_TAKE 5 Droping/picking up, support
regional rule
EVENT_PARKING 6 Parking, support regional rule
EVENT_RUN 7 Running, support regional rule
EVENT_HIGH_DENSITY 8 People density in the area,
support regional rule
EVENT_STICK_UP 9 Sticking a note, support
regional rule
559
Device Network SDK (General) Developer Guide
560
Device Network SDK (General) Developer Guide
561
Device Network SDK (General) Developer Guide
562
Device Network SDK (General) Developer Guide
struAddr
Address information of video segment, which for cluster playback, refer to for details.
wChan
Alarm triggered or event occurred channel No. 0xffff-the followings are invalid.
byRes
Reserved, set to 0.
uSeniorRet
Result union of searching for video files based on event/alarm, see details below:
byLen
Union size, it is 800 bytes.
struAlarmRet
Result structure of searching for video files based on alarm input alarm, see details below:
dwAlarmInNo
Alarm input No..
byRes
Reserved.
struMotionRet
Result structure of searching for video files based on motion detection, see details below:
dwMotDetNo
Motion detection channel No.
byRes
Reserved, set to 0.
struVcaRet
Result structure of searching for video files based on behavior analysis alarm, see details
below:
dwChanNo
Behavior analysis channel No.
byRuleID
Rule ID, 0xff-all rules
byRes1
Reserved, set to 0.
byRuleName
Rule name.
uEvent
563
Device Network SDK (General) Developer Guide
Behavior analysis parameters, which depends on the parameter wMinorType, refer to the
integration manual of behavior analysis applications for details.
byRes
Reserved, set to 0.
struInquestRet
Result structure of searching for video files based on inquest event, see details below:
byRoomIndex
Inquest room No., starts from 1.
byDriveIndex
Recorder No., starts from 1.
byRes1
Reserved, set to 0.
dwSegmentNo
Video segment No. of this inquest, starts from 1.
wSegmetSize
Video segment size, unit: MB
wSegmentState
Recording status: 0-normal, 1-exception, 2-unrecorded
byRes2
Reserved, set to 0.
struStreamIDRet
Result structure of searching for video files with stream ID information, see details below:
dwRecordType
Recording types: 0-scheduled recording, 1-based on motion detection, 2-based on alarm
input alarm, 3-based on alarm input alarm or motion detection, 4-based on alarm input
alarm and motion detection, 5-based on command, 6-manual recording, 7-based on
vibration alarm, 8-based on environment alarm, 9-based on VCA alarm (including driving
in the opposite direction, line crossing, unattended baggage, object removal and so on),
10-based on video tampering alarm, 13-based on event (motion detection, PIR, wireless
panic alarm, and so on), 24-by video montage.
dwRecordLength
Video file size.
byLockFlag
Whether to lock: 0-no, 1-yes.
byDrawFrameType
564
Device Network SDK (General) Developer Guide
565
Device Network SDK (General) Developer Guide
Case name.
byLitigant1
Litigant No.1.
byLitigant2
Litigant No.2.
byChiefJudge
Chief judge
byRes1
Reserved, set to 0.
Related API
NET_DVR_FindNextEvent_V50
A.218 NET_DVR_SECURITY_CFG_FILE_COND
Input parameter structure of importing/exporting configuration file
Structure Definition
struct{
DWORD dwSize;
char szSecretKey[NET_SDK_SECRETKEY_LEN/*128*/];
BYTE byRes[128];
}NET_DVR_SECURITY_CFG_FILE_COND,*LPNET_DVR_SECURITY_CFG_FILE_COND;
Members
dwSize
Structure size
szSecretKey
Verification key of configuration file
byRes
Reserved, set to 0
A.219 NET_DVR_SEND_PARAM_IN
Structure about input parameters for sending data.
566
Device Network SDK (General) Developer Guide
Structure Definition
struct{
BYTE *pSendData;
DWORD dwSendDataLen;
NET_DVR_TIME_V30 struTime;
BYTE byPicType;
BYTE byPicURL;
BYTE byRes1[2];
DWORD dwPicMangeNo;
BYTE sPicName[NAME_LEN/*32*/];
DWORD dwPicDisplayTime;
BYTE *pSendAppendData;
DWORD dwSendAppendDataLen;
BYTE byRes[192];
}NET_DVR_SEND_PARAM_IN,*LPNET_DVR_SEND_PARAM_IN;
Members
ipSendData
Picture buffer
dwSendDataLen
Picture data size
struTime
Time displayed on the picture
byPicType
Picture format: 1-JPEG, 2-BMP, 3-PNG
byPicURL
Picture data mode: 0-binary, 1-URL
byRes1
Reserved, set to 0
dwPicMangeNo
Picture management No.
sPicName
Picture name
dwPicDisplayTime
Picture display time, unit: second
pSendAppendData
Additional information buffer of sent picture, set it to NULL if not supported
dwSendAppendDataLen
Additional information data length of sent picture, set it to 0 if not supported
567
Device Network SDK (General) Developer Guide
byRes
Reserved
A.220 NET_DVR_SETUPALARM_PARAM
Arming parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byLevel;
BYTE byAlarmInfoType;
BYTE byRetAlarmTypeV40;
BYTE byRetDevInfoVersion;
BYTE byRetVQDAlarmType;
BYTE byFaceAlarmDetection;
BYTE bySupport;
BYTE byBrokenNetHttp;
WORD wTaskNo;
BYTE byDeployType;
BYTE bySubScription;
BYTE byRes1[2];
BYTE byAlarmTypeURL;
BYTE byCustomCtrl;
}NET_DVR_SETUPALARM_PARAM, *LPNET_DVR_SETUPALARM_PARAM;
Members
dwSize
Structure size
byLevel
Arming priority: 0-high, 1-medium, 2-low.
byAlarmInfoType
Intelligent traffic alarm information type: 0-old (NET_DVR_PLATE_RESULT),1-new
(NET_ITS_PLATE_RESULT)
byRetAlarmTypeV40
0-motion detection, video loss, video tampering, and alarm input alarm information is uploaded
in normal mode (alarm type: COMM_ALARM_V30, alarm information structure:
NET_DVR_ALARMINFO_V30 ), 1-alarm information is uploaded in variable size (alarm type:
COMM_ALARM_V40, alarm information structure: NET_DVR_ALARMINFO_V40 )
byRetDevInfoVersion
568
Device Network SDK (General) Developer Guide
569
Device Network SDK (General) Developer Guide
Alarm picture data type, which is represented by bit, if the device supports uploading alarm
pictures in binary format and URL format, you can specify the data type to be uploading via this
parameter, if the device only supports URL format, this parameter is invalid. If the URL format is
selected, you should set the device and enable the cloud storage, otherwise, the picture will still
be transmitted in binary format.
• bit0-type of captured face pictures: 0-binary data, 1-URL
• bit1-type of picture uploaded in message: 0-binary, 1-URL
• bit2-type of picture uploaded for face picture comparison: 0-binary, 1-URL
byCustomCtrl
Custom control type, which is represented by bit, bit0-whether to upload the face thumbnail of
co-driver: 0-no, 1-yes
Remarks
For arming via client software, only supports arming one channel, and supports uploading the
alarm/event when device is offline; for real-time arming, up to four channels can be armed at same
time, but uploading alarm/event when device is offline is not supported.
A.221 NET_DVR_SETUPALARM_PARAM_V50
570
Device Network SDK (General) Developer Guide
571
Device Network SDK (General) Developer Guide
572
Device Network SDK (General) Developer Guide
Remarks
• The parameters byLevel and byAlarmInfoType are available for traffic cameras. Up to 1 cameras
can be armed in the priority of level 0, up to 3 cameras can be armed in the priority of level 1,
and up to 5 cameras can be armed in the priority of level 3, the alarm/event information from
the camera in highest priority will be uploaded first.
• For arming via client software, only supports arming one channel, and supports uploading the
alarm/event when device is offline; for real-time arming, up to four channels can be armed at
same time, but uploading alarm/event when device is offline is not supported.
• The parameter wTaskNo is used to distinguish different arming connections. If the value of this
parameter in different arming connections is same, error will be returned.
A.222 NET_DVR_SHELTER
Structure about privacy mask region parameters.
Structure Definition
struct{
WORD wHideAreaTopLeftX;
WORD wHideAreaTopLeftY;
WORD wHideAreaWidth;
WORD wHideAreaHeight;
}NET_DVR_SHELTER, *LPNET_DVR_SHELTER;
Members
wHideAreaTopLeftX
X-coordinate of privacy mask region
wHideAreaTopLeftY
Y-coordinate of privacy mask region
wHideAreaWidth
Privacy mask area width
wHideAreaHeight
Privacy mask area height
Remarks
By default, the size of whole image is set to 704*576, so the coordinates, width, and height of
privacy mask region should be converted to adapt to the size 704*576.
See Also
NET_DVR_PICCFG_V40
573
Device Network SDK (General) Developer Guide
A.223 NET_DVR_SHOWSTRINGINFO
Sub structure about text overlay parameters.
Structure Definition
struct{
WORD wShowString;
WORD wStringSize;
WORD wShowStringTopLeftX;
WORD wShowStringTopLeftY;
char sString[44];
}NET_DVR_SHOWSTRINGINFO,*LPNET_DVR_SHOWSTRINGINFO;
Members
wShowString
Whether to enable OSD during live view: 0-no, 1-yes. The display region size is 704*576 , with
single character size of 32*32
wStringSize
String size, up to 44 characters.
wShowStringTopLeftX
X-coordinate of text displayed position
wShowStringTopLeftY
Y-coordinate of text displayed position
sString
Text content.
See Also
NET_DVR_SHOWSTRING_V30
A.224 NET_DVR_SHOWSTRING_V30
Text overlay parameter structure.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_SHOWSTRINGINFO
struStringInfo[MAX_STRINGNUM_V30/*8*/];
}NET_DVR_SHOWSTRING_V30,*LPNET_DVR_SHOWSTRING_V30;
574
Device Network SDK (General) Developer Guide
Member
dwSize
Structure size
struStringInfo
Text to be displayed, see details in the structure NET_DVR_SHOWSTRINGINFO .
A.225 NET_DVR_SIMXML_LOGIN
A.226 NET_DVR_SINGLE_HD_V50
Configuration parameter structure of a HDD.
Structure Definition
struct{
DWORD dwHDNo;
DWORD dwCapacity;
DWORD dwFreeSpace;
DWORD dwHdStatus;
BYTE byHDAttr;
BYTE byHDType;
BYTE byDiskDriver;
BYTE byGenusGruop;
DWORD dwHdGroup;
BYTE byRecycling;
BYTE bySupportFormatType;
BYTE byFormatType;
BYTE byRes2;
DWORD dwStorageType;
DWORD dwPictureCapacity;
DWORD dwFreePictureSpace;
BYTE byDiskLocation[NET_SDK_DISK_LOCATION_LEN/*16*/];
BYTE bySupplierName[NET_SDK_SUPPLIER_NAME_LEN/*32*/];
BYTE byDiskModel[NET_SDK_DISK_MODEL_LEN /*64*/];
char szHDLocateIP[SDK_MAX_IP_LEN];
575
Device Network SDK (General) Developer Guide
BYTE byRes3[80];
}NET_DVR_SINGLE_HD_V50, *LPNET_DVR_SINGLE_HD_V50;
Members
dwHDNo
HDD No., which is between 0 and 32.
dwCapacity
HDD capacity, it is read-only.
dwFreeSpace
HDD free space, it is read-only.
dwHdStatus
HDD status (read-only): 0-normal, 1-unformatted, 2-error, 3-smart status, 4-mismatched, 5-
sleepy, 6-offline (for network HDD), 7-Virtual HDD supports expansion, 10-HDD is repairing, 11-
HDD is formatting, 12-HDD is waiting for formatting, 13-HDD is uninstalled, 14-the local HDD
does not exist, 15-deleting ( for network HDD), 16-locked, 17-warning, 18-bad HDD, 19-
exception HDD, 20-unauthenticated, 21-unformatted for education sharing system.
byHDAttr
HDD property: 0-normal, 1-redundant, 2-read-only, 3-archive, 4-cannot read and write.
byHDType
HDD type: 0-local HDD, 1-ESATA, 2-NFS, 3-iSCSI, 4-RAID, 5-SD card, 6-minSAS
byDiskDriver
HDD value, represented by ASCII characters.
byGenusGruop
Group: 0-reserved, 1-array, 2-storage pool, 3-HDD out of array, 4-unitialized HDD, 5-invalid HDD,
6-local hot spare, 7-global hot spare, read-only.
dwHdGroup
HDD group, value range: [1, 16].
byRecycling
Whether to recycle: 0-no, 1-yes.
bySupportFormatType
Formatting type supported by HDD, read-only, it is valid only when byHDType is set to "5". This
member is represented by bit, bit0: whether supports FAT32 formatting type, bit1: whether
supports EXT4 formatting type. Value: 0-format HDD according to default type/not support, 1-
support;
byFormatType
The selected formatting type, read-only. Value: 0-default formatting type, 1-FAT32 (valid when
byHDType is set to "5"), 2-EXT4 (valid when byHDType is set to "5").
576
Device Network SDK (General) Developer Guide
byRes2
Reserved.
dwStorageType
Storage type, which is represented by bit, and the bit value is 0 (not support) or others
(support).
• dwStorageType & 0x1: HDD for saving normal video files.
• dwStorageType & 0x2: HDD for saving video files recorded by extracting frame.
• dwStorageType & 0x4: HDD for saving picture files.
dwPictureCapacity
HDD capacity for saving pictures (read-only), unit: MB
dwFreePictureSpace
Free space for saving picture (read-only), unit: MB
byDiskLocation
HDD location, read-only. The location description format is x/y-z, in which,
x: interface No. of host computer for connecting with extension module, i.e., 0-host computer,
1-extension module that connects to interface No.1, 2-extension module that connects to
interface No.2;
y: extension module level No., i.e., 0-host computer, 1-level 1 extension module, 2-level 2
extension module;
z: slot No., e.g., if there are 48 slots on computer, the slot No. is between 1 and 48.
For example, 0/0-1 represents the location of slot No.1 on host computer; 1/1-24 represents
the location of slot No.1 on level 1 extension module that connects to interface No.1 of host
computer.
bySupplierName
HDD supplier name, read-only
byDiskModel
HDD model, read-only
szHDLocateIP
HDD IP address.
byRes3
Reserved, set to 0.
Remarks
As the members dwCapacity, dwFreeSpace, and dwHdStatus are the properties of local HDD, so
they are read-only.
577
Device Network SDK (General) Developer Guide
A.227 NET_DVR_SINGLE_RS232
RS232 Configuration Structure (extended for 9000) Sub Structure
Structure Definition
struct{
DWORD dwBaudRate;
BYTE byDataBit;
BYTE byStopBit;
BYTE byParity;
BYTE byFlowcontrol;
DWORD dwWorkMode;
}NET_DVR_SINGLE_RS232, *LPNET_DVR_SINGLE_RS232;
Members
dwBaudRate
baud rate (bps): 0-50; 1-75; 2-110; 3-150; 4-300; 5-600; 6-1200; 7-2400; 8-4800; 9-9600;
10-19200; 11-38400; 12-57600; 13-76800; 14-115.2k
byDataBit
data bit: 0-5 digit; 1-6 digit; 2-7 digit; 3-8 digit
byStopBit
stop bit: 0-1 digit; 1-2 digit
byParity
parity: 0- disable; 1- odd parity; 2- even parity
byFlowcontrol
flow control: 0-disable; 1-software flow control; 2- hardware flow control
dwWorkMode
work mode: 0-narrowband transmission (232 is used for PPP dailing); 1- control center (232
works as paramter configuration); 2- transparent channel
A.228 NET_DVR_SIP_CFG_V50
SIP (Session Initiation Protocol) parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnableAutoLogin;
BYTE byLoginStatus;
BYTE byRes1[2];
578
Device Network SDK (General) Developer Guide
NET_DVR_IPADDR stuServerIP;
WORD wServerPort;
BYTE byRes2[2];
BYTE byUserName[NAME_LEN/*32*/];
BYTE byPassWord[PASSWD_LEN/*16*/];
BYTE byLocalNo[MAX_NUMBER_LEN/*32*/];
BYTE byDispalyName[MAX_NAME_LEN/*128*/];
WORD wLocalPort;
BYTE byLoginCycle;
BYTE byRes3;
BYTE bySIPServerDomain[MAX_DOMAIN_NAME/*64*/];
NET_DVR_IPADDR stuSTUNServerIP;
BYTE bySTUNServerDomain[MAX_DOMAIN_NAME/*64*/];
WORD wSTUNServerPort;
BYTE byRes4[2]
NET_DVR_IPADDR stuProxyServerIP;
BYTE byProxyServerDomain[MAX_DOMAIN_NAME/*64*/];
WORD wProxyServerPort;
BYTE byNetWork;
BYTE byRes5;
BYTE byCalledTargetName[NET_SDK_MAX_CALLEDTARGET_NAME/*32*/];
BYTE byRes[224];
}NET_DVR_SIP_CFG_V50, *LPNET_DVR_SIP_CFG_V50;
Members
dwSize
Structure size.
byEnableAutoLogin
Whether to enable registering automatically: 0-disable, 1-enable.
byLoginStatus
Login status: 0-unregistered,1-registered. This parameter can only be obtained.
byRes1
Reserved, set to 0.
stuServerIP
IP address of the SIP server.
wServerPort
Port No. of the SIP server.
byRes2
Reserved, set to 0.
byUserName
User name.
byPassWord
579
Device Network SDK (General) Developer Guide
Password.
byLocalNo
Local No.
byDispalyName
Displayed name.
wLocalPort
Local port.
byLoginCycle
Registration period, value range: [1, 99], unit: minute.
byRes3
Reserved, set to 0.
bySIPServerDomain
SIP server domain name
Domain name of the SIP server. Only one member of stuServerIP and bySIPServerDomain
should be configured; if both are configured, stuServerIP will be preferred.
stuSTUNServerIP
IP address of the STUN server.
bySTUNServerDomain
Domain name of the STUN server.
wSTUNServerPort
Port No. of the STUN server.
byRes4
Reserved, set to 0.
stuProxyServerIP
IP address of the proxy server.
byProxyServerDomain
Domain name of the proxy server. Only one member of stuProxyServerIP and
byProxyServerDomain should be configured; if both are configured, the stuProxyServerIP will
be preferred.
wProxyServerPort
Port No. of the proxy server.
byNetWork
Network type: 0-invalid, 1-wired network 1, 2-wired network 2, 3-wireless network. If this
member is set to wired network, only the wired network will be used no matter whether the
wireless network is normal or not; if this member is set to wireless network, only the wireless
network will be used.
580
Device Network SDK (General) Developer Guide
byRes5
Reserved, set to 0.
byCalledTargetName
User name of the called person.
byRes
Reserved, set to 0.
A.229 NET_DVR_SMARTIR_PARAM
SMART IR parameter structure
Structure Definition
struct{
BYTE byMode;
BYTE byIRDistance;
BYTE byShortIRDistance;
BYTE byLongIRDistance;
}NET_DVR_SMARTIR_PARAM, *LPNET_DVR_SMARTIR_PARAM;
Members
byMode
SMART IR mode: 0-auto, 1-manual.
byIRDistance
IR distance level (higher level corresponds to further IR distance), value range: [1,100], the
default value is 50; this member can be configured in manual SMART IR mode (byMode is set to
"1").
byShortIRDistance
Near light distance level, value range: [1,100].
byLongIRDistance
Far light distance level, value range: [1,100].
A.230 NET_DVR_SMARTSEARCH_PIC_UNION
Dual-VCA condition structure.
Structure Definition
union{
BYTE byLen[256];
NET_DVR_VEHICLE_PARA struVehiclePara;
581
Device Network SDK (General) Developer Guide
NET_VCA_HUMAN_FEATURE struHumaFeature;
NET_DVR_FACE_PIC_DATA_INFO struHumaPic;
NET_DVR_BEHAVIOUR_COND struBehaviourCond;
}NET_DVR_SMARTSEARCH_PIC_UNION,*LPNET_DVR_SMARTSEARCH_PIC_UNION;
Members
byLen
Union size, which is 256 bytes.
struVehiclePara
Conditions for vehicle analysis, it is valid when dual-VCA type (wSearchType) in the structure is
"0". For details, refer to the structure .
struHumaFeature
Conditions for face picture analysis, it is valid when dual-VCA type (wSearchType) in the
structure is "1". For details, refer to the structure NET_VCA_HUMAN_FEATURE in the HCNetSDK
user manual of face applications.
struHumaPic
Conditions for searching by face picture, it is valid when dual-VCA type (wSearchType) in the
structure is "2". For details, refer to the structure .
struBehaviourCond
Conditions for behavior analysis, it is valid when dual-VCA type (wSearchType) in the structure
is "3". For details, refer to the structure .
A.231 NET_DVR_SMART_SEARCH_PARAM_V40
VCA search parameter structure.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_STREAM_INFO struIDInfo;
BYTE bySearchCondType;
BYTE bySensitivity;
BYTE byRes1[2];
NET_DVR_TIME_EX struStartTime;
NET_DVR_TIME_EX struEndTime;
NET_DVR_AREA_SMARTSEARCH_COND_UNION uSmartSearchCond;
BYTE byISO8601;
signed char cStartTimeDifferenceH;
signed char cStartTimeDifferenceM;
signed char cStopTimeDifferenceH;
signed char cStopTimeDifferenceM;
BYTE byRes2[251];
}NET_DVR_SMART_SEARCH_PARAM_V40,*LPNET_DVR_SMART_SEARCH_PARAM_V40;
582
Device Network SDK (General) Developer Guide
Members
dwSize
Structure size.
struIDInfo
Stream information, including stream ID or channel No., refer to the structure for details.
bySearchCondType
VCA search union index No.: 0-detection region, 1- line crossing detection, 2-intrusion
detection, 3-face detection, 4-license plate detection.
bySensitivity
Dynamic analysis sensitivity of detection region, its value is between 1 and 100, and it is valid
only when the member bySearchCondType is "0".
byRes1
Reserved, set to 0.
struStartTime
Start time of video, refer to the structure for details.
struEndTime
End time of video, refer to the structure for details.
uSmartSearchCond
VCA search condition union, refer to for details.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cStartTimeDifferenceH
Time difference between start time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStartTimeDifferenceM
Time difference between start time and UTC time, unit: minute, the value is -30, +30, or +45
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceH
Time difference between stop time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceM
Time difference between stop time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byISO8601 is "1".
byRes2
583
Device Network SDK (General) Developer Guide
Reserved, set to 0.
Related API
NET_DVR_SmartSearch_V40
A.232 NET_DVR_SMART_SEARCH_PIC_PARA
Condition structure of picture dual-VCA.
Structure Definition
struct{
DWORD dwChanNo;
BYTE byStreamID[STREAM_ID_LEN/*32*/];
NET_DVR_TIME_EX struStartTime;
NET_DVR_TIME_EX struEndTime;
WORD wSearchType;
BYTE byRes1[2];
NET_DVR_SMARTSEARCH_PIC_UNION uSmartSearchCond;
BYTE byISO8601;
signed char cStartTimeDifferenceH;
signed char cStartTimeDifferenceM;
signed char cStopTimeDifferenceH;
signed char cStopTimeDifferenceM;
BYTE byRes[59];
}NET_DVR_SMART_SEARCH_PIC_PARA,*LPNET_DVR_SMART_SEARCH_PIC_PARA;
Members
dwChanNo
Channel No.
byStreamID
Stream ID, it is prior to dwChanNo. Only when byStreamID is set to "null", dwChanNo will be
used.
struStartTime
Start time of search, refer to the structure for details.
struEndTime
End time of search, refer to the structure for details.
wSearchType
Dual-VCA type: 0-vehicle feature analysis, 1-face features analysis, 2-picture analysis for
searching by picture, 3-behavior analysis.
byRes1
Reserved.
584
Device Network SDK (General) Developer Guide
uSmartSearchCond
Dual-VCA conditions, refer to the structure for details.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cStartTimeDifferenceH
Time difference between start time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStartTimeDifferenceM
Time difference between start time and UTC time, unit: minute, the value is -30, +30, or +45
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceH
Time difference between stop time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceM
Time difference between stop time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byISO8601 is "1".
byRes
Reserved.
Remarks
To support searching picture by picture, the picture modeling function should be enabled in device.
Related API
NET_DVR_SmartSearchPicture
A.233 NET_DVR_SMART_SEARCH_PIC_RET_V50
Picture dual-VCA results structure.
Structure Definition
struct{
char sFileName[PICTURE_NAME_LEN/*64*/];
NET_DVR_TIME_EX struTime;
DWORD dwFileSize;
WORD wPicType;
BYTE byRes1[2];
NET_DVR_PIC_FEATURE_UNION uPicFeature;
BYTE byISO8601;
signed char cTimeDifferenceH;
signed char cTimeDifferenceM;
585
Device Network SDK (General) Developer Guide
BYTE byRes[29];
}NET_DVR_SMART_SEARCH_PIC_RET_V50,*LPNET_DVR_SMART_SEARCH_PIC_RET_V50;
Members
sFileName
Picture name.
struTime
Picture captured time, refer to the structure for details.
dwFileSize
Picture size.
wPicType
Picture type: 0-vehicle detection picture; 1-face picture; 2-picture for searching by picture; 3-
line crossing detection picture; 4-intrusion detection picture; 5-unattended baggage detection
picture; 6-object removal detection picture; 7-region entrance detection picture; 8-region
exiting detection picture; 9-illegal parking detection picture; 10-loitering detection picture; 11-
people gathering detection picture; 12-fast moving detection picture; 13-people running; 14-
violent motion; 15-people falling down; 16-people number changed; 17-absence detection; 18-
overstay detection; 19-situation analysis.
byRes1
Reserved.
uPicFeature
Picture features, refer to the structure for details.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cTimeDifferenceH
Time difference between tag time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cTimeDifferenceM
Time difference between tag time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byISO8601 is "1".
byRes
Reserved, set to 0.
Related API
NET_DVR_FindNextSmartPicture_V50
586
Device Network SDK (General) Developer Guide
A.234 NET_DVR_SMART_SEARCH_RET
VCA search results structure.
Structure Definition
struct{
NET_DVR_TIME struStartTime;
NET_DVR_TIME struEndTime;
BYTE byISO8601;
signed char cStartTimeDifferenceH;
signed char cStartTimeDifferenceM;
signed char cStopTimeDifferenceH;
signed char cStopTimeDifferenceM;
BYTE byRes[59];
}NET_DVR_SMART_SEARCH_RET,*LPNET_DVR_SMART_SEARCH_RET;
Members
struStartTime
Start time of video, refer to the structure for details.
struEndTime
End time of video, refer to the structure for details.
byISO8601
Whether the time is in ISO8601 format, i.e., whether the time difference is valid. 0-invalid, the
time is device local time, 1-valid.
cStartTimeDifferenceH
Time difference between start time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStartTimeDifferenceM
Time difference between start time and UTC time, unit: minute, the value is -30, +30, or +45
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceH
Time difference between stop time and UTC time, unit: hour, the value is between -12 and +14
("+" indicates the east time zone), it is valid when byISO8601 is "1".
cStopTimeDifferenceM
Time difference between stop time and UTC time, unit: minute, the value is -30, +30, or +45 ("+"
indicates the east time zone), it is valid when byISO8601 is "1".
byRes
Reserved, set to 0.
587
Device Network SDK (General) Developer Guide
Related API
NET_DVR_SearchNextInfo
A.235 NET_DVR_SMSRELATIVEPARAM_V50
A.236 NET_DVR_SNAP_CAMERAPARAMCFG
CCD parameter structure of capture camera
Structure Definition
struct{
BYTE byWDRMode;
BYTE byWDRType;
BYTE byWDRLevel;
BYTE byRes1;
NET_DVR_TIME_EX struStartTime;
NET_DVR_TIME_EX struEndTime;
BYTE byDayNightBrightness;
BYTE byMCEEnabled;
BYTE byMCELevel;
BYTE byAutoContrastEnabled;
BYTE byAutoContrastLevel;
BYTE byLSEDetailEnabled;
BYTE byLSEDetailLevel;
BYTE byLPDEEnabled;
BYTE byLPDELevel;
BYTE byRes[35];
}NET_DVR_SNAP_CAMERAPARAMCFG, *LPNET_DVR_SNAP_CAMERAPARAMCFG;
588
Device Network SDK (General) Developer Guide
Members
byWDRMode
WDR (Wide Dynamic Range) mode: 0-disabled, 1-DWDR, 2-WDR.
byWDRType
WDR enabling mode: 0-force enable, 1-enable by time, 2-enable by brightness.
byWDRLevel
WDR level, 0-level 1, 1-level 2, …, 6-level 7; the default value is "2" (level 3).
byRes1
Reserved, set to 0.
struStartTime
Start time of WDR, refer to the structure NET_DVR_TIME_EX for details.
struEndTime
End time of WDR, refer to the structure NET_DVR_TIME_EX for details.
byDayNightBrightness
Brightness threshold of day/night auto switch, value range: [0,100], default value: 50.
byMCEEnabled
Whether to enable memory color enhancement: 0-no, 1-yes.
byMCELevel
Memory color enhancement level, value range: [0,100], default value: 50.
byAutoContrastEnabled
Whether to enable auto contrast: 0-no, 1-yes.
byAutoContrastLevel
Auto contrast level, value range: [0,100], default value: 50.
byLSEDetailEnabled
Whether to enable detail enhancement: 0-no, 1-yes.
byLSEDetailLevel
Detail enhancement level, value range: [0,100], default value: 50.
byLPDEEnabled
Whether to enable license plate enhancement: 0-no, 1-yes.
byLPDELevel
License plate enhancement level, value range: [0,100], default value: 50.
byRes
Reserved, set to 0.
589
Device Network SDK (General) Developer Guide
A.237 NET_DVR_SPECIAL_FINDINFO_UNION
Specific search condition union.
Union Definition
union{
BYTE byLenth[8];
NET_DVR_ATMFINDINFO struATMFindInfo;
}NET_DVR_SPECIAL_FINDINFO_UNION,*LPNET_DVR_SPECIAL_FINDINFO_UNION;
Members
byLenth
Union size, it is 8 bytes.
struATMFindInfo
Condition for searching file with ATM information, see details in the structure of
NET_DVR_ATMFINDINFO .
A.238 NET_DVR_STD_ABILITY
590
Device Network SDK (General) Developer Guide
Remarks
For different capability types (which depend on the parameter dwAbilityType in the API
NET_DVR_GetSTDAbility ), the condition parameter lpCondBuffer and output parameter
lpOutBuffer are different. For details, refer to the typical applications.
A.239 NET_DVR_STD_CONFIG
591
Device Network SDK (General) Developer Guide
A.240 NET_DVR_STD_CONTROL
Input and output parameters structure of remote control.
Structure Definition
struct{
LPVOID lpCondBuffer;
DWORD dwCondSize;
LPVOID lpStatusBuffer;
DWORD dwStatusSize;
BYTE byRes[64];
}NET_DVR_STD_CONTROL, *LPNET_DVR_STD_CONTROL;
Members
lpCondBuffer
Condition parameters (returned in structure or message), such as channel No., it can be set to
null.
dwCondSize
Buffer size of condition parameters.
lpStatusBuffer
Status parameters (returned in XML_ResponseStatus ), if control completed, this parameter will
not be assigned, and it can be set to null if not required.
dwStatusSize
Buffer size of status parameter.
lpXmlBuffer
Data with XML format, it is valid only when byDataType is 1.
dwXmlSize
Size of data with XML format, when the control command is getting, it is the input and output
parameters, and after getting completed, actual size will be returned; when setting, the actual
data size equals to strlen((char*) lpXmlBuffer).
byDataType
Input or output parameter type: 0-structure, 1-message
byRes
Reserved, set to 0.
Remarks
For different control function (refers to the parameter dwCommand in the API
NET_DVR_STDControl ), the lpCondBuffer in this structure are different, see details in the typical
applications.
592
Device Network SDK (General) Developer Guide
A.241 NET_DVR_STOP_LINE_PARAM
Structure about stop line information.
Structure Definition
struct{
BYTE byStatus;
BYTE byRes[39];
}NET_DVR_STOP_LINE_PARAM, *LPNET_DVR_STOP_LINE_PARAM;
Members
byStatus
Stop line status: 0-unknown, 1-entered, 1-exited.
byRes
Reserved, set to 0.
A.242 NET_DVR_STREAM_INFO
Stream information structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byID[STREAM_ID_LEN/*32*/];
DWORD dwChannel;
BYTE byRes[32];
}NET_DVR_STREAM_INFO,*LPNET_DVR_STREAM_INFO;
Members
dwSize
Structure size.
byID
Stream ID, which consists of letters, digits, and dashes, 0-invalid.
dwChannel
Linked device channel. When it is 0xffffffff, if setting the stream source, this parameter indicates
that no device channel is linked; if setting configuration condition, this parameter is invalid.
byRes
Reserved, set to 0.
593
Device Network SDK (General) Developer Guide
Remarks
• If the device does not support marking stream ID, e.g., DVR, the parameter byID should be set to
0.
• For transcoder, when setting the stream source, only one of byID and dwChannel can be valid;
when transcoding, both the byID and dwChannel can be invalid, the transcoding channel or
stream ID is automatically allocated by device.
• For other devices (e.g., CVR), when this structure is inputted as configuration condition, if both
the byID and dwChannel are invalid, error code (17) will be returned, if they are valid, but
mismatched, error may also be returned, so only setting one of these two parameters is
suggested.
A.243 NET_DVR_STREAMING_COND
Condition structure about stream control.
Structure Definition
struct{
DWORD dwSize;
DWORD dwChannel;
BYTE byStreamType;
BYTE byRes[127];
}NET_DVR_STREAMING_COND,*LPNET_DVR_STREAMING_COND;
Members
dwSize
Structure size
dwChannel
Channel No.
byStreamType
Stream type: 0-main stream, 1-sub-stream, 2-third stream.
byRes
Reserved, set to 0.
A.244 NET_DVR_STREAM_MEDIA_SERVER
Structure about stream media server parameters.
594
Device Network SDK (General) Developer Guide
Structure Definition
struct{
BYTE byValid;
BYTE byRes1[3];
BYTE byAddress[MAX_DOMAIN_NAME/*64*/];
WORD wDevPort;
BYTE byTransmitType;
BYTE byRes2[5];
}NET_DVR_STREAM_MEDIA_SERVER,*LPNET_DVR_STREAM_MEDIA_SERVER;
Members
byValid
Enable/disable stream media server to get stream: 0-disable, 1-enable.
byRes1
Reserved, set to 0.
byAddress
IP address or domain name of stream media server
wDevPort
Port number of stream media server
byTransmitType
Transfer protocol type: 0-TCP, 1-UDP
byRes2
Reserved, set to 0.
See Also
NET_DVR_DEC_STREAM_DEV_EX
NET_DVR_DEC_DDNS_DEV
A.245 NET_DVR_STREAM_MODE
Structure about steaming mode configuration.
Structure Definition
struct{
BYTE byGetStreamType;
BYTE byRes[3];
NET_DVR_GET_STREAM_UNION uGetStream;
}NET_DVR_STREAM_MODE,*LPNET_DVR_STREAM_MODE;
595
Device Network SDK (General) Developer Guide
Members
byGetStreamType
Streaming mode:
• 0-get stream from device directly
• 1-get stream from stream media server
• 2-get stream from device after getting the IP address by IPServer
• 3-get the device IP address by IPServer, and then get stream from stream media server
• 4-get stream from stream media server by URL
• 5-get steam from device after connecting the device via hkDDNS
• 6-get steam from device directly (extended)
byRes
Reserved, set to 0
uGetStream
Union of streaming modes, refer to NET_DVR_GET_STREAM_UNION for details.
See Also
NET_DVR_IPPARACFG_V40
A.246 NET_DVR_THERMOMETRY_AGC
AGC parameter structure of temperature measurement.
Structure Definition
struct{
BYTE byMode;
BYTE byRes1[3];
int iHighTemperature;
int iLowTemperature;
BYTE byRes[8];
}NET_DVR_THERMOMETRY_AGC, *LPNET_DVR_THERMOMETRY_AGC;
Members
byMode
AGC mode: 0-invalid, 1-auto, 2-manual.
byRes1
Reserved, set to 0.
iHighTemperature
Highest temperature, value range: [-273,9999], unit: °C; it is valid when byMode is set to 1.
iLowTemperature
596
Device Network SDK (General) Developer Guide
Lowest temperature, value range: [-273,9999], unit: °C; it is valid when byMode is set to 1.
byRes
Reserved, set to 0.
A.247 NET_DVR_TIME
A.248 NET_DVR_TIME_EX
A.249 NET_DVR_TIME_SEARCH
OSD time information structure.
597
Device Network SDK (General) Developer Guide
Structure Definition
struct{
WORD wYear;
BYTE byMonth;
BYTE byDay;
BYTE byHour;
BYTE byMinute;
BYTE bySecond;
char cTimeDifferenceH;
char cTimeDifferenceM;
BYTE byRes[3];
}NET_DVR_TIME_SEARCH, *LPNET_DVR_TIME_SEARCH;
Members
wYear
Year
byMonth
Month
byDay
Day
byHour
Hour
byMinute
Minute
bySecond
Second
cTimeDifferenceH
Time difference (hour) between OSD time and UTC, which ranges from -12 to +14.
cTimeDifferenceM
Time difference (minute) between OSD time and UTC, the values can be -30, 0, 30, and 45.
byRes
Reserved.
A.250 NET_DVR_TIME_SEARCH_COND
Time data structure of search condition.
598
Device Network SDK (General) Developer Guide
Structure Definition
struct{
WORD wYear;
BYTE byMonth;
BYTE byDay;
BYTE byHour;
BYTE byMinute;
BYTE bySecond;
BYTE byLocalOrUTC;
BYTE byRes[4];
}NET_DVR_TIME_SEARCH_COND, *LPNET_DVR_TIME_SEARCH_COND;
Members
wYear
Year, device OSD time.
byMonth
Month, device OSD time.
byDay
Day, device OSD time.
byHour
Hour, device OSD time.
byMinute
Minute, device OSD time.
bySecond
Second, device OSD time.
byLocalOrUTC
Time type: 0-device local time (device's OSD time), 1-UTC time.
byRes
Reserved, set to 0.
See Also
NET_DVR_FILECOND_V50
A.251 NET_DVR_TIME_V30
599
Device Network SDK (General) Developer Guide
A.252 NET_DVR_TIME_V50
Time parameters structure.
Structure Definition
struct{
WORD wYear;
BYTE byMonth;
BYTE byDay;
BYTE byHour;
BYTE byMinute;
600
Device Network SDK (General) Developer Guide
BYTE bySecond;
BYTE byISO8601;
WORD wMilliSec;
signed char cTimeDifferenceH;
signed char cTimeDifferenceM;
}NET_DVR_TIME_V50, *LPNET_DVR_TIME_V50;
Members
wYear
Year
byMonth
Month
byDay
Day
byHour
Hour
byMinute
Minute
bySecond
Second
byISO8601
ISO8601 format, whether time differences are valid, 0-no, it is local time, 1-yes
wMillisecond
Millisecond, it is 0 by default
cTimeDifferenceH
Time offset (hours) from UTC, e.g., -12 ... +14, positive offset indicates eastern time zone
cTimeDifferenceM
Time offset (minutes) from UTC, e.g., -30, 0, 30, 45, positive offset indicates eastern time zone
A.253 NET_DVR_TIMING_CAPTURE
Structure about scheduled capture parameters.
Structure Definition
struct{
NET_DVR_JPEGPARA struJpegPara;
DWORD dwPicInterval;
601
Device Network SDK (General) Developer Guide
BYTE byRes[12];
}NET_DVR_TIMING_CAPTURE, *LPNET_DVR_TIMING_CAPTURE;
Members
struJpegPara
Quality of pictured captured by schedule, see details in the structure NET_DVR_JPEGPARA .
dwPicInterval
Time interval of scheduled capture which is between 500 and 604800000, unit: ms.
byRes
Reserved, set to 0.
A.254 NET_DVR_TRAVERSE_PLANE_SEARCHCOND
Condition structure for searching videos recorded based on line crossing detection.
Structure Definition
struct{
NET_VCA_TRAVERSE_PLANE struVcaTraversePlane[MAX_ALERTLINE_NUM/*8*/];
DWORD dwPreTime;
DWORD dwDelayTime;
NET_DVR_PTZPOS_INFO struPTZPosInfo;
BYTE byAdvanceType;
BYTE byRes1[3];
NET_DVR_ADVANCE_COND_UNION uAdvanceCond;
BYTE byRes[5604];
}NET_DVR_TRAVERSE_PLANE_SEARCHCOND,*LPNET_DVR_TRAVERSE_PLANE_SEARCHCOND;
Members
struVcaTraversePlane
Line crossing detection region parameters, refer to the structure NET_VCA_TRAVERSE_PLANE in
the HCNetSDK user manual of behavior analysis applications.
dwPreTime
Pre-alarm time, unit: second.
dwDelayTime
Post-alarm time, unit: second.
struPTZPosInfo
Camera's PTZ position information in line crossing detection, refer to the structure for details.
byAdvanceType
Group types: 0-without group No., 1-group with human body properties, 2-group with object's
color share. Refer to the structure for details.
602
Device Network SDK (General) Developer Guide
byRes1
Reserved, set to 0.
uAdvanceCond
Group attribute.
byRes
Reserved, set to 0.
See Also
A.255 NET_DVR_UPGRADE_PARAM
Structure about parameters of remotely upgrading device.
Structure Definition
typedef struct{
DWORD dwUpgradeType;
char const *sFilename;
void *pInbuffer;
DWORD dwBufferLen;
char *pUnitIdList[64];
BYTE byRes[112];
}NET_DVR_UPGRADE_PARAM,*LPNET_DVR_UPGRADE_PARAM;
Members
dwUpgradeType
Upgrade types, see details below:
enum _ENUM_UPGRADE_TYPE{
ENUM_UPGRADE_DVR = 0,
ENUM_UPGRADE_ADAPTER = 1,
ENUM_UPGRADE_VCALIB = 2,
ENUM_UPGRADE_OPTICAL = 3,
ENUM_UPGRADE_ACS = 4,
ENUM_UPGRADE_AUXILIARY_DEV = 5,
ENUM_UPGRADE_LED = 6,
ENUM_UPGRADE_INTELLIGENT = 7,
}ENUM_UPGRADE_TYPE;
ENUM_UPGRADE_DVR
Upgrade normal device.
ENUM_UPGRADE_ADAPTER
603
Device Network SDK (General) Developer Guide
dwUpgradeType pInbuffer
ENUM_UPGRADE_DVR None.
ENUM_UPGRADE_ADAPTER None.
ENUM_UPGRADE_VCALIB 4-byte channel No.
ENUM_UPGRADE_OPTICAL None.
ENUM_UPGRADE_ACS 4-bytes device No., 0: upgrade access control server, 1-8:
upgrade card readers, 10001: upgrade distributed access
controller No.1, 20001: upgrade master lane controller, 20002:
upgrade slave lane controller, 20003: upgrade extension
module, 30001: upgrade fingerprint algorithm program of the
card reader (1024 reserved), 400001: upgrade uboot.
ENUM_UPGRADE_ NET_DVR_AUXILIARY_DEV_UPGRADE_PARAM
AUXILIARY_DEV
604
Device Network SDK (General) Developer Guide
dwUpgradeType pInbuffer
ENUM_UPGRADE_LED None.
ENUM_UPGRADE_ None.
INTELLIGENT
dwBufferLen
Buffer size.
pUnitIdList
Data analysis server name, which is obtained by calling the request URL: POST /ISAPI/SDT/
Management/AnalysisUnit/search?format=json.
byRes
Reserved, set to 0.
A.256 NET_DVR_UPLOAD_RECORD_INFO
Structure about the video file information to be uploaded.
Structure Definition
struct{
DWORD dwSize;
DWORD dwRecordType;
BYTE sCameraID[MAX_CAMERAID_LEN/*64*/];
NET_DVR_TIME_EX struStartTime;
NET_DVR_TIME_EX struStopTime;
DWORD dwStoragePoolID;
BYTE byFormatType;
BYTE byVideoEncType;
BYTE byAudioEncType;
BYTE byISO8601;
signed char cStartTimeDifferenceH;
signed char cStartTimeDifferenceM;
signed char cStopTimeDifferenceH;
signed char cStopTimeDifferenceM;
BYTE byRes[120];
}NET_DVR_UPLOAD_RECORD_INFO,*LPNET_DVR_UPLOAD_RECORD_INFO;
Members
dwSize
Structure size.
dwRecordType
605
Device Network SDK (General) Developer Guide
606
Device Network SDK (General) Developer Guide
byRes
Reserved, set to 0.
Related API
NET_DVR_UploadFile_V40
A.257 NET_DVR_UPNP_NAT_STATE
UPnP port mapping status structure
Structure Definition
struct{
NET_DVR_UPNP_PORT_STATE strUpnpPort[12];
BYTE byRes[200];
}NET_DVR_UPNP_NAT_STATE,*LPNET_DVR_UPNP_NAT_STATE;
Members
strUpnpPort
Port mapping status: array0-web server port, array1-management port, array2-RTSP port,
array3-HTTPs port, array4-SDKOverTLS port. See details in the structure .
byRes
Reserved.
Related API
NET_DVR_GetUpnpNatState
A.258 NET_DVR_UPNP_PORT_STATE
Port mapping status structure
Structure Definition
struct{
DWORD dwEnabled;
WORD wInternalPort;
WORD wExternalPort;
DWORD dwStatus;
NET_DVR_IPADDR struNatExternalIp;
NET_DVR_IPADDR struNatInternalIp;
BYTE byRes[16];
}NET_DVR_UPNP_PORT_STATE, *LPNET_DVR_UPNP_PORT_STATE;
607
Device Network SDK (General) Developer Guide
Members
dwEnabled
Whether to enable mapping for this port.
wInternalPort
Port before mapping.
wExternalPort
Port after mapping.
dwStatus
Port mapping status: 0-unmapped; 1-unmapped: the mapping source port and target port
should be same; 2-unmapped: the mapping port number is occupied; 3-mapped.
struNatExternalIp
External address after mapping.
struNatInternalIp
IP address of NAT router in LAN.
byRes
Reserved.
See Also
A.259 NET_DVR_USB_RS232
Structure about USB to port mode configuration
Structure Definition
struct{
DWORD dwBaudRate;
BYTE byDataBit;
BYTE byStopBit;
BYTE byParity;
BYTE byFlowcontrol;
BYTE byVirtualSerialPort;
BYTE byRes[3];
}NET_DVR_USB_RS232, *LPNET_DVR_USB_RS232;
Members
dwBaudRate
608
Device Network SDK (General) Developer Guide
Baud rate(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,
9-9600,10-19200,11-38400,12-57600,13-76800,14-115.2k
byDataBit
Number of data bits: 0-5 bits, 1-6 bits, 2-7 bits, 3-8 bits
byStopBit
Number of end bits: 0-1 bit, 1-2 bits
byParity
Whether to check parity: 0-no, 1-odd parity, 2-even parity
byFlowcontrol
Whether to enable flow control: 0-no, 1-software flow control, 2-hardware flow control.
byVirtualSerialPort
Virtual serial port No.
byRes
Reserved, set it to 0.
A.260 NET_DVR_USER_LOGIN_INFO
609
Device Network SDK (General) Developer Guide
A.261 NET_DVR_USER_INFO_V52
User information structure (V52)
Structure Definition
struct{
BYTE sUserName[NAME_LEN/*32*/];
BYTE sPassword[PASSWD_LEN/*16*/];
BYTE dwLocalRight[MAX_RIGHT/*32*/];
BYTE dwRemoteRight[MAX_RIGHT/*32*/];
DWORD dwNetPreviewRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalRecordRight[MAX_CHANNUM_V40/*512*/];
DWORD dwNetRecordRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalPlaybackRight[MAX_CHANNUM_V40/*512*/];
DWORD dwNetPlaybackRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalPTZRight[MAX_CHANNUM_V40/*512*/];
610
Device Network SDK (General) Developer Guide
DWORD dwNetPTZRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalBackupRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalPreviewRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalDoubleVerificationPlaybackRight[MAX_CHANNUM_V40/*512*/];
DWORD dwLocalDoubleVerificationBackupRight[MAX_CHANNUM_V40/*512*/];
DWORD dwNetDoubleVerificationPlaybackRight[MAX_CHANNUM_V40/*512*/];
NET_DVR_IPADDR struUserIP;
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE byPriority;
BYTE byAlarmOnRight;
BYTE byAlarmOffRight;
BYTE byBypassRight;
BYTE byRes1[2];
BYTE byPublishRight[MAX_RIGHT/*32*/];
DWORD dwPasswordValidity;
BYTE byRes[1024];
}NET_DVR_USER_INFO_V52,*LPNET_DVR_USER_INFO_V52;
Members
sUserName
User name, up to 16 bytes are allowed.
sPassword
Password. For getting user information, this member will not be returned; for setting user
information, if this member is empty, it indicates that the password will not be changed.
byLocalRight
Local permissions:
0: PTZ control
1: Manual recording
2: Playback
3: Parameter settings
4: Status and log search
5: Advanced operations (upgrade, format, restart, shutdown)
6: View parameters
7: Analog and network camera management
8: Backup
9: Shut down or restart
10: Live view
11: Double verification for playback
12: Double verification for backup
byRemoteRight
Remote permissions:
611
Device Network SDK (General) Developer Guide
0: PTZ control
1: Manual recording
2: Playback
3: Parameter settings
4: Status and log search
5: Advanced operations (upgrade, format, restart, shutdown)
6: Start two-way audio
7: View parameters
8: Request for alarm uploading and alarm output
9: Local output control
10: Serial port control
11: View parameters
12: Analog and network camera management
13: Shut down or restart
14: Double verification for playback
dwNetPreviewRight
Channels support remote live view, 0xffffffff-invalid
dwLocalRecordRight
Channels support local recording
dwNetRecordRight
Channels support remote recording
dwLocalPlaybackRight
Channels support local playback
dwNetPlaybackRight
Channels support remote playback
dwLocalPTZRight
Channels support local PTZ control
dwNetPTZRight
Channels support remote PTZ control
dwLocalBackupRight
Channels support local backup
dwLocalPreviewRight
Channels support local live view
dwLocalDoubleVerificationPlaybackRight
Channels support double verification for local playback
612
Device Network SDK (General) Developer Guide
dwLocalDoubleVerificationBackupRight
Channels support double verification for local backup
dwNetDoubleVerificationPlaybackRight
Channels support double verification for remote playback
struUserIP
User IP address, 0-any IP address is allowed.
byMACAddr
Physical address, 00:00:00:00:00:00-any addresses is allowed.
byPriority
Priority: 0xff-priority is not configured, 0-low (default permission, including local and remote
playback, local and remote log and status search, local and remote shutdown or restart), 1-
medium (including local and remote PTZ control, local and remote manual recording, local and
remote playback, two-way audio, remote live view, local backup, local and remote shutdown or
restart), 2-high (administrator)
byAlarmOnRight
Whether contains alarm input arming permission: 1-yes, 0-no
byAlarmOffRight
Whether contains alarm input disarming permission: 1-yes, 0-no
byBypassRight
Whether contains alarm input bypass permission: 1-yes, 0-no
byRes1
Reserved, set to 0.
byPublishRight
Information release permissions.
dwPasswordValidity
Password expiry date, it can only be edited by admin user, unit: day, 0-permanent password.
byRes
Reserved, set to 0.
A.262 NET_DVR_USER_V52
User parameters structure (V52)
Structure Definition
struct{
DWORD dwSize;
DWORD dwMaxUserNum;
613
Device Network SDK (General) Developer Guide
NET_DVR_USER_INFO_V51 struUser[MAX_USERNUM_V30/*32*/];
char sloginPassword[PASSWD_LEN/*16*/];
BYTE byRes[240];
}NET_DVR_USER_V51,*LPNET_DVR_USER_V51;
Members
dwSize
Structure size.
dwMaxUserNum
Maximum number of uses that can log in to device (read-only).
struUser
User information, see details in structure NET_DVR_USER_INFO_V52 .
sloginPassword
Set password for confirmation, the password should be same with the sPassword in
NET_DVR_USER_INFO_V52 .
byRes
Reserved, set to 0
A.263 NET_DVR_VCA_VERSION
Structure of intelligent algorithm version parameter.
Structure Definition
struct{
WORD wMajorVersion;
WORD wMinorVersion;
WORD wRevisionNumber;
WORD wBuildNumber;
WORD wVersionYear;
BYTE byVersionMonth;
BYTE byVersionDay;
BYTE byType;
BYTE byRes[7];
}NET_DVR_VCA_VERSION, *LPNET_DVR_VCA_VERSION;
Members
wMajorVersion
Major verision
wMinorVersion
Minor verision
614
Device Network SDK (General) Developer Guide
wRevisionNumber
Revision number
wBuildNumber
Build number
wVersionYear
Version: Year
byVersionMonth
Version: Month
byVersionDay
Version: Day
byType
Algorithms library type name: 0-reserved, 1-face attribute, 2-behavior analysis, 3-body
attribute, 4-face capture, 5-face recognition, 6-face comparison, 7-student stood up detection,
8-people counting, 9-face picture library, 10-hard hat detection, 11-elevator detection
algorithms library, 12-people counting statistics, 13-HMS, 14-teacher behavior detection, 15-
people density detection, 16-mismatched number of people, 17-absence detection, 18-overstay
detection
byRes
Reserved
A.264 NET_DVR_VCA_VERSION_LIST
Algorithms library version information structure.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_VCA_VERSION struVcaVersion[NET_SDK_VERSION_LIST_LEN/*64*/];
BYTE byRes[128];
}NET_DVR_VCA_VERSION_LIST, *LPNET_DVR_VCA_VERSION_LIST;
Members
dwSize
Structure size
struVcaVersion
Algorithms library version information list, each array indicates one type, see details in the
structure NET_DVR_VCA_VERSION .
byRes
615
Device Network SDK (General) Developer Guide
Reserved.
A.265 NET_DVR_VEHICLE_PARA
Structure about the vehicle detection information.
Structure Definition
struct{
BYTE sLicense[MAX_LICENSE_LEN/*16*/];
BYTE byCountry;
BYTE byRes[239];
}NET_DVR_VEHICLE_PARA, *LPNET_DVR_VEHICLE_PARA;
Members
sLicense
License plate number.
byCountry
Country index No.: 0-not support, 1-Czech Republic, 2-France, 3-Germany, 4-Spain, 5-Italy, 6-
Netherlands, 7-Poland, 8-Slovakia, 9-Belorussia, 10-Moldova, 11-Russia, 12-Ukraine, 169-
Canada, 172-US, 227-Australia, 0xfe-unknown.
byRes
Reserved
See Also
A.266 NET_DVR_VICOLOR
Structure about image parameters in a time period.
Structure Definition
struct{
NET_DVR_COLOR struColor[MAX_TIMESEGMENT_V30/*8*/];
NET_DVR_SCHEDTIME struHandleTime[MAX_TIMESEGMENT_V30/*8*/];
}NET_DVR_VICOLOR,*LPNET_DVR_VICOLOR;
Members
struColor
Image parameter, only the brightness (byBrightness) is valid, see details in the structure
NET_DVR_COLOR .
616
Device Network SDK (General) Developer Guide
struHandleTime
Processing time duration, see details in the structure NET_DVR_SCHEDTIME
See Also
NET_DVR_PICCFG_V40
A.267 NET_DVR_VIDEOEFFECT
Video parameter structure
Structure Definition
struct{
BYTE byBrightnessLevel;
BYTE byContrastLevel;
BYTE bySharpnessLevel;
BYTE bySaturationLevel;
BYTE byHueLevel;
BYTE byEnableFunc;
BYTE byLightInhibitLevel;
BYTE byGrayLevel;
}NET_DVR_VIDEOEFFECT, *LPNET_DVR_VIDEOEFFECT;
Members
byBrightnessLevel
Brightness, range: [0,100]
byContrastLevel
Contrast, range: [0,100]
bySharpnessLevel
Sharpness, range: [0,100]
bySaturationLevel
Saturation, range: [0,100]
byHueLevel
Hue, range: [0,100], reserved.
byEnableFunc
Bit: bit0-enable/disable Smart IR, bit1-enable/disable low illumination, bit2-enable/disable HLC,
bit3-sharpness adjusting mode (manual or auto). Value: 0-disable/auto, 1-enable/manual. E.g.,
byEnableFunc&0x2==1, it indicates that the low illumination function is enabled.
byLightInhibitLevel
HLC level, range: [1,3]
617
Device Network SDK (General) Developer Guide
byGrayLevel
Gray scale, 0-[0,255], 1-[16,235]
A.268 NET_DVR_VILOST_V40
Structure about video loss alarm parameters.
Structure Definition
struct{
DWORD dwEnableVILostAlarm;
DWORD dwHandleType;
DWORD dwMaxRelAlarmOutChanNum;
DWORD dwRelAlarmOut[MAX_ALARMOUT_V40/*4128*/];
NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS/*7*/][MAX_TIMESEGMENT_V30/*8*/];
BYTE byVILostAlarmThreshold;
BYTE byRes[64];
}NET_DVR_VILOST_V40, *LPNET_DVR_VILOST_V40;
Members
dwEnableVILostAlarm
Whether to enable video loss alarm: 0-no, 1-yes.
dwHandleType
Alarm linkage actions, see details below:
• 0x00: No response
• 0x01: Monitor warning
• 0x02: Audible warning
• 0x04: Upload to center
• 0x08: Trigger alarm output
• 0x10: Capture JPEG picture and send Email
• 0x20: Wireless combined aural and visual alarm linkage
• 0x40: E-map linkage (only supported by PCNVR)
• 0x200: Capture and upload to FTP
• 0x1000: Capture and upload to cloud storage
E.g. dwHandleType==0x01|0x04 indicates that the alarm linkage action is monitor warning and
uploading to center.
dwMaxRelAlarmOutChanNum
The maximum number of alarm outputs can be triggered (read only)
dwRelAlarmOut
618
Device Network SDK (General) Developer Guide
Triggered alarm output No., which starts from 0, 0xffffffff-the following is invalid. For example, if
the start value of dwRelAlarmOut[8] is 0xffffffff, the alarm output No. (dwRelAlarmOut[0]+1),...,
(dwRelAlarmOut[7]+1) will be triggered.
struAlarmTime
Arming time, up to 8 time periods can be set on a day, see details in the structure
NET_DVR_SCHEDTIME .
byVILostAlarmThreshold
Video loss alarm threshold, when the value is lower than the threshold, the alarm is triggered,
the threshold ranges from 0 to 99.
byVILostAlarmThreshold
Threshold of video loss alarm, it ranges from 0 and 99. When the value is smaller than the
threshold, it indicates that video loss occurred.
byRes
Reserved, set to 0
See Also
NET_DVR_PICCFG_V40
A.269 NET_DVR_VOD_DRAWFRAME_PARA
Condition structure for extracting frame during playback.
Structure Definition
struct{
NET_DVR_TIME_EX struTime;
DWORD dwDrawType
BYTE byRes[128];
}NET_DVR_VOD_DRAWFRAME_PARA, *LPNET_DVR_VOD_DRAWFRAME_PARA;
Members
struTime
Time to start extracting frame.
dwDrawType
Frame extraction mode (it should be supported by device): 0: transmit I frame only.
• 0: Transmit I frame only.
• 1: Drop 1/2 P frame (only supported by SVC stream)
• 2: Drop 3/4 P frame (only supported by SVC stream)
• 3: Transmit 1/2 I frame (I frame only, transmit once per two I frames)
619
Device Network SDK (General) Developer Guide
• 4: Transmit 1/4 I frame (I frame only, transmit once per four I frames)
• 5:Transmit 1/8 I frame (I frame only, transmit once per eight 8 I frames)
byRes
Reserved, set to 0.
Related API
NET_DVR_PlayBackControl_V40
A.270 NET_DVR_VOD_PARA_V50
Video playback parameter structure.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_STREAM_INFO struIDInfo;
NET_DVR_TIME_V50 struBeginTime;
NET_DVR_TIME_V50 struEndTime;
HWND hWnd;
BYTE byDrawFrame;
BYTE byVolumeType;
BYTE byVolumeNum;
BYTE byStreamType;
BYTE dwFileIndex;
BYTE byAudioFile;
BYTE byCourseFile;
BYTE byPlayMode;
BYTE byLinkMode;
BYTE byDownload;
BYTE byOptimalStreamType;
BYTE byDisplayBufNum;
BYTE byNPQMode;
BYTE sUserName[NAME_LEN/*32*/];
BYTE sPassword[PASSWD_LEN/*16*/];
BYTE byRes2[204];
char* pSavedFileName;
}NET_DVR_VOD_PARA_V50, *LPNET_DVR_VOD_PARA_V50;
Members
dwSize
Structure size.
struIDInfo
Stream information. This parameter is not supported when logging in based on ISAPI protocol.
Refer to the structure for details.
620
Device Network SDK (General) Developer Guide
struBeginTime
Start time of playback, refer to the structure .
struEndTime
End time of playback, refer to the structure .
hWnd
Handle of playback window. If it is set to NULL, the stream data can still be received, but it will
not be decoded and displayed .
byDrawFrame
Whether to extract frame: 0-no, 1-yes. This parameter is not supported when login based on
ISAPI protocol.
byVolumeType
0-video volume, 1-storage volume (used for backup, and it is available for CVR). This parameter
is not supported when login based on ISAPI protocol.
byVolumeNum
Storage volume No. This parameter is not supported when login based on ISAPI protocol.
byStreamType
Stream type: 0-main stream, 1-sub-stream, 2-third stream. This parameter is not supported
when login based on ISAPI protocol.
dwFileIndex
Video file No. in storage volume, which is returned when searching for videos in the storage
volume. This parameter is not supported when login based on ISAPI protocol.
byAudioFile
Whether to play audio: 0-no, 1-yes. This parameter is not supported when login based on ISAPI
protocol.
byCourseFile
Whether to play course file: 0-no, 1-yes. This parameter is not supported when login based on
ISAPI protocol.
byPlayMode
Playbakc mode: 0-playback, 1-reverse playback.
byLinkMode
Device connection mode:0-TCP, 1-Adaptive UDP
byDownload
Whether to download: 0-no, 1-yes
byOptimalStreamType
621
Device Network SDK (General) Developer Guide
Whether plays back by optimal stream type: 0-no, 1-yes. (For dual-stream device, if the video
file in a certain time period does not match the specified stream type, then the actual stream
type video will be returned.)
byDisplayBufNum
The number of frames in buffer, it is valid when hWnd not values "NULL". By default it values
"3"
byNPQMode
NPQ (Network Protocol Quality) mode: 0-direct connect, 1-stream media
sUserName
Double verification user name, the sensitive information should be encrypted.
sPassword
Double verification user password, the sensitive information should be encrypted.
byRes2
Reserved, set to 0.
pSavedFileName
Path for saving downloaded recording files, it is valid when byDownload is "1". If the path
length is longer than 256 bytes, the path will be cut off.
Related API
NET_DVR_PlayBackByTime_V50
A.271 NET_DVR_WDR
Wide dynamic range (WDR) parameter structure
Structure Definition
struct{
BYTE byWDREnabled;
BYTE byWDRLevel1;
BYTE byWDRLevel2;
BYTE byWDRContrastLevel;
BYTE byRes[16];
}NET_DVR_WDR, *LPNET_DVR_WDR;
Members
byWDREnabled
Whether to enable WDR: 0-no, 1-yes.
byWDRLevel1
WDR level 1: form 0 to F.
622
Device Network SDK (General) Developer Guide
byWDRLevel2
WDR level 2: form 0 to F.
byWDRContrastLevel
Contrast level, which is between 0 and 100.
byRes
Reserved, set to 0.
A.272 NET_DVR_WHITEBALANCE
White balance parameter structure
Structure Definition
struct{
BYTE byWhiteBalanceMode;
BYTE byWhiteBalanceModeRGain;
BYTE byWhiteBalanceModeBGain;
BYTE byRes[5];
}NET_DVR_WHITEBALANCE, *LPNET_DVR_WHITEBALANCE;
Members
byWhiteBalanceMode
0-manual white balance (MWB), 1-auto white balance 1 (AWB1, small scale), 2-auto white
balance 2 (AWB2, large scale, 2200K-15000K), 3-lock the white balance, 4-outdoor, 5-indoor, 6-
daylight lamp, 7-sodium lamp, 8-auto-tracking, 9-white balance for once, 10-auto outdoor, 11-
auto sodium lamp, 12-mercury lamp, 13-auto white balance, 14-incandescent lamp, 15-warm
light, 16-natural light.
byWhiteBalanceModeRGain
R gain of manual white balance, this member is valid only when byWhiteBalanceMode is set to
"0".
byWhiteBalanceModeBGain
B gain of manual white balance, this member is valid only when byWhiteBalanceMode is set to
"0".
byRes
Reserved, set to 0.
A.273 NET_DVR_WIRELESSDIAL_CFG
Wireless dial-up connection configuration structure.
623
Device Network SDK (General) Developer Guide
Structure Definition
struct{
DWORD dwSize;
BYTE byEnabled;
BYTE byDialMode;
BYTE byNetworkMode;
BYTE byRes1;
BYTE byDialNum[MAX_DIALNUM_LENGTH];
BYTE byUserName[NAME_LEN];
BYTE byPassword[NAME_LEN];
BYTE byAPNName[NAME_LEN];
BYTE byUIMCardNum[NAME_LEN];
BYTE byVerifProtocol;
BYTE byRes2;
WORD wMTU;
DWORD dwOffineTime;
BYTE byNetAPN[NAME_LEN];
BYTE byEnabled4G;
BYTE byEnabledDNS;
BYTE byRes3[62];
}NET_DVR_WIRELESSDIAL_CFG,*LPNET_DVR_WIRELESSDIAL_CFG;
Members
dwSize
Structure size
byEnabled
Enable wireless dial-up? 0-No, 1- Yes
byDialMode
Dial-up mode: 0-Auto, 1-Manual, The defualt setting is auto, you can set the dial-up schedule,
off-time time, manual dial-up under the manual mode.
byNetworkMode
Network mode: 0-Auto, 1-4G precedence, 2-3G precedence, 3- auto switch 2G, 4- auto switch
3G, 5- auto switch 4G, 6-wired connection precedence
byRes1
Reserved
byDialNum
Dial-up number
byUserName
User name
byPassword
Password
624
Device Network SDK (General) Developer Guide
byAPNName
APN
byUIMCardNum
Mobile phone number
byVerifProtocol
Verification protocol:0- Auto, 1- CHAP, 2- PAP
byRes2
Reserved
wMTU
MTU Value
dwOffineTime
Offline time, value range: 30 to 65535, unit: second, valid under the manual mod
byNetAPN
APN field configuration of LAN
byEnabled4G
Whether to enable 4G: 0-no, 1-yes
byEnabledDNS
Whether to enable DNS manual configuration: 0-no, 1-yes
byRes3
Reserved, please set to 0
Remarks
This function corresponded wireless dial-up capability(Dial), API:
NET_DVR_GetSTDAbility(Capability Set: NET_DVR_GET_WIRELESSDIAL_CAPABILITIES).
A.274 NET_DVR_WIRELESSDIAL_CONNECT_PARAM
Structure of wireless dialing connection control parameters.
Structure Definition
struct{
DWORD dwSize;
DWORD dwInterface;
BYTE byEnableConnect;
BYTE byRes[255];
}NET_DVR_WIRELESSDIAL_CONNECT_PARAM,*LPNET_DVR_WIRELESSDIAL_CONNECT_PARAM;
625
Device Network SDK (General) Developer Guide
Members
dwSize
Structure size
dwInterface
Network card No.
byEnableConnect
Be connected to the internet? 0- Offline, 1- Online
byRes
Reserved, please set to 0
Remarks
After the online/offline control, you can refresh and get the current status via the API of
NET_DVR_GetSTDConfig(Command: NET_DVR_GET_WIRELESSDIAL_STATUS)
A.275 NET_DVR_WIRELESSDIAL_SCHEDULE
Wireless dial-up schedule structure.
Structure Definition
struct{
DWORD dwSize;
NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];
NET_DVR_SCHEDTIME struHolidayAlarmTime[MAX_TIMESEGMENT_V30]
BYTE byRes[160];
}NET_DVR_WIRELESSDIAL_SCHEDULE,*LPNET_DVR_WIRELESSDIAL_SCHEDULE;
Members
dwSize
Structure size
struAlarmTime
Arming time, 7 days a week, and max. 8 time segments each day
struHolidayAlarmTime
Holiday arming period
byRes
Reserved, please set to 0
626
Device Network SDK (General) Developer Guide
Remarks
This function corresponded dial-up schedule capability (Schedule), API: NET_DVR_GetSTDAbility
(Capability Set: NET_DVR_GET_WIRELESSDIAL_SCHEDULE_CAPABILITIES).
A.276 NET_DVR_WIRELESSDIAL_STATUS
Wireless connection status structure
Structure Definition
struct{
DWORD dwSize;
BYTE byRealtimeMode[MAX_LENGTH_32];
BYTE byUIMStatus[MAX_LENGTH_32];
DWORD dwSignalQuality;
BYTE byDialStatus[MAX_LENGTH_32];
NET_DVR_IPADDR struIpAddr;
NET_DVR_IPADDR struIPMask;
NET_DVR_IPADDR struGatewayIPMask;
NET_DVR_IPADDR struDnsServerIpAddr;
NET_DVR_IPADDR struSubDnsServerIpAddr;
BYTE byOperator[MAX_LENGTH_32];
BYTE byEnabledMessageConfig;
BYTE byRegistrationStatus;
BYTE byRes[256];
}NET_DVR_WIRELESSDIAL_CONNECT_PARAM,*LPNET_DVR_WIRELESSDIAL_CONNECT_PARAM;
Members
dwSize
Structure size
byRealtimeMode
Real-time mode (CDMA 1x, EVDO, HYBRID, GSM, GPRS, EDGE, WCDMA, HSDPA, HSUPA, HSPA,
TDSCDMA, TD-LTE, FDD-LTE, LTE, UNKNOWN)
byUIMStatus
UIM status: "UNKNOWN"-unknown, "VALID"-valid, "NOVALID"-invalid, "ROAM"-roam,
"NOEXIST"-not exist,"WRONGPINCODE"-PIN code error,"NONETWORKSERVICE"-connectionless
network service, "ONLYSUPPORTEMERGENCYCALL"-the current network only supports
emergency calls, "PINCODELOCKED"—PIN code locked
dwSignalQuality
Signal quality, value range: 1 to 100
byDialStatus
627
Device Network SDK (General) Developer Guide
A.277 NET_DVR_WIRELESSSERVER
Hotspot service parameter structure
Structure Definition
struct{
DWORD dwSize;
BYTE byWLanShare;
BYTE byBroadcastSSID;
BYTE bySecurityMode;
BYTE byAlgorithmType;
char szSSID[MAX_SSID_LEN/*32*/];
char szPassWord[MAX_WS_PASSWD_LEN/*64*/];
BYTE byDefaultPassword;
BYTE byWifiApModeType;
628
Device Network SDK (General) Developer Guide
BYTE byRes[254];
}NET_DVR_WIRELESSSERVER,*LPNET_DVR_WIRELESSSERVER;
Members
dwSize
Structure size
byWLanShare
Whether to enable wireless hospot: 0-no, 1-yes.
byBroadcastSSID
Whether to enable SID broadcast: 0-no, 1-yes.
bySecurityMode
Safety mode: 0-unencrypted, 1-WPA, 2-WPA2. Currently, only 2 is supported.
byAlgorithmType
Encryption mode: 1-TKIP, 2- AES.
szSSID
SSID information.
szPassWord
Password.
byDefaultPassword
Whether it is the default password: 0-no, 1-yes.
byWifiApModeType
Wireless hotspot mode: 0-disabled, 1-enabled, 2-auto.
byRes
Reserved, set to 0.
A.278 NET_DVR_WORKSTATE_V40
Device Working Status Structure
Table A-21 Device Status Structure
Member Data Type Description
dwSize DWORD Structure size.
dwDeviceStatic DWORD Device status: 0-normal; 1-too high CPU usage,
it exceeds 85%; 2-hardware error (e.g., serial
port exception).
629
Device Network SDK (General) Developer Guide
A.279 NET_DVR_XML_CONFIG_INPUT
630
Device Network SDK (General) Developer Guide
Related API
NET_DVR_STDXMLConfig
A.280 NET_DVR_XML_CONFIG_OUTPUT
631
Device Network SDK (General) Developer Guide
Related API
NET_DVR_STDXMLConfig
A.281 NET_IPC_AUXALARM_RESULT
Structure about auxiliary (PIR or wireless) alarm parameters.
Structure Definition
struct{
DWORD dwSize;
DWORD dwChannel;
BYTE byAlarmType;
BYTE byRes1[3];
NET_IPC_AUXALARM_UPLOAD_UNION struAuxAlarm;
BYTE byRes[64];
}NET_IPC_AUXALARM_RESULT, *LPNET_IPC_AUXALARM_RESULT;
Members
dwSize
Structure size.
dwChannel
Channel No.
byAlarmType
Alarm device type, see the definition below:
enum _IPC_AUX_ALARM_TYPE_{
IPC_AUXALARM_UNKNOW = 0,
IPC_AUXALARM_PIR = 1,
IPC_AUXALARM_WIRELESS = 2,
IPC_AUXALARM_CALLHELP = 3,
}IPC_AUX_ALARM_TYPE
IPC_AUXALARM_UNKNOW
Unknown.
IPC_AUXALARM_PIR
PIR alarm.
IPC_AUXALARM_WIRELESS
Wireless alarm.
IPC_AUXALARM_CALLHELP
Emergency alarm.
byRes1
632
Device Network SDK (General) Developer Guide
Reserved.
struAuxAlarm
Alarm result, see details in the structure NET_IPC_AUXALARM_UPLOAD_UNION .
byRes
Reserved.
A.282 NET_IPC_AUXALARM_UPLOAD_UNION
Alarm result parameter union.
Structure Definition
union{
DWORD uLen[66];
NET_IPC_PIR_ALARMCFG struPIRAlarm;
NET_IPC_SINGLE_WIRELESS_ALARMCFG struWirelessAlarm;
NET_IPC_CALLHELP_ALARMCFG struCallHelpAlarm;
}NET_IPC_AUXALARM_UPLOAD_UNION, *LPNET_IPC_AUXALARM_UPLOAD_UNION;
Members
uLen
Union size.
struPIRAlarm
PIR alarm parameter, see details in the structure NET_IPC_PIR_ALARMCFG .
struWirelessAlarm
Wireless alarm parameter, see details in the structure
NET_IPC_SINGLE_WIRELESS_ALARMCFG .
struCallHelpAlarm
Emergency alarm parameter, see details in the structure NET_IPC_CALLHELP_ALARMCFG .
See Also
NET_IPC_AUXALARM_RESULT
A.283 NET_IPC_CALLHELP_ALARMCFG
Emergency alarm configuration structure.
Structure Definition
struct{
BYTE byAlarmHandle;
633
Device Network SDK (General) Developer Guide
BYTE byRes1[3];
NET_DVR_HANDLEEXCEPTION_V41 struAlarmHandleType;
BYTE byRelRecordChan[MAX_CHANNUM_V30/*64*/];
BYTE byRes[64];
}NET_IPC_CALLHELP_ALARMCFG, *LPNET_IPC_CALLHELP_ALARMCFG;
Members
byAlarmHandle
Whether to handle the alarm: 0-no, 1-yes.
byRes1
Reserved, set to 0.
struAlarmHandleType
Handling type, see details in the structure NET_DVR_HANDLEEXCEPTION_V41 .
byRes
Reserved, set to 0.
A.284 NET_IPC_PIR_ALARMCFG
PIR alarm parameter structure.
Structure Definition
struct{
BYTE byAlarmName[NAME_LEN/*32*/];
BYTE byAlarmHandle;
BYTE byRes1[3];
NET_DVR_HANDLEEXCEPTION_V41 struAlarmHandleType;
BYTE byRelRecordChan[MAX_CHANNUM_V30/*64*/];
BYTE byRes[64];
}NET_IPC_PIR_ALARMCFG, *LPNET_IPC_PIR_ALARMCFG;
Members
byAlarmName
Alarm name.
byAlarmHandle
Whether to handle the alarm: 0-no, 1-yes.
byRes1
Reserved.
struAlarmHandleType
Handling type, see details in the structure NET_DVR_HANDLEEXCEPTION_V41 .
byRelRecordChan
634
Device Network SDK (General) Developer Guide
Recording channel triggered by the alarm. The channel will be triggered to start recording when
byRelRecordChan is set to 1. For example, if byRelRecordChan[0] is set to 1, it indicates that
channel 1 is triggered to record; if byRelRecordChan[1] is set to 1, it indicates that channel 2 is
triggered to record, and so on.
byRes
Reserved.
A.285 NET_IPC_SINGLE_WIRELESS_ALARMCFG
Single wireless alarm parameter structure.
Structure Definition
struct{
BYTE byAlarmName[NAME_LEN/*32*/];
BYTE byAlarmHandle;
BYTE byID;
BYTE byRes1[2];
NET_DVR_HANDLEEXCEPTION_V41 struAlarmHandleType;
BYTE byRelRecordChan[MAX_CHANNUM_V30/*64*/];
BYTE byRes[32];
}NET_IPC_SINGLE_WIRELESS_ALARMCFG, *LPNET_IPC_SINGLE_WIRELESS_ALARMCFG;
Members
byAlarmName
Alarm name.
byAlarmHandle
Whether to handle the alarm: 0-no, 1-yes.
byID
Wireless alarm ID, ranging from 1 to 8.
byRes1
Reserved.
struAlarmHandleType
Handling type, see details in the structure NET_DVR_HANDLEEXCEPTION_V41 .
byRelRecordChan
Recording channel triggered by the alarm. The channel will be triggered to start recording when
byRelRecordChan is set to 1. For example, if byRelRecordChan[0] is set to 1, it indicates that
channel 1 is triggered to record; if byRelRecordChan[1] is set to 1, it indicates that channel 2 is
triggered to record, and so on.
byRes
635
Device Network SDK (General) Developer Guide
Reserved.
A.286 NET_PTZ_INFO_EX
Extended PTZ parameters structure.
Structure Definition
struct{
float fPan;
float fTilt;
float fVisibleZoom;
DWORD dwVisibleFocus;
float fThermalZoom;
DWORD dwThermalFocus;
}NET_PTZ_INFO_EX, *LPNET_PTZ_INFO_EX;
Members
fPan
Value of panning parameter, range: [0,360.000], which is accurate to 3 decimal places.
fTilt
Value of tilting parameter, range: [-90.000,90.000], which is accurate to 3 decimal places.
fVisibleZoom
Value of zooming parameter for visible light, range: [0,10000.0], which is accurate to 1 decimal
place.
dwVisibleFocus
Value of focus parameter for visible light.
fThermalZoom
Value of zooming parameter for thermal imaging, range: [0,10000.0], which is accurate to 1
decimal place.
dwThermalFocus
Value of focus parameter for thermal imaging.
A.287 NET_VCA_AUDIO_ABNORMAL
Table A-22 Structure about Detection Parameters for Sudden Increase of Sound Intensity
Member Data Type Description
wDecibel WORD Sound intensity.
bySensitivity BYTE Sensitivity, value range: [1,100].
636
Device Network SDK (General) Developer Guide
A.288 NET_VCA_DEV_INFO
Remarks
When accessing to device A, see the following figure for details.
637
Device Network SDK (General) Developer Guide
• When the analog channel alarm of connected device (IPC, DVR, DVS, iVMS) is triggered,
struDevIP and wPort are the IP address and port No. of connected device; byChannel and
byIvmsChannel are both the alarm analog channel No.
• When the digital channel (IP channel) alarm of connected device (HDVR, NVR, iVMS) is triggered,
struDevIP, wPort and byChannel are the IP address, port No., and channel No. of connected
device, respectively; byIvmsChannel is the digital channel. In the above figure, the channel No.1
of device B1 and the channel No.1, 2 of device B2 are used as channel No.1, 2, 3 of the
connected device A; struDevIP, wPort, and byChannel are the IP address, port No. and channel
No. of B1 or B2; byIvmsChannel is the digital channel No. of device A. E.g., if the behavior
analysis alarm of channel No.2 of device B2 is triggered, struDevIP is [Link], wPort is
8002, byChannel is 2 and byIvmsChannel is 3 in the received alarm message.
A.289 NET_VCA_MASK_REGION
Shielded area structure.
Structure Definition
struct{
BYTE byEnable;
BYTE byRes[3];
NET_VCA_POLYGON struPolygon;
}NET_VCA_MASK_REGION, *LPNET_VCA_MASK_REGION;
Members
byEnable
Enable or not: 0-no, non 0-yes
byRes
Reserved, and set to 0
struPolygon
Shielded polygon, see details in
A.290 NET_VCA_MASK_REGION_LIST
Shielded areas parameters structure
Structure Definition
struct{
DWORD dwSize;
BYTE byRes[4];
NET_VCA_MASK_REGION struMask[MAX_MASK_REGION_NUM/*4*/];
}NET_VCA_MASK_REGION_LIST, *LPNET_VCA_MASK_REGION_LIST;
638
Device Network SDK (General) Developer Guide
Members
dwSize
Structure size
byRes
Reserved, and set to 0
struMask
Shielded area array, see details in
A.291 NET_VCA_POINT
A.292 NET_VCA_POLYGON
A.293 NET_VCA_RECT
639
Device Network SDK (General) Developer Guide
A.294 STREAM_FRAME_INFO_S
640
Device Network SDK (General) Developer Guide
A.295 STREAM_FS_SUPPLE_INFO_S
A.296 STREAM_RT_DATA_INFO_S
641
Device Network SDK (General) Developer Guide
Appendix B. Enumeration
B.1 BITRATE_ENCODE_INDEX
Enumerate the audio encoding bit rates.
Enumeration Definition
typedef enum _BITRATE_ENCODE_INDEX_{
BITRATE_ENCODE_def = 0,
BITRATE_ENCODE_8kps = 1,
BITRATE_ENCODE_16kps = 2,
BITRATE_ENCODE_32kps = 3,
BITRATE_ENCODE_64kps = 4,
BITRATE_ENCODE_128kps = 5,
BITRATE_ENCODE_192kps = 6,
BITRATE_ENCODE_40kps = 7,
BITRATE_ENCODE_48kps = 8,
BITRATE_ENCODE_56kps = 9,
BITRATE_ENCODE_80kps = 10,
BITRATE_ENCODE_96kps = 11,
BITRATE_ENCODE_112kps = 12,
BITRATE_ENCODE_144kps = 13,
BITRATE_ENCODE_160kps = 14,
BITRATE_ENCODE_224kps = 15,
BITRATE_ENCODE_256kps = 16,
BITRATE_ENCODE_320kps = 17
}BITRATE_ENCODE_INDEX;
Members
BITRATE_ENCODE_def
Default audio encoding bit rate, for network camera with version 5.1.0, it is 64Kbps.
BITRATE_ENCODE_8kps
The audio encoding bit rate is 8Kbps.
BITRATE_ENCODE_16kps
The audio encoding bit rate is 16Kbps.
BITRATE_ENCODE_32kps
The audio encoding bit rate is 32Kbps.
BITRATE_ENCODE_64kps
The audio encoding bit rate is 64Kbps.
BITRATE_ENCODE_128kps
The audio encoding bit rate is 128Kbps.
642
Device Network SDK (General) Developer Guide
BITRATE_ENCODE_192kps
The audio encoding bit rate is 192Kbps.
BITRATE_ENCODE_40kps
The audio encoding bit rate is 40Kbps.
BITRATE_ENCODE_48kps
The audio encoding bit rate is 48Kbps.
BITRATE_ENCODE_56kps
The audio encoding bit rate is 56Kbps.
BITRATE_ENCODE_80kps
The audio encoding bit rate is 80Kbps.
BITRATE_ENCODE_96kps
The audio encoding bit rate is 96Kbps.
BITRATE_ENCODE_112kps
The audio encoding bit rate is 112Kbps.
BITRATE_ENCODE_144kps
The audio encoding bit rate is 144Kbps.
BITRATE_ENCODE_160kps
The audio encoding bit rate is 160Kbps.
BITRATE_ENCODE_224kps
The audio encoding bit rate is 224Kbps.
BITRATE_ENCODE_256kps
The audio encoding bit rate is 256Kbps.
BITRATE_ENCODE_320kps
The audio encoding bit rate is 320Kbps.
B.2 COUNTRY_INDEX
Enumerate country names.
Enumeration Definition
enum{
COUNTRY_NONSUPPORT = 0,
COUNTRY_CZE = 1,
COUNTRY_FRA = 2,
COUNTRY_DEU = 3,
COUNTRY_ESP = 4,
COUNTRY_ITA = 5,
COUNTRY_NLD = 6,
643
Device Network SDK (General) Developer Guide
COUNTRY_POL = 7,
COUNTRY_SVK = 8,
COUNTRY_BLR = 9,
COUNTRY_MDA = 10,
COUNTRY_RUS = 11,
COUNTRY_UKR = 12,
COUNTRY_BEL = 13,
COUNTRY_BGR = 14,
COUNTRY_DNK = 15,
COUNTRY_FIN = 16,
COUNTRY_GBR = 17,
COUNTRY_GRC = 18,
COUNTRY_HRV = 19,
COUNTRY_HUN = 20,
COUNTRY_ISR = 21,
COUNTRY_LUX = 22,
COUNTRY_MKD = 23,
COUNTRY_NOR = 24,
COUNTRY_PRT = 25,
COUNTRY_ROU = 26,
COUNTRY_SRB = 27,
COUNTRY_AZE = 28,
COUNTRY_GEO = 29,
COUNTRY_KAZ = 30,
COUNTRY_LTU = 31,
COUNTRY_TKM = 32,
COUNTRY_UZB = 33,
COUNTRY_LVA = 34,
COUNTRY_EST = 35,
COUNTRY_ALB = 36,
COUNTRY_AUT = 37,
COUNTRY_BIH = 38,
COUNTRY_IRL = 39,
COUNTRY_ISL = 40,
COUNTRY_VAT = 41,
COUNTRY_MLT = 42,
COUNTRY_SWE = 43,
COUNTRY_CHE = 44,
COUNTRY_CYP = 45,
COUNTRY_TUR = 46,
COUNTRY_SVN = 47,
COUNTRY_MTG = 48,
COUNTRY_KOV = 49,
COUNTRY_ADR = 50,
COUNTRY_ARM = 51,
COUNTRY_MON = 52,
COUNTRY_LIE = 53,
COUNTRY_SMO = 54,
COUNTRY_RES1 = 55,
COUNTRY_RES2 = 56,
COUNTRY_RES3 = 57,
COUNTRY_RES4 = 58,
644
Device Network SDK (General) Developer Guide
COUNTRY_CHI = 59,
COUNTRY_IBN = 60,
COUNTRY_SKR = 61,
COUNTRY_LEB = 62,
COUNTRY_NEP = 63,
COUNTRY_THA = 64,
COUNTRY_PAK = 65,
COUNTRY_EMI = 66,
COUNTRY_BHU = 67,
COUNTRY_OMA = 68,
COUNTRY_KOR = 69,
COUNTRY_PHI = 70,
COUNTRY_CAM = 71,
COUNTRY_QAT = 72,
COUNTRY_KYR = 73,
COUNTRY_MAL = 74,
COUNTRY_MLY = 75,
COUNTRY_MOG = 76,
COUNTRY_ARA = 77,
COUNTRY_BRU = 78,
COUNTRY_LAO = 79,
COUNTRY_JAP = 80,
COUNTRY_RES19 = 81,
COUNTRY_PAS = 82,
COUNTRY_TAJ = 83,
COUNTRY_KUW = 84,
COUNTRY_SYR = 85,
COUNTRY_IND = 86,
COUNTRY_ISA = 87,
COUNTRY_AFG = 88,
COUNTRY_LAN = 89,
COUNTRY_IRQ = 90,
COUNTRY_VIE = 91,
COUNTRY_IRA = 92,
COUNTRY_YEM = 93,
COUNTRY_JOR = 94,
COUNTRY_BUR = 95,
COUNTRY_SIK = 96,
COUNTRY_BAN = 97,
COUNTRY_SGA = 98,
COUNTRY_EAT = 99,
COUNTRY_RES5 = 100,
COUNTRY_RES6 = 101,
COUNTRY_RES7 = 102,
COUNTRY_RES8 = 103,
COUNTRY_EGT = 104,
COUNTRY_LIY = 105,
COUNTRY_SUA = 106,
COUNTRY_TUN = 107,
COUNTRY_ALG = 108,
COUNTRY_MCC = 109,
COUNTRY_ETH = 110,
645
Device Network SDK (General) Developer Guide
COUNTRY_ERI = 111,
COUNTRY_SDE = 112,
COUNTRY_DJI = 113,
COUNTRY_KEN = 114,
COUNTRY_TAI = 115,
COUNTRY_UGA = 116,
COUNTRY_RWA = 117,
COUNTRY_BUD = 118,
COUNTRY_SEY = 119,
COUNTRY_CHA = 120,
COUNTRY_CEA = 121,
COUNTRY_CON = 122,
COUNTRY_EQG = 123,
COUNTRY_GAB = 124,
COUNTRY_TCO = 125,
COUNTRY_DRC = 126,
COUNTRY_STP = 127,
COUNTRY_MAN = 128,
COUNTRY_WSA = 129,
COUNTRY_SEL = 130,
COUNTRY_TGA = 131,
COUNTRY_MAI = 132,
COUNTRY_BUF = 133,
COUNTRY_GUI = 134,
COUNTRY_GUB = 135,
COUNTRY_CAV = 136,
COUNTRY_SLE = 137,
COUNTRY_LIR = 138,
COUNTRY_IVC = 139,
COUNTRY_GHA = 140,
COUNTRY_TGO = 141,
COUNTRY_BEN = 142,
COUNTRY_NIG = 143,
COUNTRY_ZAB = 144,
COUNTRY_ANG = 145,
COUNTRY_ZBE = 146,
COUNTRY_MAW = 147,
COUNTRY_MOQ = 148,
COUNTRY_BOT = 149,
COUNTRY_NAM = 150,
COUNTRY_SAF = 151,
COUNTRY_SWD = 152,
COUNTRY_LES = 153,
COUNTRY_MAG = 154,
COUNTRY_UOC = 155,
COUNTRY_MAT = 156,
COUNTRY_NGE = 157,
COUNTRY_SSD = 158,
COUNTRY_SAH = 159,
COUNTRY_MYT = 160,
COUNTRY_REN = 161,
COUNTRY_CAI = 162,
646
Device Network SDK (General) Developer Guide
COUNTRY_AZO = 163,
COUNTRY_MAD = 164,
COUNTRY_RES9 = 165,
COUNTRY_RES10 = 166,
COUNTRY_RES11 = 167,
COUNTRY_RES12 = 168,
COUNTRY_CAD = 169,
COUNTRY_GRE = 170,
COUNTRY_PIE = 171,
COUNTRY_USA = 172,
COUNTRY_BER = 173,
COUNTRY_MEX = 174,
COUNTRY_GUA = 175,
COUNTRY_BLI = 176,
COUNTRY_SAR = 177,
COUNTRY_HOR = 178,
COUNTRY_NIC = 179,
COUNTRY_COR = 180,
COUNTRY_PAN = 181,
COUNTRY_TBM = 182,
COUNTRY_TCI = 183,
COUNTRY_CUB = 184,
COUNTRY_JAM = 185,
COUNTRY_CAY = 186,
COUNTRY_HAT = 187,
COUNTRY_TDO = 188,
COUNTRY_PUR = 189,
COUNTRY_VIL = 190,
COUNTRY_BVI = 191,
COUNTRY_ATV = 192,
COUNTRY_ANB = 193,
COUNTRY_CSM = 194,
COUNTRY_ACY = 195,
COUNTRY_SBY = 196,
COUNTRY_SKN = 197,
COUNTRY_MOT = 198,
COUNTRY_GLP = 199,
COUNTRY_DOM = 200,
COUNTRY_MTE = 201,
COUNTRY_LUC = 202,
COUNTRY_SVG = 203,
COUNTRY_GRD = 204,
COUNTRY_BAR = 205,
COUNTRY_TRT = 206,
COUNTRY_CUR = 207,
COUNTRY_ARB = 208,
COUNTRY_NEA = 209,
COUNTRY_COL = 210,
COUNTRY_VEN = 211,
COUNTRY_GUY = 212,
COUNTRY_SUR = 213,
COUNTRY_FRN = 214,
647
Device Network SDK (General) Developer Guide
COUNTRY_ECU = 215,
COUNTRY_PER = 216,
COUNTRY_BOL = 217,
COUNTRY_PAR = 218,
COUNTRY_CLE = 219,
COUNTRY_BRA = 220,
COUNTRY_UGY = 221,
COUNTRY_ARG = 222,
COUNTRY_RES13 = 223,
COUNTRY_RES14 = 224,
COUNTRY_RES15 = 225,
COUNTRY_RES16 = 226,
COUNTRY_ATN = 227,
COUNTRY_NED = 228,
COUNTRY_PNG = 229,
COUNTRY_SAN = 230,
COUNTRY_VAU = 231,
COUNTRY_NCN = 232,
COUNTRY_PAU = 233,
COUNTRY_FSM = 234,
COUNTRY_MRI = 235,
COUNTRY_CNM = 236,
COUNTRY_TEG = 237,
COUNTRY_NUR = 238,
COUNTRY_KIB = 239,
COUNTRY_FID = 240,
COUNTRY_TNG = 241,
COUNTRY_TUV = 242,
COUNTRY_WEF = 243,
COUNTRY_TIS = 244,
COUNTRY_EAS = 245,
COUNTRY_TOE = 246,
COUNTRY_NUE = 247,
COUNTRY_TCD = 248,
COUNTRY_PFP = 249,
COUNTRY_PID = 250,
COUNTRY_HAW = 251,
COUNTRY_RES17 = 252,
COUNTRY_RES18 = 253,
COUNTRY_UNRECOGNIZED = 0xfe,
COUNTRY_ALL = 0xff,
COUNTRY_INVALID = 0xfd
}COUNTRY_INDEX
Members
COUNTRY_NONSUPPORT
Not support
COUNTRY_CZE
Czech Republic
648
Device Network SDK (General) Developer Guide
COUNTRY_DEU
Germany
COUNTRY_ESP
Spain
COUNTRY_ITA
Italy
COUNTRY_NLD
Netherlands
COUNTRY_POL
Poland
COUNTRY_SVK
Slovakia
COUNTRY_BLR
Belorussia
COUNTRY_MDA
Moldova
COUNTRY_RUS
Russia
COUNTRY_UKR
Ukraine
COUNTRY_BEL
Belgium
COUNTRY_BGR
Bulgaria
COUNTRY_DNK
Denmark
COUNTRY_FIN
Finland
COUNTRY_GBR
United Kingdom
COUNTRY_GRC
Greece
COUNTRY_HRV
Croatia
649
Device Network SDK (General) Developer Guide
COUNTRY_HUN
Hungary
COUNTRY_ISR
Israel
COUNTRY_LUX
Luxembourg
COUNTRY_MKD
Macedonia
COUNTRY_NOR
Norway
COUNTRY_PRT
Portugal
COUNTRY_ROU
Romania
COUNTRY_SRB
Serbia
COUNTRY_AZE
Azerbaijan
COUNTRY_GEO
Georgia
COUNTRY_KAZ
Kazakhstan
COUNTRY_LTU
Lithuania
COUNTRY_TKM
Turkmenistan
COUNTRY_UZB
Uzbekistan
COUNTRY_LVA
Latvia
COUNTRY_EST
Estonia
COUNTRY_ALB
Albania
650
Device Network SDK (General) Developer Guide
COUNTRY_AUT
Austria
COUNTRY_BIH
Bosnia and Herzegovina
COUNTRY_IRL
Ireland
COUNTRY_ISL
Iceland
COUNTRY_VAT
Vatican
COUNTRY_MLT
Malta
COUNTRY_SWE
Sweden
COUNTRY_CHE
Switzerland
COUNTRY_CYP
Cyprus
COUNTRY_TUR
Turkey
COUNTRY_SVN
Slovenia
COUNTRY_MTG
Montenegro
COUNTRY_KOV
Kosovo
COUNTRY_ADR
Andorra
COUNTRY_ARM
Armenia
COUNTRY_MON
Monaco
COUNTRY_LIE
Liechtenstein
651
Device Network SDK (General) Developer Guide
COUNTRY_SMO
San Marino
COUNTRY_RES1
Reserved
COUNTRY_RES2
Reserved
COUNTRY_RES3
Reserved
COUNTRY_RES4
Reserved /* Asia, 48 countries, in which Cyprus is located on the border of Europe and Asia*/
COUNTRY_CHI
China
COUNTRY_IBN
In bahrain
COUNTRY_SKR
South Korea
COUNTRY_LEB
Lebanon
COUNTRY_NEP
Nepal
COUNTRY_THA
Thailand
COUNTRY_PAK
Pakistan
COUNTRY_EMI
The united Arab emirates
COUNTRY_BHU
Bhutan
COUNTRY_OMA
Oman
COUNTRY_KOR
North Korea
COUNTRY_PHI
The Philippines
652
Device Network SDK (General) Developer Guide
COUNTRY_CAM
Cambodia
COUNTRY_QAT
Qatar
COUNTRY_KYR
Kyrgyzstan
COUNTRY_MAL
The maldives
COUNTRY_MLY
Malaysia
COUNTRY_MOG
Mongolia
COUNTRY_ARA
Saudi Arabia
COUNTRY_BRU
brunei
COUNTRY_LAO
Laos
COUNTRY_JAP
Japan
COUNTRY_RES19
Reserved
COUNTRY_PAS
Palestinian state
COUNTRY_TAJ
Tajikistan
COUNTRY_KUW
Kuwait
COUNTRY_SYR
Syria
COUNTRY_IND
India
COUNTRY_ISA
Indonesia
653
Device Network SDK (General) Developer Guide
COUNTRY_AFG
Afghanistan
COUNTRY_LAN
Sri Lanka
COUNTRY_IRQ
Iraq
COUNTRY_VIE
Vietnam
COUNTRY_IRA
Iran
COUNTRY_YEM
yemen
COUNTRY_JOR
Jordan
COUNTRY_BUR
Burma
COUNTRY_SIK
Sikkim
COUNTRY_BAN
Bangladesh
COUNTRY_SGA
Singapore
COUNTRY_EAT
East Timor
COUNTRY_RES5
Reserved
COUNTRY_RES6
Reserved
COUNTRY_RES7
Reserved
COUNTRY_RES8
Reserved /*Africa, 60 countries and regions*/
COUNTRY_EGT
Egypt
654
Device Network SDK (General) Developer Guide
COUNTRY_LIY
Libya
COUNTRY_SUA
Sudan
COUNTRY_TUN
Tunisia
COUNTRY_ALG
Algeria
COUNTRY_MCC
Morocco
COUNTRY_ETH
Ethiopia
COUNTRY_ERI
Eritrea
COUNTRY_SDE
Somalia Democratic
COUNTRY_DJI
Djibouti
COUNTRY_KEN
Kenya
COUNTRY_TAI
Tanzania
COUNTRY_UGA
Uganda
COUNTRY_RWA
Rwanda
COUNTRY_BUD
Burundi
COUNTRY_SEY
Seychelles
COUNTRY_CHA
Chad
COUNTRY_CEA
Central African
655
Device Network SDK (General) Developer Guide
COUNTRY_CON
Cameroon
COUNTRY_EQG
Equatorial Guinea
COUNTRY_GAB
Gabon
COUNTRY_TCO
the Congo
COUNTRY_DRC
Democratic Republic of the Congo
COUNTRY_STP
Sao Tome and Principe
COUNTRY_MAN
Mauritania
COUNTRY_WSA
Western Sahara
COUNTRY_SEL
Senega
COUNTRY_TGA
the Gambia
COUNTRY_MAI
Mali
COUNTRY_BUF
Burkina Faso
COUNTRY_GUI
Guinea
COUNTRY_GUB
Guinea-Bissau
COUNTRY_CAV
Cape Verde
COUNTRY_SLE
Sierra Leone
COUNTRY_LIR
Liberia
656
Device Network SDK (General) Developer Guide
COUNTRY_IVC
Ivory Coast
COUNTRY_GHA
Ghana
COUNTRY_TGO
Togo
COUNTRY_BEN
Benin
COUNTRY_NIG
Niger
COUNTRY_ZAB
Zambia
COUNTRY_ANG
Angola
COUNTRY_ZBE
Zimbabwe
COUNTRY_MAW
Malawi
COUNTRY_MOQ
Mozambique
COUNTRY_BOT
Botswana
COUNTRY_NAM
Namibia
COUNTRY_SAF
South Africa
COUNTRY_SWD
Swaziland
COUNTRY_LES
Lesotho
COUNTRY_MAG
Madagasca
COUNTRY_UOC
Union of Comoros
657
Device Network SDK (General) Developer Guide
COUNTRY_MAT
Mauritius
COUNTRY_NGE
Nigeria
COUNTRY_SSD
South Sudan
COUNTRY_SAH
Saint Helena
COUNTRY_MYT
Mayotte
COUNTRY_REN
Reunion
COUNTRY_CAI
Canary Islands
COUNTRY_AZO
AZORES
COUNTRY_MAD
Madeira
COUNTRY_RES9
Reserved
COUNTRY_RES10
Reserved
COUNTRY_RES11
Reserved
COUNTRY_RES12
Reserved /*America, 55 countries and regions*/
COUNTRY_CAD
Canada
COUNTRY_GRE
Greenland Nuuk
COUNTRY_PIE
/Pierre and Miquelon
COUNTRY_USA
United States
658
Device Network SDK (General) Developer Guide
COUNTRY_BER
Bermuda
COUNTRY_MEX
Mexico
COUNTRY_GUA
Guatemala
COUNTRY_BLI
Belize
COUNTRY_SAR
El Salvador
COUNTRY_HOR
Honduras
COUNTRY_NIC
Nicaragua
COUNTRY_COR
Costa Rica
COUNTRY_PAN
Panama
COUNTRY_TBM
The Bahamas
COUNTRY_TCI
The Turks and Caicos Islands
COUNTRY_CUB
Cuba
COUNTRY_JAM
Jamaica
COUNTRY_CAY
Cayman Islands
COUNTRY_HAT
Haiti
COUNTRY_TDO
The Dominican
COUNTRY_PUR
Puerto Rico
659
Device Network SDK (General) Developer Guide
COUNTRY_VIL
The United States Virgin Islands
COUNTRY_BVI
The British Virgin Islands
COUNTRY_ATV
Anguilla The Valley
COUNTRY_ANB
Antigua and Barbuda
COUNTRY_CSM
Collectivite de Saint-Martin
COUNTRY_ACY
Autonomous country
COUNTRY_SBY
Saint-Barthelemy
COUNTRY_SKN
Saint Kitts and Nevis
COUNTRY_MOT
Montserrat
COUNTRY_GLP
Guadeloupe
COUNTRY_DOM
Dominica
COUNTRY_MTE
Martinique
COUNTRY_LUC
St. Lucia
COUNTRY_SVG
Saint Vincent and the Grenadines
COUNTRY_GRD
Grenada
COUNTRY_BAR
Barbados
COUNTRY_TRT
Trinidad and Tobago
660
Device Network SDK (General) Developer Guide
COUNTRY_CUR
Curaao
COUNTRY_ARB
Aruba
COUNTRY_NEA
Netherlands Antilles
COUNTRY_COL
Colombia
COUNTRY_VEN
Venezuela
COUNTRY_GUY
Guyana
COUNTRY_SUR
Suriname
COUNTRY_FRN
Guyane Francaise
COUNTRY_ECU
Ecuador
COUNTRY_PER
Peru
COUNTRY_BOL
Bolivia
COUNTRY_PAR
Paraguay
COUNTRY_CLE
Chile
COUNTRY_BRA
Brazil
COUNTRY_UGY
Uruguay
COUNTRY_ARG
Argentina
COUNTRY_RES13
Reserved
661
Device Network SDK (General) Developer Guide
COUNTRY_RES14
Reserved
COUNTRY_RES15
Reserved
COUNTRY_RES16
Reserved /*Oceania, 25 countries and regions*/
COUNTRY_ATN
Australien
COUNTRY_NED
Neuseeland
COUNTRY_PNG
Papua New Guinea
COUNTRY_SAN
Salomonen
COUNTRY_VAU
Vanuatu
COUNTRY_NCN
New Caledonia
COUNTRY_PAU
Palau
COUNTRY_FSM
Federated States of Micronesia
COUNTRY_MRI
Marshall Island
COUNTRY_CNM
Commonwealth of the Northern Mariana Islands
COUNTRY_TEG
The Territory of Guahan
COUNTRY_NUR
Nauru
COUNTRY_KIB
Kiribati
COUNTRY_FID
Fidschi
662
Device Network SDK (General) Developer Guide
COUNTRY_TNG
Tonga
COUNTRY_TUV
Tuvalu
COUNTRY_WEF
Wallis et Futuna
COUNTRY_TIS
The Independent State of Samoa
COUNTRY_EAS
Eastern Samoa
COUNTRY_TOE
Tokelau
COUNTRY_NUE
Niue
COUNTRY_TCD
The Cook Islands
COUNTRY_PFP
Polynesie franaise French Polynesia
COUNTRY_PID
Pitcairn Islands
COUNTRY_HAW
Hawaii State
COUNTRY_RES17
Reserved
COUNTRY_RES18
Reserved
COUNTRY_UNRECOGNIZED
Unrecognized
COUNTRY_ALL
ALL
COUNTRY_INVALID
byCountry is invalid and you should use CRIndex, see CR_INDEX for details.
663
Device Network SDK (General) Developer Guide
B.3 CR_INDEX
Enumeration about country or region index.
Enumeration Definition
enum{
CR_NONSUPPORT = 0,
CR_CZE = 1,
CR_FRA = 2,
CR_DEU = 3,
CR_ESP = 4,
CR_ITA = 5,
CR_NLD = 6,
CR_POL = 7,
CR_SVK = 8,
CR_BLR = 9,
CR_MDA = 10,
CR_RUS = 11,
CR_UKR = 12,
CR_BEL = 13,
CR_BGR = 14,
CR_DNK = 15,
CR_FIN = 16,
CR_GBR = 17,
CR_GRC = 18,
CR_HRV = 19,
CR_HUN = 20,
CR_ISR = 21,
CR_LUX = 22,
CR_MKD = 23,
CR_NOR = 24,
CR_PRT = 25,
CR_ROU = 26,
CR_SRB = 27,
CR_AZE = 28,
CR_GEO = 29,
CR_KAZ = 30,
CR_LTU = 31,
CR_TKM = 32,
CR_UZB = 33,
CR_LVA = 34,
CR_EST = 35,
CR_ALB = 36,
CR_AUT = 37,
CR_BIH = 38,
CR_IRL = 39,
CR_ISL = 40,
CR_VAT = 41,
CR_MLT = 42,
CR_SWE = 43,
664
Device Network SDK (General) Developer Guide
CR_CHE = 44,
CR_CYP = 45,
CR_TUR = 46,
CR_SVN = 47,
CR_MTG = 48,
CR_KOV = 49,
CR_ADR = 50,
CR_ARM = 51,
CR_MON = 52,
CR_LIE = 53,
CR_SMO = 54,
CR_RES1 = 55,
CR_RES2 = 56,
CR_RES3 = 57,
CR_RES4 = 58,
CR_CHI = 59,
CR_IBN = 60,
CR_SKR = 61,
CR_LEB = 62,
CR_NEP = 63,
CR_THA = 64,
CR_PAK = 65,
CR_EMI = 66,
CR_BHU = 67,
CR_OMA = 68,
CR_KOR = 69,
CR_PHI = 70,
CR_CAM = 71,
CR_QAT = 72,
CR_KYR = 73,
CR_MAL = 74,
CR_MLY = 75,
CR_MOG = 76,
CR_ARA = 77,
CR_BRU = 78,
CR_LAO = 79,
CR_JAP = 80,
CR_RES19 = 81,
CR_PAS = 82,
CR_TAJ = 83,
CR_KUW = 84,
CR_SYR = 85,
CR_IND = 86,
CR_ISA = 87,
CR_AFG = 88,
CR_LAN = 89,
CR_IRQ = 90,
CR_VIE = 91,
CR_IRA = 92,
CR_YEM = 93,
CR_JOR = 94,
CR_BUR = 95,
665
Device Network SDK (General) Developer Guide
CR_SIK = 96,
CR_BAN = 97,
CR_SGA = 98,
CR_EAT = 99,
CR_RES5 = 100,
CR_RES6 = 101,
CR_RES7 = 102,
CR_RES8 = 103,
CR_EGT = 104,
CR_LIY = 105,
CR_SUA = 106,
CR_TUN = 107,
CR_ALG = 108,
CR_MCC = 109,
CR_ETH = 110,
CR_ERI = 111,
CR_SDE = 112,
CR_DJI = 113,
CR_KEN = 114,
CR_TAI = 115,
CR_UGA = 116,
CR_RWA = 117,
CR_BUD = 118,
CR_SEY = 119,
CR_CHA = 120,
CR_CEA = 121,
CR_CON = 122,
CR_EQG = 123,
CR_GAB = 124,
CR_TCO = 125,
CR_DRC = 126,
CR_STP = 127,
CR_MAN = 128,
CR_WSA = 129,
CR_SEL = 130,
CR_TGA = 131,
CR_MAI = 132,
CR_BUF = 133,
CR_GUI = 134,
CR_GUB = 135,
CR_CAV = 136,
CR_SLE = 137,
CR_LIR = 138,
CR_IVC = 139,
CR_GHA = 140,
CR_TGO = 141,
CR_BEN = 142,
CR_NIG = 143,
CR_ZAB = 144,
CR_ANG = 145,
CR_ZBE = 146,
CR_MAW = 147,
666
Device Network SDK (General) Developer Guide
CR_MOQ = 148,
CR_BOT = 149,
CR_NAM = 150,
CR_SAF = 151,
CR_SWD = 152,
CR_LES = 153,
CR_MAG = 154,
CR_UOC = 155,
CR_MAT = 156,
CR_NGE = 157,
CR_SSD = 158,
CR_SAH = 159,
CR_MYT = 160,
CR_REN = 161,
CR_CAI = 162,
CR_AZO = 163,
CR_MAD = 164,
CR_RES9 = 165,
CR_RES10 = 166,
CR_RES11 = 167,
CR_RES12 = 168,
CR_CAD = 169,
CR_GRE = 170,
CR_PIE = 171,
CR_USA = 172,
CR_BER = 173,
CR_MEX = 174,
CR_GUA = 175,
CR_BLI = 176,
CR_SAR = 177,
CR_HOR = 178,
CR_NIC = 179,
CR_COR = 180,
CR_PAN = 181,
CR_TBM = 182,
CR_TCI = 183,
CR_CUB = 184,
CR_JAM = 185,
CR_CAY = 186,
CR_HAT = 187,
CR_TDO = 188,
CR_PUR = 189,
CR_VIL = 190,
CR_BVI = 191,
CR_ATV = 192,
CR_ANB = 193,
CR_CSM = 194,
CR_ACY = 195,
CR_SBY = 196,
CR_SKN = 197,
CR_MOT = 198,
CR_GLP = 199,
667
Device Network SDK (General) Developer Guide
CR_DOM = 200,
CR_MTE = 201,
CR_LUC = 202,
CR_SVG = 203,
CR_GRD = 204,
CR_BAR = 205,
CR_TRT = 206,
CR_CUR = 207,
CR_ARB = 208,
CR_NEA = 209,
CR_COL = 210,
CR_VEN = 211,
CR_GUY = 212,
CR_SUR = 213,
CR_FRN = 214,
CR_ECU = 215,
CR_PER = 216,
CR_BOL = 217,
CR_PAR = 218,
CR_CLE = 219,
CR_BRA = 220,
CR_UGY = 221,
CR_ARG = 222,
CR_RES13 = 223,
CR_RES14 = 224,
CR_RES15 = 225,
CR_RES16 = 226,
CR_ATN = 227,
CR_NED = 228,
CR_PNG = 229,
CR_SAN = 230,
CR_VAU = 231,
CR_NCN = 232,
CR_PAU = 233,
CR_FSM = 234,
CR_MRI = 235,
CR_CNM = 236,
CR_TEG = 237,
CR_NUR = 238,
CR_KIB = 239,
CR_FID = 240,
CR_TNG = 241,
CR_TUV = 242,
CR_WEF = 243,
CR_TIS = 244,
CR_EAS = 245,
CR_TOE = 246,
CR_NUE = 247,
CR_TCD = 248,
CR_PFP = 249,
CR_PID = 250,
CR_HAW = 251,
668
Device Network SDK (General) Developer Guide
CR_RES17 = 252,
CR_RES18 = 253,
CR_UNRECOGNIZED = 0xfe,
CR_ALL = 0xff,
CR_TAIWAN = 256
}CR_INDEX
Members
CR_NONSUPPORT
Not support
CR_CZE
Czech Republic
CR_DEU
Germany
CR_ESP
Spain
CR_ITA
Italy
CR_NLD
Netherlands
CR_POL
Poland
CR_SVK
Slovakia
CR_BLR
Belorussia
CR_MDA
Moldova
CR_RUS
Russia
CR_UKR
Ukraine
CR_BEL
Belgium
CR_BGR
Bulgaria
CR_DNK
669
Device Network SDK (General) Developer Guide
Denmark
CR_FIN
Finland
CR_GBR
United Kingdom
CR_GRC
Greece
CR_HRV
Croatia
CR_HUN
Hungary
CR_ISR
Israel
CR_LUX
Luxembourg
CR_MKD
Macedonia
CR_NOR
Norway
CR_PRT
Portugal
CR_ROU
Romania
CR_SRB
Serbia
CR_AZE
Azerbaijan
CR_GEO
Georgia
CR_KAZ
Kazakhstan
CR_LTU
Lithuania
CR_TKM
670
Device Network SDK (General) Developer Guide
Turkmenistan
CR_UZB
Uzbekistan
CR_LVA
Latvia
CR_EST
Estonia
CR_ALB
Albania
CR_AUT
Austria
CR_BIH
Bosnia and Herzegovina
CR_IRL
Ireland
CR_ISL
Iceland
CR_VAT
Vatican
CR_MLT
Malta
CR_SWE
Sweden
CR_CHE
Switzerland
CR_CYP
Cyprus
CR_TUR
Turkey
CR_SVN
Slovenia
CR_MTG
Montenegro
CR_KOV
671
Device Network SDK (General) Developer Guide
Kosovo
CR_ADR
Andorra
CR_ARM
Armenia
CR_MON
Monaco
CR_LIE
Liechtenstein
CR_SMO
San Marino
CR_RES1
Reserved
CR_RES2
Reserved
CR_RES3
Reserved
CR_RES4
Reserved /* Asia, 48 countries, in which Cyprus is located on the border of Europe and Asia*/
CR_CHI
China
CR_IBN
In bahrain
CR_SKR
South Korea
CR_LEB
Lebanon
CR_NEP
Nepal
CR_THA
Thailand
CR_PAK
Pakistan
CR_EMI
672
Device Network SDK (General) Developer Guide
673
Device Network SDK (General) Developer Guide
Tajikistan
CR_KUW
Kuwait
CR_SYR
Syria
CR_IND
India
CR_ISA
Indonesia
CR_AFG
Afghanistan
CR_LAN
Sri Lanka
CR_IRQ
Iraq
CR_VIE
Vietnam
CR_IRA
Iran
CR_YEM
yemen
CR_JOR
Jordan
CR_BUR
Burma
CR_SIK
Sikkim
CR_BAN
Bangladesh
CR_SGA
Singapore
CR_EAT
East Timor
CR_RES5
674
Device Network SDK (General) Developer Guide
Reserved
CR_RES6
Reserved
CR_RES7
Reserved
CR_RES8
Reserved /*Africa, 60 countries and regions*/
CR_EGT
Egypt
CR_LIY
Libya
CR_SUA
Sudan
CR_TUN
Tunisia
CR_ALG
Algeria
CR_MCC
Morocco
CR_ETH
Ethiopia
CR_ERI
Eritrea
CR_SDE
Somalia Democratic
CR_DJI
Djibouti
CR_KEN
Kenya
CR_TAI
Tanzania
CR_UGA
Uganda
CR_RWA
675
Device Network SDK (General) Developer Guide
Rwanda
CR_BUD
Burundi
CR_SEY
Seychelles
CR_CHA
Chad
CR_CEA
Central African
CR_CON
Cameroon
CR_EQG
Equatorial Guinea
CR_GAB
Gabon
CR_TCO
the Congo
CR_DRC
Democratic Republic of the Congo
CR_STP
Sao Tome and Principe
CR_MAN
Mauritania
CR_WSA
Western Sahara
CR_SEL
Senega
CR_TGA
the Gambia
CR_MAI
Mali
CR_BUF
Burkina Faso
CR_GUI
676
Device Network SDK (General) Developer Guide
Guinea
CR_GUB
Guinea-Bissau
CR_CAV
Cape Verde
CR_SLE
Sierra Leone
CR_LIR
Liberia
CR_IVC
Ivory Coast
CR_GHA
Ghana
CR_TGO
Togo
CR_BEN
Benin
CR_NIG
Niger
CR_ZAB
Zambia
CR_ANG
Angola
CR_ZBE
Zimbabwe
CR_MAW
Malawi
CR_MOQ
Mozambique
CR_BOT
Botswana
CR_NAM
Namibia
CR_SAF
677
Device Network SDK (General) Developer Guide
South Africa
CR_SWD
Swaziland
CR_LES
Lesotho
CR_MAG
Madagasca
CR_UOC
Union of Comoros
CR_MAT
Mauritius
CR_NGE
Nigeria
CR_SSD
South Sudan
CR_SAH
Saint Helena
CR_MYT
Mayotte
CR_REN
Reunion
CR_CAI
Canary Islands
CR_AZO
AZORES
CR_MAD
Madeira
CR_RES9
Reserved
CR_RES10
Reserved
CR_RES11
Reserved
CR_RES12
678
Device Network SDK (General) Developer Guide
679
Device Network SDK (General) Developer Guide
Jamaica
CR_CAY
Cayman Islands
CR_HAT
Haiti
CR_TDO
The Dominican
CR_PUR
Puerto Rico
CR_VIL
The United States Virgin Islands
CR_BVI
The British Virgin Islands
CR_ATV
Anguilla The Valley
CR_ANB
Antigua and Barbuda
CR_CSM
Collectivite de Saint-Martin
CR_ACY
Autonomous CR
CR_SBY
Saint-Barthelemy
CR_SKN
Saint Kitts and Nevis
CR_MOT
Montserrat
CR_GLP
Guadeloupe
CR_DOM
Dominica
CR_MTE
Martinique
CR_LUC
680
Device Network SDK (General) Developer Guide
St. Lucia
CR_SVG
Saint Vincent and the Grenadines
CR_GRD
Grenada
CR_BAR
Barbados
CR_TRT
Trinidad and Tobago
CR_CUR
Curaao
CR_ARB
Aruba
CR_NEA
Netherlands Antilles
CR_COL
Colombia
CR_VEN
Venezuela
CR_GUY
Guyana
CR_SUR
Suriname
CR_FRN
Guyane Francaise
CR_ECU
Ecuador
CR_PER
Peru
CR_BOL
Bolivia
CR_PAR
Paraguay
CR_CLE
681
Device Network SDK (General) Developer Guide
Chile
CR_BRA
Brazil
CR_UGY
Uruguay
CR_ARG
Argentina
CR_RES13
Reserved
CR_RES14
Reserved
CR_RES15
Reserved
CR_RES16
Reserved /*Oceania, 25 countries and regions*/
CR_ATN
Australien
CR_NED
Neuseeland
CR_PNG
Papua New Guinea
CR_SAN
Salomonen
CR_VAU
Vanuatu
CR_NCN
New Caledonia
CR_PAU
Palau
CR_FSM
Federated States of Micronesia
CR_MRI
Marshall Island
CR_CNM
682
Device Network SDK (General) Developer Guide
683
Device Network SDK (General) Developer Guide
Reserved
CR_UNRECOGNIZED
Unrecognized
CR_ALL
ALL
CR_TAIWAN
Taiwan (China)
B.4 FIRE_ALARM
B.5 NET_DVR_CHARSET_ENUM
Enumeration about encoding types.
Enumeration Definition
enum _NET_DVR_CHARSET_ENUM_{
ENUM_UTF8 =0,
ENUM_GB2312,
ENUM_LATIN1,
ENUM_LATIN2,
ENUM_LATIN3,
ENUM_LATIN4,
ENUM_CYRILLIC,
ENUM_ARABIC,
ENUM_GREEK,
ENUM_HEBREW,
ENUM_TURKISH,
ENUM_NORDIC,
ENUM_THAI,
684
Device Network SDK (General) Developer Guide
ENUM_LATIN7,
ENUM_LATIN8,
ENUM_LATIN9,
ENUM_LATIN10,
ENUM_CENTRAL_EUROPEAN,
ENUM_CYRILLIC_SCRIPT,
ENUM_HEBREW_DOS862
}NET_DVR_CHARSET_ENUM
Members
ENUM_UTF8
0- UTF8
ENUM_GB2312
1- GB2312
ENUM_LATIN1
2- LATIN1(IOS-8859-1)
ENUM_LATIN2
3- LATIN2(IOS-8859-2)
ENUM_LATIN3
4- LATIN3(IOS-8859-3)
ENUM_LATIN4
5- LATIN4(IOS-8859-4)
ENUM_CYRILLIC
6- CYRILLIC(IOS-8859-5)
ENUM_ARABIC
7- ARABIC(IOS-8859-6)
ENUM_GREEK
8- GREEK(IOS-8859-7)
ENUM_HEBREW
9- HEBREW(IOS-8859-8)
ENUM_TURKISH
10- TURKISH(IOS-8859-9)
ENUM_NORDIC
11- NORDIC(IOS-8859-10)
ENUM_THAI
12- THAI(IOS-8859-11)
ENUM_LATIN7
685
Device Network SDK (General) Developer Guide
13- LATIN7(IOS-8859-13)
ENUM_LATIN8
14- LATIN8(IOS-8859-14)
ENUM_LATIN9
15- LATIN9(IOS-8859-15)
ENUM_LATIN10
16- LATIN10(IOS-8859-16)
ENUM_CENTRAL_EUROPEAN
17- CENTRAL EUROPEAN(windows-1250)
ENUM_CYRILLIC_SCRIPT
18- CYRILLIC SCRIPT(windows-1251)
ENUM_HEBREW_DOS862
19- HEBREW DOS862(dos-862)
See Also
NET_DVR_POS_FILTER_CFG
B.6 NET_SDK_CALLBACK_STATUS_NORMAL
B.7 NET_DVR_LINK_KIND
686
Device Network SDK (General) Developer Guide
B.8 NET_SDK_LOCAL_CFG_TYPE
Enumerate the local configuration types of device network SDK.
Enumeration Definition
enum{
NET_SDK_LOCAL_CFG_TYPE_TCP_PORT_BIND =0,
NET_SDK_LOCAL_CFG_TYPE_UDP_PORT_BIND =1,
NET_SDK_LOCAL_CFG_TYPE_MEM_POOL =2,
NET_SDK_LOCAL_CFG_TYPE_MODULE_RECV_TIMEOUT =3,
NET_SDK_LOCAL_CFG_TYPE_ABILITY_PARSE =4,
NET_SDK_LOCAL_CFG_TYPE_TALK_MODE =5,
NET_SDK_LOCAL_CFG_TYPE_PROTECT_KEY =6
NET_SDK_LOCAL_CFG_TYPE_CFG_VERSION =7
NET_SDK_LOCAL_CFG_TYPE_RTSP_PARAMS =8
NET_SDK_LOCAL_CFG_TYPE_SIMXML_LOGIN =9
NET_SDK_LOCAL_CFG_TYPE_CHECK_DEV =10,
NET_SDK_LOCAL_CFG_TYPE_SECURITY =11
NET_SDK_LOCAL_CFG_TYPE_EZVIZLIB_PATH =12
NET_SDK_LOCAL_CFG_TYPE_CHAR_ENCODE =13,
NET_SDK_LOCAL_CFG_TYPE_PROXYS =14
NET_DVR_LOCAL_CFG_TYPE_LOG =15,
NET_DVR_LOCAL_CFG_TYPE_STREAM_CALLBACK =16
NET_DVR_LOCAL_CFG_TYPE_GENERAL =17,
NET_DVR_LOCAL_CFG_TYPE_PTZ =18,
NET_DVR_LOCAL_CFG_MESSAGE_CALLBACK_V51 =19
NET_SDK_LOCAL_CFG_CERTIFICATION =20,
NET_SDK_LOCAL_CFG_PORT_MULTIPLEX =21,
NET_SDK_LOCAL_CFG_ASYNC =22
}NET_SDK_LOCAL_CFG_TYPE
Members
NET_SDK_LOCAL_CFG_TYPE_TCP_PORT_BIND
Local binding configuration of TCP port, see details in NET_DVR_LOCAL_TCP_PORT_BIND_CFG .
NET_SDK_LOCAL_CFG_TYPE_UDP_PORT_BIND
687
Device Network SDK (General) Developer Guide
688
Device Network SDK (General) Developer Guide
NET_DVR_LOCAL_CFG_TYPE_GENERAL
General parameters, see details in NET_DVR_LOCAL_GENERAL_CFG .
NET_DVR_LOCAL_CFG_TYPE_PTZ
PTZ interaction parameters, see details in NET_DVR_LOCAL_CFG_TYPE_PTZ .
NET_DVR_LOCAL_CFG_MESSAGE_CALLBACK_V51
Local parameters of alarm callback, see details in
NET_DVR_MESSAGE_CALLBACK_PARAM_V51 .
NET_SDK_LOCAL_CFG_CERTIFICATION
Certificate parameters, see details in NET_DVR_LOCAL_CERTIFICATION .
NET_SDK_LOCAL_CFG_PORT_MULTIPLEX
Port multiplier parameters, see details in NET_DVR_LOCAL_PORT_MULTI_CFG .
NET_SDK_LOCAL_CFG_ASYNC
Asynchronous mode parameters, see details in NET_DVR_LOCAL_ASYNC_CFG .
B.9 NET_SDK_DOWNLOAD_TYPE
Enumerate file types to be downloaded.
Enumeration Definition
typedef enum {
NET_SDK_DOWNLOAD_CERT = 0,
NET_SDK_DOWNLOAD_IPC_CFG_FILE = 1,
NET_SDK_DOWNLOAD_BASELINE_SCENE_PIC = 2,
NET_SDK_DOWNLOAD_VQD_ALARM_PIC = 3,
NET_SDK_DOWNLOAD_CONFIGURATION_FILE = 4,
NET_SDK_DOWNLOAD_SCENE_CONFIGURATION_FILE = 5,
NET_SDK_DOWNLOAD_FILE_FORM_DB = 6,
NET_SDK_DOWNLOAD_TME_FILE = 7,
NET_SDK_DOWNLOAD_VEHICLE_BLACKWHITELST_FILE = 8,
NET_SDK_DOWNLOAD_GUID_FILE = 9,
NET_SDK_DOWNLOAD_FILE_FORM_CLOUD = 10,
NET_SDK_DOWNLOAD_PICTURE = 11,
NET_SDK_DOWNLOAD_VIDEO = 12,
NET_DVR_DOWNLOAD_SCREEN_FILE = 13,
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL = 14,
NET_SDK_DOWNLOAD_THERMOMETRIC_FILE = 15,
NET_SDK_DOWNLOAD_LED_CHECK_FILE = 16,
NET_SDK_DOWNLOAD_VEHICLE_INFORMATION = 17,
NET_SDK_DOWNLOAD_CERTIFICATE_BLACK_LIST_TEMPLET = 18,
NET_SDK_DOWNLOAD_LOG_FILE = 19,
NET_SDK_DOWNLOAD_FILEVOLUME_DATA = 20,
NET_SDK_DOWNLOAD_FD_DATA = 21,
NET_SDK_DOWNLOAD_SECURITY_CFG_FILE = 22,
689
Device Network SDK (General) Developer Guide
NET_SDK_DOWNLOAD_PUBLISH_SCHEDULE = 23,
NET_SDK_DOWNLOAD_RIGHT_CONTROLLER_AUDIO = 24,
NET_SDK_DOWNLOAD_MODBUS_CFG_FILE = 25,
NET_SDK_DOWNLOAD_RS485_PROTOCOL_DLL_FILE = 26,
NET_SDK_DOWNLOAD_CLUSTER_MAINTENANCE_LOG = 27,
NET_SDK_DOWNLOAD_SQL_ARCHIVE_FILE = 28,
NET_SDK_DOWNLOAD_SUBWIND_STREAM = 29,
NET_SDK_DOWNLOAD_DEVTYPE_CALIBFILE = 30,
NET_SDK_DOWNLOAD_HD_CAMERA_CORRECT_TABLE = 31,
NET_SDK_DOWNLOAD_CLIENT_CALIBFILE = 32,
NET_SDK_DOWNLOAD_FOUE_CAMERAS_PICTURES = 33,
NET_SDK_DOWNLOAD_DOOR_CONTENT = 34,
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL_THUMBNAIL = 35,
NET_SDK_DOWNLOAD_PUBLISH_PROGRAM_THUMBNAIL = 36,
NET_SDK_DOWNLOAD_PUBLISH_TEMPLATE_THUMBNAIL = 37,
NET_SDK_DOWNLOAD_DARK_FIGHTER_X_CORRECT_TABLE_MAIN = 38,
NET_SDK_DOWNLOAD_DARK_FIGHTER_X_CORRECT_TABLE_BACKUP = 39,
NET_SDK_DOWNLOAD_OFFLINE_CAPTURE_INFO_TEMPLATE = 40,
NET_SDK_DOWNLOAD_CAPTURE_DATA = 41
} NET_SDK_DOWNLOAD_TYPE;
Members
NET_SDK_DOWNLOAD_CERT
Certificate.
NET_SDK_DOWNLOAD_IPC_CFG_FILE
Network camera configuration file.
NET_SDK_DOWNLOAD_BASELINE_SCENE_PIC
Base scene picture.
NET_SDK_DOWNLOAD_VQD_ALARM_PIC
VQD (video quality diagnosis) alarm picture.
NET_SDK_DOWNLOAD_CONFIGURATION_FILE
Configuration file.
NET_SDK_DOWNLOAD_SCENE_CONFIGURATION_FILE
Scene configuration file.
NET_SDK_DOWNLOAD_FILE_FORM_DB
File in the image and video library.
NET_SDK_DOWNLOAD_TME_FILE
Entrance and exit management file.
NET_SDK_DOWNLOAD_VEHICLE_BLACKWHITELST_FILE
Blacklist and whitelist configuration file.
NET_SDK_DOWNLOAD_GUID_FILE
690
Device Network SDK (General) Developer Guide
GUID file.
NET_SDK_DOWNLOAD_FILE_FORM_CLOUD
Picture in the cloud storage.
NET_SDK_DOWNLOAD_PICTURE
Picture.
NET_SDK_DOWNLOAD_VIDEO
Video.
NET_DVR_DOWNLOAD_SCREEN_FILE
Screen server file.
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL
Local material file of information release.
NET_SDK_DOWNLOAD_THERMOMETRIC_FILE
Thermometry calibration file.
NET_SDK_DOWNLOAD_LED_CHECK_FILE
LED correction file.
NET_SDK_DOWNLOAD_VEHICLE_INFORMATION
Vehicle information to be exported.
NET_SDK_DOWNLOAD_CERTIFICATE_BLACK_LIST_TEMPLET
ID card blacklist template.
NET_SDK_DOWNLOAD_LOG_FILE
Log to be exported.
NET_SDK_DOWNLOAD_FILEVOLUME_DATA
File volume data file, currently it is only supported by CVR (central video recorder) devices.
NET_SDK_DOWNLOAD_FD_DATA
Data in a specific face picture library to be exported.
NET_SDK_DOWNLOAD_SECURITY_CFG_FILE
Configuration file to be securely exported.
NET_SDK_DOWNLOAD_PUBLISH_SCHEDULE
Schedule to be exported.
NET_SDK_DOWNLOAD_RIGHT_CONTROLLER_AUDIO
Audio file of the main controller.
NET_SDK_DOWNLOAD_MODBUS_CFG_FILE
Configuration file of Modbus protocol.
NET_SDK_DOWNLOAD_RS485_PROTOCOL_DLL_FILE
691
Device Network SDK (General) Developer Guide
B.10 NET_SDK_UPLOAD_TYPE
692
Device Network SDK (General) Developer Guide
693
Device Network SDK (General) Developer Guide
694
Device Network SDK (General) Developer Guide
B.11 PRIDATA_RENDER
695
Device Network SDK (General) Developer Guide
B.12 STREAM_TYPE_E
B.13 TEM_FLAG
696
Device Network SDK (General) Developer Guide
B.14 VCA_PLATE_COLOR
Enumerate the license plate colors.
Enumeration Definition
enum{
VCA_BLUE_PLATE =0,
VCA_YELLOW_PLATE =1,
VCA_WHITE_PLATE =2,
VCA_BLACK_PLATE =3,
VCA_GREEN_PLATE =4,
VCA_BKAIR_PLATE =5,
VCA_RED_PLATE,
VCA_ORANGE_PLATE,
VCA_OTHER =0xff
}VCA_PLATE_COLOR
Member
VCA_BLUE_PLATE
Blue
VCA_YELLOW_PLATE
Yellow
VCA_WHITE_PLATE
White
VCA_BLACK_PLATE
Black
VCA_GREEN_PLATE
Green
VCA_BKAIR_PLATE
Black (for special use)
VCA_RED_PLATE
Red
VCA_ORANGE_PLATE
Orange
VCA_OTHER
Other
697
Device Network SDK (General) Developer Guide
MAJOR_ALARM
Table C-1 Minor Types of Alarm Log
Log Minor Type Value Description
MINOR_ALARM_IN 0x1 Alarm Input
MINOR_ALARM_OUT 0x2 Alarm output
MINOR_MOTDET_START 0x3 Motion detection alarm started
MINOR_MOTDET_STOP 0x4 Motion detection alarm ended
MINOR_HIDE_ALARM_START 0x5 Tampering alarm started
MINOR_HIDE_ALARM_STOP 0x6 Tampering alarm ended
MINOR_VCA_ALARM_START 0x7 VCA alarm started
MINOR_VCA_ALARM_STOP 0x8 VCA alarm ended
MINOR_ITS_ALARM_START 0x09 Traffic event alarm started
MINOR_ITS_ALARM_STOP 0x0a Traffic event alarm ended
MINOR_NETALARM_START 0x0b Network alarm started
MINOR_NETALARM_STOP 0x0c Network alarm ended
MINOR_NETALARM_RESUME 0x0d Network alarm recovery
MINOR_WIRELESS_ALARM_START 0x0e Wireless alarm started
MINOR_WIRELESS_ALARM_STOP 0x0f Wireless alarm ended
MINOR_PIR_ALARM_START 0x10 Human induction alarm started
MINOR_PIR_ALARM_STOP 0x11 Human induction alarm ended
MINOR_CALLHELP_ALARM_START 0x12 Emergency alarm started
MINOR_CALLHELP_ALARM_STOP 0x13 Emergency alarm ended
MINOR_DETECTFACE_ALARM_START 0x16 Face detection alarm started
MINOR_DETECTFACE_ALARM_STOP 0x17 Face detection alarm ended
698
Device Network SDK (General) Developer Guide
699
Device Network SDK (General) Developer Guide
700
Device Network SDK (General) Developer Guide
701
Device Network SDK (General) Developer Guide
702
Device Network SDK (General) Developer Guide
703
Device Network SDK (General) Developer Guide
MAJOR_EXCEPTION
Table C-2 Minor Types of Exception Log
Log Minor Type Value Description
MINOR_RAID_ERROR 0x20 RAID exception
MINOR_VI_LOST 0x21 Video loss
MINOR_ILLEGAL_ACCESS 0x22 Illegal login
MINOR_HD_FULL 0x23 HDD full
MINOR_HD_ERROR 0x24 HDD error
MINOR_DCD_LOST 0x25 MODEM offline (reserved)
MINOR_IP_CONFLICT 0x26 IP address conflicted
MINOR_NET_BROKEN 0x27 Network disconnected
MINOR_REC_ERROR 0x28 Recording error
MINOR_IPC_NO_LINK 0x29 IPC connection exception
MINOR_VI_EXCEPTION 0x2a Video input exception (only for analog
channel)
MINOR_IPC_IP_CONFLICT 0x2b IP address conflicted of IPC
MINOR_SENCE_EXCEPTION 0x2c Sence exception
MINOR_PIC_REC_ERROR 0x2d Capture error. Failed to get pictures.
MINOR_VI_MISMATCH 0x2e Video format mismatches
704
Device Network SDK (General) Developer Guide
705
Device Network SDK (General) Developer Guide
706
Device Network SDK (General) Developer Guide
707
Device Network SDK (General) Developer Guide
MAJOR_OPERATION
Table C-3 Minor Types of Operation Log
Log Minor Type Value Description
MINOR_START_DVR 0x41 Power on
MINOR_STOP_DVR 0x42 Shutdown
MINOR_STOP_ABNORMAL 0x43 Abnormal shutdown
MINOR_REBOOT_DVR 0x44 Reboot device (local)
MINOR_LOCAL_LOGIN 0x50 Logged in (local)
MINOR_LOCAL_LOGOUT 0x51 Logged out (Local)
MINOR_LOCAL_CFG_PARM 0x52 Local configuration
MINOR_LOCAL_PLAYBYFILE 0x53 Playback or download by file (local)
MINOR_LOCAL_PLAYBYTIME 0x54 Playback or download by time (local)
MINOR_LOCAL_START_REC 0x55 Start recording (local)
MINOR_LOCAL_STOP_REC 0x56 Stop recording (local)
MINOR_LOCAL_PTZCTRL 0x57 PTZ control (local)
MINOR_LOCAL_PREVIEW 0x58 Live view (local,reserved)
MINOR_LOCAL_MODIFY_TIME 0x59 Edit time (local,reserved)
MINOR_LOCAL_UPGRADE 0x5a Local upgrade
MINOR_LOCAL_RECFILE_OUTPUT 0x5b Backup video files (local)
MINOR_LOCAL_FORMAT_HDD 0x5c Initialize HDD (local)
MINOR_LOCAL_CFGFILE_OUTPUT 0x5d Export local configuration files
MINOR_LOCAL_CFGFILE_INPUT 0x5e Import local configuration files
MINOR_LOCAL_COPYFILE 0x5f Backup files (local)
708
Device Network SDK (General) Developer Guide
709
Device Network SDK (General) Developer Guide
710
Device Network SDK (General) Developer Guide
711
Device Network SDK (General) Developer Guide
712
Device Network SDK (General) Developer Guide
713
Device Network SDK (General) Developer Guide
714
Device Network SDK (General) Developer Guide
715
Device Network SDK (General) Developer Guide
716
Device Network SDK (General) Developer Guide
717
Device Network SDK (General) Developer Guide
718
Device Network SDK (General) Developer Guide
719
Device Network SDK (General) Developer Guide
720
Device Network SDK (General) Developer Guide
721
Device Network SDK (General) Developer Guide
722
Device Network SDK (General) Developer Guide
723
Device Network SDK (General) Developer Guide
724
Device Network SDK (General) Developer Guide
MAJOR_INFORMATION
Table C-4 Minor Types of Additional Information Log
Log Minor Type Value Description
MINOR_HDD_INFO 0xa1 HDD Information
MINOR_SMART_INFO 0xa2 S.M.A.R.T Information
MINOR_REC_START 0xa3 Start recording
725
Device Network SDK (General) Developer Guide
726
Device Network SDK (General) Developer Guide
727
Device Network SDK (General) Developer Guide
728
Device Network SDK (General) Developer Guide
MAJOR_EVENT
Table C-5 Minor Types of Event Log
Log Minor Type Value Description
MINOR_LEGAL_CARD_PASS 0x01 Legal Card Authenticated
MINOR_CARD_AND_PSW_PASS 0x02 Card and Password Authenticated
MINOR_CARD_AND_PSW_FAIL 0x03 Card and password authentication
failed.
MINOR_CARD_AND_PSW_TIMEOUT 0x04 Card and password authentication
timed out.
729
Device Network SDK (General) Developer Guide
730
Device Network SDK (General) Developer Guide
731
Device Network SDK (General) Developer Guide
General Errors
732
Device Network SDK (General) Developer Guide
733
Device Network SDK (General) Developer Guide
734
Device Network SDK (General) Developer Guide
735
Device Network SDK (General) Developer Guide
736
Device Network SDK (General) Developer Guide
737
Device Network SDK (General) Developer Guide
738
Device Network SDK (General) Developer Guide
739
Device Network SDK (General) Developer Guide
740
Device Network SDK (General) Developer Guide
741
Device Network SDK (General) Developer Guide
742
Device Network SDK (General) Developer Guide
743
Device Network SDK (General) Developer Guide
744
Device Network SDK (General) Developer Guide
745
Device Network SDK (General) Developer Guide
746
Device Network SDK (General) Developer Guide
747
Device Network SDK (General) Developer Guide
748
Device Network SDK (General) Developer Guide
749
Device Network SDK (General) Developer Guide
750
Device Network SDK (General) Developer Guide
751
Device Network SDK (General) Developer Guide
752
Device Network SDK (General) Developer Guide
753
Device Network SDK (General) Developer Guide
754
Device Network SDK (General) Developer Guide
755
Device Network SDK (General) Developer Guide
756
Device Network SDK (General) Developer Guide
757
Device Network SDK (General) Developer Guide
758
Device Network SDK (General) Developer Guide
759
Device Network SDK (General) Developer Guide
760
Device Network SDK (General) Developer Guide
761
Device Network SDK (General) Developer Guide
762
Device Network SDK (General) Developer Guide
763
Device Network SDK (General) Developer Guide
764
Device Network SDK (General) Developer Guide
765
Device Network SDK (General) Developer Guide
766
Device Network SDK (General) Developer Guide
767
Device Network SDK (General) Developer Guide
768
Device Network SDK (General) Developer Guide
769
Device Network SDK (General) Developer Guide
770
Device Network SDK (General) Developer Guide
771
Device Network SDK (General) Developer Guide
772
Device Network SDK (General) Developer Guide
773
Device Network SDK (General) Developer Guide
774
Device Network SDK (General) Developer Guide
E.1 /ISAPI/AUXInfo/attributes/Channels
Get the attributes of channels.
E.2 /ISAPI/AUXInfo/attributes/Channels/<ID>
Get the attributes of a specific channel according to channel ID.
Remarks
The <ID> in the request URI is the channel ID.
E.3 /ISAPI/ContentMgmt/capabilities
Get storage capability.
775
Device Network SDK (General) Developer Guide
E.4 /ISAPI/ContentMgmt/download
Download the file via plug-in.
E.5 /ISAPI/ContentMgmt/download/capabilities
Get the downloading capability sets.
776
Device Network SDK (General) Developer Guide
Failed: XML_ResponseStatus
E.6 /ISAPI/ContentMgmt/InputProxy/channels/<ID>
Operations about management of a specific digital channel.
Remarks
The <ID> in the request URI refers to the digital channel ID.
E.7 /ISAPI/ContentMgmt/logSearch?format=json
Search log information.
777
Device Network SDK (General) Developer Guide
E.8 /ISAPI/ContentMgmt/record/control/locks/capabilities
Get video locking or unlocking capability.
E.9 /ISAPI/ContentMgmt/record/control/locks/name
Lock or unlock videos by file name.
778
Device Network SDK (General) Developer Guide
E.10 /ISAPI/ContentMgmt/record/control/remark/capabilities?
format=json
Get capability of adding remarks for videos by video ID.
E.11 /ISAPI/ContentMgmt/record/control/remark?format=json
Add remarks for videos by video ID.
779
Device Network SDK (General) Developer Guide
E.12 /ISAPI/ContentMgmt/record/tracks
Operations about recording schedule configuration.
780
Device Network SDK (General) Developer Guide
Request XML_Track
Response XML_ResponseStatus
E.13 /ISAPI/ContentMgmt/record/tracks/<ID>
Operations about a recording schedule.
Remarks
The <ID> in the request URI refers to the recording schedule ID.
781
Device Network SDK (General) Developer Guide
E.14 /ISAPI/ContentMgmt/record/tracks/<ID>/capabilities
Get the configuration capability of the recording schedule.
Remarks
The <ID> in the request URI refers to the recording schedule ID.
E.15 /ISAPI/ContentMgmt/search
Search for specified resources.
Example
Sample Code for Searching Video Files Stored in Device
POST /ISAPI/ContentMgmt/search HTTP/1.1
Host: [Link]
Content-Length: 493
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
782
Device Network SDK (General) Developer Guide
nonce="4e7a46474e305a454d5445365a4445314e6a51345a54413d",
uri="/ISAPI/ContentMgmt/search",
cnonce="ce22590094d2f2bb352fc3c4cd2a1ca3",
nc=00000019,
response="ad6f2c23636f25c6db5911a113375ea9",
qop="auth"
HTTP/1.1 200 OK
Date: Wed, 15 Mar 2017 09:40:02 GMT
Connection: close
Content-Length: 1649
Content-Type: application/xml
783
Device Network SDK (General) Developer Guide
</mediaSegmentDescriptor>
<metadataMatches>
<metadataDescriptor>[Link]/timing</metadataDescriptor>
</metadataMatches>
</searchMatchItem>
<searchMatchItem>
<sourceID>{0000000000-0000-0000-0000-000000000000}</sourceID>
<trackID>101</trackID>
<timeSpan>
<startTime>2017-03-14T10:40:42Z</startTime>
<endTime>2017-03-14T10:53:14Z</endTime>
</timeSpan>
<mediaSegmentDescriptor>
<contentType>video</contentType>
<codecType>H.264-BP</codecType>
<playbackURI>rtsp://[Link]/Streaming/tracks/101/?
starttime=20170314T104042Z&endtime=20170314T105314Z&name=ch01_08000000017000000&size
=260603904</playbackURI>
</mediaSegmentDescriptor>
<metadataMatches>
<metadataDescriptor>[Link]/timing</metadataDescriptor>
</metadataMatches>
</searchMatchItem>
</matchList>
</CMSearchResult>
E.16 /ISAPI/ContentMgmt/search/profile
Get video search conditions.
E.17 /ISAPI/ContentMgmt/storage
Get or set the current working mode of storage.
784
Device Network SDK (General) Developer Guide
E.18 /ISAPI/ContentMgmt/Storage/capabilities
Get the configuration capability of current storage working mode.
E.19 /ISAPI/ContentMgmt/Storage/dataReconstruction/progress?
format=json
Get the disk data reconstruction progress.
785
Device Network SDK (General) Developer Guide
E.20 /ISAPI/ContentMgmt/Storage/dataReconstruction?format=json
Start disk data reconstruction.
E.21 /ISAPI/ContentMgmt/Storage/extension
Get or set parameters of storage strategy.
786
Device Network SDK (General) Developer Guide
Failed: XML_ResponseStatus
Table C-29 PUT /ISAPI/ContentMgmt/Storage/extension
Method PUT
Description Set parameters of storage strategy.
Query None.
Request XML_storageExtension
Response XML_ResponseStatus
E.22 /ISAPI/ContentMgmt/Storage/extension/capabilities
Get configuration capability of log storage.
E.23 /ISAPI/ContentMgmt/Storage/hdd
Get configuration parameters of all HDDs.
787
Device Network SDK (General) Developer Guide
Failed: XML_ResponseStatus
E.24 /ISAPI/ContentMgmt/Storage/hdd/<ID>
Get and set parameters for a specific HDD.
Remarks
The <ID> in the request URI refers to the HDD ID.
E.25 /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptFormat?
format=json
Format an encrypted HDD.
788
Device Network SDK (General) Developer Guide
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
format: determine the format of request or response message.
Request JSON_EncryptFormat
Response JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the HDD ID.
E.26 /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptVerfy?format=json
Verify the HDD encryption password.
Remarks
The <ID> in the request URI refers to the HDD ID.
789
Device Network SDK (General) Developer Guide
E.27 /ISAPI/ContentMgmt/Storage/hdd/<ID>/logProTest?format=json
Configure preverification for log HDDs.
Remarks
The <ID> in the request URI refers to the HDD No.
E.28 /ISAPI/ContentMgmt/Storage/hdd/<ID>/syncStatus?format=json
Get the HDD data sync status. Now only supports data sync from HDD to SSD.
Remarks
• The <ID> in the request URI refers to the HDD ID.
• You can call this URI only when the value of sub node status (hddList> hdd>status) in
XML_storage is "synching" (related URI: /ISAPI/ContentMgmt/Storage).
790
Device Network SDK (General) Developer Guide
E.29 /ISAPI/ContentMgmt/Storage/hdd/capabilities
Get HDD management capability.
E.30 /ISAPI/ContentMgmt/storage/hdd/clearingSpace/capabilities?
format=json
Get configuration capability of clearing HDD.
E.31 /ISAPI/ContentMgmt/storage/hdd/clearingSpace?format=json
Get or set parameters of clearing HDD.
791
Device Network SDK (General) Developer Guide
E.32 /ISAPI/ContentMgmt/Storage/hdd/specifyHddFormat?format=json
Specify multiple HDDs to be formatted.
E.33 /ISAPI/ContentMgmt/Storage/ssd
Get the information of all SSDs.
792
Device Network SDK (General) Developer Guide
E.34 /ISAPI/ContentMgmt/Storage/ssd/<ID>
Get the specified SSD information.
Remarks
The <ID> in the request URI refers to the SSD ID.
E.35 /ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?format=json
Get the SSD management capability.
793
Device Network SDK (General) Developer Guide
Remarks
• The <ID> in the request URI refers to the SSD ID.
• If the node isSupportSSDManagement is returned in the message XML_Cap_storage (related
URI: /ISAPI/ContentMgmt/Storage/capabilities ) and its value is true, it indicates that the
device supports this function.
E.36 /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/start
Run SSD S.M.A.R.T (self-monitoring, analysis, and reporting technology) detection.
Remarks
• The <ID> in the request URI refers to the SSD ID.
• If the node isSupportSSDSMARTTest is returned in the message XML_RacmCap (related URI: /
ISAPI/ContentMgmt/capabilities ) and its value is true, it indicates that the device supports this
function.
E.37 /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/status
Get the SSD S.M.A.R.T (self-monitoring, analysis, and reporting technology) detection status.
794
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the SSD ID.
E.38 /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade/status?
format=json
Get the SSD firmware upgrade progress.
Remarks
The <ID> in the request URI refers to the SSD ID.
E.39 /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade?format=json
Upgrade the SSD firmware.
795
Device Network SDK (General) Developer Guide
Remarks
• The <ID> in the request URI refers to the SSD ID.
• If the node isSupportSSDUpgrade is returned in the message JSON_Cap_SSD (related URI: /
ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?format=json ) and its value is true, it
indicates that the device supports this function.
E.40 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities
Get the capability of digital video channel proxy.
Remarks
The <ID> in the request URI refers to streaming channel ID, which is equal to (channel No. × 100 +
stream type), the stream type can be: 1 (main stream), 2 (sub-stream), and so on. For example,
when ID is 101, it indicates the main stream of channel 1, when ID is 302, it indicates the sub-
stream of channel 3.
796
Device Network SDK (General) Developer Guide
E.41 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/
PictureByUrl/capabilities?format=json
Get the capability of capturing picture in URL format
Remarks
The <ID> in the request URI refers to streaming channel ID, which is equal to (channel No. × 100 +
stream type), the stream type can be: 1 (main stream), 2 (sub-stream), and so on. For example,
when ID is 101, it indicates the main stream of channel 1, when ID is 302, it indicates the sub-
stream of channel 3.
E.42 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/
PictureByUrl?format=json
Capture the picture in URL format.
797
Device Network SDK (General) Developer Guide
Remarks
• The <ID> in the request URI refers to streaming channel ID, which is equal to (channel No. × 100
+ stream type), the stream type can be: 1 (main stream), 2 (sub-stream), and so on. For example,
when ID is 101, it indicates the main stream of channel 1, when ID is 302, it indicates the sub-
stream of channel 3.
• If the node isSupportPictureByUrl is returned in the message XML_Cap_StreamingChannel
(related URI: /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities ) and its value
is true, it indicates that the device supports this function.
E.43 /ISAPI/ContentMgmt/time/search/capabilities?format=json
Get the capability of searching for recording start and end time.
E.44 /ISAPI/ContentMgmt/time/search?format=json
Search for the recording start and end time.
798
Device Network SDK (General) Developer Guide
E.45 /ISAPI/Event/capabilities
Get the device event capability.
E.46 /ISAPI/Event/channels/<ID>/capabilities
Get event capabilities supported by the channel.
Remarks
The <ID> in the URI refers to the channel ID.
E.47 /ISAPI/Event/channels/capabilities
Get the event capability of all channels.
799
Device Network SDK (General) Developer Guide
E.48 /ISAPI/Event/IOT/channels/<ID>/capabilities?format=json
Get the event capabilities supported by IoT device channel.
E.49 /ISAPI/Event/notification/subscribeEventCap
Get event/alarm subscription capability.
800
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: XML_SubscribeEventCap
Failed: XML_ResponseStatus
E.50 /ISAPI/Event/schedules/vibrationDetection/<ID>
Get or set arming schedule of vibration detection by channel.
Remarks
The <ID> in the request URI should be set in the format of "vibrationDetection-<channelID>",
e.g., /ISAPI/Event/schedules/vibrationDetection/vibrationDetection-101.
E.51 /ISAPI/Event/schedules/<EventType>/<ID>
Operations about arming schedule of specified event type.
801
Device Network SDK (General) Developer Guide
Remarks
The <EventType> in the URI refers to the specified event type.
The <ID> in the URI refers to the ID of channel, which is triggered by alarm.
E.52 /ISAPI/Event/triggers/hdBadBlock
Operations about the linkage configuration of the HDD bad sector detection.
802
Device Network SDK (General) Developer Guide
E.53 /ISAPI/Event/triggers/hdImpact
Operations about the linkage configuration of the HDD impact detection.
E.54 /ISAPI/Event/triggers/highHDTemperature
Operations about the linkage configuration of the HDD high temperature detection.
803
Device Network SDK (General) Developer Guide
E.55 /ISAPI/Event/triggers/lowHDTemperature
Operations about the linkage configuration of the HDD low temperature detection.
804
Device Network SDK (General) Developer Guide
Request XML_EventTrigger
Response XML_ResponseStatus
E.56 /ISAPI/Event/triggers/severeHDFailure
Operations about the linkage configuration of the HDD severe fault detection.
E.57 /ISAPI/Event/triggers/<eventType>-<ID>
Get, set, or delete the alarm linkage action by channel.
805
Device Network SDK (General) Developer Guide
Request None
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table C-75 PUT /ISAPI/Event/triggers/<eventType>-<ID>
Method PUT
Description Set the alarm linkage action by channel.
Query None
Request XML_EventTrigger
Response XML_ResponseStatus
Table C-76 DELETE /ISAPI/Event/triggers/<eventType>-<ID>
Method DELETE
Description Delete the alarm linkage action by channel.
Query None
Request None
Response XML_ResponseStatus
Remarks
The <eventType> in the request URI refers to the predefined event or alarm type name, and the
<ID> is the No. of the event detection channel. For example, if the No. of the face capture channel
is 101, the "<eventType>-<ID>" is "faceSnap-101".
E.58 /ISAPI/Event/triggers/<ID>/notifications
Operations about configurations of alarm/event linkage actions.
806
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to No. of alarm triggered channel.
E.59 /ISAPI/Event/triggers/<ID>/zone/<ID>
Operations about linkage configurations of an alarm in a specified zone.
807
Device Network SDK (General) Developer Guide
Request XML_EventTrigger
Response JSON_ResponseStatus
Table C-82 DELETE /ISAPI/Event/triggers/<ID>/zone/<ID>
Method DELETE
Description Delete the linkage configurations of an alarm in specified zone.
Query None.
Request XML_EventTrigger
Response JSON_ResponseStatus
Remarks
The first <ID> in the URL is defined as the No. of alarm triggered video input channel. For example,
if the video input channel No. with alarm type emergencyCallhelp triggered is 1, the first <ID> is
"emergencyCallhelp-1". The second <ID> in the URL is defined as the zone No.
E.60 /ISAPI/Event/triggers/notifications/AudioAlarm/capabilities?
format=json
Get audible warning configuration capability.
E.61 /ISAPI/Event/triggers/notifications/AudioAlarm?format=json
Get or set audible warning parameters.
808
Device Network SDK (General) Developer Guide
Note
For example, if you want to get the audible warning parameters of thermometry, the request URI
is: GET /ISAPI/Event/triggers/notifications/AudioAlarm?format=json&alarmType=thermometry
E.62 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio?
format=json
Import custom alarm audio file.
809
Device Network SDK (General) Developer Guide
E.63 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo?
format=json
Get the custom alarm audio file.
E.64 /ISAPI/Event/triggers/notifications/AudioAlarm/
customAudioTypeInfo/channels?format=json
Get encoding format information of custom audio file in a batch.
810
Device Network SDK (General) Developer Guide
E.65 /ISAPI/Event/triggers/notifications/whiteLightAlarm/capabilities?
format=json
Get the configuration capability of supplement light alarm linkage.
E.66 /ISAPI/Event/triggers/notifications/whiteLightAlarm?format=json
Operations about configuration of supplement light alarm linkage.
811
Device Network SDK (General) Developer Guide
E.67 /ISAPI/Event/triggersCap
Get alarm linkage capability.
E.68 /ISAPI/Event/triggersCap/IOT
Get the alarm linkage configuration capability of IoT device.
E.69 /ISAPI/Image/channels/<ID>
Operations about image configuration of a specific channel.
812
Device Network SDK (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_ImageChannel
Failed: XML_ResponseStatus
Table C-95 PUT /ISAPI/Image/channels/<ID>
Method PUT
Description Set image parameters of a specific channel.
Query None.
Request XML_ImageChannel
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel ID.
E.70 /ISAPI/Image/channels/<ID>/capabilities
Get image configuration capability of a specific channel.
Remarks
The <ID> in the request URI refers to the channel No.
E.71 /ISAPI/Image/channels/<ID>/color
Operations about the image adjustment parameters of a specific channel.
813
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
E.72 /ISAPI/Image/channels/<ID>/color/capabilities
Get the image adjustment capability of a specified channel.
Remarks
The <ID> in the request URI refers to the channel No.
814
Device Network SDK (General) Developer Guide
E.73 /ISAPI/Image/channels/<ID>/EPTZ
Get or set the e-PTZ configuration.
Remarks
The <ID> in the request URI refers to the channel No.
E.74 /ISAPI/Image/channels/<ID>/EPTZ/mode/capabilities?format=json
Get the capability of switching e-PTZ mode.
815
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
E.75 /ISAPI/Image/channels/<ID>/EPTZ/mode?format=json
Get or set the configuration for switching e-PTZ mode.
Remarks
The <ID> in the request URI refers to the channel No.
E.76 /ISAPI/Image/channels/<ID>/focusConfiguration
Get or set the focus parameters of a specified channel.
816
Device Network SDK (General) Developer Guide
E.77 /ISAPI/Image/channels/<ID>/focusConfiguration/capabilities
Get the focus configuration capability.
Remarks
The <ID> in the request URI refers to the channel No.
817
Device Network SDK (General) Developer Guide
E.78 /ISAPI/Image/channels/<ID>/focusConfiguration/status?
format=json
Get the focus status.
E.79 /ISAPI/Image/channels/<ID>/lensDistortionCorrection
Get or set parameters of image distortion correction.
818
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the video input channel ID.
E.80 /ISAPI/Image/channels/<ID>/lensDistortionCorrection/capabilities
Get capability of image distortion correction.
Remarks
The <ID> in the request URI refers to the video input channel ID.
E.81 /ISAPI/Image/channels/<ID>/mountingScenario
Operations about the mounting scenario mode of a camera.
819
Device Network SDK (General) Developer Guide
Query None.
Request XML_MountingScenario
Response XML_ResponseStatus
Remarks
• The <ID> in the request URI refers to channel ID.
• The image parameters should be obtained again when mounting scenario mode changes.
E.82 /ISAPI/Image/channels/<ID>/mountingScenario/capabilities
Get the capability of configurations of mounting scenario mode.
Remarks
The <ID> in the request URI refers to channel ID.
E.83 /ISAPI/Image/channels/<ID>/supplementLight
Get or set supplement light parameters by channel.
820
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
E.84 /ISAPI/Image/channels/<ID>/supplementLight/capabilities
Get supplement light configuration capability by channel.
Remarks
The <ID> in the request URI refers to the channel ID.
E.85 /ISAPI/Image/channels/<ID>/targetEnhancement
Get or set the target enhancement parameters.
821
Device Network SDK (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_TargetEnhancement
Failed: XML_ResponseStatus
Table C-119 PUT /ISAPI/Image/channels/<ID>/targetEnhancement
Method PUT
Description Set the target enhancement parameters.
Query None.
Request XML_TargetEnhancement
Response XML_ResponseStatus
Remarks
• This URI is used in combination with URI /ISAPI/Image/channels/<ID> .
• The <ID> in the request URI refers to the channel No.
E.86 /ISAPI/Image/channels/<ID>/targetEnhancement/capabilities
Get the target enhancement capability.
Remarks
The <ID> in the request URI refers to the channel No.
E.87 /ISAPI/Image/channels/<ID>/tempRange
Operation about temperature range parameters of the specified channel.
822
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
E.88 /ISAPI/Image/channels/<ID>/tempRange/capabilities
Get the temperature range configuration capability of a specified channel.
823
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
E.89 /ISAPI/Intelligent/channels/<ID>/Shield/EventType
Get and set the shielded area of a specified channel according to event type.
Remarks
The <ID> in the URI indicates the channel ID.
The EventType in the URI indicates the event type, e.g., behavior, faceSnap, humanRecognition,
etc. The supported event types of this function refer to node <shieldEventType> in
XML_ChannelEventCap .
E.90 /ISAPI/MasterSlaveTracking/capabilities
Get the master-slave tracking capability.
824
Device Network SDK (General) Developer Guide
E.91 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>
Operations about the basic configuration of the PTZ camera.
Remarks
The first <ID> in the request URI refers to the channel No. The second <ID> in the request URI
refers to the PTZ camera ID which ranges from 1 to 4.
825
Device Network SDK (General) Developer Guide
E.92 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/
tracking
Operations about the tracking configuration of the PTZ camera.
Remarks
The first <ID> in the request URI refers to the channel No. The second <ID> in the request URI
refers to the PTZ camera ID.
E.93 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/
trackingRatio
Set the tracking zoom ratio for the PTZ camera.
826
Device Network SDK (General) Developer Guide
Request None.
Response XML_ResponseStatus
E.94 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/
capabilities
Get the configuration capability of basic parameters for the PTZ camera.
Remarks
The <ID> in the request URI refers to the channel No.
E.95 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCameraStatus
Get the connection status of the PTZ camera.
Remarks
The <ID> in the request URI refers to the PTZ camera ID.
827
Device Network SDK (General) Developer Guide
E.96 /ISAPI/MasterSlaveTracking/channels/<ID>/tracking/capabilities
Get the tracking configuration capability of the PTZ camera.
E.97 /ISAPI/MasterSlaveTracking/linkedTracking/capabilities?
format=json
Get capability of configuring advanced parameters of linked tracking capture.
E.98 /ISAPI/MasterSlaveTracking/linkedTracking?format=json
Get or set the advanced parameters of linked tracking capture.
828
Device Network SDK (General) Developer Guide
E.99 /ISAPI/PTZCtrl/channels/<ID>
Get or set the single PTZ control parameters.
829
Device Network SDK (General) Developer Guide
Request XML_PTZChannel
Response XML_ResponseStatus
Remarks
The <ID> in the URI refers to the channel No.
E.100 /ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID>
Get or set the specified PTZ auxiliary status.
Remarks
• The first <ID> in the URI refers to the channel number.
• The second <ID> in refers to the auxiliary number, e.g., when there is only one wiper, the second
<ID> is "1", when there are multiple wipers, the second <ID> varies according to the
requirement.
E.101 /ISAPI/PTZCtrl/channels/<ID>/capabilities
Get the PTZ control capabilities.
830
Device Network SDK (General) Developer Guide
E.102 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto/capabilities?
format=json
Get the capability of rapid focus automatic calibration.
Remarks
The <ID> in the URI refers to the channel ID.
E.103 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto?format=json
Automatically calibrate for rapid focus.
831
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI refers to the channel ID.
E.104 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities
Get the rapid focus capability.
Remarks
The <ID> in the URI refers to the channel ID.
E.105 /ISAPI/PTZCtrl/channels/<ID>/GPS?format=json
Control the device turn to corresponding place according to applied GPS information.
832
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
E.106 /ISAPI/PTZCtrl/channels/<ID>/gyroVerify/capabilities?
format=json
Get the gyroscope calibration capability.
Remarks
The <ID> in the URI refers to channel No.
E.107 /ISAPI/PTZCtrl/channels/<ID>/gyroVerify?format=json
Set the gyroscope calibration parameters.
833
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
E.108 /ISAPI/PTZCtrl/channels/<ID>/maxelevation
Get or set the max. tilt-angle parameters.
Remarks
The <ID> in the URI indicates the channel ID.
834
Device Network SDK (General) Developer Guide
E.109 /ISAPI/PTZCtrl/channels/<ID>/maxelevation/capabilities
Get the max. tilt-angle capability.
Remarks
The <ID> in the URI indicates the channel ID.
E.110 /ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json
Get or set moving object tracking status.
835
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the PTZ channel ID.
E.111 /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay
Get or set the on-screen display parameters of the PTZ status.
Remarks
The <ID> in the request URI refers to the PTZ channel No.
E.112 /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
Operations about zoom and focus coordinates configuration for zoom camera module.
836
Device Network SDK (General) Developer Guide
Query None.
Request None.
Response XML_ZoomFocus
Table C-157 PUT /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
Method PUT
Description Set parameters of zoom and focus coordinates of zoom camera
module.
Query None.
Request XML_ZoomFocus
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel ID.
E.113 /ISAPI/SDT/Management/capabilities?format=json
Get the intelligent management capability of the device.
E.114 /ISAPI/SDT/Management/EventSearch?format=json
Search for event.
837
Device Network SDK (General) Developer Guide
E.115 /ISAPI/SDT/Management/EventSearch/capabilities?format=json
Get the event search capability.
E.116 /ISAPI/SDT/Management/IntelligentSearch/capabilities?
format=json
Get intelligent search capability.
838
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
E.117 /ISAPI/SDT/Management/IntelligentSearch?format=json
Start intelligent search.
E.118 /ISAPI/Security/adminAccesses
Get or set parameters of all protocols supported by device.
839
Device Network SDK (General) Developer Guide
Request XML_AdminAccessProtocolList
Response XML_ResponseStatus
E.119 /ISAPI/Security/adminAccesses/capabilities
Get device protocol capability.
E.120 /ISAPI/Security/adminAccesses/<ID>
Get or set the parameters of a specific protocol that supported by device.
840
Device Network SDK (General) Developer Guide
Request XML_AdminAccessProtocol
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the protocol ID.
E.121 /ISAPI/Security/capabilities
Get the security capability of the device.
E.122 /ISAPI/Security/deviceCertificate/certificateRevocation/
capabilities?format=json
Get the configuration capability of the certificate expiry alarm.
841
Device Network SDK (General) Developer Guide
E.123 /ISAPI/Security/deviceCertificate/certificateRevocation?
format=json
Get or set the configuration of certificate expiry alarm.
E.124 /ISAPI/Security/doubleVerification/users/<ID>?format=json
Operations about a specified double verification user.
842
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI indicates the user ID.
843
Device Network SDK (General) Developer Guide
E.125 /ISAPI/Security/doubleVerification/users/capabilities?
format=json
Get the double verification configuration capability.
E.126 /ISAPI/Security/doubleVerification/users?format=json
Get all double verification users and add a double verification user.
844
Device Network SDK (General) Developer Guide
E.127 /ISAPI/Security/doubleVerification/UsersPermission/<ID>?
format=json
Get and set the permission of double verification user.
Remarks
The <ID> in the URI indicates the user ID.
845
Device Network SDK (General) Developer Guide
E.128 /ISAPI/Security/doubleVerification/UsersPermission/capabilities?
format=json
Get the capability of permission configuration for double verification user.
E.129 /ISAPI/Security/doubleVerification?format=json
Get the capability of double verification enabling configuration.
846
Device Network SDK (General) Developer Guide
E.130 /ISAPI/Security/email/parameter/capabilities?format=json
Get recovery email configuration capability (only available in LAN and for admin user).
E.131 /ISAPI/Security/email/parameter?format=json
Operations about recovery email configuration (only available for LAN and for admin user).
847
Device Network SDK (General) Developer Guide
Request None.
Response JSON_SecurityEmail
Table C-185 PUT /ISAPI/Security/email/parameter?format=json
Method PUT
Description Set recovery email parameters.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_SecurityEmail
Response JSON_ResponseStatus
E.132 /ISAPI/Security/email/qrCode?format=json
Get the QR code of the configured recovery email (only available for LAN and for admin user).
848
Device Network SDK (General) Developer Guide
E.133 /ISAPI/Security/emailCertification?format=json
Reset password by the verification code via recovery email (only available for LAN and for admin
user).
Remarks
For the encryption of passwords and security answers, first transform them by UTF8, and then
transcode them by BASE64, finally, encrypt them by AES128CB.
E.134 /ISAPI/Security/extern/capabilities
Get capability of other security configuration.
E.135 /ISAPI/Security/illegalLoginLock
Get or set locking parameters of illegal login.
849
Device Network SDK (General) Developer Guide
E.136 /ISAPI/Security/questionConfiguration
Get or set device security questions.
850
Device Network SDK (General) Developer Guide
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request XML_SecurityQuestion
Response XML_ResponseStatus
E.137 /ISAPI/Security/RTSPCertificate
Get or set parameters of devices' RTSP authentication mode.
E.138 /ISAPI/Security/RTSPCertificate/capabilities
Get the capability of devices' RTSP authentication mode.
851
Device Network SDK (General) Developer Guide
E.139 /ISAPI/Security/webCertificate
Get or set the certificate type parameters of web service.
E.140 /ISAPI/Streaming/channels/<ID>
Operations about the encoding configurations of a specific channel.
852
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI refers to the channel ID.
Example
Interaction Example of Getting Encoding Parameters of A Specific Channel
GET /ISAPI/Streaming/channels/444 HTTP/1.1
…
HTTP/1.1 200 OK
Content-Type: application/xml; charset=“UTF-8”
Content-Length: ISAPI
853
Device Network SDK (General) Developer Guide
<enabled>true</enabled>
<Transport>
<rtspPortNo>554</rtspPortNo>
<maxPacketSize>1446</maxPacketSize>
<ControlProtocolList>
<ControlProtocol>
<streamingTransport>RTSP</streamingTransport>
</ControlProtocol>
<ControlProtocol>
<streamingTransport>HTTP</streamingTransport>
</ControlProtocol>
</ControlProtocolList>
</Transport>
<Video>
<enabled>true</enabled>
<videoInputChannelID>2</videoInputChannelID>
<videoCodecType>MPEG4</videoCodecType>
<videoScanType>progressive</videoScanType>
<videoResolutionWidth> 640</videoResolutionWidth>
<videoResolutionHeight>480</videoResolutionHeight>
<videoPositionX>0</videoPositionX>
<videoPositionY>0</videoPositionY>
<videoQualityControlType>CBR</videoQualityControlType>
<constantBitRate>2000</constantBitRate>
<maxFrameRate>2500</maxFrameRate>
<keyFrameInterval>1000</keyFrameInterval>
<rotationDegree>0</rotationDegree>
<mirrorEnabled>false</mirrorEnabled>
<snapShotImageType>JPEG</snapShotImageType>
</Video>
<Audio>
<enabled>false</enabled>
<audioInputChannelID>2</audioInputChannelID>
<audioCompressionType> G.726</audioCompressionType>
<audioBitRate>24</audioBitRate>
<audioSamplingRate>8</audioSamplingRate>
</Audio>
</StreamingChannel>
E.141 /ISAPI/Streaming/channels/<ID>/capabilities
Get encoding capability of a specific channel.
854
Device Network SDK (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_Cap_StreamingChannel
Failed: XML_ResponseStatus
Remarks
The <ID> in the URI refers to the channel ID.
Example
Interaction Example of Getting Encoding Capability of A Specific Channel
GET /ISAPI/Streaming/channels/444/capabilities HTTP/1.1
…
HTTP/1.1 200 OK
Content-Type: application/xml; charset="UTF-8"
Content-Length: ISAPI
855
Device Network SDK (General) Developer Guide
</Multicast>
<Security>
<enabled opt="true,false" def="false"/>
</Security>
</Transport>
<Video>
<enabled opt="true,false">true</enabled>
<videoInputChannelID opt="1,2,3,4">2</videoInputChannelID>
<videoCodecType opt="MJPEG,MPEG4">MPEG4</videoCodecType>
<videoScanType opt="interlaced,progressive">progressive</videoScanType>
<videoResolutionWidth min="0" max="640">640</videoResolutionWidth>
<videoResolutionHeight min="0" max="480">480</videoResolutionHeight>
<videoPositionX min="0" max="640">0</videoPositionX>
<videoPositionY min="0" max="480">0</videoPositionY>
<videoQualityControlType opt="CBR,VBR">CBR</videoQualityControlType>
<constantBitRate min="50" max="4000" dynamic="true">2000</constantBitRate>
<maxFrameRate opt="2500,1250,625,312,156,78,830" dynamic="true">2500</maxFrameRate>
<keyFrameInterval min="0", max="10000">1000</keyFrameInterval>
<rotationDegree opt="0,90,180,270" def="0">0</rotationDegree>
<mirrorEnabled opt="true,false" def="false">false</mirrorEnabled>
<snapShotImageType opt="JPEG" def="JPEG">JPEG</snapShotImageType>
</Video>
<Audio>
<enabled opt="true,false" def="false">false</enabled>
<audioInputChannelID opt="1,2,3,4">2</audioInputChannelID>
<audioCompressionType opt="G.726,G.711ulaw" def="G.726">G.726</audioCompressionType>
<audioBitRate opt="16,24,32,40" def="32" dynamic="true">24</audioBitRate>
<audioSamplingRate opt="8" dynamic="true">8</audioSamplingRate>
<audioResolution opt="3,4,5,6" dynamic="true"/>
</Audio>
</StreamingChannel>
E.142 /ISAPI/Streaming/channels/<ID>/smartOverlap/capabilities?
format=json
Get the capability of configuring the stream for displaying VCA rules of smart events.
856
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: JSON_SmartOverlapCap
Failed: JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
E.143 /ISAPI/Streaming/channels/<ID>/smartOverlap?format=json
Get or set the stream parameters for displaying VCA rules of smart events.
Remarks
The <ID> in the request URI refers to the channel No.
E.144 /ISAPI/System/accessDevice/associatedChannel?format=json
Get the linked channel informaiton of added IoT device.
857
Device Network SDK (General) Developer Guide
E.145 /ISAPI/System/algorithmsVersion
Get the version information of algorithm library.
E.146 /ISAPI/System/autoMaintenance/capabilities?format=json
Get the capability of automatic maintenance configuration.
858
Device Network SDK (General) Developer Guide
E.147 /ISAPI/System/autoMaintenance?format=json
Get automatic maintenance configuration parameters.
E.148 /ISAPI/System/autoSwitch/capabilities?format=json
Get configuration capability of auto power on or off.
859
Device Network SDK (General) Developer Guide
E.149 /ISAPI/System/autoSwitch?format=json
Get or set parameters of auto power on or off.
E.150 /ISAPI/System/BVCorrect/channels/<ID>/capabilities?format=json
Get the configuration capability of camera correction.
860
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URL refers to the channel No.
E.151 /ISAPI/System/BVCorrect/channels/<ID>?format=json
Operations about the camera correction parameters.
Remarks
The <ID> in the request URL refers to the channel No.
E.152 /ISAPI/System/capabilities
Get device capability.
861
Device Network SDK (General) Developer Guide
Query None
Request None.
Response Succeeded: XML_DeviceCap
Failed: XML_ResponseStatus
E.153 /ISAPI/System/channels/<ID>/vibrationDetection/capabilities?
format=json
Get the capability of vibration detection.
Remarks
The <ID> in the URI refers to the channel ID.
E.154 /ISAPI/System/channels/<ID>/vibrationDetection?format=json
Get or set the vibration detection parameters.
862
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI refers to the channel ID.
E.155 /ISAPI/System/deviceInfo
Operations about the device information.
E.156 /ISAPI/System/deviceInfo/capabilities
Get the device information configuration capability.
863
Device Network SDK (General) Developer Guide
E.157 /ISAPI/System/deviceInfo/characteristicCode?format=json
Get the device attribute code.
E.158 /ISAPI/System/DeviceLanguage
Operations about device language configuration.
864
Device Network SDK (General) Developer Guide
E.159 /ISAPI/System/DeviceLanguage/capabilities
Get the capability of device language configuration.
E.160 /ISAPI/System/diagnosedData/parameter
Get or set the parameters of exporting device diagnose information.
865
Device Network SDK (General) Developer Guide
Remarks
The speed dome does not support getting parameters of exporting diagnose information.
E.161 /ISAPI/System/diagnosedData/parameter/capabilities
Get the capability of exporting device diagnose information.
866
Device Network SDK (General) Developer Guide
E.162 /ISAPI/System/diagnosedData/server?format=json
Get or set the diagnostic server parameters.
Remarks
The following nodes in the message JSON_DiagnosedDataServerList should be encrypted:
password, userName, consoleCommand, and compressionKey.
867
Device Network SDK (General) Developer Guide
E.163 /ISAPI/System/diagnosedData/server/capabilities?format=json
Get the diagnostic server capability.
E.164 /ISAPI/System/diagnosedData/server/test?format=json
Test the diagnostic server.
Remarks
The two nodes password and userName in the message JSON_DiagnosedDataServerList should
be encrypted.
868
Device Network SDK (General) Developer Guide
E.165 /ISAPI/System/externalDevice/capabilities
Get peripherals configuration capability.
E.166 /ISAPI/System/Network/EZVIZ/capabilities
Get the Hik-Connect access configuration capability.
E.167 /ISAPI/System/Network/EZVIZ/QRCode?format=json
Get the Hik-Connect QR code.
869
Device Network SDK (General) Developer Guide
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EZVIZQRCode
Failed: JSON_ResponseStatus
Remarks
• You can use smart phone to scan the QR code to download Hik-Connect app or use Hik-Connect
to scan the QR code to bind the device.
• If the node isSupportEZVIZQRCode is returned in the message XML_Cap_EZVIZ (related URI: /
ISAPI/System/Network/EZVIZ/capabilities ) and the value is true, it indicates that the device
supports this function.
E.168 /ISAPI/System/factoryReset?mode=
Restore the device to default settings.
870
Device Network SDK (General) Developer Guide
Remarks
• For access control devices, this URI is only supported by facial recognition terminal, and the
"full" and "basic" recovery modes are not supported by passthrough method.
• For facial recognition terminal, if the recovery mode is set to "part", i.e., /ISAPI/System/
factoryReset?mode=part, the settings of card, face, event, fingerprint, schedule template,
network, user name, and password will be reserved without being restored.
E.169 /ISAPI/System/GPSCalibratation/channels/<ID>/capabilities?
format=json
Get GPS calibration configuration capability.
Remarks
The <ID> in the request URI refers to the video channel ID.
E.170 /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?
format=json
Get, set or delete configuration parameters of a single GPS calibration point.
871
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: JSON_GPSCalibratation
Failed: JSON_ResponseStatus
Table C-240 PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?format=json
Method PUT
Description Set the configuration parameters of a single GPS calibration point.
Query format: determine the format of request or response message.
Request JSON_GPSCalibratation
Response JSON_ResponseStatus
Table C-241 DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?format=json
Method DELETE
Description Delete the configuration parameters of a single GPS calibration point.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus
Remarks
The first <ID> in the request URI refers to the video channel ID and the second <ID> refers to
calibration point ID.
E.171 /ISAPI/System/GPSCalibratation/channels/<ID>/points?
format=json
Get, set or delete configuration parameters of multiple GPS calibration points in a batch.
872
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
Table C-243 PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json
Method PUT
Description Set configuration parameters of multiple GPS calibration points in a
batch.
Query format: determine the format of request or response message.
Request JSON_GPSCalibratationList
Response JSON_ResponseStatus
Table C-244 DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json
Method DELETE
Description Delete configuration parameters of multiple GPS calibration points in
a batch.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the video channel ID.
E.172 /ISAPI/System/GPSPTZCalibratation/channels/<ID>/calibratation?
format=json
Enable GPS calibration.
Remarks
The <ID> in the request URI refers to the video channel ID.
873
Device Network SDK (General) Developer Guide
E.173 /ISAPI/System/GPSVerification/channels/<ID>/display?
format=json
Get or set the parameters of displaying GPS calibration verification result.
Remarks
The <ID> in the URI refers to channel No.
E.174 /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?
format=json
Get, set, or delete a specified verification point.
874
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: JSON_VerificationPoint
Failed: JSON_ResponseStatus
Table C-249 PUT /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json
Method PUT
Description Set the parameters of a specified verification point.
Query format: determine the format of request or response message.
Request JSON_VerificationPoint
Response JSON_ResponseStatus
Table C-250 DELETE /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json
Method DELETE
Description Delete a specified verification point.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus
Remarks
The first <ID> in the URI refers to channel No., and second <ID> refers to verification point No.
E.175 /ISAPI/System/GPSVerification/channels/<ID>/points/
capabilities?format=json
Get the capability of verifying GPS calibration.
875
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
E.176 /ISAPI/System/GPSVerification/channels/<ID>/points/resultInfo?
format=json
Get the verification results of GPS calibration in a batch according to channel No.
Remarks
The <ID> in the URI refers to channel No.
E.177 /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
Get, set, or delete multiple verification points in a batch, or add a verification point.
876
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
Table C-254 PUT /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Method PUT
Description Set the parameters of verification points in a batch according to
channel No.
Query format: determine the format of request or response message.
Request JSON_VerificationPointList
Response JSON_ResponseStatus
Table C-255 DELETE /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Method DELETE
Description Delete all verification points in a batch according to channel No.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus
Table C-256 POST /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Method POST
Description Add a verification point according to channel No.
Query format: determine the format of request or response message.
Request JSON_VerificationPoint
Response Succeeded: JSON_GPSVerification_ResultInfo
Failed: JSON_ResponseStatus
Remarks
The <ID> in the URI refers to channel No.
E.178 /ISAPI/System/guideConfig/<guideEvent>/capabilities?
format=json
Get the capability of quick setup instruction for specified event.
877
Device Network SDK (General) Developer Guide
Remarks
The <guideEvent> in the URI refers to the event, which supports quick setup, and now only
"linkageCapture" (capture by linkage) is supported, i.e., the URI is: /ISAPI/System/guideConfig/
linkageCapture/capabilities?format=json
E.179 /ISAPI/System/guideConfig/<guideEvent>?format=json
Get the parameters of quick setup instruction for specified event.
Remarks
The <guideEvent> in the URI refers to the event, which supports quick setup, and now only
"linkageCapture" (capture by linkage) is supported, i.e., the URI is: /ISAPI/System/guideConfig/
linkageCapture?format=json
878
Device Network SDK (General) Developer Guide
E.180 /ISAPI/System/installationAngleCalibration/channels/<ID>/
capabilities?format=json
Get the capability of installation angle calibration.
Remarks
The <ID> in the request URI refers to the channel No.
E.181 /ISAPI/System/installationAngleCalibration/channels/<ID>?
format=json
Get the installation angle calibration status or calibrate the installation angle.
879
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
E.182 /ISAPI/System/IOT/channelConfig?format=json
Import or export the list of added IoT devices.
880
Device Network SDK (General) Developer Guide
Remarks
The Opaque Data should be encrypted.
E.183 /ISAPI/System/IOT/channels/<ID>/<EventType>/capabilities?
format=json
Get the event configuration capability of IoT device.
E.184 /ISAPI/System/IOT/channels/<ID>/<EventType>?format=json
Get or set the event/alarm parameters.
881
Device Network SDK (General) Developer Guide
E.185 /ISAPI/System/IOT/channels/<ID>/alarmStatistics?format=json
Get the alarm statistics of added IoT device according to channel ID.
E.186 /ISAPI/System/IOT/channels/<ID>/all?format=json
Delete all channels (video channel and IoT channel) of added IoT device
882
Device Network SDK (General) Developer Guide
E.187 /ISAPI/System/IOT/channels/<ID>/basicParam?format=json
Set the basic parameters of added IoT device according to channel ID.
E.188 /ISAPI/System/IOT/channels/<ID>/OSD/capabilities?format=json
Get the OSD configuration capability of specified IoT device channel.
E.189 /ISAPI/System/IOT/channels/<ID>/OSD?format=json
Get or set the OSD parameters.
883
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI is defied as the channel ID.
E.190 /ISAPI/System/IOT/channels/<ID>/status?format=json
Get the status of specified channel of added IoT device.
Remarks
The <ID> in the URI is defined as channel ID.
884
Device Network SDK (General) Developer Guide
E.191 /ISAPI/System/IOT/channels/<ID>?format=json
Operations about specified added IoT device.
885
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the URI is defined as channel ID.
E.192 /ISAPI/System/IOT/channels/status?format=json
Get the status of added IoT device.
E.193 /ISAPI/System/IOT/channels/status?
format=json&deviceInductiveType=
Get the status of added IoT device according to inductive type.
886
Device Network SDK (General) Developer Guide
E.194 /ISAPI/System/IOT/channels?format=json
Operations about IoT devices.
887
Device Network SDK (General) Developer Guide
Request None.
Response JSON_IOTChannelList
Table C-280 POST /ISAPI/System/IOT/channels?format=json
Method POST
Description Add the IoT devices to NVR/DVR.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_IOTChannel
Response Succeeded: JSON_IOT_ChannelInfo
Failed: JSON_ResponseStatus
E.195 /ISAPI/System/IOT/channels?format=json&deviceInductiveType=
Get the informaiton of added IoT devices according to device inductive type.
888
Device Network SDK (General) Developer Guide
E.196 /ISAPI/System/IOT/linkageChannels?format=json
Get the linked channel of searched event.
E.197 /ISAPI/System/IOT/search?format=json
Get the IoT devices which can be added.
889
Device Network SDK (General) Developer Guide
E.198 /ISAPI/System/IOT/sourceCapabilities?format=json
Get the number of IoT device channels.
E.199 /ISAPI/System/IOT/sourceSupport/capabilities?format=json
Get supported protocol type of IoT devices.
E.200 /ISAPI/System/laserOpticalAxis/capabilities?format=json
Get the configuration capability of laser optical axis.
890
Device Network SDK (General) Developer Guide
E.201 /ISAPI/System/laserOpticalAxis/goto?format=json
Adjust the laser optical axis.
E.202 /ISAPI/System/laserOpticalAxis?format=json
Get or set laser optical axis parameters.
891
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
Table C-289 PUT /ISAPI/System/laserOpticalAxis?format=json
Method PUT
Description Configure the laser optical axis.
Query format: determine the format of request or response message.
Request JSON_LaserOpticalAxis
Response JSON_ResponseStatus
E.203 /ISAPI/System/logServer
Get or set log server parameters.
E.204 /ISAPI/System/logServer/capabilities
Get log server configuration capability.
892
Device Network SDK (General) Developer Guide
E.205 /ISAPI/System/Network/capabilities
Get the network capability.
E.206 /ISAPI/System/Network/extension
Get and set multicast parameters.
893
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: XML_networkExtension
Failed: XML_ResponseStatus
Table C-295 PUT /ISAPI/System/Network/extension
Method PUT
Description Set multicast parameters.
Query None.
Request XML_networkExtension
Response XML_ResponseStatus
E.207 /ISAPI/System/Network/EZVIZ/QRCode
Get the Hik-Connect QR code of the device.
E.208 /ISAPI/System/Network/EZVIZ/secretKey?format=json
Edit the verification code for Hik-Connect.
894
Device Network SDK (General) Developer Guide
E.209 /ISAPI/System/Network/ftp/<ID>
Operations about the configuration of a specific FTP.
E.210 /ISAPI/System/Network/ftp/capabilities
Get the FTP capability.
895
Device Network SDK (General) Developer Guide
E.211 /ISAPI/System/Network/Integrate
Get or set the access protocol parameters.
E.212 /ISAPI/System/Network/Integrate/capabilities
Get the configuration capability of the access protocol.
896
Device Network SDK (General) Developer Guide
E.213 /ISAPI/System/Network/ipFilter
Operations about IP address filter configuration.
E.214 /ISAPI/System/Network/ipFilter/capabilities
Get IP address filter configuration capability.
897
Device Network SDK (General) Developer Guide
E.215 /ISAPI/System/Network/resourceStatistics?format=json
Get the information of network resource statistics.
E.216 /ISAPI/System/Network/SNMP
Get or set batch configuration parameters of SNMP (Simple Network Management Protocol).
898
Device Network SDK (General) Developer Guide
E.217 /ISAPI/System/Network/SNMP/advanced
Get or set advanced parameters of SNMP (Simple Network Management Protocol).
899
Device Network SDK (General) Developer Guide
E.218 /ISAPI/System/Network/SNMP/advanced/trapReceivers
Get, set, delete parameters of all trap address, or add a new trap address of SNMP in version 3.
900
Device Network SDK (General) Developer Guide
E.219 /ISAPI/System/Network/SNMP/advanced/trapReceivers/<ID>
Get, set or delete parameters for a single trap address.
901
Device Network SDK (General) Developer Guide
E.220 /ISAPI/System/Network/socketIP
Get the socket IP of current connection.
E.221 /ISAPI/System/Network/verificationCodeCheck
Verify the encryption key or verification code.
E.222 /ISAPI/System/Network/WirelessDial/Interfaces
Get or set parameters for all dial network cards.
902
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: XML_WirelessDialInterface
Failed: XML_ResponseStatus
Table C-322 PUT /ISAPI/System/Network/WirelessDial/Interfaces
Method PUT
Description Set parameters for all dial network cards.
Query None.
Request XML_WirelessDialInterface
Response XML_ResponseStatus
E.223 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>
Get or set parameters for a single dial network card.
Remarks
The <ID> in the request URI refers to the network interface ID.
903
Device Network SDK (General) Developer Guide
E.224 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial
Operations about the wireless dial-up configuration.
E.225 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial/
capabilities
Get the wireless dial-up capability.
904
Device Network SDK (General) Developer Guide
E.226 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/
capabilities?format=json
Get the configuration capability of network keepalive.
Remarks
The <ID> in the request URI refers to the network interface ID.
905
Device Network SDK (General) Developer Guide
E.227 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/
test?format=json
Test network keepalive configuration.
Remarks
The <ID> in the request URI refers to the network interface ID.
E.228 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive?
format=json
Set network keepalive parameters.
Remarks
The <ID> in the request URI refers to the network interface ID.
906
Device Network SDK (General) Developer Guide
E.229 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule
Get or set dial-up schedule parameters.
Remarks
The <ID> in the request URI refers to the network interface ID.
E.230 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
trafficMonitor/capabilities?format=json
Get traffic monitoring configuration capability.
907
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: JSON_TrafficMonitorCap
Failed: JSON_ResponseStatus
E.231 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
trafficMonitor/status?format=json
Get traffic monitoring status.
E.232 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
trafficMonitor?format=json
Get traffic monitoring parameters.
908
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
E.233 /ISAPI/System/onlineUpgrade/deviceParameter?format=json
Get and set the device online upgrade parameters.
E.234 /ISAPI/System/onlineUpgrade/downloadPackage/pause?
format=json
Pause the upgrade package download.
909
Device Network SDK (General) Developer Guide
E.235 /ISAPI/System/onlineUpgrade/downloadPackage/resume?
format=json
Resume the upgrade package download.
E.236 /ISAPI/System/onlineUpgrade/downloadPackage/status?
format=json
Get the upgrade package download progress.
910
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
E.237 /ISAPI/System/onlineUpgrade/downloadPackage?format=json
Start or cancel downloading upgrade package to device.
E.238 /ISAPI/System/onlineUpgrade/status
Get the online upgrade progress of device.
911
Device Network SDK (General) Developer Guide
E.239 /ISAPI/System/onlineUpgrade/upgradeWithoutDownload?
format=json
Start device upgrade with existed upgrade package.
E.240 /ISAPI/System/Serial/authentication/capabilities?format=json
Get capability of serial authentication service.
E.241 /ISAPI/System/Serial/authentication?format=json
Get or set parameters of serial authentication service.
912
Device Network SDK (General) Developer Guide
E.242 /ISAPI/System/Serial/capabilities
Get the serial port capability of the device.
E.243 /ISAPI/System/Software/channels/<ID>
Operation about software service configuration.
913
Device Network SDK (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
E.244 /ISAPI/System/Software/channels/<ID>/capabilities
Get the configuration capability of software service.
Remarks
The <ID> in the request URI refers to the channel No.
914
Device Network SDK (General) Developer Guide
E.245 /ISAPI/System/SSDFileSystem/capacity?format=json
Search for SSD storage quotas.
Remarks
If the node isSupportSSDFileSystemCapacity is returned in the message XML_DeviceCap (related
URI: /ISAPI/System/capabilities ) and its value is true, it indicates that the device supports this
function.
E.246 /ISAPI/System/SSDFileSystem/format/status?format=json
Search for the progress of SSD file system formatting.
E.247 /ISAPI/System/SSDFileSystem/format?format=json
Format SSD file system.
915
Device Network SDK (General) Developer Guide
Remarks
Formatting SSD will erase its data, including those in face picture library, and cancel the alarms
linked to the library. The device will restart after formatting.
E.248 /ISAPI/System/SSDFileSystem/upgrade/status?format=json
Search for the upgrade progress of SSD file system.
E.249 /ISAPI/System/SSDFileSystem/upgrade?format=json
Get the upgrade status of SSD file system or upgrade the SSD file system. The device will
automatically reboot after upgrade.
916
Device Network SDK (General) Developer Guide
E.250 /ISAPI/System/status
Get device status, e.g., CPU, memory, and so on.
E.251 /ISAPI/System/time/capabilities
Get the time capability of the device.
917
Device Network SDK (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_Cap_Time
Failed: XML_ResponseStatus
E.252 /ISAPI/System/TwoWayAudio/channels
Get audio parameters of all two-way audio channels.
Example
Sample Code for Getting Parameters of All Two-Way Audio Channels
GET /ISAPI/System/TwoWayAudio/channels HTTP/1.1
Host: [Link]
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e4446464e6a6333516a63365a4445304f47526a4e32553d",
uri="/ISAPI/System/TwoWayAudio/channels",
cnonce="145ef1bc3ab456be09918d39b77e78ae",
nc=00000021,
response="d10bab23689c60e95241230fff3181b0",
qop="auth"
HTTP/1.1 200 OK
Date: Wed, 15 Mar 2017 09:25:29 GMT
Server: App-webs/
Connection: close
Content-Length: 467
Content-Type: application/xml
918
Device Network SDK (General) Developer Guide
<id>1</id>
<enabled>false</enabled>
<audioCompressionType>G.711ulaw</audioCompressionType>
<audioInputType>MicIn</audioInputType>
<speakerVolume>50</speakerVolume>
<noisereduce>false</noisereduce>
</TwoWayAudioChannel>
</TwoWayAudioChannelList>
E.253 /ISAPI/System/TwoWayAudio/channels/<ID>
Operations about the configuration of a specific two-way audio channel.
E.254 /ISAPI/System/unitConfig/capabilities?format=json
Get the capability of unit unified configuration.
919
Device Network SDK (General) Developer Guide
E.255 /ISAPI/System/unitConfig?format=json
Get and set the unit unified configuration parameters.
E.256 /ISAPI/System/usb?format=json
Get or set the USB parameters.
920
Device Network SDK (General) Developer Guide
Request None.
Response Succeeded: JSON_USB
Failed: JSON_ResponseStatus
Table C-368 PUT /ISAPI/System/usb?format=json
Method PUT
Description Set the USB parameters.
Query format: determine the format of request or response message.
Request JSON_USB
Response JSON_ResponseStatus
E.257 /ISAPI/System/usb/capabilities?format=json
Get the USB parameters configuration capability.
E.258 /ISAPI/System/Video/capabilities
Get video channel capability.
921
Device Network SDK (General) Developer Guide
Request None
Response Succeeded: XML_VideoCap
Failed: XML_ResponseStatus
E.259 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/
regions/<ID>
Get, set, or delete parameters of a privacy mask region.
Remarks
The first <ID> in the request URI refers to the video input channel ID; and second <ID> is the
privacy mask region ID.
922
Device Network SDK (General) Developer Guide
E.260 /ISAPI/System/Video/inputs/channels/<ID>/VCAResource
Operation about configuration of intelligent resources switch.
Remarks
• The <ID> in the request URI refers to the video input channel ID.
• The intelligent resources switch supports three capture mode, i.e., target capture, face capture,
and perimeter capture.
• For target capture mode, the panoramic camera captures the human body and vehicle
pictures, the speed dome tracks and capture the human body for human body or face
recognition and comparison. If matched, the thumbnails and original pictures of human body
and face will be uploaded; otherwise, only the thumbnail and original picture of face will be
uploaded.
• For face capture mode, the panoramic camera transmits the videos without any intelligent
analysis, the speed dome captures face picture in up to 4 scenes.
• For perimeter capture, the panoramic camera captures vehicle pictures and performs HMS
+DGS detection, and it supports detecting and tracking the small target within 40 m; while the
speed dome tracks and captures the detected target, and outputs thumbnails and original
pictures of human body and face.
923
Device Network SDK (General) Developer Guide
E.261 /ISAPI/System/Video/inputs/channels/<ID>/VCAResource/
capabilities
Get capability of intelligent resources switch.
E.262 /ISAPI/System/Video/inputs/channels/counting/collection/
capabilities?format=json
Get the capability of people counting data replenishment.
E.263 /ISAPI/System/Video/inputs/channels/counting/collection?
format=json
Perform people counting replenishment.
924
Device Network SDK (General) Developer Guide
E.264 /ISAPI/System/Video/inputs/channels/heatMap/collection/
capabilities?format=json
Get the capability of heat map data replenishment.
E.265 /ISAPI/System/Video/inputs/channels/heatMap/collection?
format=json
Perform heat map data replenishment.
925
Device Network SDK (General) Developer Guide
Request JSON_HeatMap_CollectionDescription
Response JSON_HeatMap_CollectionResult
E.266 /ISAPI/System/Video/inputs/OSDLanguage
Operations about OSD language configuration.
E.267 /ISAPI/System/workingstatus?format=json
Get device working status.
926
Device Network SDK (General) Developer Guide
Failed: JSON_ResponseStatus
Remarks
Up to 20 bytes are allowed for a device's working status; up to 100 bytes are allowed for a
channel's status, a HDD's status, and an IO's status; up to 30 bytes are allowed for a two-way audio
channel's status.
E.268 /ISAPI/System/zeroBiasCalibration/channels/<ID>?format=json
Calibrate the accelerometer bias.
Remarks
The <ID> in the request URI refers to the channel No.
E.269 /ISAPI/Thermal/capabilities
Get thermal capability.
927
Device Network SDK (General) Developer Guide
E.270 /ISAPI/Thermal/temperature/collection/capabilities?format=json
Get the capability of temperature data replenishment.
E.271 /ISAPI/Thermal/temperature/collection?format=json
Perform the temperature data replenishment.
928
Device Network SDK (General) Developer Guide
F.1 JSON_AlarmStatistics
AlarmStatistics message in JSON format
{
"AlarmStatistics":{
/*optional, alarm statistics of added IoT devices*/
"totalNumber": "",
/*required, the total number of alarms, integer*/
"time": "",
/*required, statistic time, integer, unit: second*/
}
}
F.2 JSON_AssociatedChannelList
AssociatedChannelList message in JSON format
{
"AssociatedChannelList": [{
/*optional, list of linked channels*/
"channel": "",
/*required, channel No., integer*/
"type": "",
/*required, channel type: "video"-video channel, "IOT"-IoT channel, string*/
"associatedVideoChannels": "",
/*optional, linked video channel No., array, and the unit is integer*/
"associatedIOTChannels": ""
/*optional, linked IoT channel No., array, and the unit is integer*/
}]
}
F.3 JSON_AudioAlarm
AudioAlarm message in JSON format
{
"AudioAlarm":{
"audioID": ,
/*required, alarm sound types, 1-siren, 2-"Warning, this is a restricted area", 3-"Waring, this is a restricted area,
please keep away", 4-"Warning, this is a no-parking zone", 5-"Warning, this is a no-parking zone, please keep away",
6-"Attention please. The area is under surveillance", 7-"Welcome,Please notice that the area is under surveillance",
8-"Welcome", 9-"Danger! Please keep away", 10-siren + "Danger, please keep away", 11-Audio Warning, 12-Beep
Sound, 13-custom alarm sound 1, 14-custom alarm sound 2, 15-custom alarm sound 3*/
929
Device Network SDK (General) Developer Guide
"audioVolume": ,
/*required, int, volume, which is between 1 and 100*/
"alarmTimes": ,
/*required, int, times of alarm, which is between 1 and 50*/
"TimeRangeList":[{
/*optional, alarm output schedule list*/
"week": ,
"TimeRange":[{
"id": ,
/*required, int, ID of time period for each day*/
"beginTime":"",
/*required, string, start time in ISO8601 format*/
"endTime":""
/*required, string, end time in ISO8601 format*/
}]
}]
"audioClass": "",
/*optional, string, read-only, sound type, "alertAudio"-alarm sound (get the supported alarm sound types from the
node AlertAudioTypeListCap), "promptAudio"-prompt sound, "customAudio"-custom sound (configure it according to
customAudioID); if this node is not returned, you should get the supported sound types from the node
audioTypeListCap*/
"alertAudioID": ,
/*dependent, int, read-only, alarm sound ID, this node is valid only when audioClass is alertAudio, 1-"Siren",
2-"Warning, this is a restricted area", 3-"Waring,this is a restricted area,please keep away", 4-"Warning, this is a no-
parking zone", 5-"Warning,this is a no-parking zone,please keep away", 6-"Attention please. The area is under
surveillance", 7-"Welcome,Please notice that the area is under surveillance", 8-"Welcome", 9-"Danger! Please keep
away", 10-"(Siren)&Danger,please keep away, 11-Audio Warning"*/
"customAudioID": ,
/*dependent, int, read-only, custom sound ID, this node will be returned when audioClass is "customAudio". The
alarm sound file can only be uploaded via Hik-Connect in specified format. If there is no value returned in this node,
the custom sound (customAudio) will not be returned,either*/
"alarmType": "",
/*optional, string, alarm type: "behavior"-behavior analysis, "thermometry"-thermometry, "dynamicFire"-fire
detection, "smokingMode"-smoke detection, "noMaskDetection"-no wearing mask detection*/
}
}
Remarks
1. The user can configure the sound file via the node audioID only, and when the audioID is
specified, its value will be automatically synchronized to the nodes of audioClass, alertAudioID,
and customAudioID, which are read-only.
2. When the value of audioID is from 1 to 11, the corresponding value of audioClass is
"alertAudio", and the value of alertAudioID is also from 1 to 11; when the value of audioID is
12, the corresponding value of audioClass is "promptAudio"; when the value of audioID is from
13 to 15, the corresponding value of audioClass is "customAudio", and the value of
customAudioID is from 1 to 3.
930
Device Network SDK (General) Developer Guide
F.4 JSON_AudioAlarmCap
JSON message about audible warning configuration capability
{
"AudioAlarmCap":{
"audioTypeListCap":[{
/*required, alarm sound types, 1-siren, 2-"Warning, this is a restricted area", 3-"Waring, this is a restricted area,
please keep away", 4-"Warning, this is a no-parking zone", 5-"Warning, this is a no-parking zone, please keep away",
6-"Attention please. The area is under surveillance", 7-"Welcome,Please notice that the area is under surveillance",
8-"Welcome", 9-"Danger! Please keep away", 10-siren + "Danger, please keep away", 11-Audio Warning, 12-Beep
Sound, 13-custom alarm sound 1, 14-custom alarm sound 2, 15-custom alarm sound 3, 16-AI custom audio file*/
"audioID": 1,
"audioDescription":"siren"
},
{
"audioID": 2,
"audioDescription":"Warning, this is a restricted area"
},
{
"audioID": 3,
"audioDescription":"Waring, this is a restricted area,please keep away"
}],
"audioVolume":{
/*required, int, volume, which is between 1 ad 100*/
"@min": 1,
"@max": 100,
"@def": 100
},
"alarmTimes":{
/*required, int, times of audible warning, which is between 1 and 50*/
"@min": 1,
"@max": 50,
"@def": 5
},
"TimeRangeCap":{
/*optional, audible warning schedule capability*/
"week":{
/*required, int, days of the week: 1-Monday, 2-Tuesday, 3-Wednesday, 4-Thursday, 5-Friday,6-Saturday, 7-Sunday*/
"@opt":"1, 2, 3, 4, 5, 6, 7"
},
"id":{
/*required, int, ID of time period for each day*/
"@maxSize": 8
},
"beginTime":{
/*required, string, start time in ISO8601 format*/
"@min":"00:00",
"@max":"24:00"
},
"endTime":{
931
Device Network SDK (General) Developer Guide
932
Device Network SDK (General) Developer Guide
}
}]
"isSupportCustomAudio": true,
/*optional, boolean, whether the device supports uploading, downloading, and editing custom alarm sound file*/
"isSupportAudioTest": true,
/*optional, boolean, whether the device supports sound file test*/
"customAudioName": {
/*optional, string, name of custom sound file, the maximum size is 24 bytes*/
"@min": 1,
"@max": 24
}
"isSupportCustomAudioFormatInfo":true,
/*optional, boolean, whether the device supports getting the custom audio file format*/
"isSupportCustomAudioURL":true,
/*optional, boolean, whether the device supports importing the custom audio file in URL format; if this node is not
returned, the device dose not support the function*/
"isSupportCustomAudioFiles":true
/*optional, boolean, whether the device supports importing the custom audio files in a batch; if this node is not
returned, the device dose not support the function*/
}
}
Remarks
1. The user can configure the sound file via the node audioID only, and when the audioID is
specified, its value will be automatically synchronized to the nodes of audioClass, alertAudioID,
and customAudioID, which are read-only.
2. When the value of audioID is from 1 to 11, the corresponding value of audioClass is
"alertAudio", and the value of alertAudioID is also from 1 to 11; when the value of audioID is
12, the corresponding value of audioClass is "promptAudio"; when the value of audioID is from
13 to 15, the corresponding value of audioClass is "customAudio", and the value of
customAudioID is from 1 to 3.
F.5 JSON_Authentication
JSON message about parameters of serial authentication service
{
"Authentication":{
"enabled":,
/*required, boolean, whether to enable serial authentication service*/
"serviceClosurePeriod":
/*dependent, integer, service life,unit: day; it is required when enabled is "false"*/
}
}
933
Device Network SDK (General) Developer Guide
F.6 JSON_AuthenticationCap
JSON message about serial authentication service
{
"AuthenticationCap":{
"enabled":{
/*required, boolean, whether to enable serial authentication service*/
"@opt":[
true,
false
]
},
"serviceClosurePeriod":{
/*dependent, integer, service life,unit: day; it is required when enabled is "false"*/
"@min":1,
"@max":30,
"@def":7
}
}
}
F.7 JSON_AutoEagleFocusing
AutoEagleFocusing message in JSON format
{
"AutoEagleFocusing": {
/*required, auto calibration of rapid focus*/
"EagleFocusingRegion": [{
/*optional, string, rapid focus region*/
"sid": "",
/*optional, string, scene ID*/
"spotNum": ,
/*optional, integer, the number of calibration points*/
"type": "",
/*optional, string, region type now only supports "line"*/
"Region": [{
/*optional, region list*/
"x": ,
"y":
}],
"AbsoluteHigh": {
/*optional, PTZ position*/
"elevation": ,
/*optional, xs:integer, tilt angle, range: [-900,2700]*/
"azimuth": ,
/*optional, xs:integer, azimuth, range: [0,3600]*/
"absoluteZoom": 33
934
Device Network SDK (General) Developer Guide
F.8 JSON_AutoEagleFocusingCap
AutoEagleFocusingCap message in JSON format
{
"AutoEagleFocusingCap": {
/*required, auto calibration capability of rapid focus*/
"EagleFocusingRegion": {
"sid": {
/*optional, string, scene ID*/
"@min": 1,
"@max": 2
},
"spotNum": {
/*optional, integer, the number of calibration points*/
"@min": 1,
"@max": 64
},
"type": {
/*optional, string, region type now only supports "line"*/
"@opt": "line"
},
"RegionCap": {
"minSize": 3,
/*required, integer, the minimum number of region edges*/
"maxSize": 10,
/*required, integer, the maximum number of region edges*/
"x": {
/*required, float, X-coordinate, value range: 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
},
"y": {
/*required, float, Y-coordinate, value range: 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
}
},
"AbsoluteHighCap": {
"elevation": {
/*optional, xs:integer, tilt angle, range: [-900,2700]*/
"@min": -900,
935
Device Network SDK (General) Developer Guide
"@max": 2700
},
"azimuth": {
/*optional, xs:integer, azimuth, range: [0,3600]*/
"@min": 0,
"@max": 3600
},
"absoluteZoom": {
/*optional, xs:integer, zoom, range: [1,1000]*/
"@min": 1,
"@max": 1000
}
}
}
}
}
F.9 JSON_AutoMaintenance
AutoMaintenance message in JSON format
{
"AutoMaintenance":{
"enabled": true,
/*required, boolean, enable or not*/
"dayOfWeek": "",
/*required, integer, day of the week, ranges from 1 to 7, 1-Monday, 2-Tuesday, and so on*/
"rebootTime": "",
/*required, reboot time, corrects to minute, it is 0 by default, ISO8601 format, string*/
}
}
F.10 JSON_AutoMaintenanceCap
AutoMaintenanceCap message in JSON format
{
"AutoMaintenanceCap":{
"enabled": "true,false",
/*required, boolean, enable or not*/
"dayOfWeek":{
/*required, integer, day of the week, ranges from 1 to 7, 1-Monday, 2-Tuesday, and so on*/
"@min": 1,
"@max": 7,
"#text": 1
},
}
}
936
Device Network SDK (General) Developer Guide
F.11 JSON_AutoSwitch
AutoSwitch message in JSON format
{
"AutoSwitch":{
"enabled":true,
/*required, boolean, whether to enable power on or off*/
"openTime":"10:00:00",
/*required, string, power on time, which is accurate to minute with the time format of ISO8601*/
"closeTime":"10:00:00"
}
}
F.12 JSON_AutoSwitchCap
AutoSwitchCap message in JSON format
{
"AutoSwitchCap":{
"enabled":"true,false"
/*required, boolean, whether to enable auto power on or off*/
}
}
F.13 JSON_BasicParam
BasicParam message in JSON format
{
"BasicParam":{
/*required, basic parameters of added IoT device*/
"channelName": ""
/*required, channel name, string, the max. length is 32*/
}
}
F.14 JSON_BVCorrectParam
BVCorrectParam message in JSON format
{
"BVCorrectParam":{
/*camera correction parameters*/
"lensType":"",
937
Device Network SDK (General) Developer Guide
/*required, string type, focal length of the lens: "unknown", "8mm", "12mm", "16mm", "25mm", "35mm", "50mm",
"4mm", "6mm", "2.0mm", "2.8mm"*/
"ReprojectMatrix":[{
/*required, reprojection matrix parameters, it is a 4*4 two-dimensional array (array[4][4])*/
"index": ,
/*required, int type, the one-dimensional array subscript of the matrix parameter*/
"Reproject":[{
/*required, specific matrix parameters*/
"index": ,
/*required, int type, the two-dimensional array subscript of the matrix parameter*/
"value":
/*required, float type, matrix parameters*/
}]
}],
"CameraCorrect":[{
/*required, correction parameters of the left camera and the right camera*/
"cameraType":"",
/*required, string type, camera type: "LCamera"-left camera, "RCamera"-right camera*/
"CamInternalMatrix":[{
/*required, matrix of camera internal parameters (including focal length and principle point coordinates), it is a 3*3
two-dimensional array (array[3][3])*/
"index": ,
/*required, int type, the one-dimensional array subscript of the matrix parameter*/
"CamInternal":[{
/*required, specific matrix parameters*/
"index": ,
/*required, int type, the two-dimensional array subscript of the matrix parameter*/
"value":
/*required, float type, matrix parameters*/
}]
}],
"DistCoeffs":[{
/*required, lens distortion coefficient, it is a one-dimensional array with 8 elements (array[8])*/
"index": ,
/*required, int type, the array subscript*/
"value":
/*required, float type, matrix parameters*/
}],
"RotateMatrix":[{
/*required, rotation matrix after correction, it is a 3*3 two-dimensional array (array[3][3])*/
"index": ,
/*required, int type, the one-dimensional array subscript of the matrix parameter*/
"Rotate":[{
/*required, specific matrix parameters*/
"index": ,
/*required, int type, the two-dimensional array subscript of the matrix parameter*/
"value":
/*required, float type, matrix parameters*/
}]
}],
"ProjectMatrix":[{
/*required, projection matrix after correction, it is a 3*4 two-dimensional array (array[3][4])*/
938
Device Network SDK (General) Developer Guide
"index": ,
/*required, int type, the one-dimensional array subscript of the matrix parameter*/
"Project":[{
/*required, specific matrix parameters*/
"index": ,
/*required, int type, the two-dimensional array subscript of the matrix parameter*/
"value":
/*required, float type, matrix parameters*/
}]
}]
}],
"RotateMatrix":[{
/*required, rotation matrix of the left camera relative to the right camera after calibrating dual-lens camera, it is a 3*3
two-dimensional array (array[3][3]). RotateMatrix and TransMatrix are used to describe the position of the left
camera relative to the right camera*/
"index": ,
/*required, int type, the one-dimensional array subscript of the matrix parameter*/
"Rotate":[{
/*required, specific matrix parameters*/
"index": ,
/*required, int type, the two-dimensional array subscript of the matrix parameter*/
"value":
/*required, float type, matrix parameters*/
}]
}],
"TransMatrix":[{
/*required, translation matrix, it is a one-dimensional array with three elements (array[3]). RotateMatrix and
TransMatrix are used to describe the position of the left camera relative to the right camera*/
"index": ,
/*required, int type, the one-dimensional array subscript of the matrix parameter*/
"value":
/*required, float type, matrix parameters*/
}],
"OriImgResolution":{
/*optional, original picture resolution*/
"oriImgResolutionWidth":{
/*required, int type, width of the original picture resolution*/
"@opt":
},
"oriImgResolutionHeight":{
/*required, int type, height of the original picture height*/
"@opt":
}
}
}
}
F.15 JSON_BVCorrectParamCap
BVCorrectParamCap capability message in JSON format
939
Device Network SDK (General) Developer Guide
{
"BVCorrectParamCap":{
/*configuration capability of camera correction*/
"lensType":{
/*required, string type, focal length of the lens: "unknown", "8mm", "12mm", "16mm", "25mm", "35mm", "50mm",
"4mm", "6mm", "2.0mm", "2.8mm"*/
"@opt":["unknown", "8mm", "12mm", "16mm", "25mm", "35mm", "50mm", "4mm", "6mm", "2.0mm", "2.8mm"]
},
"ReprojectMatrixCap":{
/*required, configuration capability of reprojection matrix, it is a 4*4 two-dimensional array (array[4][4])*/
"index":{
/*required, int type, range of the one-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":3
},
"ReprojectCap":{
/*required, specific matrix configuration capability*/
"index":{
/*required, int type, range of the two-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":3
},
"value":{
/*required, float type, matrix parameters*/
"@min":-4000.000000,
"@max":8000.000000
}
}
},
"CameraCorrectCap":{
/*required, configuration capability of the left camera and the right camera correction*/
"cameraType":{
/*required, string type, camera type: "LCamera"-left camera, "RCamera"-right camera*/
"@opt":["LCamera", "RCamera"]
},
"CamInternalMatrixCap":{
/*required, matrix of camera internal parameters (including focal length and principle point coordinates), it is a 3*3
two-dimensional array (array[3][3])*/
"index":{
/*required, int type, range of the one-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"CamInternalCap":{
/*required, specific matrix configuration capability*/
"index":{
/*required, int type, range of the two-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"value":{
/*required, float type, matrix parameters*/
940
Device Network SDK (General) Developer Guide
"@min":-4000.000000,
"@max":8000.000000
}
}
},
"DistCoeffsCap":{
/*required, lens distortion coefficient, it is a one-dimensional array with 8 elements (array[8])*/
"index":{
/*required, int type, range of the array subscript*/
"@min":0,
"@max":7
},
"value":{
/*required, float type, matrix parameters*/
"@min":-4000.000000,
"@max":8000.000000
}
},
"RotateMatrixCap":{
/*required, rotation matrix after correction, it is a 3*3 two-dimensional array (array[3][3])*/
"index":{
/*required, int type, range of the one-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"RotateCap":{
/*required, specific matrix configuration capability*/
"index":{
/*required, int type, range of the two-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"value":{
/*required, float type, matrix parameters*/
"@min":-4000.000000,
"@max":8000.000000
}
}
},
"ProjectMatrixCap":{
/*required, projection matrix after correction, it is a 3*4 two-dimensional array (array[3][4])*/
"index":{
/*required, int type, range of the one-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"ProjectCap":{
/*required, specific matrix configuration capability*/
"index":{
/*required, int type, range of the two-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":3
941
Device Network SDK (General) Developer Guide
},
"value":{
/*required, float type, matrix parameters*/
"@min":-4000.000000,
"@max":8000.000000
}
}
},
"OriImgResolutionCap":{
/*optional, original picture resolution capability*/
"oriImgResolutionWidth":{
/*required, int type, width of the original picture resolution*/
"@opt":"1920"
},
"oriImgResolutionHeight":{
/*required, int type, height of the original picture height*/
"@opt":"1080"
}
}
},
"RotateMatrixCap":{
/*required, rotation matrix of the left camera relative to the right camera after calibrating dual-lens camera, it is a 3*3
two-dimensional array (array[3][3]). RotateMatrix and TransMatrix are used to describe the position of the left
camera relative to the right camera*/
"index":{
/*required, int type, range of the one-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"RotateCap":{
/*required, specific matrix configuration capability*/
"index":{
/*required, int type, range of the two-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"value":{
/*required, float type, matrix parameters*/
"@min":-4000.000000,
"@max":8000.000000
}
}
},
"TransMatrixCap":{
/*required, translation matrix, it is a one-dimensional array with three elements (array[3]). RotateMatrix and
TransMatrix are used to describe the position of the left camera relative to the right camera*/
"index":{
/*required, int type, range of the one-dimensional array subscript of the matrix parameter*/
"@min":0,
"@max":2
},
"value":{
942
Device Network SDK (General) Developer Guide
F.16 JSON_CalibrationStatus
CalibrationStatus message in JSON format
{
"CalibrationStatus":{
/*required, string type, installation angle calibration status: "Calibrated"-calibrated, "Uncalibrated"-uncalibrated*/
}
}
F.17 JSON_Cap_CalibrationStatus
CalibrationStatus message in JSON format
{
"CalibrationStatus":{
/*required, string type, installation angle calibration status: "Calibrated"-calibrated, "Uncalibrated"-uncalibrated*/
"@opt":"Calibrated,Uncalibrated"
}
}
F.18 JSON_Cap_CaputreDescription
JSON message about capability of capturing picture in URL format
{
"CaputreDescription":{
"imageType":{
/*required, string, picture type: "JEPG"*/
"@opt":["JPEG"]
},
"URLType":{
/*required, string, URL type: "cloudURL"*/
"@opt":["cloudURL"]
}
}
}
943
Device Network SDK (General) Developer Guide
F.19 JSON_Cap_ClearingSpaceConfig
JSON message about configuration capability of HDD clearing
{
"ClearingSpaceConfig":{
/*when the free space of HDD reaches the configured value of insufficientSpace, and if the value of
clearingOriginalData is true, the configured HDD space size will be cleared*/
"insufficientSpace":{
/*required, int, HDD free space, which is used as the threshold to start clearing*/
"@min":0,
/*minimum value of the range*/
"@max":100
/*maximum value of the range*/
},
"clearingOriginalData":{
/*required, boolean, whether to enable clearing the original data*/
"opt":"true,false"
},
"clearingSpace":{
/*required, int, space size to clear*/
"@min":0,
/*minimum value of the range*/
"@max":100
/*maximum value of the range*/
}
}
}
F.20 JSON_Cap_IntelliManagement
JSON message about capability of intelligent management
{
"requestURL":"",
"statusCode": ,
"statusString":"",
"subStatusCode":"",
"errorCode": ,
"errorMsg":"",
/*see the description of this node and the above nodes in the message of JSON_ResponseStatus*/
"isSuportTask":true,
/*optional, boolean type, whether it supports task: "true"-yes, "false"-no*/
"isSupportCtrlCenter":true,
/*optional, boolean type, whether it supports control center: "true"-yes, "false"-no*/
"isSuportIntelligentSearch":true,
/*optional, boolean type, whether it supports intelligent search: "true"-yes, "false"-no*/
"isSuportExecuteControl":true,
/*optional, boolean type, whether it supports arming: "true"-yes, "false"-no*/
944
Device Network SDK (General) Developer Guide
"isSuportDataStatistics":true,
/*optional, boolean type, whether it supports statistics: "true"-yes, "false"-no*/
"isSupportIntelligentStorage":true,
/*optional, boolean type, whether it supports intelligent storage: "true"-yes, "false"-no*/
"isSupportServer":true,
/*optional, boolean type, whether it supports service configuration: "true"-yes, "false"-no*/
"isSuportAlgorithmModel":true,
/*optional, boolean type, whether it supports algorithm model configuration: "true"-yes, "false"-no*/
"isSupportCluster":true,
/*optional, boolean type, whether it supports cluster: "true"-yes, "false"-no*/
"isSupportSearchResultDisplay":true,
/*optional, boolean type, whether it supports display configuration: "true"-yes, "false"-no*/
"isSuportTranscodeAnalysisUnit":true,
/*optional, boolean type, whether it supports transcoding analysis unit: "true"-yes, "false"-no*/
"isSuportFactoryReset":true,
/*optional, boolean type, whether it supports restoring to factory settings: "true"-yes, "false"-no*/
"isSupportUPS":true,
/*optional, boolean type, whether it supports UPS: "true"-yes, "false"-no*/
"isSuportCity":true,
/*optional, boolean type, whether it supports city: "true"-yes, "false"-no*/
"isSuportClusterEnableStatus":true,
/*optional, boolean type, whether it supports enabling cluster status: "true"-yes, "false"-no*/
"isSupportSensitivity":true,
/*optional, boolean type, whether it supports sensitivity configuration: "true"-yes, "false"-no*/
"isSupportConfidence":true,
/*optional, boolean type, whether it supports confidence configuration: "true"-yes, "false"-no*/
"isSuportEventSearch":true,
/*optional, boolean, whether it supports event search: "true"-yes, "false"-no*/
"isSupportAudioFileUpload":true,
/*optional, boolean type, whether it supports importing audio file: "true"-yes, "false"-no*/
"isSupportIntelligentMode":true,
/*optional, boolean type, whether it supports intelligent mode configuration: "true"-yes, "false"-no*/
"saveCapturedDataMaxDays":90,
/*optional, int*, the captured pictures can be saved in local HDD up to 90 days by default, when the number of days
reaches the limit, the records will be overwritten by day./
"isSupportAlgorithmTraining": true,
/*optional, boolean, whether it supports algorithm training, "true"-yes, "false"-no*/
"isSupportDataResync":true,
/*optional, boolean, whether it supports data resynchronization: "true"-yes, "false"-no*/
"isSupportCertificateImport":true,
/*optional, boolean, whether it supports importing software license certificate: "true"-yes, "false"-no*/
"isSupportFingerprint":true,
/*optional, boolean, whether it supports exporting hardware fingerprint: "true"-yes, "false"-no*/
"isSupportAuthorization":true,
/*optional, boolean, whether it supports authorization configuration of the algorithm center: "true"-yes, "false"-no*/
"isSupportLicensingDongle":true,
/*optional, boolean, whether it supports dongle: "true"-yes, "false"-no*/
"isSupportAlgorithmUpdate":true,
/*optional, boolean, whether it supports updating algorithm: "true"-yes, "false"-no*/
"isSupportModellingMode":true,
/*optional, boolean, whether it supports modeling mode configuration*/
"isSupportListLoading":true,
945
Device Network SDK (General) Developer Guide
See Also
JSON_ResponseStatus
F.21 JSON_Cap_RemarkList
JSON message about capability of adding remarks for videos by video ID
{
"RemarkList": {
"@size": 100,
/*maximum number of remarks can be added for once, the default value is 100*/
"trackId": ,
/*whether it supports file No.*/
"remarks": ,
/*whether it supports adding remarks for file*/
"recordName":{
/*optional, string, file name of video, audio, or picture*/
946
Device Network SDK (General) Developer Guide
"@min":1,
"@max":100
},
"recorderCode":{
/*optional, string, ID of device that collects data, which should be encrypted*/
"@min":1,
"@max":100
},
"policeCode":{
/*optional, string, ID of police that collects the data, which should be encrypted*/
"@min":1,
"@max":100
}
}
}
F.22 JSON_Cap_SSD
JSON message about SSD management capability
{
"SSD":{
"isSupportSSDUpgrade":true
/*optional, boolean, whether the device supports SSD firmware upgrade (related URI: /ISAPI/ContentMgmt/
storage/ssd/<ID>/upgrade?format=json)*/
}
}
F.23 JSON_Cap_TimeSearchCond
Capability message about searching for recording start and end time in JSON format
{
"TimeSearchCond": {
"@size": 1024,
/*the maximum number of search conditions that can be set*/
"channelID": {
/*required, int, channel No.*/
"@min": 1,
"@max": 256
/*value range of the channel No.*/
},
"streamType": {
/*optional, string, stream type, "main,sub,adaptive"*/
"@opt": [
"main",
"sub",
"adaptive"
]
947
Device Network SDK (General) Developer Guide
}
},
"TimeSearchResult": {
"@size": 1024,
/*the maximum number of results that can be returned*/
"channelID": {
/*required, int, channel No.*/
"@min": 1,
"@max": 256
/*value range of the channel No.*/
},
"streamType": {
/*optional, string, stream type, "main,sub,adaptive"*/
"@opt": [
"main",
"sub",
"adaptive"
]
},
"hasRecord": {
/*required, boolean, whether the video exists, startTime and endTime are valid only when the value of hasRecord is
"true"*/
"@opt": [
true,
false
]
},
"startTime": {
/*optional, string, recording start time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
"@min": 0,
"@max": 64
},
"endTime": {
/*optional, string, recording end time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
"@min": 0,
"@max": 64
}
}
}
F.24 JSON_CaputreDescription
JSON message about parameters of capturing picture in URL format
{
"CaputreDescription":{
"imageType":"JPEG",
/*required, string, picture type: "JEPG"*/
948
Device Network SDK (General) Developer Guide
"URLType":"cloudURL",
/*required, string, URL type: "cloudURL"-cloud storage or third party storage, "localURL"-device local storage*/
/*When the message is transmitted via ISUP protocol, the "URLType" should be "cloudURL"*/
}
}
F.25 JSON_CaputreResult
JSON message about picture capture result
{
"CaputreResult":{
"URLType":"cloudURL",
/*required, string, URL type: "cloudURL"-cloud storage or third party storage, "localURL"-device local storage*/
"imageURL":""
/*required, string, picture URL*/
}
}
F.26 JSON_CertificateRevocation
CertificateRevocation message in JSON format
{
"CertificateRevocation":{
"enabled": ,
/*required, boolean, whether to enable certificate expiry alarm*/
"expireAlarmTime": ,
/*required, integer, number of days to prompt in advance before the certificate is expired*/
"detecteTime":"",
/*required, time, detection time of certificate expiry alarm*/
"intervalTime":
/*required, integer, alarm interval, unit: day*/
}
}
F.27 JSON_CertificateRevocationCap
CertificateRevocationCap capability message in JSON format
{
"CertificateRevocationCap":{
"enabled":{
/*required, boolean, whether to enable certificate expiry alarm*/
"@opt":[true, false]
},
"expireAlarmTime":{
949
Device Network SDK (General) Developer Guide
/*required, integer, number of days to prompt in advance before the certificate is expired*/
"@min":1,
"@max":30,
"@def":7
},
"detecteTime":{
/*required, time, detection time of certificate expiry alarm*/
"@min":"00:00",
"@max":"24:00",
"@def":"10:00"
},
"intervalTime":{
/*required, integer, alarm interval, unit: day*/
"@min":1,
"@max":30,
"@def":1
}
}
}
F.28 JSON_ChangedStatus
ChangedStatus message in JSON format
{
ChangedStatus: {
"seq": ,
/*32-byte integer type, alarm No., for alarm acknowladge*/
"devStatus": ,
/*integer type, value of device status: 0-normal, 1-CPU usage, higher than 85%, 2-hardware error (e.g., serial port
exception)*/
"devCapHash": "";
/*global Hash value of device capability, which is generated by MD5, and encrypted by Base64; for NVR, the Hash
value of network camera should be the calculation source*
"zeroChanEnable": ,
/*boolean type, whether the channel-zero is enabled: true-yes, false-no*/
"cycleRecordEnable": true,
/*boolean type, whether to enable recoridng, true-yes, false-no*/
"chanChanged": […,…,…]
/*integer type, channel status changes, e.g., delete, edit, add, the Hash value of this channel changed*/
"hdChanged": […,…,…]
/*integer type, HDD status changes, e.g., delete, edit, add*/
"ChanStatus": [{
"chanNo": ,
/*integer type, channel No., read-only*/
"enable": 1,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"online": ,
/*required, integer type, online status: 0-offline, 1-online*/
"recordStatus ": ,
950
Device Network SDK (General) Developer Guide
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
"signal": ,
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"arming": ,
/*integer type, network camera arming status: 0-armed, 1-arming failed*/
}],
"HDStatus":[{
"hdNo": ,
/*required, integer type, HDD No., which starts from 1*/
"status": ,
/*required, integer type, HDD status: 0-activate, 1-sleep, 2-exception, 3-sleepy HDD error, 4-unformated, 5-
disconnected (for network HDD), 6-formatting*/
}],
"CapChanged": [{
"name": "",
/*required, root node of changed capability set*/
"chan": ,
/*channel No., it is required when transmitting channel capability; it is optional when transmitting device capability*/
"url": "/ISAPI/Thermal/channels/1/fireDetection/capabilities",
/*capability set URL, it is required for capability set based on ISAPI protocol*/
},
{
"name": "",
/*required, capability set name, which is usually the root node*/
"chan": 1,
/*channel No., it is required when transmitting channel capability; it is optional when transmitting device capability*/
"abilityType": 0x700,
/*capability type, it is required if the capability is not based on ISAPI protocol*/
}]
}
}
F.29 JSON_Characteristic
JSON message about device attribute code
{
"Characteristic": {
/*required, attribute code*/
"code": "+/"
/*required, string, device attribute code, value range: [1,128]; following characters in the quotes are supported:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"*/
}
}
951
Device Network SDK (General) Developer Guide
F.30 JSON_ClearingSpaceConfig
JSON message about HDD clearing parameters
{
"ClearingSpaceConfig":{
/*when the free space of HDD reaches the configured value of insufficientSpace, and if the value of
clearingOriginalData is true, the configured HDD space size will be cleared*/
"insufficientSpace": ,
/*required, int, HDD free space, which is used as the threshold to start clearing*/
"clearingOriginalData": ,
/*required, boolean, whether to enable clearing the original data*/
"clearingSpace":
/*required, int, space size to clear*/
}
}
F.31 JSON_CustomAudioID
JSON message about custom alarm sound ID
{
"customAudioID":
/*required, string, custom alarm sound ID, the value can be 1 to 3*/
}
F.32 JSON_CustomAudioTypeInfoList
JSON message about encoding format of custom audio file
{
"CustomAudioTypeInfoList":[{
/*encoding format list of custom audio file*/
"CustomAudioTypeInfo":{
/*encoding format of custom audio file*/
"channelID":1,
/*required, channel ID*/
"audioType":["OPUS", "G726"],
/*required, string,audio encoding format type: OPUS, G726; now supports analog channels only*/
"bitRate":64,
/*required, int,bit rate, unit: kbps*/
"samplingRate":48,
/*optional, int,sampling rate, unit: k*/
"samplingBits":10,
/*optional, int,sampling bits, unit: bits*/
"AudioChannelNum":1,
/*optional, int,the number of audio channels*/
952
Device Network SDK (General) Developer Guide
"AudioFileMaxCapacity":10
/*optional, int,the maximum size of audio file, unit: MB*/
}
}]
}
F.33 JSON_DataReconstruction
JSON message about disk data reconstruction parameters
{
"DataReconstruction":{
"dataType": "record",
/*required, string, reconstruction data type: "all", "record"*/
"diskID": [1,2],
/*optional, array of integers, disk ID for single disk mode*/
"IRAID": [1,2]
/*optional, array of integers, RAID ID for RAID mode*/
}
}
F.34 JSON_DiagnosedDataServerCap
JSON message about diagnostic server capability
{
"DiagnosedDataServerCap":{
/*required, diagnostic server capability*/
"id":{
"@min":1,
"@max":1
},
"protocol":{
/*required, string, transmission protocol: "FTP,SFTP"*/
"@opt":["FTP", "SFTP"]
},
"enabled":{
/*required, boolean, whether to enable*/
"@opt":[true, false]
},
"addressingFormatType":{
/*optional, string, address type: "ipaddress" (IP address), "hostname" (host name)*/
"@opt":["ipaddress", "hostname"]
},
"hostName":{
/*dependent, string, host name, the maximum length is 64 bytes; it is valid when the value of addressingFormatType
is "hostname"*/
"@min":1,
"@max":64
953
Device Network SDK (General) Developer Guide
},
"ipVersion":{
/*dependent, string, IP version: "ipv4", "ipv6"; it is valid when the value of addressingFormatType is "ipaddress"*/
"@opt":["ipv4", "ipv6"]
},
"portNo":{
/*optional, int, port No., value range: [1,65535]*/
"@min":1,
"@max":65535
},
"userName":{
/*required, string, user name, the maximum length is 32 bytes*/
"@min":0,
"@max":32
},
"password":{
/*string, write-only, password, the maximum length is 16 bytes*/
"@min":0,
"@max":16
},
"isSupportStartTime":true,
/*required, boolean, whether the device supports start time, i.e., uploads the diagnosis information and running logs
of device from the start time; the time is in ISO 8601 format*/
"isSupportEndTime":true,
/*required, boolean, whether the device supports end time., i.e., no longer uploads the diagnosis information and
running logs of device after end time; the time is in ISO 8601 format*/
"isSupportTest":true,
/*required, boolean, whether the device supports server test (related URI: /ISAPI/System/diagnosedData/server/test?
format=json)*/
"isSupportUpload":true,
/*required, boolean, whether the device supports uploading diagnosis information (such as running logs, 4G network,
MCU, and SOC information)*/
"consoleCommand":{
/*required, string, console command, the length is between 1 to 512 bytes*/
"@min":1,
"@max":512
},
"compressionKey":{
/*optional, string, the decompression password of uploaded diagnosis information in compression file; the length is
between 8 to 16 bytes; digits and letters are supported*/
"@min":8,
"@max":16
}
}
}
F.35 JSON_DiagnosedDataServerList
JSON message about diagnostic server configuration parameters.
954
Device Network SDK (General) Developer Guide
{
"DiagnosedDataServerList":[{
/*required, diagnostic server parameters*/
"id":1,
/*required, string, index*/
"protocol":"FTP",
/*required, string, transmission protocol: "FTP,SFTP"*/
"enabled":true,
/*required, boolean, whether to enable*/
"addressingFormatType":"ipaddress",
/*optional, string, address type: "ipaddress" (IP address), "hostname" (host name)*/
"hostName":"[Link]",
/*dependent, string, host name, the maximum length is 64 bytes; it is valid when the value of addressingFormatType
is "hostname"*/
"ipVersion":"ipv4",
/*dependent, string, IP version: "ipv4", "ipv6"; it is valid when the value of addressingFormatType is "ipaddress"*/
"ipV4Address":"[Link]",
/*dependent, string, IPv4 address; it is valid when the value of ipVersion is "ipv4", and addressingFormatType is
"ipaddress"*/
"ipv6Address":"fe80::884a:67cb:9b67:b3a0%15",
/*dependent, string, IPv6 address; it is valid when the value of ipVersion is "ipv6", and addressingFormatType is
"ipaddress"*/
"portNo":20,
/*optional, int, port No., value range: [1,65535]*/
"userName":"admin",
/*required, string, user name, the maximum length is 32 bytes; this node should be encrypted*/
"password":"admin",
/*string, write-only, password, the maximum length is 16 bytes; this node should be encrypted*/
"DiagnosedDataUpload":{
"consoleCommand":"qwertyuiopasdfghj",
/*required, string, write-only, console command, the length is between 1 to 512 bytes; this node should be
encrypted*/
"compressionKey":"qwertyuiopasdfghj",
/*required, string, the decompression password of uploaded diagnosis information in compression file; the length is
between 8 to 16 bytes; digits and letters are supported; this node should be encrypted*/
"startTime":"2017-06-10T13:30:00+08:00",
/*dependent, datetime, start time in ISO 8601 format, e.g., "2017-06-10T13:30:00+08:00"; device uploads the
diagnosis information and running logs of device from the start time*/
"endTime":"2017-06-10T13:30:00+08:00"
/*dependent, datetime, time in ISO 8601 format, e.g., "2017-06-10T13:30:00+08:00"; device no longer uploads the
diagnosis information and running logs of device after end time*/
}
}]
}
F.36 JSON_DoubleVerification
DoubleVerification message in JSON format
955
Device Network SDK (General) Developer Guide
{
"DoubleVerification":{
"enable": ""
/*optional, whether enables double verification, boolean*/
}
}
F.37 JSON_DownloadPackageStatus
DownloadPackageStatus message in JSON format
{
"DownloadPackageStatus":{
/*required, upgrade package download status*/
"status": "notDownload,downloading,pause,finish,incorrectPackage,hdOperationFailed",
/*required, string, download status: "notDownload"-not download, "downloading"-downloading, "pause"-paused,
"finish"-completed, "incorrectPackage"-incorrect upgrade package format, "hdOperationFailed"-HD operation failed*/
"total": "",
/*optional, float, upgrade package total size, unit: MB, corrects to one decimal place*/
"remain": "",
/*optional, float, remaining space, unit: MB, corrects to one decimal place*/
"speed": ""
/*optional, float, download speed, unit: KB/s, corrects to two decimal places*/
"remainTime": "",
/*optional, integer, estimated remaining time, unit: s*/
"progress": 0,
/*required, integer, progress, ranges from 0 to 100*/
}
}
F.38 JSON_EmailCertification
Enter a short description of your reference here (optional).
Enter the syntax information of your reference here (optional).
Enter the actual information in this section (optional).
Example
Enter an example to illustrate your reference here (optional).
F.39 JSON_EncryptFormat
EncryptFormat message in JSON format
{
"EncryptFormat":{
"password":"",
956
Device Network SDK (General) Developer Guide
F.40 JSON_EncryptVerfy
EncryptVerfy message in JSON format
{
"EncryptVerfy":{
"password":""
/*required, string, password, it will be encrypted according to the encryption vector*/
}
}
F.41 JSON_EPTZMode
EPTZMode message in JSON format
{
"EPTZMode":{
"mode":"",
/*required, modes supported by e-PTZ: "cruise"-patrol (PTZ supports preset, patrol, zoom, and eight directions),
"autoTrack"-automatic tracking*/
"AutoTrack":{
/*dependency, auto-tracking mode configuration*/
"sensitivity": ,
/*optional, integer, sensitivity*/
"detectionTarget":["human", "vehicle"],
/*detection target*/
"ReginonList":[{
"id": ,
/*required, rule ID*/
"Region":[{
/*required, rule area, the number of edges is between 3 and 10*/
"x": ,
/*required, float, X-coordinate, range: [0.000,1]*/
"y":
/*required, float, Y-coordinate, range: [0.000,1]*/
}]
}],
"FilterSize":{
/*optional, size filter of rectangle*/
"MaxTargetRect":{
"height": ,
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"width": ,
957
Device Network SDK (General) Developer Guide
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"x": ,
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"y":
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
},
"MinTargetRect":{
"height": ,
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"width": ,
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"x": ,
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"y":
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
}
}
}
}
}
F.42 JSON_EPTZModeCap
EPTZModeCap capability message in JSON format
{
"EPTZModeCap":{
"mode":{
/*required, modes supported by e-PTZ: "cruise"-patrol (PTZ supports preset, patrol, zoom, and eight directions),
"autoTrack"-automatic tracking*/
"@opt":["cruise", "autoTrack"]
},
"AutoTrackCap":{
/*optional, this node is returned when mode contains "autoTrack"*/
"sensitivity":{
/*optional, integer, sensitivity*/
"@min":0,
"@max":100
},
"detectionTarget":{
/*detection target*/
"@opt":["human", "vehicle", "all"]
},
"ReginonList":{
"id":{
/*required, rule ID*/
958
Device Network SDK (General) Developer Guide
"@min":1,
"@max":4
},
"Region":{
/*required, rule area, the number of edges is between 3 and 10*/
"number":{
/*required, supported number of edges*/
"@min":3,
"@max":10
},
"x":{
/*required, float, X-coordinate, range: [0.000,1]*/
"@min":0,
"@max":1
},
"y":{
/*required, float, Y-coordinate, range: [0.000,1]*/
"@min":0,
"@max":1
}
}
},
"FilterSize":{
/*optional, size filter of rectangle*/
"MaxTargetRect":{
"height":{
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"width":{
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"x":{
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
},
"y":{
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
}
},
"MinTargetRect":{
"height":{
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
959
Device Network SDK (General) Developer Guide
"@max":1
},
"width":{
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"x":{
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
},
"y":{
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
}
}
}
}
}
}
F.43 JSON_EventNotificationAlert_Alarm/EventInfo
EventNotificationAlert message with alarm or event information in JSON format.
{
"ipAddress": "",
/*required, device IPv4 address , string, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, device IPv6 address, string, the maximum size is 128 bytes*/
"portNo": ,
/*optional, device port No., integer32*/
"protocol": "",
/*optional, protocol type, "HTTP, HTTPS", string, the maximum size is 32 bytes*/
"macAddress": "",
/*optional, MAC address, string, the maximum size is 32 bytes, e.g., 01:17:24:45:D9:F4*/
"channelID": "",
/*optional, device channel No., integer32*/
"dateTime": "",
/*optional, string, alarm/event triggered or occurred time based on ISO8601, the maximum size is 32 bytes, e.g.,
2009-11-14T15:27Z*/
"activePostCount": "",
/*required, alarm/event frequency, integer32*/
"eventType": "",
/*required, alarm/event type, "captureResult, faceCapture,...", string, the maximum size is 128 bytes*/
"eventState": "",
960
Device Network SDK (General) Developer Guide
/*required, string, the maximum size is 32 bytes, durative alarm/event status: "active"-valid, "inactive"-invalid*/
"eventDescription": "",
/*required, event description, string, the maximum size is 128 bytes*/
"deviceID":"",
/*string type, device ID*/
"uuid":"",
/*string type, event UUID, which is used to uniquely identify an event, the standard UUID format is xxxxxxxx-xxxx-xxxx-
xxxx-xxxxxxxxxxxx*/
...
/*optional, for different alarm/event types, the nodes are different, see the message examples in different
applications*/
}
F.44 JSON_EventNotificationAlert_CertificateExpiryAlarmMsg
The certificate expiry alarm details are uploaded in JSON format of EventNotificationAlert message,
here shows an example.
Content-Type: multipart/form-data; boundary=MIME_boundary
--MIME_boundary
Content-Type: application/json
Content-Length:
{
"ipAddress":[Link],
"ipv6Address":"",
"portNo":80,
"protocol":"HTTP",
"macAddress":"01:17:24:45:D9:F4",
"channelID":1,
"dateTime":"2018-11-29T15:32:55+08:00",
"activePostCount":1,
"eventType":"certificateRevocation",
"eventState":"active",
"eventDescription":"Certificate Revocation Detection",
/*refer to the message JSON_EventNotificationAlert_Alarm/EventInfo for description details of the above nodes*/
"channelName":"ABC",
/*required, channel name (camera name)*/
"deviceID":"test0123",
/*optional, device ID, it is also the PUID and it must be returned when passing through ISAPI event by ISUP*/
"Result":[{
"customID":"",
/*required, string, custom certificate ID*/
"certificateType":"CA",
/*required, string, certificate type: "CA"-CA certificate, "client/server"-client or server certificate*/
"type":["securityLog"],
/*optional, function type: "HTTPS", "WebSocketS", "SDK_OVER_TLS", "SRTP", "securityLog", "ieee802.1x"*/
"status":"expiring",
/*optional, certificate status: "expiring"-expiring, "expired"-expired, "exceptional"-exceptional*/
"startDate":"2010-04-17",
961
Device Network SDK (General) Developer Guide
/*required, date, start date of the certificate expiry date, it is accurate to day*/
"endDate":"2010-04-17"
/*required, date, end date of the certificate expiry date, it is accurate to day*/
}]
}
--MIME_boundary--
See Also
JSON_EventNotificationAlert_Alarm/EventInfo
F.45 JSON_EventNotificationAlert_HDDBadSectorEventMsg
The event details of the HDD bad sector detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "hdBadBlock"-HDD bad sector detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD bad sector detection event", the maximum length is 128 bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"HDBadBlock":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
962
Device Network SDK (General) Developer Guide
F.46 JSON_EventNotificationAlert_HDDHighTemperatureEventMsg
The event details of the HDD high temperature detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "highHDTemperature"-HDD high temperature detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD high temperature detection event", the maximum length is 128
bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"HighHDTemperature":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
F.47 JSON_EventNotificationAlert_HDDImpactEventMsg
The event details of the HDD impact detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
963
Device Network SDK (General) Developer Guide
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "hdImpact"-HDD impact detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD impact detection event", the maximum length is 128 bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"HDImpact":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
F.48 JSON_EventNotificationAlert_HDDLowTemperatureEventMsg
The event details of the HDD low temperature detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
964
Device Network SDK (General) Developer Guide
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "lowHDTemperature"-HDD low temperature detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD low temperature detection event", the maximum length is 128
bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"LowHDTemperature":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
F.49 JSON_EventNotificationAlert_HDDSevereFaultEventMsg
The event details of the HDD severe fault detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "severeHDFailure"-HDD severe fault detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD severe fault detection event", the maximum length is 128 bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
965
Device Network SDK (General) Developer Guide
"SevereHDFailure":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
F.50 JSON_EventNotificationAlert_NetworkTrafficPrealarmMsg
JSON message about details of network traffic pre-alarm.
{
"ipAddress": "",
/*required, string, IPv4 address of security control device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of security control device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of security control device*/
"protocolType": "",
/*optional, string, protocol types: "HTTP,HTTPS,Ehome", the maximum size is 32 bytes*/
"macAddress": "",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. of the device that triggers alarm*/
"dateTime": "",
/*required, string, time of alarm trigger with the format of ISO8601, the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that an alarm has been uploaded*/
"eventType": "",
/*required, string, event type, here it should be set to "dataPrealarm"; the maximum size is 128 bytes*/
"eventState": "",
/*required, event status: "active"-triggered alarm, "inactive"-not triggered alarm, the maximum size is 32 bytes*/
"eventDescription": "",
/*required, string, event description*/
"deviceID": "",
/*optional, PUID, e.g., test0123*/
"DataPrealarm":{
/*req, traffic pre-alalrm event*/
"interfaceType":"",
/*required, string, network card type: "4g,wiredAndWireless"*/
"interfaceID":,
/*required, integer, network card ID*/
"packageType": "",
/*required, string, data plan type: "day"-daily plan, "month"-monthly plan, "year"-annual plan*/
"trafficValue": ,
/*required, float, data value in the plan, which should be accurate to three decimal places, unit: MB*/
"usedTrafficValue":
/*required, float, data usage, which should be accurate to three decimal places, unit: MB*/
}
}
966
Device Network SDK (General) Developer Guide
F.51 JSON_EventNotificationAlert_vibrationDetection
Message about alarm details of vibration detection in JSON format
{
"ipAddress": "",
/*required, string, IPv4 address of alarm device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of alarm device*/
"protocol": "",
/*optional, string, protocol type: "HTTP, HTTPS, EHome", it should be the same as the protocolType in /ISAPI/Event/
notification/httpHosts/<ID>, and the maximum size is 32 bytes. This node should be set to "HTTP" when the JSON
message is transmitted by SDK; it should be set to "EHome" when the JSON message is transmitted by ISUP; it should
be set to "HTTPS" when the transmission protocol is HTTPS*/
"macAddress": "",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, channel ID of the device that triggers alarm*/
"dateTime": "",
/*required, string, alarm triggering time in ISO8601 format, the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, times of the same alarm being uploaded*/
"eventType": "",
/*required, string, event type that triggers alarm, here it should be set to "vibrationDetection" (vibration detection),
the maximum size is 128 bytes*/
"eventState": "",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the maximum
size is 32 bytes*/
"eventDescription": "",
/*required, string, event description (e.g., vibration detection), the maximum size is 128 bytes*/
"channelName": " ",
/*optional, string, channel name (camera name), which should be the same as the channelName in /ISAPI/Streaming/
channels/<ID>*/
"deviceID": " ",
/*optional, device ID which is also the PUID, which should be returned in ISUP alarm and should be the same as the
deviceID in /ISAPI/System/Network/Ehome*/
"VibrationDetection": {
"sensitivity":
/*optional, int, sensitivity, value range: [0-100]*/
}
}
F.52 JSON_EventSearchCap
EventSearchCap message in JSON format
967
Device Network SDK (General) Developer Guide
{
"startTime": "2004-05-03T17:30:08Z",
/*required, start time, ISO8601_time, string*/
"endTime": "2004-05-03T17:30:08Z",
/*required, end time, ISO8601_time, string*/
"resultMaxNum": 100,
/*required, supported maximum number of searching, int*/
"channelIDLen":{
/*optional, channel ID length*/
"@min": ,
"@max":
},
"eventType":{
/*event type: studentStoodUp-student stands up, accessController-access controller, videoIntercom-video intercom,
OPTEX-OPTEX security control panel, Luminite-Luminite security control panel, GJD-GJD security control panel,
cameraDetector-detector, securityControlPanel-security control panel, multiple selections are separated by comma,
string*/
"@opt": "studentStoodUp, accessController,videoIntercom, OPTEX,Luminite,GJD, cameraDetector,
securityControlPanel",
"#text": "studentStoodUp"
},
"type":{
/*optional, channel type: video-video channel, IOT-IOT channel, if this node does not exist, it indicates video channel,
string*/
"@opt": "video,IOT",
"#text": "video"
},
"AccessController":{
/*optional*/
"eventType":{
/*optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": "",
"#text": ""
},
"nameLen":{
/*optional, name length*/
"@min": ,
"@max":
},
"cardNoLen":{
/*optional, card No. length*/
"@min": ,
"@max":
},
},
"VideoIntercom":{
/*optional*/
"eventType":{
/*optional, optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": "",
"#text": ""
},
968
Device Network SDK (General) Developer Guide
"nameLen":{
/*optional, name length*/
"@min": ,
"@max":
},
"cardNoLen":{
/*optional, card No. length*/
"@min": ,
"@max":
},
},
"OPTEX":{
/*optional*/
"eventType":{
/*optional, optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": "",
"#text": ""
},
},
"Luminite":{
/*optional*/
"eventType":{
/*optional, optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": "",
"#text": ""
},
},
"GJD":{
/*optional*/
"eventType":{
/*optional, optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": "",
"#text": ""
},
},
"CameraDetector":{
/*optional*/
"eventType":{
/*optional, optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": "",
"#text": ""
},
},
"SecurityControlPanel":{
/*optional, security control panel event*/
"eventType":{
/*optional, optional, event type, if this node does not exist, it indicates searching all supported events, string*/
"@opt": ""
},
"zoneNo":{
/*required, zone No., integer*/
"size": 1,
969
Device Network SDK (General) Developer Guide
F.53 JSON_EventSearchCond
EventSearchCond message in JSON format
{
"searchID": "",
/*required, string, unique record search ID.*/
"searchResultPosition": "",
/*required, initial position of search result in the list, integer, When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, the max. number of results for current search, int*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
"endTime": "",
/*required, end time, ISO8601_time, string*/
"choiceChannel": [{
/*optional*/
"channelID": "",
/*optional, channel ID,string*/
}],
"eventType": "",
/*required, event type: studentStoodUp-student stands up, accessController-access controller, videoIntercom-video
intercom, OPTEX-OPTEX security control panel, Luminite-Luminite security control panel, GJD-GJD security control
panel, cameraDetector-detector, securityControlPanel-security control panel, multiple selections are separated by
comma,string*/
"type": "video,IOT",
/*optional, channel type: video-video channel, IOT-IOT channel, if this node does not exist, it indicates video channel,
string*/
"AccessController":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
"name": "",
/*optional, name*/
"cardNo": "",
/*optional, card No.*/
},
"VideoIntercom":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
"name": "",
/*optional, name*/
970
Device Network SDK (General) Developer Guide
"cardNo": "",
/*optional, card No.*/
},
"OPTEX":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
},
"Luminite":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
},
"GJD":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
},
"CameraDetector":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
}
"SecurityControlPanel":{
"eventType": "",
/*optional, IoT event type, if this node does not exist, it indicates searching all supported events, string*/
"zoneNo": [1,2]
/*optional, zone No., it is valid when eventType values "zone", array, the sub type is integer*/
}
}
F.54 JSON_EventSearchResult
EventSearchResult message in JSON format
{
"responseStatusStrg": "",
/*optional, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*optional, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*optional, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"eventInfo": [{
"captureTime": "",
/*required, capture time, ISO8601_time, string*/
"channelID": "",
/*optional, camera ID, string*/
"channelName": "",
/*optional, camera name*/
"picUrl": "",
/*optional, picture URL, string*/
"subPicUrl": "",
/*optional, thumbnail URL, string */
971
Device Network SDK (General) Developer Guide
"eventType": "",
/*required, event type: studentStoodU-student stands up, videoIntercom-video intercom, string*/
"studentStoodUp":{
/*optional, student stand up event information*/
"studentsStoodUp_number": ""
/* optional, xs:integer, the number of students, who are standing up*/
},
"AccessController":{
"eventType ": "",
/*required, event type, string*/
"name": "",
/*optional, name*/
"cardNo": "",
/*optional, card No.*/
"cardType": "",
/*optional, card type: invalid-invalid, ordinary-normal card, disabled-card for the disabled,blacklist-card in blacklist,
patrol-patrol card, super-super card, guest-visitor card, remove-removed card*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
}]
},
"VideoIntercom":{
"eventType ": "",
/*required, event type, string*/
"name": "",
/*optional, name*/
"cardNo": "",
/*optional, card No.*/
"cardType": "invalid,ordinary,disabled,blacklist,patrol,super,guest,remove",
/*optional, card type: invalid-invalid, ordinary-normal card, disabled-card for the disabled,blacklist-card in blacklist,
patrol-patrol card, super-super card, guest-visitor card, remove-removed card*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
}]
},
"OPTEX":{
"eventType ": "",
/*required, event type, string*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
972
Device Network SDK (General) Developer Guide
}]
},
"Luminite":{
"eventType ": "",
/*required, event type, string*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
}]
},
"GJD":{
"eventType ": "",
/*required, event type, string*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
}]
},
"CameraDetector":{
"eventType ": "",
/*required, event type, string*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
}]
},
"SecurityControlPanel":{
"eventType ": "",
/*required, event type, string*/
"videoChannelInfo": [{
/*optional, video channel information*/
"videoChannel": "",
/*required, video channel No., integer*/
"picUrl": "",
/*optional, picture URL, string*/
}]
"zoneNo": "",
/*optional, zone No., it is valid when eventType values "zone", integer*/
"code":1103,
/*optional, CID event No., it is valid when eventType values "zone", integer*/
"zoneName": ""
/*optional, zone name, string*/
}
973
Device Network SDK (General) Developer Guide
}]
}
F.55 JSON_EZVIZSecretKey
EZVIZSecretKey message in JSON format
{
"EZVIZSecretKey":{
/*required, verificaiton code for Hik-Connect, string, sensitive information should be encrypted, the string length
ranges from 0 to 64. E.g., 34020000002000000001*/
"secretKey": ""
}
}
F.56 JSON_EZVIZQRCode
JSON message about Hik-Connect QR code
{
"EZVIZQRCode":{
"QRCode":""
/*required, string, Hik-Connect QR code string, the maximum length is 1024 bytes*/
}
}
F.57 JSON_FocusStatus
JSON message about focus status
{
"focusStatus":"success",
/*required, string, focus status: "success", "failed", "working" (focusing)*/
"motorMovementType":"manual"
/*optional, string, motor movement type: "manual", "auto" (automatic), "armingLocation" (arming location)*/
}
F.58 JSON_GetCustomAudio
JSON Message about getting the custom alarm audio file
{
"CustomAudioInfo": {
"CustomAudioList":[{
974
Device Network SDK (General) Developer Guide
F.59 JSON_GPSCalibratation
Message about configuration parameters of a single GPS calibration point in JSON format
{
"GPSCalibratation":{
"id": ,
/*optional, int, calibration point ID, which is used for parsing in upper layer and cannot be configured*/
"calibratated":,
/*optional, boolean, calibration status*/
"longitude":,
/*required, float, longitude, accurate to 6 decimal places*/
"latitude":,
/*required, float, latitude, accurate to 6 decimal places*/
"x":,
/*required, float, x-coordinate, accurate to 6 decimal places*/
"y":
/*required, float, y-coordinate, accurate to 6 decimal places*/
}
}
F.60 JSON_GPSCalibratationCap
Message about GPS calibration capability in JSON format
{
"GPSCalibratationCap":{
/*required, GPS calibration configuration capability*/
"enabled": "true,false",
/*required, boolean, whether the channel supports GPS calibration configuration*/
"id": {
/*required, int, calibration No.*/
"@min":1,
"@max":64,
"@text":1
},
"Longitude":{
/*required, float, longitude, accurate to 6 decimal places*/
975
Device Network SDK (General) Developer Guide
"@min":-180.000000,
"@max":180.000000,
"@text":56.000000
},
"Latitude":{
/*required, float, latitude, accurate to 6 decimal places*/
"@min":-90.000000,
"@max":90.000000,
"@text":32.000000
},
"x":{
/*required, float, x-coordinate, accurate to 6 decimal places*/
"@min":0.000000,
"@max":1.000000,
"@text":1.000000
},
"y":{
/*required, float, y-coordinate, accurate to 6 decimal places*/
"@min":0.000000,
"@max":1.000000,
"@text":1.000000
},
"showEnabled": "true,false",
/*optional, boolean, whether to enable calibration stream overlay, if it is set to "true", calibration identification will be
displayed on the live view screen*/
"calibratated":"true,false",
/*optional, boolean, calibration status*/
"isSupportCalibrationStatus":true
/*optional, boolean, whether it supports getting all the calibration status (related URI: /ISAPI/System/
GPSCalibratation/channels/<ID>/points/status?format=json)*/
}
}
F.61 JSON_GPSCalibratationList
Message about configuration parameters of multiple GPS calibration points in JSON format
{
"GPSCalibratationList":[{
"id": ,
/*required, int, calibration point ID*/
"calibratated":,
/*optional, boolean, calibration status*/
"longitude":,
/*required, float, longitude, accurate to 6 decimal places*/
"latitude":,
/*required, float, latitude, accurate to 6 decimal places*/
"x":,
/*required, float, x-coordinate, accurate to 6 decimal places*/
"y":
976
Device Network SDK (General) Developer Guide
F.62 JSON_GPSCalibratationStatus
Message about GPS calibration status in JSON format
{
"GPSCalibratationStatus": {
/*required, GPS calibration status*/
"status": ""
/*required, string, GPS calibration status, calib-calibrated already,noCalib-Not been calibrated yet*/
}
}
F.63 JSON_GPSInfo
JSON message about GPS information
{
"GPSInfo":{
/*required, actual GPS information*/
"longitude": ,
/*required, float, longitude, range: [-180.000000,180.000000], corrects to 6 decimal places*/
"latitude":
/*required, float latitude, range: [-90.000000,90.000000], corrects to 6 decimal places*/
}
}
F.64 JSON_GPSVerification_ResultInfo
JSON message about calibration verification result information
{
"ResultInfo":{
/*required, calibration verification result information*/
"id": ,
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"longitude": ,
/*required, float, longitude, corrects to 6 decimal places, range:[-180.000000,180.000000]*/
"latitude":
/*required, float, latitude, corrects to 6 decimal places, range: [-90.000000,90.000000]*/
}
}
977
Device Network SDK (General) Developer Guide
F.65 JSON_GPSVerification_ResultInfoList
JSON message about calibration verification results
{
"ResultInfoList":[{
/*required, verification results information*/
"id": ,
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"longitude": ,
/*required, float, longitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-180.000000,180.000000]*/
"latitude":
/*required, float, latitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-90.000000,90.000000]*/
}]
}
F.66 JSON_GyroVerify
JSON message about gyroscope calibration parameters
{
"GyroVerify": {
/*required, gyroscope calibration*/
"enabled":
/*required, whether to enable gyroscope calibration: true-yes, false-no*/
}
}
F.67 JSON_GyroVerifyCap
JSON message about gyroscope calibration capability.
{
" GyroVerifyCap":{
"enabled":{
/*required, whether to enable gyroscope calibration*/
"@opt": [true,false],
"@def":false
}
}
}
978
Device Network SDK (General) Developer Guide
F.68 JSON_GuideConfig
GuideConfig message in JSON format
{
"GuideConfig": {
"GuideStep": [{
/*required, configuration steps of quick setup instruction*/
"stepIndex": ,
/*required, integer, the maximum supported index*/
"StepFunction": {
/*required, string, instruction functions*/
"channelID": ,
/*optional, integer, channel number*/
"type": ""
/*required, "masterSlaveTracking" (linkage calibration, corresponding URL: /ISAPI/MasterSlaveTracking/channels/<ID>/
slaveCameraCalibrating/capabilities), "mixedTargetDetection" (multi-target type detection, corresponding URL:/ISAPI/
Intelligent/channels/<ID>/mixedTargetDetection/capabilities?format=json), eagleFocusing (rapid focus, corresponding
URL: /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities)*/
},
"status": "unfinished"
/*required, string, instruction status, whether the single configuration has completed*/
}],
"guideStatus": "unfinished"
/*required, string, instruction overall status, whether all configurations have completed*/
}
}
F.69 JSON_GuideConfigCap
GuideConfigCap message in JSON format
{
"GuideConfigCap": {
"GuideStep": {
/*required, configuration steps of quick setup instruction*/
"stepIndexNum": ,
/*required, integer, the maximum supported index*/
"StepFunction": {
/*required, string, instruction functions*/
"channels": ,
/*optional, integer, channel number*/
"type": {
"@opt": ["masterSlaveTracking", "mixedTargetDetection", "eagleFocusing"]
/*required, "masterSlaveTracking" (linkage calibration, corresponding URL: /ISAPI/MasterSlaveTracking/channels/<ID>/
slaveCameraCalibrating/capabilities), "mixedTargetDetection" (multi-target type detection, corresponding URL:/ISAPI/
Intelligent/channels/<ID>/mixedTargetDetection/capabilities?format=json), eagleFocusing (rapid focus, corresponding
URL: /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities)*/
},
979
Device Network SDK (General) Developer Guide
"guideStatus": {
/*required, string, instruction status, whether the instruction configuration has completed*/
"@opt": ["finished", "unfinished"]
}
},
"MasterSlaveTrackingCap": {
/*optional, dep:StepFunction, linkage calibration capability*/
"enabled": {
/*required, boolean, whether to enable, the default value is "true"*/
"@opt": "true,false",
"@def": "true"
},
"CalibratingMode": {
/*required, string, calibration mode*/
"@opt": "auto",
"@def": "auto"
}
},
"MixedTargetDetectionCap": {
/*optional, dep:StepFunction, capability of multi-target type detection*/
"enabled": {
/*required, boolean, whether to enable, the default value is "true"*/
"@opt": "true,false",
"@def": "true"
},
"RuleInfoCap": {
/*required, rule information*/
"maxSize": 1,
/*required, integer, number of supported rules*/
"ruleID": {
/*required, integer, rule ID*/
"@min": 1,
"@max": 1
},
"RegionCap": {
/*required, rule region capability*/
"minSize": 3,
/*required, integer, the minimum region edges*/
"maxSize": 10,
/*required, integer, the maximum region edges*/
"x": {
/*required, float, X-coordinate, range: from 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
},
"y": {
/*required, float, Y-coordinate, range: from 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
}
980
Device Network SDK (General) Developer Guide
}
}
},
"EagleFocusingCap": {
/*optional, dep:StepFunction, rapid focus capability*/
"focusMode": {
/*required, string, focus mode*/
"@opt": "auto",
"@def": "auto"
},
"controlEnabled": {
/*required, boolean, whether to enable rapid focus, corresponding URL: /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/
control/capabilities*/
"@opt": "true,false",
"@def": "true"
}
}
}
}
}
F.70 JSON_HddFormatList
HddFormatList message in JSON format
{
"HddFormatList": [{
/*required, HDD list to be formatted*/
"HddFormat": {
/*required, initialization parameter of a HDD*/
"id": ,
/*required, string type, ID of HDDs that specified to be formatted*/
"formatType": ""
/*optional, string type, formatting type: FAT32, EXT4; this node is only available for SD card; if this node does not exist,
the formatting type is the default type "FAT32"*/
}
}]
}
F.71 JSON_HeatMap_CollectionDescription
CollectionDescription message in JSON format
{
"CollectionDescription":{
"searchID": "",
/*required,string,unique search ID, the content of searchID remains unchanged when search condition remains
unchanged.*/
"searchResultPosition": "",
981
Device Network SDK (General) Developer Guide
/*required, initial position of search result list, integer type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, number of matched records per search, integer type*/
"timeSpanList": [{
/*required, time interval list*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
"endTime": "",
/*required, end time, ISO8601_time, string*/
}],
"channels": "",
/*optional, sub type, array, integer32, related channel No., array. If the channel information is not specified, it
indicates searching all channels*/
"statisticsType": "PDC",
/*required, string, statistic type: OLD-heat map, PDC-people counting, DURATION-people dwell time, INTERSECTION-
people counting of intersection*/
}
}
F.72 JSON_HeatMap_CollectionDescriptionCap
CollectionDescriptionCap message in JSON format
{
"CollectionDescriptionCap":{
"timeRange": "",
/*required, supported time range for replenishment, unit: day, integer*/
"timeSpanMaxNum": "",
/*required, the maximum number of time buckets supported for one time searching, integer*/
"resultMaxNum": "",
/*required, the maximum number of items can be searched, integer*/
"channelMaxNum": "",
/*required, the maximum number of channels supported for one time search, integer*/
"statisticsType":{
/*required, string,statistics type: OLD-heat map, PDC-people counting statistics, DURATION-people staying time
duration, INTERSECTION-people counting of intersection*/
"@opt": "OLD,PDC,DURATION,INTERSECTION"
}
}
}
F.73 JSON_HeatMap_CollectionResult
CollectionResult message in JSON format
{
"CollectionResult":{
"responseStatusStrg": "",
982
Device Network SDK (General) Developer Guide
/*required, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*required, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*required, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"targets": [{
/*optional, people gathering result*/
"startTime": "",
/*required, start time*/
"endTime": "",
/*required, end time*/
"channel": "",
/*required, integer, channel No.*/
"statisticsType": "",
/*required, string, statistic type: OLD-heat map, PDC-people counting, DURATION-people staying time, INTERSECTION-
people counting of intersection*/
"HeatMapValue": [{
"heatmapDataType": "",
/*optional, string,heat map data type, it is valid only when statisticsType values "PDC". "PDC_stayNum"-the number
of people dwell in the image, "PDC_leaveNum"-the number of exiting people in the image*/
"maxHeatMapValue": ,
/*required, integer, the max. heat value, 4-byte*/
"minHeatMapValue": ,
/*required, integer,the min. heat value, 4-byte*/
"timeHeatMapValue": ,
/*required, integer,the average heat value, 4-byte*/
"lineValue": ,
/*required, integer,row value, 4-byte*/
"columnValue": ,
/*required, integer,column value, 4-byte*/
"curNumber": ,
/*optional, integer,the number of current people, it is valid only when statisticsType values "PDC"*/
"leaveNumber": ,
/*optional, integer,the number of exiting people, it is valid only when statisticsType values "PDC"*/
"totalTime": ,
/*optional, integer,total dwell time, it is valid only when statisticsType values "DURATION"*/
}],
"heatmapURL": "",
/*optional, string,URL of pixel data for heat map image, it is valid when statisticsType values "OLD", "DURATION" or
"INTERSECTION"*/
"PDC_stayURL": "",
/*optional, string,URL of pixel data for dwell people in heat map image, it is valid when statisticsType values "PDC"*/
"PDC_leaveURL": "",
/*optional, string,URL of pixel data for exiting people, it is valid when statisticsType values "PDC"*/
"arrayUnitType": ""
/*optional, string,matrix unit data type (each pixel data type of matrix information): "byte"-a byte, "short"-2 bytes,
"int"–four bytes*/
}]
}
}
983
Device Network SDK (General) Developer Guide
F.74 JSON_id
id message in JSON format
{
"id": "",
/*optional, integer, user ID, it returns when double verification user is added*/
}
F.75 JSON_ImportCustomAudio
JSON message about information of custom alarm audio file to be imported
{
"CustomAudioInfo": {
/*required, related information about custom alarm audio file*/
"customAudioName": "",
/*required, string, custom alarm audio file name, the maximum size is 24 bytes*/
"AudioType":"AI",
/*optional, string, audio file type: AI-AI audio file*/
"isCover":false
/*optional, boolean, whether to cover the audio file with same name: true-yes, false-no (default)*/
}
}
----------------------------7e13971310878
984
Device Network SDK (General) Developer Guide
F.76 JSON_IntelligentSearchCap
JSON message about intelligent search capability
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode":1,
/*required, int, status code*/
"statusString":"",
/*required, string, status description*/
"subStatusCode":"",
/*required, string, sub status code*/
"errorCode":1,
/*optional, int, error code, this node is required when statusCode is not 1 and it corresponds to subStatusCode*/
"errorMsg":"ok",
/*optional, string, error details, this node is required, when statusCode is not 1 and it can be error details about a
specific parameter*/
"startTime":"2004-05-03T17:30:08+08:00",
/*required, string, start time in ISO8601 time format. This node only indicates that the device supports this field*/
"endTime":"2004-05-03T17:30:08+08:00",
/*required, string, end time in ISO8601 time format. This node only indicates that the device supports this field*/
"resultMaxNum":100,
/*required, int, supported maximum number of results that can be searched*/
"channelIDLen":{
/*optional, camera ID length*/
"min":1,
"max":32
},
"channelNameLen":{
/*optional, camera name length*/
"min":1,
"max":32
},
"streamType": "realtime,historyvideo,localvideo",
/*optional, string, streaming type, "realtime,historyvideo,localvideo"*/
"targetRect":{
/*required, target frame*/
"height":{
"min":1,
"max":100
},
"width":{
"min":1,
985
Device Network SDK (General) Developer Guide
"max":100
},
"x":{
"min":1,
"max":100
},
"y":{
"min":1,
"max":100
}
},
"picUrlLen":{
/*required, URL length of the large picture*/
"min":1,
"max":128
},
"subPicUrlLen": {
/*required, length of the thumbnail URL*/
"min": 1,
"max": 1
},
"targetID": {
/*optional, string, linkage ID between face and human body*/
"min": 1,
"max": 1
},
"targetType":"vehicle",
/*string, search object type*/
"targetSize": "",
/*optional, string, target size*/
"direction": "",
/*optional, string, target direction*/
"speed": "",
/*optional, string, target speed*/
"ageGroup":"",
/*optional, string, age*/
"gender":"",
/*optional, string, gender, string, gender*/
"glass":"",
/*optional, string, wear glasses or not*/
"bag":"",
/*optional, string, whether with bag or not*/
"hat":"",
/*optional, string, whether with hat or not*/
"mask":"",
/*optional, string, whether with mask or not*/
"jacket": "",
/*optional, string, jacket type*/
"trousersType":"",
/*optional, string, trousers type*/
"hairStyle":"",
/*optional, string, hair style*/
986
Device Network SDK (General) Developer Guide
"jacketColor":"",
/*optional, string, jacket color*/
"trousersColor":"",
/*optional, string, trousers coloe*/
"ride":"",
/*optional, string, ride a bike or not*/
"things":"",
/*optional, string, whether with handbag or not*/
"cyclingType":"",
/*optional, string, vehicle type*/
"cyclingPersonNumber":"",
/*optional, string, number of passengers*/
"isSupportLicense":true,
/*required, boolean type, whether it supports license plate number*/
"plateType":"unknown,92TypeCivil,arm,upDownMilitay,92TypeArm,leftRightMilitay,
02TypePersonalized,yellowTwoLine,
04NewMilitay,embassy,oneLineArm,twoLineArm,yellow1225FarmVehicle,green1325FarmVehicle,yellow1325FarmVehi
cle,motorola,coach,tempTravl,trailer,consulate,hongKongMacao,tempEntry,civilAviation,newEnergy",
/*optional, string, license plate type: license plate type: "unknown", "92TypeCivil"-92-style civil vehicle, "arm"-police
vehicle, "upDownMilitay"-military vehicle (top-bottom type), "92TypeArm"-92-style police vehicle, "leftRightMilitay"-
military vehicle (left-right type), "02TypePersonalized"-02-style customized vehicle, "yellowTwoLine"-yellow two-line
rear license plate, "04NewMilitay"-04-style new military vehicle, "embassy"-embassy vehicle, "oneLineArm"-new
armed police vehicle (one-line), "twoLineArm"-new armed police vehicle (two-line), "yellow1225FarmVehicle"-yellow
agricultural vehicle with 1225 structure, "green1325FarmVehicle"-green agricultural vehicle with 1325 structure,
"yellow1325FarmVehicle"-yellow agricultural vehicle with 1325 structure, "motorola"-motorcycle, "coach"-driver-
training vehicle, "tempTravl"-vehicle with temporary license plate, "trailer"-trailer, "consulate"-consular vehicle,
"hongKongMacao"-vehicle entering and leaving Hong Kong/Macao, "tempEntry"-temporary entry vehicle,
"civilAviation"-civil aviation license plate, "newEnergy"-new energy license plate. Multiple types should be separated
by commas*/
"vehicleColor":"white,silver,gray,black,red,deepBlue,blue,yellow,green,brown,pink,purple,deepGray,cyan,orange,unkn
own",
/*optional, string, vehicle color: "unknown", "white", "silver"-silvery, "gray", "black", "red", "deepBlue"-dark blue,
"blue", "yellow", "green", "brown", "pink", "purple", "deepGray"-dark gray, "cyan", "orange". Multiple colors should
be separated by commas*/
"plateColor":"white,yellow,blue,black,green,civilAviationBlack,civilAviationGreen,other",
/*optional, string, license plate color: "white", "yellow", "blue", "black", "green", "civilAviationBlack"-civil aviation
black, "civilAviationGreen"-civil aviation green, "0xff" or "other"-other color, "unknown"-unrecognized. Multiple colors
should be separated by commas*/
"vehicleType":"largeBus,truck,vehicle,van,buggy,pedestrian,twoWheelVehicle,threeWheelVehicle,SUVMPV,mediumBus
,motorVehicle,nonmotorVehicle,smallCar,miniCar,pickupTruck,unknown",
/*optional, string, vehicle type: "largeBus"-large-sized bus, "truck"-truck, "vehicle"-salon car, "van"-minivan, "buggy"-
light truck, "pedestrian", "twoWheelVehicle"-two wheeler, "threeWheelVehicle"-tricycle, "SUVMPV"-SUV/MPV,
"mediumBus"-middle-sized bus, "motorVehicle"-motor vehicle (it will be transformed to "vehicle" (salon car) in the
platform), "nonmotorVehicle"-non-motor vehicle (it will be transformed to "threeWheelVehicle" (tricycle) in the
platform), "smallCar"-small sedan (it will be transformed to "vehicle" (salon car) in the platform), "miniCar"-mini
sedan (it will be transformed to "vehicle" (salon car) in the platform), "pickupTruck"-pick-up truck, "unknown".
Multiple types should be separated by commas*/
"isSupportVehicleLogo":true,
/*optional, boolean type, whether it supports vehicle parent brand*/
"isSupportvehicleSubLogo":true,
987
Device Network SDK (General) Developer Guide
988
Device Network SDK (General) Developer Guide
/*optional, string, whether the heavy truck is covered with back cover*/
"label": "",
/*optional, string, whether there is inspection label detected*/
"plateRecogRegionIDNum":
/*optional, number of IDs of the license plate recognition region*/ {
"min": 1,
"max": 1
},
"discuss": {
/*optional, discussion*/
"confidence": 99.99990,
/*optional, float, confidence*/
"value": ""
/*optional, discussion type, "unknown", "no", "yes"*/
},
"channelMaxNum":1,
/*required, integer type, maximum number of channels that support simultaneous search*/
"supportSearchByUTC":true
/*optional, boolean type, whether it supports searching by UTC*/
"linkFaceBodyId": {
"@min": 0,
"@max": 64
},
/*optional, linkage ID between human face and body, the maximum length is 64 bytes*/
"sortType": {
/*optional, string, sorting type: similarity-by similarity(by default), time-by time, the maximum length is 32 bytes*/
"@opt":["similarity", "time"]
},
"plateCategory": {
/*optional, additional information of license plate*/
"@min": 0,
"@max": 0
}
}
F.77 JSON_IntelligentSearchCondition
JSON message about intelligent search conditions
{
"searchID":"",
/*required, string, search ID. The content of searchID remains unchanged if the search conditions remain unchanged.
This node is used to check the same search. When the device performance is limited, you can search asynchronously
by applying conditions with the same searchID several times and getting the search progress*/
"searchResultPosition": ,
/*required, int, the start position of the search result in the result list. When there are multiple records and you
cannot get all search results at a time, you can search for the records after the specified position next time*/
"maxResults": ,
/*required, int, maximum number of search results obtained this time*/
"startTime":"",
989
Device Network SDK (General) Developer Guide
990
Device Network SDK (General) Developer Guide
"hID":"",
/*required, string, person ID, the maximum length is 32 bytes*/
"name":"",
/*required, string, name of the person, the maximum length is 32 bytes*/
"linkFaceBodyId":""
/*optioal, linkage ID between human face and body, the maximum length is 64 bytes*/
},
"vehicleInfo ":{
/*this node is valid when targetType is "vehicle"*/
"license":"",
/*optional, string, license plate number*/
"plateCategory": "",
/*optional, additional information of license plate*/
"plateType":"",
/*optional, string, license plate type: license plate type: "unknown", "92TypeCivil"-92-style civil vehicle, "arm"-police
vehicle, "upDownMilitay"-military vehicle (top-bottom type), "92TypeArm"-92-style police vehicle, "leftRightMilitay"-
military vehicle (left-right type), "02TypePersonalized"-02-style customized vehicle, "yellowTwoLine"-yellow two-line
rear license plate, "04NewMilitay"-04-style new military vehicle, "embassy"-embassy vehicle, "oneLineArm"-new
armed police vehicle (one-line), "twoLineArm"-new armed police vehicle (two-line), "yellow1225FarmVehicle"-yellow
agricultural vehicle with 1225 structure, "green1325FarmVehicle"-green agricultural vehicle with 1325 structure,
"yellow1325FarmVehicle"-yellow agricultural vehicle with 1325 structure, "motorola"-motorcycle, "coach"-driver-
training vehicle, "tempTravl"-vehicle with temporary license plate, "trailer"-trailer, "consulate"-consular vehicle,
"hongKongMacao"-vehicle entering and leaving Hong Kong/Macao, "tempEntry"-temporary entry vehicle,
"civilAviation"-civil aviation license plate, "newEnergy"-new energy license plate. If this node is not returned, it
indicates no limit*/
"vehicleColor":"",
/*optional, string, vehicle color: "unknown", "white", "silver"-silvery, "gray", "black", "red", "deepBlue"-dark blue,
"blue", "yellow", "green", "brown", "pink", "purple", "deepGray"-dark gray, "cyan", "orange". Multiple colors should
be separated by commas. If this node is not returned, it indicates no limit*/
"vehicleType":"",
/*optional, string, vehicle type: "largeBus"-large-sized bus, "truck"-truck, "vehicle"-salon car, "van"-minivan, "buggy"-
light truck, "pedestrian", "twoWheelVehicle"-two wheeler, "threeWheelVehicle"-tricycle, "SUVMPV"-SUV/MPV,
"mediumBus"-middle-sized bus, "unknown". If this node is not returned, it indicates no limit*/
"vehicleLogo": ,
/*optional, int, vehicle parent brand. If this node is not returned, it indicates no limit*/
"vehicleSubLogo": ,
/*optional, int, vehicle sub brand. If this node is not returned, it indicates no limit*/
"vehicleModel": ,
/*optional, int, vehicle model year. If this node is not returned, it indicates no limit*/
"plateColor":"",
/*optional, string, license plate color: "white", "yellow", "blue", "black", "green", "civilAviationBlack"-civil aviation
black, "civilAviationGreen"-civil aviation green, "0xff" or "other"-other color. If this node is not returned, it indicates no
limit*/
"pilotSafebelt":"",
/*optional, string, whether the driver buckled up. If this node is not returned, it indicates no limit*/
"pilotSunvisor":"",
/*optional, string, whether the driver's sun visor is pulled down. If this node is not returned, it indicates no limit*/
"vicePilotSafebelt":"",
/*optional, string, whether the front passenger buckled up*/
"vicePilotSunvisor":"",
/*optional, string, whether the front passenger's sun visor is pulled down*/
"uphone":""
991
Device Network SDK (General) Developer Guide
992
Device Network SDK (General) Developer Guide
"hat": "",
/*optional, string, whether to display hat*/
"mask": "",
/*optional, string, whether to display mask*/
"jacketType": "",
/*optional, string, whether to display jacket type*/
"hairStyle": "",
/*optional, string, whether to display hairstyle*/
"jacketColor": "",
/*optional, string, whether to display jacket color*/
"cyclingType": "",
/*optional, string, whether to display cycling type*/
"cyclingPersonNumber": ""
/*optional, string, whether to display number of people cycling*/
},
"threeWheelVehicle": {
/*dependent, this node is valid only when the value of targetType is "threeWheelVehicle"*/
"ageGroup": "",
/*optional, string, whether to display age group*/
"gender": "",
/*optional, string, whether to display gender*/
"glass": "",
/*optional, string, whether to display glasses*/
"bag": "",
/*optional, string, whether to display back bag*/
"hat": "",
/*optional, string, whether to display hat*/
"mask": "",
/*optional, string, whether to display mask*/
"jacketType": "",
/*optional, string, whether to display jacket type*/
"hairStyle": "",
/*optional, string, whether to display hairstyle*/
"jacketColor": "",
/*optional, string, whether to display jacket color*/
"cyclingPersonNumber": ""
/*optional, string, whether to display number of people cycling*/
}
}
F.78 JSON_IntelligentSearchResult
JSON message about intelligent search results
{
"requestURL":"",
/*required, string type, request URL*/
"statusCode": ,
/*required, int type, status code*/
"statusString":"",
993
Device Network SDK (General) Developer Guide
994
Device Network SDK (General) Developer Guide
995
Device Network SDK (General) Developer Guide
996
Device Network SDK (General) Developer Guide
997
Device Network SDK (General) Developer Guide
"vehicleState": "",
/*optional, string, license plate status*/
"pdvs": "",
/*optional, string, whether there are people sticking out of the sunroof*/
"vehicleHead": "",
/*optional, string, license plate recognition direction*/
"pendant": "",
/*optional, string, whether there is window hangings detected*/
"temporaryLicense": "",
/*optional, string, whether it is a temporary license plate*/
"tricycleCanopy": "",
/*optional, string, whether there is a hood on the tricycle*/
"decoration": "",
/*optional, string, whether there is decoration detected*/
"tissueBox": "",
/*optional, string, whether there is tissue box detected*/
"card": "",
/*optional, string, whether it is with cards*/
"cardNum": ,
/*optional, int, number of cards*/
"cardType": [{
/*optional, array, card type*/
"value": ""
/*optional, string, value of different card types*/
}],
"copilot": "",
/*optional, string, whether there is a person in the co-driver room*/
"frontChild": "",
/*optional, string, whether the co-driver is with baby in arm*/
"muckTruck": "",
/*optional, string, whether it is a dump truck*/
"sunroof": "",
/*optional, string, whether it is with a sunroof*/
"luggageRack": "",
/*optional, string, whether it is with a luggage rack*/
"vehicleSprayPainted": "",
/*optional, string, whether the vehicle is painted*/
"spareTire": "",
/*optional, string type, whether it is with a spare tire*/
"coverPlate": "",
/*optional, string, whether the heavy truck is covered with back cover*/
"label": "",
/*optional, string, whether there is inspection label detected*/
"labelNum": ,
/*optional, int, number of labels*/
"labelPosition": [{
/*optional, label position*/
"height": ,
/*required, float, height*/
"width": ,
/*required, float, width*/
"x": ,
998
Device Network SDK (General) Developer Guide
999
Device Network SDK (General) Developer Guide
"hairStyle": "",
/*optional, string, whether to display hairstyle*/
"jacketColor": "",
/*optional, string, whether to display jacket color*/
"cyclingType": "",
/*optional, string, whether to display cycling type*/
"cyclingPersonNumber": ""
/*optional, string, whether to display number of people cycling*/
},
"hunmanID": "",
/*optional, string, face picture library ID*/
"humanURL": "",
/*optional, string, face picture URL*/
"name": "",
/*optional, string, name of the student*/
"ClassRegions": [{
/*optional, coordinates of the people in the classroom*/
"x": ,
"y":
}]
}]
}
F.79 JSON_IOT_ChannelInfo
ChannelInfo message in JSON format
{
"ChannelInfo":{
"channel": "",
/*required, channel No., it should be returned when the channel is added, integer*/
}
}
F.80 JSON_IOT_ChannelInfoList
ChannelInfoList message in JSON format
{
"ChannelInfoList": [{
/*optional, channel information, if this node does not exist, it indicates all channels, array*/
"channel": "",
/*required, channel No., integer*/
"type": ""
/*required, channel type: "video"-video channel, "IOT"-IoT channel, string*/
}]
}
1000
Device Network SDK (General) Developer Guide
F.81 JSON_IOT_ErrorList
ErrorList message in JSON format
{
"ErrorList": [{
/*dep, detailed error information, it is valid when subStatusCode values "badParameters"*/
"errorRowNo": "",
/*required, error row No., integer*/
"errorType": "",
/*required, error type, string, channelNoInvalid-invalid channel No., channelNoConflict-conflicted channel No.,
channel IP/Domain invalid-invalid channel IP or domain name, channel IP/Domain conflict-conflicted channel IP or
domain name, "channel IP conflict with local IP"-channel IP is conflicted with local IP, protocolError-incorrect protocol,
adminPortError-incorrect admin port, channelError-incorrect channel No., UserNameInvalid-invalid user name,
passwordInvalid-invalid password, transProtocalError-incorrect transmission protocol, inductiveTypeInvalid-invalid
inductive type*/
}]
}
F.82 JSON_IOTChannel
IOTChannel message in JSON format
{
"IOTChannel":{
/*optional, added IoT devices information*/
"channel": "",
/*optional, channel No., if this node does not exist, it indicates any free channel, integer*/
"IOTProtocolType": "",
/*required, IOT protocol type: "HIKVISION"-Hikvision device, "OPTEX"-OPTEX security control panel, "Luminite"-
Luminite security control panel, "GJD"-GJD security control panel, "SIA-CID"-SIA-CID protocol, string, the max. length is
32*/
"addressingFormatType": "",
/*optional, address type, "ipaddress"-ip address, "hostname"-host name, string, the max. length is 32*/
"hostName": "",
/*optional, host name, it is required when addressingFormatType values "hostname", string, the max. length is 64*/
"ipAddress": "",
/*optional, device IPV4 address, it is required when addressingFormatType values "ipaddress", string, the max. length
is 32*/
"ipv6Address": "",
/*optional, device IPV6 address, it is required when addressingFormatType values "ipaddress", string, the max. length
is 128*/
"protocol": "",
/*optional, ptotocol type: "tcp"-TCP protocol, "ud"-UDP protocol, "muticast"-Multicast protocol, string, the max.
length is 32*/
"portNo": "",
/*optional, device port No., integer*/
"userName": "",
/*optional, user name, string, the sensitive information is encrypted, the max. length is 32*/
1001
Device Network SDK (General) Developer Guide
"password": "",
/*read-only,password, string, the sensitive information is encrypted, the max. length is 16. It will be applied only
when configuring, and it is not returned when getting information*/
"deviceChannel": "",
/*required, added IoT channel No., integer*/
"videoChannels": [1, 2],
/*optional, added video channel No., including the cameras and IoT devices, array, and the array unit is integer*/
"addAll": "",
/*optional, whether adds all channels (including video and IoT channel) of device, boolean*/
"inductiveDeviceType": "",
/*optional, inductive device type,"inductiveType1"-inductive type 1, "inductiveType2"-inductive type 2. When getting
added channel information according inductive type, if this node does not exist, all added device channels will be
returned, string*/
"zoneNum": ""
/*optional, the number of added zones, it is valid when IOTProtocolType values "SIA-CID", integer*/
}
}
Remarks
Note
For different IoT devices, the inputted parameters in IOTChannel message are different.
Example
IOTChannel Message of IoT Devices via Private Protocol
"IOTChannel":{
"IOTProtocolType": "HIKVISION",
"addressingFormatType": "ipaddress",
"ipAddress": "[Link]",
"protocol": "tcp",
"portNo": 80,
"userName": "admin",
"password": "12345",
"deviceChannel": 1,
"videoChannels": [1, 2]
}
Example
IOTChannel Message of IoT Devices via SIA-CID Protocol
"IOTChannel":{
"IOTProtocolType": "HIKVISION",
"addressingFormatType": "ipaddress",
"ipAddress": "[Link]",
"protocol": "tcp",
"portNo": 80,
"userName": "admin",
"password": "12345",
"deviceChannel": 1,
"videoChannels": [1, 2],
1002
Device Network SDK (General) Developer Guide
"zoneNum": 1
}
Example
IOTChannel Message of OPTEX IoT Devices
"IOTChannel":{
"IOTProtocolType": "OPTEX",
"addressingFormatType": "ipaddress",
"ipAddress": "[Link]",
"protocol": "tcp",
"deviceChannel": 1
}
Example
IOTChannel Message of Luminite IoT Devices
"IOTChannel":{
"IOTProtocolType": "Luminite",
"addressingFormatType": "ipaddress",
"ipAddress": "[Link]",
"protocol": "tcp",
"portNo": 80,
"password": "12345",
"deviceChannel": 1
}
Example
IOTChannel Message of GJD IoT Devices
"IOTChannel":{
"IOTProtocolType": "GJD",
"addressingFormatType": "ipaddress",
"ipAddress": "[Link]",
"deviceChannel": 1
}
F.83 JSON_IOTChannelEventCap
IOTChannelEventCap message in JSON format
{
"IOTChannelEventCap":{
/*required, event capability*/
"AccessController":{
/*optional, access controller event*/
"eventType":{
/*required, event type, array,the sub type is string*/
"@opt": ["authenticated", "openingDoor"]
},
},
1003
Device Network SDK (General) Developer Guide
"VideoIntercom":{
/*optional, video intercom event*/
"eventType":{
/*required, event type, string*/
"@opt": ["tampering", "duressAlarm"]
},
},
"GJD":{
/*optional, GJD security control panel event*/
"eventType":{
/*required, event type, string*/
"@opt": ["pirDetection", "tampering"]
},
},
"Luminite":{
/*optional, Luminite security control panel*/
"eventType":{
/*required, event type, string*/
"@opt": ["pirDetection", "pirTamper"]
},
},
"OPTEX":{
/*optional, OPTEX security control panel*/
"eventType":{
/*required, event type, string*/
"@opt": ["pcFn", "pcFr"]
},
},
"cameraDetector":{
/*optional, detector evnet*/
"eventType":{
/*required, event type, string*/
"@opt": ["wirelessTemperature", "wirelessPIR"]
},
},
"SecurityControlPanel":{
/*optional, security control panel*/
"eventType":{
/*required, event type, string*/
"@opt": ["zone","host"]
},
"zoneNum":{
/*required, the number of zones, integer*/
"@min": 1,
"@max": 16,
"#text": 1
},
}
}
1004
Device Network SDK (General) Developer Guide
F.84 JSON_IOTChannelList
IOTChannelList message in JSON format
{
"IOTChannelList": [{
"IOTChannel"
/*optional, added IoT devices information, see details in
JSON_IOTChannel
*/
}]
}
See Also
JSON_IOTChannel
F.85 JSON_IOTChannelStatus
IOTChannelStatus message in JSON format
{
"IOTChannelStatus":{
/*optional, added IoT device status*/
"IOTChannel":{
/*optional, added IoT device information, see details in
JSON_IOTChannel
*/
},
"channelName": "",
/*required, channel name, string, type, the max. length is 32*/
"onlineStatus": "",
/*required, online stauts, boolean*/
"channelDetectResult": "connecting,networkUnreachable,accessAbnormal,normal,guardFailed",
/*optional, channel detection status: "connecting"-connecting, "networkUnreachable"-unreachable network,
"accessAbnormal"-abnormal access, "normal"-normal, "guardFailed"-arming failed, string*/
"SecurityStatus":{
/*optional, security status*/
"passwordStatus": ""
/*optional, password status: notActivated-device is inactivated, risk-risky password, weak-weak password, medium-
medium password, strong-strong password, invalid-invalid status, string*/
},
"DeviceInfo":{
/*optional, device information*/
"deviceName": "",
/*optional, device name, string, the max. length is 32*/
"deviceType": "",
/*required, device type: "accessController"-access controller, "videoIntercom"-video intercom, "OPTEX"-OPTEX
security control panel, Luminite-Luminite security control panel, GJD-GJD security control panel, securityControlPanel-
1005
Device Network SDK (General) Developer Guide
F.86 JSON_IOTChannelStatusList
IOTChannelStatusList message in JSON format
{
"IOTChannelStatusList": [{
"IOTChannelStatus":
/*optional, added IoT device status, see details in JSON_IOTChannelStatus*/
}]
}
See Also
JSON_IOTChannelStatus
F.87 JSON_IOTSourceDescription
IOTSourceDescription message in JSON format
{
"IOTSourceDescription":{
/*optional, protocol information*/
"IOTProtocolType": "",
/*required, IOT protocol type: "HIKVISION"-Hikvision device, "OPTEX"-OPTEX security control panel, "Luminite"-
Luminite security control panel, "GJD"-GJD security control panel, "SIA-CID"-SIA-CID protocol, string, the max. length is
32*/
"addressingFormatType": "",
/*optional, address type, "ipaddress"-ip address, "hostname"-host name, string, the max. length is 32*/
"hostName": "",
/*optional, host name, it is required when addressingFormatType values "hostname", string, the max. length is 64*/
"ipAddress": "",
/*optional, device IPV4 address, it is required when addressingFormatType values "ipaddress", string, the max. length
is 32*/
"ipv6Address": "",
/*optional, device IPV6 address, it is required when addressingFormatType values "ipaddress", string, the max. length
is 128*/
"protocol": "",
/*optional, ptotocol type: "tcp"-TCP protocol, "ud"-UDP protocol, "muticast"-Multicast protocol, string, the max.
1006
Device Network SDK (General) Developer Guide
length is 32*/
"portNo": "",
/*optional, device port No., integer*/
"userName": "",
/*optional, user name, string, the sensitive information is encrypted, the max. length is 32*/
"password": ""
/*optional, password, string, the sensitive information is encrypted, the max. length is 16*/
}
}
F.88 JSON_IOTSourceList
IOTSourceList message in JSON format
{
"IOTSourceList": [{
/*optional, source informaiton, array*/
"IOTProtocolType": "",
/*required, IOT protocol type: "HIKVISION"-Hikvision device, "OPTEX"-OPTEX security control panel, "Luminite"-
Luminite security control panel, "GJD"-GJD security control panel, "SIA-CID"-SIA-CID protocol, string, the max. length is
32*/
"addressingFormatType": "",
/*optional, address type, "ipaddress"-ip address, "hostname"-host name, string, the max. length is 32*/
"hostName": "",
/*optional, host name, it is required when addressingFormatType values "hostname", string, the max. length is 64*/
"ipAddress": "",
/*optional, device IPV4 address, it is required when addressingFormatType values "ipaddress", string, the max. length
is 32*/
"ipv6Address": "",
/*optional, device IPV6 address, it is required when addressingFormatType values "ipaddress", string, the max. length
is 128*/
"portNo": "",
/*optional, device port No., integer*/
"userName": "",
/*optional, user name, string, sensitive information will be encrypted, the max. length is 32*/
"password": "",
/*optional, password, string, sensitive information will be encrypted, the max. length is 16*/
"activeStatus": "",
/*required, active or not, boolean*/
"deviceType": "",
/*optional, string, devive type: accessController-access controller, videoIntercom-video intercom, OPTEX-OPTEX
security control panel, Luminite-Luminite security control panel, GJD-GJD security control panel, securityControlPanel-
security control panel*/
"macAddress": "",
/*optional, device MAC address, string, the max. length is 48*/
"serialNumber": "",
/*optional, device serial No., string, the max. length is 48*/
"firmwareVersion": "",
/*optional, firmware version (including compiled date), string, the max. length is 128*/
1007
Device Network SDK (General) Developer Guide
}]
}
F.89 JSON_IOTSourceSupport
IOTSourceSupport message in JSON format
{
"IOTSourceSupport":{
/*required, supported source information*/
"sourceNum": "",
/*required, the number of protocols, integer*/
"IOTSourceDescriptions": [{
/*optional, protocol informaiton, array*/
"IOTProtocolType": "",
/*required, IOT protocol type: "HIKVISION"-Hikvision device, "OPTEX"-OPTEX security control panel, "Luminite"-
Luminite security control panel, "GJD"-GJD security control panel, "SIA-CID"-SIA-CID protocol, string, the max. length is
32*/
"addressingFormatType":{
/*optional, address type, "ipaddress"-ip address, "hostname"-host name, string, the max. length is 32*/
"@opt": "ipaddress,hostname",
"#text": "ipaddress"
},
"protocol":{
/*optional, protocol type, "tcp, udp, muticast", string, the max. length is 32*/
"@opt": "tcp,udp,muticast",
"#text": "tcp"
},
"portNo":{
/*optional, device port No., integer*/
"@min": 0,
"@max": 65535,
"#text": 80
},
"userName ":{
/*optional, user name, string, the max. length is 32*/
"@min": 0,
"@max": 32,
"#text": "admin"
},
"password":{
/*optional, password, string, the max. length is 16*/
"@min": 0,
"@max": 16,
"#text": "12345"
},
"maxVideoChannelNum": "",
/*optional, the max. number of supported video channel, integer*/
"zoneNum":{
/*optional, number of connected zones, integer, it is valid when the IOTProtocolType values "SIA-CID"*/
1008
Device Network SDK (General) Developer Guide
"@min": 1,
"@max": 256,
"#text": 1
},
}],
"DeviceInductiveType":{
/*optional, device inductive type*/
"inductiveType1": ["accessController", "videoIntercom"],
/*optional, array, inductive type 1: accessController-access controller, videoIntercom-video intercom, OPTEX-OPTEX
security control panel, Luminite-Luminite security control panel, GJD-GJD security control panel, securityControlPanel-
security control panel, the sub type is string*/
"inductiveType2": ["OPTEX", "Luminite", "GJD", "securityControlPanel"]
/*optional, array, inductive type 2: accessController-access controller, videoIntercom-video intercom, OPTEX-OPTEX
security control panel, Luminite-Luminite security control panel, GJD-GJD security control panel,securityControlPanel-
security control panel, the sub type is string*/
}
}
}
F.90 JSON_KeepAlive
KeepAlive message in JSON format
{
"KeepAlive":{
"enabled":"",
/*required, boolean, whether to enable network keepalive*/
"interval":"",
/*required, integer, heartbeat interval,unit: second*/
"addressingFormatType":"",
/*required, string, address types: "ipaddress"-IP address, "hostname"-host name, the max. length is 32*/
"hostName": "",
/*optional, string, host name, which is required when addressingFormatType is "hostname", the max. length is
64*/
"ipAddress": "",
/*optional, string, IPv4 address, which is required when addressingFormatType is "ipaddress", the max. length is
32*/
"ipv6Address": "",
/*optional, string, IPv6 address, which is valid when addressingFormatType is "ipaddress", the max. length is 128*/
}
}
F.91 JSON_KeepAliveCap
KeepAliveCap message in JSON format
{
"KeepAliveCap":{
"enabled": "true,false",
1009
Device Network SDK (General) Developer Guide
F.92 JSON_LaserOpticalAxis
JSON message about laser optical axis parameters.
{
"LaserOpticalAxis": {
"adjustmentEnabled": ,
/*required, boolean, whether it enables adjusting laser optical axis*/
"sensitivity":
/*required, int, sensitivity*/
}
}
F.93 JSON_LaserOpticalAxis_direction
JSON message about direction of adjusting laser optical axis
{
"direction": ""
/*required, string, direction of adjusting laser optical axis: "up"-up, "down"-down, "left"-left, "right"-right*/
}
F.94 JSON_LaserOpticalAxisCap
JSON message about capability of configuring laser optical axis
{
"LaserOpticalAxisCap": {
"adjustmentEnabled": {
/*required, boolean, whether it enables adjusting laser optical axis*/
"@opt":[true,false]
1010
Device Network SDK (General) Developer Guide
},
"sensitivity": {
/*required, int, sensitivity*/
"@min": 1,
"@max": 100
}
"direction": {
/*required, string, direction of adjusting laser optical axis: "up"-up, "down"-down, "left"-left, "right"-right*/
"@opt":["up","down","left","right"],
"#text":"up"
}
}
}
F.95 JSON_LinkageChansCond
LinkageChansCond message in JSON format
{
"LinkageChansCond":{
"eventType": "",
/*required, string, for access controller or video intercom, the EventType == AcsEvent_major_minor, for security
control panel, the EventType == AlarmHost_zoneNo*/
"monitorId": "",
/*dep, string,camera ID, strlen=[32,64]. For access controller or video intercom, the format is: device serial
No._DOOR_door No., for security control panel, the format is: device serial No._ALARM_security control panel No.*/
"unlockType": ""
/optional, unlock type, string,password-unlock by password, hijcking-hijacking unlock, card-unlock by swiping card,
householder-unlock by householder, centerplatform-unlock by center platform, bluetooth-bluetooth unlock, qrcode-
unlock by QR code, face-unlock by face, fingerprint-unlock by fingerprint*/
}
}
F.96 JSON_LinkedTracking
JSON message about advanced parameters of linked tracking capture
{
"LinkedTracking":{
/*required, advanced parameters of linked tracking capture*/
"trackingTakeoverEnabled": ,
/*optional, boolean, whether to enable tracking takeover, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"linkedTrackingCaptureEnabled": ,
/*optional, boolean, whether to enable linked tracking capture, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"captureThreshold": ,
/*optional, int, capture threshold, it refers for the quality of face to trigger capture and alarm, range: [0,100], default
value: 20*/
1011
Device Network SDK (General) Developer Guide
"Exposure":{
/*optional, face exposure*/
"exposureEnabled": ,
/*optional, boolean, whether to enable face exposure, it is disabled by default*/
"brightRef": ,
/*optional, int, reference brightness of a face in the face exposure mode, range: [0,100]*/
"expDurationTime":
/*optional, int, minimum duration, it is the extra time the device keeps the face exposure lever after the face
disappears from the scene; range: [0,60], unit: minute, default value: 5m*/
},
"RemoveDuplicate":{
/*optional, remove duplicates of captured face pictures*/
"enabled": ,
/*optional, whether to enable removing duplicates of captured face pictures*/
"threshold": ,
/*optional, int, threshold of removing duplicates, when the picture similarity is larger than the value, the picture is
duplicated*/
"faceScore": ,
/*optional, int, the face grading threshold for removing duplicates, only when the face grading is larger than the
configured threshold, the face picture will be compared for removing duplicates, in case that low quality face pictures
influence the comparison effect*/
"updateTime":
/*optional, int, face modal data updating time interval (the time interval between the modal data being added into
the library and being deleted)*/
}
}
}
F.97 JSON_LinkedTrackingCap
JSON message about configuration capability of advanced parameters of linked tracking capture
{
"LinkedTrackingCap":{
/*required, advanced parameters capability of linked tracking capture*/
"trackingTakeoverEnabled":{
/*optional, boolean, whether to enable tracking takeover, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"@opt": [true, false],
"@def": false
},
"linkedTrackingCaptureEnabled":{
/*optional, boolean, whether to enable linked tracking capture, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"@opt": [true, false],
"@def":false
},
"captureThreshold":{
/*optional, int, capture threshold, it refers for the quality of face to trigger capture and alarm, range: [0,100], default
value: 20*/
1012
Device Network SDK (General) Developer Guide
"@min":0,
"@max":100,
"@def":20
},
"ExposureCap":{
/*optional, face exposure capability*/
"exposureEnabled":{
/*optional, boolean, whether to enable face exposure, it is disabled by default*/
"@opt": [true, false],
"@def":false
},
"brightRef":{
/*optional, int, reference brightness of a face in the face exposure mode, range: [0,100]*/
"@min":0,
"@max":100,
"@def":50
},
"expDurationTime":{
/*optional, int, minimum duration, it is the extra time the device keeps the face exposure lever after the face
disappears from the scene; range: [0,60], unit: minute, default value: 5m*/
"@min":1,
"@max":60,
"@def":5
}
},
"RemoveDuplicateCap":{
/*optional, capability of removing duplicates of captured face pictures*/
"enabled":{
/*optional, whether to enable removing duplicates of captured face pictures*/
"@opt": [true, false],
"@def":false
},
"threshold":{
/*optional, int, threshold of removing duplicates, when the picture similarity is larger than the value, the picture is
duplicated*/
"@min":70,
"@max":100,
"@def":88
},
"faceScore":{
/*optional, int, the face grading threshold for removing duplicates, only when the face grading is larger than the
configured threshold, the face picture will be compared for removing duplicates, in case that low quality face pictures
influence the comparison effect*/
"@min":20,
"@max":60,
"@def":20
},
"updateTime":{
/*optional, int, face modal data updating time interval (the time interval between the modal data being added into
the library and being deleted)*/
"@min":0,
"@max":300,
1013
Device Network SDK (General) Developer Guide
"@def":30
}
}
}
}
Remarks
Tracking takeover and linked tracking capture are two mutually exclusive modes for panorama
tracking, they cannot be enabled at the same time.
F.98 JSON_logProTestResult
JSON message about preverification results of logging HDD.
{
"requestURL":"",
/*optional, string type, request URL*/
"statusCode": ,
/*required, integer type, status code*/
"statusString":"",
/*required, string type, status description*/
"subStatusCode":"",
/*required, string type, sub status code*/
"errorCode": ,
/*optional, integer type, error code, which corresponds to subStatusCode, this field is required when statusCode is
not 1. The returned value is the transformed decimal number*/
"errorMsg":"",
/*optional, string type, error details, this field is required when statusCode is not 1*/
"logProTestResult":{
/*preverification results*/
"enough": ,
/*required, boolean, whether there is enough storage space in the HDD: "true"-enough, "false"-not enough*/
"CoverDate":{
/*dependent, it is returned when the field enough is "false"*/
"beginTime":"",
/*required, string, start time of HDD coverage, which should in ISO 8601 format,the maximum size is 32 bytes*/
"endTime":"",
/*required, string, end time of HDD coverage, which should in ISO 8601 format,the maximum size is 32 bytes*/
"coverSpace":
/**required, integer, size of the covered HDD, unit: GB*/
}
}
}
F.99 JSON_MatchList
JSON Message about log search results
1014
Device Network SDK (General) Developer Guide
{
"requestURL": "",
/*optional, string, request URL*/
"statusCode": ,
/*required, int, status code*/
"statusString": "",
/*required, string, status description*/
"subStatusCode": "",
/*required, string, sub status code*/
"errorCode": ,
/*optional, int, error code, which corresponds to the subStatusCode; this node is required when the value of
statusCode is not 1*/
"errorMsg": "",
/*optional, string, error description, which corresponds to errorCode*/
"searchID": "",
/*required, string, search ID, which is used to check whether the current search requester is the same as the previous
one. If they are the same, the search record will be stored in the device to speed up the next search, the maximum
length is 32 bytes*/
"responseStatusStrg": "",
/*required, string, search status: "OK"-search completed, "FAILED"-search failed, "MORE"-more data waiting to be
searched, "PARM ERROR"-incorrect parameters, "INVALID TIME"-invalid time, "TIMEOUT"-timeout, "NO MATCHES"-no
matched data, the maximum length is 32 bytes*/
"numOfMatches": ,
/*required, integer32, number of matched data records*/
"matchList": [{
/*optional, array, list of matched data records*/
"searchMatchItem": {
/*optional, single matched record*/
"logDescriptor": {
/*required, log description*/
"metaID": "",
/*required, string, log type string, log type includes "Alarm"-alarm log, "Exception"-exception log, "Operation"-
operation log, and "Information"-additional information; e.g.,"[Link]/Alarm", the maximum length is 64
bytes*/
"startTime": "",
/*required, string, log time, ISO8601 time format, the maximum length is 32 bytes*/
"localId": "",
/*optional, string, local channel, different logs are corresponding to different local channel types, the maximum length
is 32 bytes*/
"paraType": "",
/*optional, string, function modules that generate the logs: "videoout, image, encode, network, alarm, exception,
decoder, rs232, preview, security, datatime, frametype"; the maximum length is 32 bytes*/
"userName": "",
/*optional, string, user name that performs current search task, the maximum length is 32 bytes*/
"ipAddress": "",
/*optional, string, device IP address, the maximum length is 32 bytes*/
"logInfo": ""
/*optional, string, log information, the maximum length is 32 bytes*/
"operationType":,
/*optional, operation type, it is valid only when metaID is set to "Operation": 0-all, 1-software started, 2-software
stopped, 3-configuration page entered, 4-parameters edited, 5-file search, 6-device connected, 7-information
collection started, 8-information collection ended, 9-devices disconnected, 10-password changed, 11-disk space
1015
Device Network SDK (General) Developer Guide
F.100 JSON_MoveAutoTracking
JSON message about status of moving object tracking
{
"MoveAutoTracking":{
"enabled":
/*required, boolean, whether to enable moving object tracking*/
}
}
F.101 JSON_OnlineUpgradeParameter
OnlineUpgradeParameter message in JSON format
{
"OnlineUpgradeParameter":{
/*required, online upgrade parameters*/
"autoDownloadPackage": "",
/*required, whether enables automatic download of upgrade package, boolean, it values "false" by default*/
"timingUpgrade": "",
/*optional, whether enable scheduled upgrade, boolean, it values "false" by default*/
"upgradeTime": "",
/*optional, upgrade time, corrects to minute, and second is 0 by default, ISO8601 format, string type, it is valid when
timingUpgrade values "true"*/
}
}
F.102 JSON_OSD
OSD message in JSON format
{
"OSD":{
/*required, OSD information*/
"overlayItem": "",
/*required, string, overlaid item, supports multiple items, each item is separated by comma; deviceName-device
name, cardNo-card number, eventName-event name, name-name, identityCard-ID card, privacyInfo-private
information*/
1016
Device Network SDK (General) Developer Guide
"characterEncoding":"",
/*required, character encoding, string*/
"fontSize": "",
/*required, string, font size: big-large, medium-medium, small-small*/
"fontColor": "",
/*required, font color, hexBinary*/
"overlayType": "",
/*required, overlay type: "flip, scroll", string*/
"displayTime": "",
/*required, display time, unit; second, integer*/
"PrivacyInfo": [{
/*optional, private information list, it is required when the value of overlayItem contains "privacyInfo", array*/
"content": "",
/*required, private information, string, the max. length is 16*/
}],
"normalizedScreenSize":{
/*required, read-only, normalized coordinates*/
"normalizedScreenWidth": "",
/*required, normalized width, integer*/
"normalizedScreenHeight": ""
/*required, normalized height, integer*/
},
"Rect":{
/*required, OSD position*/
"height": "",
/*required, height, float*/
"width": "",
/*required, width, float*/
"x": "",
/*required, X-coordinate, float*/
"y": "",
/*required, Y-coordinate, float*/
}
}
}
F.103 JSON_OSDCap
OSDCap message in JSON format
{
"OSDCap":{
/*required, OSD information*/
"overlayItem":{
/*required, string, overlaid item, supports multiple items, each item is separated by comma; deviceName-device
name, cardNo-card number, eventName-event name, name-name, identityCard-ID card, privacyInfo-private
information*/
"@opt": "deviceName,cardNo,eventName,name,identityCard,privacyInfo",
"#text": "deviceName"
},
1017
Device Network SDK (General) Developer Guide
"characterEncoding":{
/*required, character encoding, string*/
"@opt": "GB2312,Latin-1",
"#text": "GB2312"
},
"fontSize":{
/*required, string, font size: big-large, medium-medium, small-small*/
"@opt": "big,medium,small",
"#text": "big"
},
"fontColor":{
/*required, font color, hexBinary*/
"@opt": "FFFFFF",
},
"overlayType":{
/*required, overlay type: "flip, scroll", string*/
"@opt": "flip,scroll",
"#text": "flip"
},
"displayTime":{
/*required, display time, unit; second, integer*/
"@min": 1,
"@max": 120,
"#text": 15
},
"PrivacyInfo": [{
/*optional, private information list, it is required when the value of overlayItem contains "privacyInfo", array*/
"size": 3,
/*required, the max. number of items, integer*/
"content":{
/*required, private information, string, the max. length is 16*/
"@min": 1,
"@max": 16,
"#text": "12345"
},
}],
"Rect":{
/*required, OSD position*/
"height":{
/*required, height, float*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.311
},
"width":{
/*required, width, float*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.311
},
"x":{
/*required, X-coordinate, float*/
1018
Device Network SDK (General) Developer Guide
"@min": 0.000,
"@max": 1.000,
"#text": 0.311
},
"y":{
/*required, Y-coordinate, float*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.311
},
}
}
}
F.104 JSON_PeopleCounting_CollectionDescriptionCap
CollectionDescriptionCap message in JSON format.
{
"CollectionDescriptionCap":{
"timeRange": "",
/*required, supported time range for people counting replenishment, unit: day, integer*/
"timeSpanMaxNum": "",
/*required, the maximum number of time buckets supported for one time search integer*/
"resultMaxNum": "",
/*required, the maximum number of items can be searched, integer*/
"channelMaxNum": ""
/*required, the maximum number of channels supported for one time search, integer*/
}
}
F.105 JSON_PeopleCounting_CollectionDescription
CollectionDescription message in JSON format
{
"CollectionDescription":{
"searchID": "",
/*required,string,unique search ID, the content of searchID remains unchanged when search condition remains
unchanged.*/
"searchResultPosition": "",
/*required, initial position of search result list, integer type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, number of matched records per search, integer type*/
"timeSpanList": [{
/*required, time interval list*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
1019
Device Network SDK (General) Developer Guide
"endTime": "",
/*required, end time, ISO8601_time, string*/
}],
"channels": "",
/*optional, sub type, array, integer32, related channel No., array. If the channel information is not specified, it
indicates searching all channels*/
}
}
F.106 JSON_PeopleCounting_CollectionResult
CollectionResult message in JSON format
{
"CollectionResult":{
"responseStatusStrg": "",
/*required, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*required, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*required, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"targets": [{
/*optional, people gathering result*/
"startTime": "",
/*required, start time of people gathering*/
"endTime": "",
/*required, end time of people gathering*/
"channel": "",
/*required, integer, channel No.*/
"enter": "",
/*required, integer,the number of people entered*/
"exit": "",
/*required, integer,the number of people exited*/
"pass": "",
/*required, integer,the number of people passed by*/
}]
}
}
F.107 JSON_Reconstruction_ProgressLists
JSON message about disk data reconstruction progress
{
"ProgressLists": [{
"diskID": 1,
/*required, int, disk ID*/
"progress": 100,
1020
Device Network SDK (General) Developer Guide
F.108 JSON_RemarkList
JSON message about remark information list of videos
{
"RemarkList": [{
"trackId": "",
/*required, file No.*/
"remarks": "",
/*required, string, file remarks, which should be encrypted*/
"recordName":"",
/*optional, string, file name of video, audio, or picture*/
"recorderCode":"",
/*optional, string, ID of device that collects data, which should be encrypted*/
"policeCode":""
/*optional, string, ID of police that collects data, which should be encrypted*/
}]
}
F.109 JSON_resourceStatistics
resourceStatistics message in JSON format
{
"inputBandwidth": ,
/*required, input bandwidth, unit: kbps, float type, corrects to one decimal*/
"outputBandwidth": ,
/*required, output bandwidth, unit: kbps, float type, corrects to one decimal*/
"StreamingInformation": [{
/*optional, stream information, array*/
"moduleType": "",
/*required, module type: "remoteStreaming"-remote streaming, "remotePlayBack"-remote playback, string type, the
maximum length is 32 bits*/
"ipAddress": "",
/*required, device IPv4 address, string type, the maximum length is 32 bits*/
"ipv6Address": "",
/*optional, device IPv6 address, string type, the maximum length is 128 bits*/
"bandwidth":
/*required, bandwidth, unit: kbps, float type, corrects to one decimal*/
}],
"inputPictureBandwidth": ,
/*optional, picture input bandwidth (including all interfaces of inputting binary picture data), unit: kbps, float type,
1021
Device Network SDK (General) Developer Guide
F.110 JSON_ResponseStatus
JSON message about response status
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode": ,
/*required, int, status code*/
"statusString":"",
/*required, string, status description*/
"subStatusCode":"",
/*required, string, sub status code*/
"errorCode": ,
/*optional, int, error code, which corresponds to subStatusCode, this field is required when statusCode is not 1. The
returned value is the transformed decimal number*/
"errorMsg":"",
/*optional, string, error details, this field is required when statusCode is not 1*/
}
Note
See Response Codes of Text Protocol for details about the status codes, sub status codes, error
codes, and error descriptions.
F.111 JSON_Result
Result message in JSON format
{
"Result":{
"channels": [1, 2],
/*optional, integer, linked video channel No.*/
"IoTChannels": [1, 2]
/*optional, integer, linked IoT channel NO.*/
}
}
1022
Device Network SDK (General) Developer Guide
F.112 JSON_SearchCondition
JSON message about condition information of log search
{
"searchID": "",
/*required, string, Search ID, which is used to check whether the current search requester is the same as the previous
one. If they are the same, the search record will be stored in the device to speed up the next search, the maximum
length is 32 bytes*/
"timeSpanList": {
/*required, list of time periods*/
"timeSpan": {
/*required, time periods*/
"startTime": "",
/*required, string, start time of search, ISO8601 time format, the maximum length is 32 bytes*/
"endTime": ""
/*required, string, end time of search, ISO8601 time format, the maximum length is 32 bytes*/
}
},
"metaID": "",
/*required, string, log type string, log type includes "Alarm"-alarm log, "Exception"-exception log, "Operation"-
operation log, and "Information"-additional information; e.g.,"[Link]/Alarm", the maximum length is 64
bytes*/
"searchResultPostion": ,
/*required, integer32, the start position of search result in result list*/
"maxResults": ,
/*required, integer32, the maximum number of records supported in this search*/
"wildcard ": "",
/*optional, string, wildcard, which is used for fuzzy search, the maximum length is 48 bytes*/
"operationType": ,
/*optional, operation type, it is valid only when metaID is set to "Operation": 0-all, 1-software started, 2-software
stopped, 3-configuration page entered, 4-parameters edited, 5-file search, 6-device connected, 7-information
collection started, 8-information collection ended, 9-devices disconnected, 10-password changed, 11-disk space
checked, 12-network status checked*/
}
F.113 JSON_SecurityEmail
SecurityEmail message in JSON format
{
"SecurityEmail":{
"SecurityInformation": [{
/*required, recovery email information*/
"emailAddress": "",
/*required, string type, email address, the sensitive information should be encrypted*/
}],
1023
Device Network SDK (General) Developer Guide
},
}
F.114 JSON_SecurityEmailCap
SecurityEmailCap message in JSON format
{
"SecurityEmailCap":
/*required, recovery email configuration capability*/
{
"emailAddressNum": ,
/*required, number of recovery emails*/
"emailAddress":
/*required, string type, recovery email information*/
{
"@min": 1,
"@max": 128,
},
}
}
F.115 JSON_SecurityEmailQrCode
SecurityEmailQrCode message in JSON format
{
"SecurityEmailQrCode":
/*optional, QR code of recovery email*/
{
"SecurityInformation": [{
/*required, security information, the sensitive information should be encrypted*/
"emailAddress": "",
/*required, string type, email address, the sensitive information should be encrypted*/
"qrCode": "",
/*required, string type, QR code, the maximum size is 1024 bytes, the sensitive information should be encrypted*/
}],
"serverEmailAddress": "",
/*optional, string type, manufacturer service email address, the sensitive information should be encrypted*
"isDisclaimerDisplay":
/*optional, boolean type, whether to display disclaimer*/
},
}
1024
Device Network SDK (General) Developer Guide
F.116 JSON_SmartOverlap
SmartOverlap message in JSON format
{
"SmartOverlap":{
"enabled": ,
/*required, boolean, whether to enable the stream*/
"streamType": ,
/*required, integer, stream type: 1-main stream, 2-sub-stream, 3-third stream*/
"bkgImageOverlapEnabled":
/*required, boolean, whether to overlay rule frame and target frame on the background picture*/
}
}
F.117 JSON_SmartOverlapCap
SmartOverlapCap capability message in JSON format
{
"SmartOverlapCap":{
"enabled":{
/*required, boolean, whether to enable the stream*/
"@opt":[ true, false]
},
"streamType":{
/*required, integer, stream type: 0-disable, 1-main stream, 2-sub-stream, 3-third stream*/
"@opt":[2]
},
"bkgImageOverlapEnabled":{
/*required, boolean, whether to overlay rule frame and target frame on the background picture*/
"@opt":[true, false]
},
"supportEventType":{
/*required, string, supported event type: "fieldDetection"-intrusion, "attendedBaggage"-object removal,
"unattendedBaggage"-unattended baggage, "regionExiting"-region exiting, "regionEntrance"-region entrance,
"lineDetection"-line crossing*/
"@opt":["fieldDetection", "attendedBaggage", "unattendedBaggage", "regionExiting", "regionEntrance",
"lineDetection"]
}
}
}
F.118 JSON_SourceCapabilities
SourceCapabilities message in JSON format
1025
Device Network SDK (General) Developer Guide
{
"SourceCapabilities":{
/*required, the supported source capabilities*/
"IOTChannelNum": "",
/*required, the number of IoT channels,integer*/
"videoChannelNum": """,
/*optional, the number of video channels, integer*/
"accessChannels": [{
/*optional, array, added channel No.*/
"channel": "",
/*required, channel No., integer*/
"type": "",
/*required, channel type: "video"-video channel, "IOT"-IoT channel, string*/
}]
}
}
F.119 JSON_SSDCapacity
JSON message about SSD storage quotas
{
"SSDCapacity":{
"total":70.5,
/*required, float, SSD total capacity, unit: GB*/
"systemReserved":10.5,
/*required, float, reserved capacity, unit: GB*/
"free":10.5,
/*required, float, remained capacity, unit: GB*/
"faceLib":10.5,
/*optional, float, face picture library capacity, unit: GB*/
"strangerLib":10.5,
/*optional, float, strangers library capacity, unit: GB*/
"faceFrequencyLib":10.5,
/*optional, float, capacity of people frequency statistics library, unit: GB*/
"alarmCache":10.5,
/*optional, float, alarm cache capacity, unit: GB*/
"faceIndex":10.5,
/*optional, float, face picture index capacity, unit: GB*/
}
}
F.120 JSON_SSDFormatStatus
JSON message about progress of SSD file system formatting
{
"SSDFormatStatus": {
1026
Device Network SDK (General) Developer Guide
"formatting": "false",
/*required, read-only, boolean, whether the device is formatting*/
"percent":100
/*required, read-only, int, device formatting progress, range: [0,100]*/
}
}
F.121 JSON_SSDUpgrade
JSON message about upgrade status of SSD file system
{
"SSDUpgrade": {
"upgrading": "false"
/*required, read-only, boolean, whether the device has been upgraded*/
}
}
F.122 JSON_SSDUpgradeStatus
JSON message about progress of SSD file system upgrade
{
"SSDUpgradeStatus": {
"upgrading": "false",
/*required, read-only, boolean, whether the SSD file system is upgrading*/
"percent":100
/*required, read-only, int, device upgrade progress, range: [0,100]*/
}
}
F.123 JSON_SSD_UpgradeStatus
JSON message about SSD firmware upgrade progress
{
"UpgradeStatus": {
"upgrading": false,
/*required, read-only, boolean, whether the SSD firmware is upgrading*/
"percent":100
/*required, read-only, int, SSD firmware upgrade progress, range: [0,100]; this node is valid only when the value of
upgrading is true*/
}
}
1027
Device Network SDK (General) Developer Guide
F.124 JSON_SyncStatus
JSON message about HDD data sync status
{
"SyncStatus":{
"synching":true,
/*required, boolean, whether the HDD is in sync*/
"percent":90
/*optional, int, sync progress, range: [0,100]%*/
}
}
F.125 JSON_CollectionDescription
CollectionDescription message in JSON format
{
"CollectionDescription":{
"searchID": "",
/*required,string,unique search ID, the content of searchID remains unchanged when search condition remains
unchanged.*/
"searchResultPosition": "",
/*required, initial position of search result list, integer type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, number of matched records per search, integer type*/
"timeSpanList": [{
/*required, time interval list*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
"endTime": "",
/*required, end time, ISO8601_time, string*/
}],
"channels": "",
/*optional, sub type, array, integer32, related channel No., array. If the channel information is not specified, it
indicates searching all channels*/
"alarmLevel": "TMA",
/*required, string, alarm level: TMA–thermometry alarm, TMPA-thermometry pre-alarm*/
}
}
F.126 JSON_Temperature_CollectionDescriptionCap
CollectionDescriptionCap message in JSON format
1028
Device Network SDK (General) Developer Guide
{
"CollectionDescriptionCap":{
"timeRange": 15,
/*required, supported time range for replenishment, unit: day, integer */
"timeSpanMaxNum": 1,
/*required, the maximum number of time buckets supported for one time search, integer*/
"resultMaxNum": 100,
/*required, the maximum number of items can be searched, integer*/
"channelMaxNum": 1,
/*required, the maximum number of channels supported for one time search, integer*/
"alarmLevel":{
/*required, string, alarm level: TMA–thermometry alarm, TMPA-thermometry pre-alarm*/
"@opt": "TMA,TMPA"
}
}
}
F.127 JSON_CollectionResult
CollectionResult message in JSON format
{
"CollectionResult":{
"responseStatusStrg": "",
/*required, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*required, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*required, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"targets": [{
/*optional, statistics result*/
"time": "2017-08-25T11:34:59+08:00",
/*required, statistic time*/
"channel": "",
/*required, integer,channel No.*/
"Region": [{
/*required, float, X-coordinate, ranges from 0.000 to 1*/
"x": "",
/*required, float, Y-coordinate, ranges from 0.000 to 1*/
"y": ""
}],
"thermometryUnit": "",
/*required, string, temperature unit: celsius, fahrenheit, kelvin*/
"ruleTemperature": ,
/*required, float, themometry rule*/
"currTemperature": ,
/*required, float, current temperature*/
"ruleCalibType": "",
/*required, string, rule calibration type: point,line,region*/
1029
Device Network SDK (General) Developer Guide
"ruleType": "",
/*required, string, rule: "highest temp is higher than"-the maximum temperature is higher than, "lowest temp is
higher than"-the minimum temperature is higher than, "average temp is higher than"-the average temperature is
higher than, "temp diff is higher than"-temperature difference is higher than, "highest temp is lower than"-the
maximum temperature is lower than, "lowest temp is lower than"-the minimum temperature is lower than, "average
temp is lower than"-the average temperature is lower than, "temp diff is lower than"-temperature difference is lower
than*/
"MaximumTemperaturePoint":{
/*optional, the maximum temperature point*/
"x": "",
/*required, float, X-coordinate, ranges from 0.000 to 1*/
"y": ""
/*required, float, Y-coordinate, ranges from 0.000 to 1*/
},
"AbsoluteHigh":{
/*optional, absolute height*/
"elevation": "",
/*required, float,elevation*/
"azimuth": "",
/*required, float,azimuth*/
"absoluteZoom": ""
/*required, float,absolute zoom*/
},
"ruleID": "",
/*required, integer,rule ID*/
"presetNo": "",
/*required, integer,preset ID*/
"visibleLightURL": "",
/*optional, string,visible light picture URL*/
"thermalURL": "",
/*optional, string,thermal picture URL*/
"thermalInfoURL": "",
/*optional, string,thermal additional information URL*/
}]
}
}
F.128 JSON_TestDescription
JSON message about diagnostic server test parameters
"TestDescription": {
/*required, diagnostic server test parameters*/
"protocol": "FTP",
/*required, string, transmission protocol: "FTP,SFTP"*/
"addressingFormatType": "ipaddress",
/*optional, string, address type: "ipaddress" (IP address), "hostname" (host name)*/
"hostName": "[Link]",
/*dependent, string, host name, the maximum length is 64 bytes; it is valid when the value of addressingFormatType
1030
Device Network SDK (General) Developer Guide
is "hostname"*/
"ipVersion": "ipv4",
/*dependent, string, IP version: "ipv4", "ipv6"; it is valid when the value of addressingFormatType is "ipaddress"*/
"ipV4Address": "[Link]",
/*dependent, string, IPv4 address; it is valid when the value of ipVersion is "ipv4", and addressingFormatType is
"ipaddress"*/
"ipv6Address": "fe80::884a:67cb:9b67:b3a0%15",
/*dependent, string, IPv6 address; it is valid when the value of ipVersion is "ipv6", and addressingFormatType is
"ipaddress"*/
"portNo": 20,
/*optional, int, port No., value range: [1,65535]*/
"userName": "admin",
/*string, write-only, user name, the maximum length is 32 bytes*/
"password": "admin"
/*string, write-only, password, the maximum length is 16 bytes*/
}
}
F.129 JSON_TestResult
TestResult message in JSON format
{
"TestResult":{
"status":"ok",
/required, string, server status: "ok"-normal, "connectServerFail"-server connection failed
}
}
F.130 JSON_TimeSearchCond
Message about recording time search condition in JSON format
{
"TimeSearchCond": {
"channelID": ,
/*required, int, channel No.*/
"streamType": ""
/*required, string, stream type, "main,sub,adaptive"*/
}
}
F.131 JSON_TimeSearchResult
Message about recording time search result in JSON format
1031
Device Network SDK (General) Developer Guide
{
"TimeSearchResult": {
"channelID": ,
/*required, int, channel No.*/
"streamType": "",
/*required, string, stream type, "main,sub,adaptive"*/
"hasRecord": ,
/*required, boolean, whether video exists, startTime and endTime are valid only when the value of hasRecord is
"true"*/
"startTime": "",
/*optional, string, recording start time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
"endTime": "",
/*optional, string, recording end time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
}
}
F.132 JSON_TrafficMonitor
TrafficMonitor message in JSON format
{
"TrafficMonitor":{
"enabled":,
/*required, boolean, whether to enable traffic monitoring*/
"packageType":"",
/*required, string, data plan types: "day"-daily plan, "month"-monthly plan, "year"-annual plan */
"trafficValue":,
/*required, float, data value, which should be accurate to three decimal places, unit:MB */
"overrunOperation":"",
/*optional, string, operations when the data exceeds: "brokenNetworkAndAlert"-turn off the cellular network and
alert users, "alert"-notify users */
"alertType":[
"beep",
"email",
"SMS"
],
/*required, string, notification methods: "beep"-audio warning, "email"-send email, "SMS"-send message, "center"-
upload to center*/
"alertValue":,
/*required, integer, alarm value(%)*/
"startDay":
/*optional, integer, the start day of the monthly plan, which is valid only when packageTypeis "month"*/
}
}
1032
Device Network SDK (General) Developer Guide
F.133 JSON_TrafficMonitorCap
TrafficMonitorCap message in JSON format
{
"TrafficMonitorCap":{
"enabled":"",
/*required, boolean, whether to enable traffic monitoring*/
"packageType":{
"@opt":[
"day",
"month",
"year"
]
},
/*required, string, data plan types: "day"-daily plan, "month"-monthly plan, "year"-annual plan*/
"overrunOperation":{
"@opt":[
"brokenNetworkAndAlert",
"alert"
]
/*optional, string, operations after the data exceeds: "brokenNetworkAndAlert"-turn off the cellular network and alert
users, "alert"-notify users */
},
"alertType":{
"@opt":[
"beep",
"email",
"SMS",
"center"
]
},
/*required, string, notification methods: "beep"-audio warning, "email"-send email, "SMS"-send message, "center"-
upload to center*/
"alertValue":{
"@min":,
"@max":
},
/*required, integer, alarm value(%)*/
"supportTrafficMonitorStatus":
/*optional, boolean, whether it supports getting the current network data usage*/
}
}
F.134 JSON_TrafficMonitorStatus
TrafficMonitorStatus message in JSON format
1033
Device Network SDK (General) Developer Guide
{
"TrafficMonitorStatus":{
"remainTrafficValue":,
/*required, float, remaining data, which should be accurate to three decimal places, unit:MB*/
"trafficValue":,
/*required, float, data value, which should be accurate to three decimal places, unit:MB*/
"todayUsedTrafficValue":
/*required, float, today's data usage, which should be accurate to three decimal places, unit:MB*/
"todayUsedUpstreamTrafficValue":,
/*optional, float, today's upstream data usage, which should be accurate to three decimal places, unit:MB*/
"todayUsedDownstreamTrafficValue": ,
/*optional, float, today's downstream data usage, which should be accurate to three decimal places, unit:MB*/
"monthUsedTrafficValue": ,
/*optional, float, data usage of this month, which should be accurate to three decimal places, unit:MB*/
"monthUsedUpstreamTrafficValue": ,
/*optional, float, upstream data usage of this month, which should be accurate to three decimal places, unit:MB*/
"monthUsedDownstreamTrafficValue": ,
/*optional, float, downstream data usage of this month, which should be accurate to three decimal places, unit:MB*/
"yearUsedTrafficValue": ,
/*optional, float, data usage of this year, which should be accurate to three decimal places, unit:MB*/
"yearUsedUpstreamTrafficValue": ,
/*optional, float, upstream data usage of this year, which should be accurate to three decimal places, unit:MB*/
"yearUsedDownstreamTrafficValue": ,
/*optional,float, downstream data usage of this year, which should be accurate to three decimal places, unit:MB*/
"enabled": ,
/*optional, boolean, whether traffic monitoring is enabled*/
"packageType": "",
/*optional, string, data plan types: "day"-daily plan, "month"-monthly plan, "year"-annual plan*/
"alertValue":
/*optional, integer, alarm value(%)*/
}
}
F.135 JSON_unitConfig
unitConfig message in JSON format
{
"enabled": "",
/*required, enable unit unifying configuration or not, boolean type*/
"temperatureRange": "",
/*optional, string type, temperature unit: degreeCentigrade-Centigrade (°C), degreeFahrenheit-Fahrenheit (°F),
degreeKelvin-Kelvin (K), the default value is "degreeCentigrade"*/
"distanceUnit": ""
/*optional, string type, distance unit: centimeter, meter, feet,the default value is "centimeter"*/
}
1034
Device Network SDK (General) Developer Guide
Remarks
• When the enabled values "false", it indicates the unit unifying function is disabled, the unit can
be configured in thermomery basic settings, and the configured unit has no influence on the unit
in system settings.
• When the enabled values "false", the thermomery unit configuration in applied URL remains
unchanged and takes effect; while when the enabled values "true" and the thermometry unit is
different with the system unit, the thermometry unit configuration in applied URL takes no effect
and the error code will be returned.
F.136 JSON_unitConfigCap
unitConfigCap message in JSON format
{
"enabled":"true,false",
/*required, enable unit unified configuration or not, boolean type*/
"temperatureRange":{
/*optional, string type, temperature unit: degreeCentigrade-Centigrade (°C), degreeFahrenheit-Fahrenheit (°F),
degreeKelvin-Kelvin (K), the default value is "degreeCentigrade"*/
"@opt":"degreeCentigrade,degreeFahrenheit,degreeKelvin"
},
"distanceUnit":{
/*optional, string type, distance unit: centimeter, meter, feet,the default value is "centimeter"*/
"@opt":"centimeter,meter,feet"
}
}
F.137 JSON_USB
JSON message about USB parameters
{
"USB": {
"usbMode": ""
/*optional, string, USB mode: "UVC", "NCM"*/
}
}
F.138 JSON_USBCap
JSON message about USB parameters configuration capability
{
"USBCap": {
1035
Device Network SDK (General) Developer Guide
"usbMode": {
/*optional, string, USB mode: "UVC", "NCM"*/
"@opt":["UVC","NCM"],
"#text":"UVC"
}
}
}
F.139 JSON_User
User message in JSON format
{
"User":{
"userName": "",
/*required, string, double verification user name*/
"password": ""
/*required, string, double verification password*/
}
}
F.140 JSON_UserCap
UserCap message in JSON format
{
"UserCap":{
"userMaxNumber": "",
/*required, the maximum number of supported double verification users*/
"userNameLen":{
/*required, the length of double verification user name*/
"@min": "",
"@max": "",
},
"passwordLen":{
/*required, the length of double verification user password*/
"@min": ,
"@max": ,
}
}
}
F.141 JSON_UserList
UserList message in JSON format
1036
Device Network SDK (General) Developer Guide
{
"UserList": [{
"id": ,
/*required, integer, user ID*/
"userName":"",
/*required, string, double verification user name*/
}]
}
F.142 JSON_UserPermission
UserPermission message in JSON format
{
"UserPermission":{
"localPlayback":{
/*optional, local playback permission*/
"enable": "",
/*required, enables permission or not, boolean*/
"channelPermission": [{
/*optional, channel permission*/
"channelID": ,
/*required, channel ID, integer*/
"enable": ""
/*required, enables permission or not, boolean*/
}]
},
"localBackup":{
/*optional, local backup permission*/
"enable": "",
/*required, enables permission or not, boolean*/
"channelPermission": [{
/*optional, channel permission*/
"channelID": ,
/*required, channel ID, integer*/
"enable": ""
/*required, enables permission or not, boolean*/
}]
},
"remotePlayback":{
/*optional, remote playback and download permission*/
"enable": "",
/*required, enables permission or not, boolean*/
"channelPermission": [{
/*optional, channel permission*/
"channelID": ,
/*required, channel ID, integer*/
"enable": ""
/*required, enables permission or not, boolean*/
}]
1037
Device Network SDK (General) Developer Guide
}
}
}
F.143 JSON_UserPermissionCap
UserPermissionCap message in JSON format
{
"UserPermissionCap":{
"localPlayback":{
/*required, local playback permission*/
"channelID":{
/*required, the channel which supports configuring local playback permission*/
"@min": "",
"@max": ,
},
"enable": "true,false"
/*required, enables permission or not, boolean*/
},
"localBackup":{
/*required, local backup permission*/
"channelID":{
/*required, the channel which supports configuring local backup permission*/
"@min": "",
"@max": ,
},
"enable": "true,false"
/*required, enables permission or not, boolean*/
},
"remotePlayback":{
/*required, remote playback permission*/
"channelID":{
/*required, the channel which supports configuring remote playback permission*/
"@min": "",
"@max": "",
"#text": ""
},
"enable": "true,false"
/*required, enables permission or not, boolean*/
}
}
}
F.144 JSON_VerificationDisplay
JSON message about parameters of calibration verification result display
1038
Device Network SDK (General) Developer Guide
{
"VerificationDisplay": {
/*required, display calibration verification result*/
"enabled":
/*required, boolean, whether to display the calculated point position and verification point position on video: true-
yes*/
}
}
F.145 JSON_VerificationPoint
JSON message about calibration verification point information
{
"VerificationPoint":[
/*required, calibration verification point*/
"pan": ,
/*optional, float, pan, range: [0.00,360.00]*/
"tilt": ,
/*optional, float, tilt, range: [-90.00,90.00]*/
"zoom": ,
/*optional, float, zoom, range: [0.00,90.00]*/
"longitude": ,
/*required, float, longitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-180.000000,180.000000]*/
"latitude": ,
/*required, float, latitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-90.000000,90.000000]*/
"x": ,
/*optional, float, x-coordinate, [0.000,1.000]*/
"y":
/*optional, float, y-coordinate, [0.000,1.000]*/
}]
}
F.146 JSON_VerificationPointList
JSON message about verification points information
{
"VerificationPointList":[{
/*required, calibration verification points*/
"id": ,
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"pan": ,
/*optional, float, pan, range: [0.00,360.00]*/
"tilt": ,
1039
Device Network SDK (General) Developer Guide
F.147 JSON_VerificationPointsCap
JSON message about capability of verify calibration
{
"VerificationPointsCap":{
/*required, calibration verification capability*/
"id":{
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"@min":1,
"@max":64
},
"pan":{
/*optional, float, pan*/
"@min":0,
"@max":360
},
"tilt":{
/*optional, float, tilt*/
"@min":-90,
"@max":90
},
"zoom":{
/*optional, float, zoom*/
"@min":0,
"@max":90
},
"longitude":{
/*required, float, longitude, corrects to 6 decimal places*/
"@min":-180,
"@max":180
},
"latitude":{
/*required, float, latitude, corrects to 6 decimal places*/
"@min":-90,
1040
Device Network SDK (General) Developer Guide
"@max":90
},
"x":{
/*optional, float, x-coordinate*/
"@min":0,
"@max":1
},
"y":{
/*optional, float, y-coordinate*/
"@min":0,
"@max":1
},
"isSupportDisplay":
/*optional, boolean, whether device supports display the verification result (related URI: /ISAPI/System/
GPSVerification/channels/<ID>/display?format=json)*/
}
}
F.148 JSON_VibrationDetection
Vibration detection message in JSON format
{
"VibrationDetection": {
/*vibration detection*/
"enabled": ,
/*required, boolean, whether to enable vibration detection, "true"-enable, "false"-disable*/
"sensitivity":
/*required, int, sensitivity, value range: [0-100], by default: 50*/
}
}
F.149 JSON_VibrationDetectionCap
Message about vibration detection capability in JSON format
{
"VibrationDetectionCap": {
/*vibration detection capability*/
"enabled": {
/*required, boolean, whether to enable vibration detection,"true"-enable, "false"-disable*/
"@opt": [true, false]
},
"sensitivity": {
/*required, int, sensitivity, value range: [0-100]*/
"@min": 0,
"@max": 100,
"@def": 50
}
1041
Device Network SDK (General) Developer Guide
}
}
F.150 JSON_WhiteLightAlarm
WhiteLightAlarm message in JSON format
{
"WhiteLightAlarm":{
"durationTime": ,
/*required, int, flashing duration of supplement light, which is between 1 and 60 s*/
"frequency":"",
/*required, string, flashing frequency of supplement light: "high"-flashing 0.5s per second, "medium"-flashing 0.8s per
1.6s, "low"-flashing 1s per 2s*/
"brightness": ,
/*optional, int, supplement light brightness, which is between 1 and 100*/
"TimeRangeList":[{
/*optional, alarm output schedule list*/
"week": ,
/*required, int, days of the week: 1-Monday, 2-Tuesday, 3-Wednesday, 4-Thursday, 5-Friday,6-Saturday, 7-Sunday*/
"TimeRange":[{
"id": ,
/*required, int, ID of time period for each day*/
"beginTime":"",
/*required, string, start time in ISO8601 format*/
"endTime":""
/*required, string, end time in ISO8601 format*/
}]
}]
}
}
F.151 JSON_WhiteLightAlarmCap
WhiteLightAlarmCap message in JSON format
{
"WhiteLightAlarmCap":{
"durationTime":{
/*required, int, flashing duration of supplement light, which is between 1 and 60 s*/
"@min": 1,
"@max": 60,
"@def": 15
},
"frequency":{
/*required, string, flashing frequency of supplement light: "high"-flashing 0.5s per second, "medium"-flashing 0.8s per
1.6s, "low"-flashing 1s per 2s*/
"@opt":"high,medium,low,normallyOn",
"@def":"high"
1042
Device Network SDK (General) Developer Guide
},
"brightness":{
/*optional, int, supplement light brightness, which is between 1 and 100*/
"@min": 1,
"@max": 100,
"@def": 50
},
"TimeRangeCap":{
/*optional, alarm output schedule capability*/
"week":{
/*required, int, days of the week: 1-Monday, 2-Tuesday, 3-Wednesday, 4-Thursday, 5-Friday,6-Saturday, 7-Sunday*/
"@opt":"1,2,3,4,5,6,7"
},
"id":{
/*required, int, ID of time period for each day*/
"@maxSize": 8
},
"beginTime":{
/*required, string, start time in ISO8601 format*/
"@min":"00:00",
"@max":"24:00"
},
"endTime":{
/*required, string, end time in ISO8601 format*/
"@min":"00:00",
"@max":"24:00"
}
},
"whiteLightMode":{
/*optional, string, supplement light mode: "keepOn"-always on, "flashing"-flashing*/
"@opt":"keepOn,flashing",
"@def":"keepOn"
}
}
}
F.152 JSON_WorkingStatus
WorkingStatus message in JSON format
{
"WorkingStatus":{
"devStatus": ,
/*required, integer type, value of device status: 0-normal, 1-CPU usage, higher than 85%, 2-hardware error (e.g., serial
port exception)*/
"ChanStatus":[{
"chanNo": ,
/*required, integer type, channel No., which starts from 1*/
"enable": ,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
1043
Device Network SDK (General) Developer Guide
"online": ,
/*required, integer type, online status: 0-offline, 1-online*/
"record": ,
/*required, whether the device is recording, 0-no, 1-yes*/
"recordStatus ": ,
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
"signal": ,
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"linkNum": ,
/*required, integer type, number of software clients connected to this channel*/
"bitRate":
/*required, integer type, channel bit rate, unit: Kpbs*/
}],
"HDStatus":[{
"hdNo": ,
/*required, integer type, HDD No., which starts from 1*/
"status": ,
/*required, integer type, HDD status: 0-activate, 1-sleep, 2-exception, 3-sleepy HDD error, 4-unformated, 5-
disconnected (for network HDD), 6-formatting*/
"volume": ,
/*required, integer type, HDD capacity, unit: MB*/
"freeSpace":
/*required, integer type, free space, unit: MD*/
}],
"IOStatus":{
"IOInTrig":[…,…,…,…],
/*integer type, triggered alarm input No., two places and below: analog alarm input No., two places and above: digital
alarm input No.; and the low 2-bit is the alarm input No., the 3-bit or above is the digital channel No., e.g., 3201-alarm
input No.1 of digital channel No.32*/
"IOOutTrig":[…,…,…,…]
/*integer type, triggered alarm output No., two places and below: analog alarm output No., two places and above:
digital alarm output No.; and the lower 2 bits are the alarm output No., the 3-bit or above is the digital channel No.,
e.g., 3201-alarm output No.1 of digital channel No.32*/
}
}
}
F.153 JSON_XX
XX message in JSON format
{
"XX":{
/*required, event/alarm configuration information*/
"enabled": "",
/*required, enable or not, boolean*/
"zoneName": ""
/*optional, zone name, it is valid only when event type is zone, string*/
1044
Device Network SDK (General) Developer Guide
}
}
Remarks
The XX in the parameter "XX" corresponds to detailed event type. E.g., if the event type is
humanRecognition, then the returned node is "HumanRecognition".
F.154 JSON_XXCap
XXCap message in JSON format
{
"XXCap":{
/*required, event configuration information*/
"enabled": "true,false",
/*required, enable or not, boolean*/
"zoneName":{
/*optional, zone name, it is valid only when event type is zone, string*/
"@min": 1,
"@max": 64,
},
}
}
Remarks
The XX in the parameter "XXCap" corresponds to detailed event type. E.g., if the event type is
humanRecognition, then the returned node is "HumanRecognitionCap".
F.155 XML_AccessProtocolAbility
AccessProtocolAbility message in XML format
<AccessProtocolAbility version="2.0">
<channelNO><!--req, channel No.--></channelNO>
<EzvizParam>
<enable opt="true,false"/><!--req, whether to enable EZVIZ video7 protocol: 0-no, 1-yes-->
<deviceStatus attri="readonly" opt="offline,online"/><!--Device register status-->
<allowRedirect opt ="0,1,2"/><!--opt, whether supports address redirection, if not support, the node will not be
returned-->
<domainLen min="" max=""/><!--opt, server domain length, if not support, the node will not be returned-->
<netMode opt="auto,wiredNetworkPriority, wiredNetwork,wirelessNetwork"/>
<!--opt, network mode: auto, wired network is preferred, wired network (default), wireless network-->
<VerificationCode><!--opt, whether supports configuring verification code, if not support, the node will not be
returned-->
<verificationCodeType opt="normal,empty"><!--opt, xs: string--></verificationCodeType>
<supportDeclarationURL>
<!--opt, xs: string, service declaration hyperlink-->
1045
Device Network SDK (General) Developer Guide
</supportDeclarationURL>
<supportPrivacyPolicyURL>
<!--opt, xs: string, privacy policy hyperlink-->
</supportPrivacyPolicyURL>
<verificationCodeModify>
<!--opt, whether the verification code is edited, true-yes, false-no, if not support, the node will not be returned-->
</verificationCodeModify>
</VerificationCode>
<EZVIZSecretKey>
<!--opt, whether supports capability of editing verification code for Hik-Connect-->
<offlineStatus>
<!--ro,dep,xs:string; it is valid when registerStatus values "false", device offline status, opt="secretKeyInvalid"-
invalid verification code-->
</offlineStatus>
<secretKey min="0" max="64"><!--opt, xs:string, verification code for Hik-Connect--></secretKey>
</EZVIZSecretKey>
<operateCode min="" max=""/><!--opt, operation code, this node is used for linking device. If linking device is not
supported, this node will not be returned-->
</EzvizParam>
<SupportTransPrivateProtocol><!--opt, support private protocol passthrough via Hik-Connect-->
<NotSupportLongConfig>
<!--opt, the persistent connection is supported by Hik-Connect when communicating between Hik-Connect and
device via HCNetSDK-->
<preview><!--opt, whether supports live view, "true"-yes--></preview>
<voiceCom><!--opt, whether supports two-way audio, "true"-yes--></voiceCom>
<playbackByTime><!--opt, whether supports playback by time, "true"-yes--></playbackByTime>
<playbackByFile><!--opt, whether supports playback by file name, "true"-yes--></playbackByFile>
<playReverseByTime><!--opt, whether supports reversely playback by time, "true"-yes--></playReverseByTime>
<playReverseByFile><!--opt, wehtehr supports reversely playback by file name, "true"-yes--></playReverseByFile>
<playbackByTimeAndId><!--opt, whether supports playback by ID and time, "true"-yes--></playbackByTimeAndId>
<playbackByTimeLatitudeLongitude>
<!--opt, whether supports playback by time and latitude/longitude, "true"-yes-->
</playbackByTimeLatitudeLongitude>
<playbackByTimePCNVR><!--opt, whether the PCNVR supports playback by time PCNVR, "true"-yes--></
playbackByTimePCNVR>
<arm><!--opt, whether supports arming channel, "true"-yes--></arm>
<format><!--opt, whether supports remotely formatting HDD, "true"-yes--></format>
<log><!--opt, whether supports device log, "true"-yes--></log>
<matrixLog><!--opt, whether supports MVC log, "true"-yes--></matrixLog>
<smartLog><!--opt, whether supports smart device log, "true"-yes--></smartLog>
<alarmHostLog><!--opt, whether supports security control panel log, "true"-yes--></alarmHostLog>
<uploadConfigFile><!--opt, whether supports importing configuration file, "true"-yes--></uploadConfigFile>
<downloadConfigFile><!--opt, whether supports exporting configuration file, "true"-yes--></downloadConfigFile>
<exportIPCConfigFile>
<!--opt, whether supports exporting configuration file of network camera, "true"-yes-->
</exportIPCConfigFile>
<importIPCConfigFile>
<!--opt, whether supports importing configuration file of network camera, "true"-yes-->
</importIPCConfigFile>
<transparencySerial><!--opt, whether supports transparent channel, "true"-yes--></transparencySerial>
<alarmHostTransparencySerial>
<!--opt, whether supports transparent channel of security control panel, "true"-yes-->
1046
Device Network SDK (General) Developer Guide
</alarmHostTransparencySerial>
<backupByFile><!--opt, whether supports video backup by file name, "true"-yes--></backupByFile>
<backupByTime><!--opt, whether supports video backup by time, "true"-yes--></backupByTime>
<backupPicture><!--opt, whether supports picture backup, "true"-yes--> </backupPicture>
<backupLog><!--opt, whether supports log backup, "true"-yes--></backupLog>
<upgrade><!--opt, whether supports upgrade, "true"-yes--></upgrade>
<upgradeRaidAdapter><!--opt, whether supports upgrading adapter, "true"-yes--></upgradeRaidAdapter>
<upgradeIPChannel><!--opt, whether supports upgrading digital channel, "true"-yes--></upgradeIPChannel>
<upgradeVCALib><!--opt, whether supports upgrading intelligent library, "true"-yes--></upgradeVCALib>
<upgradeOptical><!--opt, whether supports upgrading optical terminal, "true"-yes--></upgradeOptical>
<inquireFaceDBRecord><!--opt, whether supports searching for face data records in face database, "true"-yes--></
inquireFaceDBRecord>
<searchFaceDB><!--opt, whether supports searching in face database, "true"-yes--> </searchFaceDB>
<inquireSnapDBRecord><!--opt, whether supports searching pictures in captured picture database, "true"-yes--></
inquireSnapDBRecord>
<searchSnapDB><!--opt, whether supports searching in captured picture database, "true"-yes--></searchSnapDB>
<faceMatchAlarm><!--opt, whether supports face comparison in blacklist and whitelist alarm, "true"-yes--></
faceMatchAlarm>
<findDatabase><!--opt, whether supports searching in database, "true"-yes--></findDatabase>
<findBlackList><!--opt, whether supports searching for blacklist, "true"-yes--></findBlackList>
<findSnapPicture><!--opt, whether supports searching for captured picture, "true"-yes--></findSnapPicture>
<findAdvanceSnapPicture><!--opt, whether supports dual-VCA, "true"-yes--></findAdvanceSnapPicture>
<uploadAudio><!--opt, whether supports uploading audio file, "true"-yes--></uploadAudio>
<downloadAudio><!--opt, whether supports downloading audio, "true"-yes--></downloadAudio>
<passiveDecode><!--opt, whether supports passive decoding--></passiveDecode>
<passiveTranseCode><!--opt, whether supports passive transcoding--></passiveTranseCode>
<pictureView><!--opt, whether supports picture preview--></pictureView>
<dvcsOperateDevice><!--opt, whether supports configuring distributed sub device--></dvcsOperateDevice>
<uploadPicture><!--opt, whether supports uploading background picture--></uploadPicture>
<t1Test><!--opt, whether supports T1 test--></t1Test>
<uploadCert><!--opt, whether supports uploading certificate--></uploadCert>
<downloadCert><!--opt, whether supports downloading certificate--></downloadCert>
<downloadBaselineScenePicture><!--opt, whether supports downloading scene picture--></
downloadBaselineScenePicture>
<downloadVQDAlarmPicture><!--opt, whether supports downloading VQD alarm picture--></
downloadVQDAlarmPicture>
<uploadInquestFile><!--opt, whether supports uploading inquest file--></uploadInquestFile>
<resumeInquestEvent><!--opt, whether supports restoring inquest event--></resumeInquestEvent>
<getNetworkFlow><!--opt, whether supports getting network traffic flow--></getNetworkFlow>
<emailTest><!--opt, whether supports email service test--></emailTest>
<algolibDebugInfo><!--opt, whether supports outputting algorithm library debug information--></
algolibDebugInfo>
<eventSearch><!--opt, whether supports event search--></eventSearch>
<smartSearch><!--opt, whether supports VCA search--></smartSearch>
<findFile><!--opt, whether supports file search--></findFile>
<findIPSANDirectory><!--opt, whether supports searching in IPSAN file directory--></findIPSANDirectory>
<findPicture><!--opt, whether supports picture search--></findPicture>
<findInquestFile><!--opt, whether supports inquest file search--></findInquestFile>
<findRecordLabel><!--opt, whether supports searching videos by tag--></findRecordLabel>
<findPCNVRFile><!--opt, whether supports searching PCNVR file--></findPCNVRFile>
<setAccessCameraInfo><!--opt, whether supports setting camera information--></setAccessCameraInfo>
<securityPullRaidDisk><!--opt, whether supports removing disk in security--></securityPullRaidDisk>
1047
Device Network SDK (General) Developer Guide
F.156 XML_AdminAccessProtocol
AdminAccessProtocol message in XML format
1048
Device Network SDK (General) Developer Guide
Remarks
"TLS1_1Enable" and "TLS1_2Enable" are not available for port configuration.
F.157 XML_AdminAccessProtocolList
AdminAccessProtocolList message in XML format
<AdminAccessProtocolList version="2.0" xmlns="[Link]
<AdminAccessProtocol/><!--see details in the message of XML_AdminAccessProtocol-->
</AdminAccessProtocolList>
See Also
XML_AdminAccessProtocol
F.158 XML_AlgorithmsVersion
Message about version information of algorithm library in XML format
<AlgorithmsVersion version="2.0" xmlns="[Link]
<AlgorithmsVersionInfoList><!--optional-->
<AlgorithmsVersionInfo>
<majorVersion><!--required, xs:integer, major version No.--></majorVersion>
<minorVersion><!--required, xs:integer, minor version No.--></minorVersion>
<revisionNumber><!--required, xs:integer, revision No.--></revisionNumber>
<buildNumber><!--required, xs:integer, build No.--></buildNumber>
<versionYear><!--required, xs:integer, date: year--></versionYear>
<versionMonth><!--required, xs:integer, date: month--></versionMonth>
<versionDay><!--required, xs:integer, date: day--></versionDay>
<name>
1049
Device Network SDK (General) Developer Guide
Example
AlgorithmsVersion Message Example
<AlgorithmsVersion version="2.0" xmlns="[Link]
<AlgorithmsVersionInfoList>
<AlgorithmsVersionInfo>
<majorVersion>1</majorVersion>
<minorVersion>0</minorVersion>
<revisionNumber>1</revisionNumber>
<versionYear>17</versionYear>
<versionMonth>12</versionMonth>
<versionDay>12</versionDay>
<name>faceSnap</name>
</AlgorithmsVersionInfo>
<AlgorithmsVersionInfo>
<majorVersion>1</majorVersion>
<minorVersion>0</minorVersion>
<revisionNumber>0</revisionNumber>
<versionYear>17</versionYear>
<versionMonth>10</versionMonth>
<versionDay>31</versionDay>
<name>faceScore</name>
</AlgorithmsVersionInfo>
<AlgorithmsVersionInfo>
<majorVersion>3</majorVersion>
<minorVersion>4</minorVersion>
<revisionNumber>1</revisionNumber>
<versionYear>17</versionYear>
<versionMonth>12</versionMonth>
<versionDay>25</versionDay>
<name>faceContrast</name>
</AlgorithmsVersionInfo>
</AlgorithmsVersionInfoList>
</AlgorithmsVersion>
F.159 XML_BasicCapability
BasicCapability message in XML format
1050
Device Network SDK (General) Developer Guide
1051
Device Network SDK (General) Developer Guide
1052
Device Network SDK (General) Developer Guide
support -->
<NewHdNo>1</NewHdNo>
<!-- req, the max number of network disks supported by the device(the node does not exist-not support), including
NAS and IPSAN -->
<MaxNetworkHDNum>8</MaxNetworkHDNum>
<!-- req, whether support NAS: 1- support, the node does not exist-not support -->
<NasSupport>1</NasSupport>
<!-- req, number of NAS -->
<NasNumber>8</NasNumber>
<!-- req, the max number of text overlay strings (special for analog channel) -->
<NetDiskIdentification>
<!-- req, support network disk access authentication-->
<NASIdentification>
<!--req, support NAS access authentication-->
<NFSMountType>true</NFSMountType>
<!--req, support NAS supporting NFS access-->
<CIFSMountType>
<!--req, support NAS supporting CIFS access-->
<usernameLen min = "" max= ""/>
<!--req, max. and min. value of name length on NAS authentication-->
<passwordLen min = "" max= ""/>
<!--req, max. and min. value of password length on NAS authentication-->
</CIFSMountType>
</NASIdentification>
</NetDiskIdentification>
<NasMountPara>
<addressType opt="IP, Domain"/>
<!--req, address type of mounted HDD 0-IP address; 1-domain name-->
<domainAddressLen min = "" max= ""/>
<!--req, max. and min. length of mounted HDD domain name-->
</NasMountPara>
<NetDiskDomain>
<domainSupport>true</domainSupport>
<!--req, whether mounted HDD supports domain name: true- yes; false- no-->
<domainAddressLen min = "" max= ""/>
<!--req, max. and min. length of mounted HDD domain name-->
</NetDiskDomain>
<ShowStringNumber>8</ShowStringNumber>
<!--req, max. quantity of string overlays (special for analog channel) -->
<MotionDetectAlarmSupport>1</MotionDetectAlarmSupport>
<!-- req, whether to support motion detection: 1- Yes, not displayed if not support -->
<VILostAlarmSupport>1</VILostAlarmSupport>
<!-- req, whether to support video loss detection: 1-Yes, not displayed if not support (special for analog channel) -->
<HideAlarmSupport>1</HideAlarmSupport>
<!-- req, whether to support tamper detection: 1- Yes, not displayed if not support (special for analog channel) -->
<ShelterSupport>1</ShelterSupport>
<!-- req, whether to support privacy mask: 1- Yes, not displayed if not support (special for analog channel) -->
<RtspSupport>1</RtspSupport>
<!-- req, whether to support rtsp protocol: 1- Yes, not displayed if not support -->
<RtpoverRtspSupport>
<!--whether support RTP over RTSP streaming mode: 1-yes, if not supported, this node will not be returned-->
1053
Device Network SDK (General) Developer Guide
</RtpoverRtspSupport>
<RtspoverHttpsSupport>
<!--whether supports RTP over HTTPS streaming mode, 1-yes, if not supported, this node will not be returned-->
</RtspoverHttpsSupport>
<NtpSupport>1</NtpSupport>
<!-- req, whether to support NTP timing: 1-Yes, not displayed if not support -->
<EptzSupport>1</EptzSupport>
<!-- req, whether to support E-PTZ:1- Yes, not displayed if not support -->
<PtzSupport>1</PtzSupport>
<!-- req, whether to support PTZ control: 1- Yes, not displayed if not support -->
<DDNSSupport>1</DDNSSupport>
<!-- req, whether to support DDNS: 1- Yes, not displayed if not support. Compatible network camera cannot be
deleted -->
<DDNSHostType>0,1,2,3,4</DDNSHostType>
<!-- req, DDNS server type: 0- IP Server, 1-Dyndns,2-PeanutHull, 3-NO-IP, 4- hkDDNS -->
<DDNSStatus>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15</DDNSStatus>
<!--req, supported DDNS status type: 1- Failed to connect to address server, 2- Failed to parse address message, 3-
Failed to connect to heartbeat server, 4- Failed to parse heartbeat server message, 5- Failed to connect to domain
name server, 6- Failed to parse domain name server message, 7- Domain name registered, 8- Failed to register domain
name, 9- Heartbeat sent, 10- DNS server is not configured, 11- Domain name is occupied, 12- Service exception, 13-
Authentication required, 14- Invalid domain name, 15- Disabled-->
<SNMPSupport>1</SNMPSupport>
<!-- req, SNMP version, 1-v1, 2-v2, 3-v3 -->
<SNMPVersion>1,2,3</SNMPVersion>
<!-- req, whether support UPNP: 1- support, the node does not exist-not support -->
<UPNPSupport>1</UPNPSupport>
<!-- req, whether support iSCSI: 1- support, the node does not exist-not support -->
<iSCSISupport>1</iSCSISupport>
<!-- req, the max number of IP SAN supported by the device -->
<iSCSINum>1</iSCSINum>
<!-- req, whether support ipv6: 1- support, the node does not exist-not support -->
<Ipv6Support>0</Ipv6Support>
<!-- req, whether support intelligent function: 1- support, the node does not exist-not support -->
<VCASupport>1</VCASupport>
<!-- req, capability set, this node will be returned when video stream is not supported -->
<VideoStreamnotSupport>true</VideoStreamnotSupport >
<!-- req, whether support composite stream(video&audio): 1- support, the node does not exist-not support(special
for analog channel) -->
<MultipleStreamSupport>1</MultipleStreamSupport>
<!-- req, whether support sub stream: 1- support, the node does not exist-not support(special for analog channel) --
>
<SubStreamSupport>1</SubStreamSupport>
<!-- req, whether support EMAIL: 1- support, the node does not exist-not support -->
<EmailSupport>1</EmailSupport>
<!-- req, SADP version: 0-V1.0, 1-V3.0 -->
<SADPVersion>0,1</SADPVersion>
<ZeroChanNumber>1</ZeroChanNumber>
<!-- req, whether support backup: 1- support, the node does not exist-not support -->
<BackupSupport>1</BackupSupport>
<!-- req, whether support searching record files by event: 1- support, the node does not exist-not support -->
<FindFileByEventSupport>1</FindFileByEventSupport>
<!-- req, whether support smart searching: 1- support, the node does not exist-not support -->
1054
Device Network SDK (General) Developer Guide
<SmartSearchSupport>1</SmartSearchSupport>
<!-- req, whether support ATM configuration: 1- support, the node does not exist-not support-->
<ATMSupport>1</ATMSupport>
<!-- req, whether support to lock or unlock the files: 1- support, the node does not exist-not support -->
<FileLockSupport>1</FileLockSupport>
<!-- req, whether support dynamic limit for bit rate of main/sub stream: 1- support, the node does not exist-not
support(could not configure the capability) -->
<BitrateLimitSupport>1</BitrateLimitSupport>
<!-- req, the max number of login supported by the device -->
<MaxLoginNum>0</MaxLoginNum>
<!-- req, the max number of live view supported by the device -->
<MaxPreviewNum>0</MaxPreviewNum>
<!-- req, the max number of playback supported by the device -->
<MaxPlayBackNum>0</MaxPlayBackNum>
<!-- req, the max number of connections supported by one channel -->
<MaxChanLinkNum>6</MaxChanLinkNum>
<ShutDownSupport>1</ShutDownSupport>
<!-- req, whether support to freeze preset: 1- support, the node does not exist-not support -->
<FrameFreezeSupport>1</FrameFreezeSupport>
<!-- req, whether support hard disk group configuration: 1- support, the node does not exist-not support -->
<HDgroupConfig>1</HDgroupConfig>
<!--req, whether supports auto saving mode, 1-Yes, if not supports, this node will not be displayed.-->
<AutoStorageMode>1</AutoStorageMode>
<!-- req, whether support RS232 configuration: 1- support, the node does not exist-not support -->
<RS232Config>1</RS232Config>
<!-- req, whether support PPPoE configuration: 1- support, the node does not exist-not support -->
<PPPoEConfig>1</PPPoEConfig>
<!-- req, whether support redundant recording: 1- support, the node does not exist-not support -->
<RedundancyRecord>1</RedundancyRecord>
<!-- req, whether support scale configuration of main or aux video output: 1- support, the node does not exist-not
support -->
<VideoOutScaleConfig>1</VideoOutScaleConfig>
<!-- req, whether support guest user: 1- support, the node does not exist-not support -->
<GuestUser>1</GuestUser>
<!-- req, whether support FTP to upload pictures: 1- support, the node does not exist-not support -->
<UploadFTP>1</UploadFTP>
<!-- req, whether it does not support disk quota: 1- not support, no this node if support -->
<NotSupportDiskQuota>1</NotSupportDiskQuota>
<!-- req, 2012-12-8 support ratio-based disk quota allocation, 1- support, not displayed if not supported-->
<QuotaRatio>1</QuotaRatio>
<!-- req, 2014-4-11 support time-based disk quota allocation, 1- support both recording and picture quota, 2-
support recording quota but not picture quota, not displayed if not supported-->
<QuotaByTime>1</QuotaByTime>
<QuotaWithoutChannel><!--for camera with multiple channels, channel No. is not required when performing disk
quota--></QuotaWithoutChannel>
<LocalVout>
<mainVoutType opt="mainCVBS,HDMI,VGA,auto"/>
<!--req, the output type which is the local main port, nonhomologous device: 0-Auto,1-main CVBS, 2-HDMI®, 3-
VGA; homologous device: 0-Auto, 1-main CVBS, 2-HDMI®/VGA-->
</LocalVout>
<SingleStorageMaxCap>16</SingleStorageMaxCap><!--req,the maximum capacity of single storage, unit: T-->
<IPCPlug>1</IPCPlug><!--req, whether support plug and play of IPC: 1- support, the node does not exist-not
1055
Device Network SDK (General) Developer Guide
support-->
<DrawFrameRecord>1</DrawFrameRecord><!--req, whether support frame extract recording: 1- support, the node
does not exist-not support-->
<DelInvalidDisk>1</DelInvalidDisk><!--req, whether support to delete invalid disks: 1- support, the node does not
exist-not support-->
<MountOrUnmountDisk>1</MountOrUnmountDisk><!--req, whether support to mount or unmount disks: 1-
support, the node does not exist-not support-->
<MaxDvcsSubDevNumNum><!--req,the maximum device number which distributed device supported, the device
which is not supported doesn't appear--></MaxDvcsSubDevNumNum>
<NotSupportInputOutputConfigFile>1</NotSupportInputOutputConfigFile><!--req,input/output the configurate file
is not supported, 1-not support-->
<NotSupportLogSearch>1</NotSupportLogSearch><!--req,not support log search, if it is supported, it doesn't
appear, 1-not support--><DateUpLoadAndDownLoad><!--data upload and download-->
<audioType opt="wave"/><!--audio type supported-->
<uploadAndDownLoad opt = "upload,download"/><!--support upload and download-->
<maxNum opt= "8"/><!--type:max audio number which is supported by device-->
</DateUpLoadAndDownLoad>
<DevModuleServerCfg><!--req,server configuration ability-->
<!--req,the configuration of telnet is only permitted by "admin" -->
<telnetServer opt="disable,enable"/><!--req 0-disable 1-enable-->
<irLampServer opt="disable,enable"/><!--req 0-disable 1-enable-->
<abfServer opt="enable,disable,"/>
<!--req 0-enable, 1-disable -->
<LEDStatus opt="disable,enable"/>
<!--req 0-disable, 1-enable-->
<autoDefog opt="disable,enable"/>
<!--req, auto defog control: 0- enable, 1- disable-->
<sshServer opt="disable,enable"/>
<!--req, SSH settings: 0- enable, 1- disable-->
<webAuthentication opt="disable,enable"/>
<!--req, WEB authentication: 0- disable, 1- enable-->
<supplementLight opt="disable,enable"/>
<!--req, illuminator control: 0- enable, 1- disable-->
<deicing opt="disable,enable"/>
<!--opt, deicing: 0- disable, 1-enable-->
<isSupportFireLaserLight><!--opt,xs:boolen, when true, it is thermal imaging fire source detection laser
supplement light--></isSupportFireLaserLight>
<visibleMovementPower opt="disable,enable"/><!--opt 0-disable, 1-enable-->
<thermalMovementPower opt="disable,enable"/><!--opt 0-disable, 1-enable-->
<ptzPower opt="disable,enable"/><!--opt 0-disable, 1-enable-->
<powerSavingControl opt="sleepMode,lowConsumptionMode"/><!--opt xs:string "Low-power consumption:
sleepMode-Sleepy mode, lowConsumptionMode-Low-power mode-->
<captureWithSupplimentLightEnabled opt="true,false"><!--opt, xs:boolean, enable snapshot supplement light--></
captureWithSupplimentLightEnabled>
</DevModuleServerCfg>
<SearchLogAbilitySupport>1</SearchLogAbilitySupport><!--req,if it supports GB/T28181 protocol, 1-support, if not
support,it does not appear-->
<AlarmTriggerRecordAbilitySupport>1</AlarmTriggerRecordAbilitySupport><!--req,if it supports log search 1-
support, if not support,it does not appear-->
<CameraParaDynamicAbilitySupport>1</CameraParaDynamicAbilitySupport><!--req,if it supports camera
parameters dymatic ability, 1-support, if not support,it does not appear-->
<IOAbilitySupport>1</IOAbilitySupport>
1056
Device Network SDK (General) Developer Guide
<AccessProtocolAbility>1</AccessProtocolAbility>
<!--req, protocol access capability, 1- support, not displayed if not supported-->
<CameraMountAbility>1</CameraMountAbility>
<!--req, camera mount capability, 1- support, not displayed if not supported-->
<VehicleRecogAbility>1</VehicleRecogAbility>
<!--req, vehicle secondary detection capability, 1- support, not displayed if not supported-->
<VcaChanAbility>1</VcaChanAbility>
<!--req, VCA smart channel capability, 1- support, not displayed if not supported-->
<Language><!--req Type of languge-->
<supportType opt="0-noSupport,1-chinese,2-english"/>
<!--req 1-chinese,2-English-->
</Language>
<LongLinkConfigurationFile>1</LongLinkConfigurationFile>
<!--req, whether to support long connection import and export configuration file, 1- yes, not displayed if not
supported-->
<IpViewDev>1</IpViewDev>
<!--req, support IP video intercom host capability set, corresponding to IpViewDevAbility-->
<TransDevice>
<transChannelNum min = "" max = "" />
<!--req, max. and min. value of transcode channel-->
</TransDevice>
<MultiNetworkCardMode>0,1</MultiNetworkCardMode>
<!--req, supported multi-NIC operating mode, 0- normal, 1- LAN & WAN isolation, not displayed if not supported-->
<DeviceWorkMode>1,2,3</DeviceWorkMode>
<!--req, device-supported operating mode, 1- channel mode, 2- stream ID mode, not displayed if not supported-->
<AllBackupLog>
<enabled>true</enabled>
<!--req, whether to support exporting all logs-->
</AllBackupLog>
<VoiceTalkAsAudioIn>
<enabled>true</enabled>
<!--req, whether to support two-way audio as audio input-->
<supportVoiceChan opt="1,2"/>
<!--opt, No. of supported two-way audio channel-->
</VoiceTalkAsAudioIn>
<Matrix>1</Matrix>
<!--req , support matrix capability set MATRIX_ABILITY, not displayed if not supported-->
<VCADetection opt="true,false"/>
<!--req, whether to support VCA detection-->
<PDC opt="true,false"/ ><!--req, whether supports people counting function-->
<TrialHostAbility>1</TrialHostAbility>
<!--req, support interrogation host capability, 1- support, not displayed if not supported-->
<BinocularSupport>1</BinocularSupport>
<!--req, support stereo cameras, 1- support, not displayed if not supported-->
<supportChoosePlaybackDrawframe>true</supportChoosePlaybackDrawframe>
<!--opt, whether supports extracting frames for playback, if not supported, no return-->
<isNotSupportSummerTime>true</isNotSupportSummerTime>
<!--opt, return this capability if DST is not supported-->
<BrokenNetHttpSupport opt="postMPR,PDC,heatMapDetection"/>
<!--opt,xs:string, support ANR, vehicle detection under MPR mode, people counting, heat map detection-->
<isSupportSyncIPCPassword>true</isSupportSyncIPCPassword><!--opt, whether to support IP camera password
sync, not returned if not supported-->
1057
Device Network SDK (General) Developer Guide
1058
Device Network SDK (General) Developer Guide
<!-- req, auto restart after recording schedule time is modified, 1- restart, not displayed if not supported -->
<RecordTimeChange>1</RecordTimeChange>
<!-- req, auto restart after video compression type is modified, 1- restart, not displayed if not supported -->
<VideoEncodeTypeChange>1</VideoEncodeTypeChange>
<!-- req, auto restart after audio compression type is modified, 1- restart, not displayed if not supported -->
<AudioEncodeTypeChange>1</AudioEncodeTypeChange>
<!-- req, auto restart after video standard is modified, 1- restart, not displayed if not supported -->
<StandardTypeChange>1</StandardTypeChange>
<!-- req, auto restart after defog status is modified, 1- restart, not displayed if not supported -->
<DehazeEnableChange>1</DehazeEnableChange>
<!-- req, auto restart after line encoding status is modified, 1- restart, not displayed if not supported -->
<LineCodingEnableChange>1</LineCodingEnableChange>
<!-- req, auto restart after IP camera parameters local output switch status is modified, 1- restart, not displayed if
not supported -->
<LocalOutputEnableChange>1</LocalOutputEnableChange>
<!-- req, auto restart after main port is switched, 1- restart, not displayed if not supported -->
<LocalMainVoutTypeChange>1</LocalMainVoutTypeChange>
<!-- req, auto restart after NAS authentication parameters are modified, 1- restart, not displayed if not supported --
>
<NASIdentificationChange>1</NASIdentificationChange>
<DeviceLanguageChange>
<!--whether the reboot is required after editing device language, 1-required, this node does not exist-not
required-->
</DeviceLanguageChange>
<CardReaderFPAlgorithmUpgradeReboot>
<!--opt, whether the reboot is required after upgrading the fingerprint algorithm program of the fingerprint
module: 1-required, this node does not exist-not required-->
</CardReaderFPAlgorithmUpgradeReboot>
<DeviceUpgradeReboot>
<!--opt, whether the device will automatically reboot after upgrading: 1-yes (the device will automatically reboot
no matter whether the upgrading succeeded or not, this node does not exist-no)>
</DeviceUpgradeReboot>
<!--whether the device restarts after switching the VoIP protocol of the video intercom device: 1-restart (the user
needs to click "Confirm" and the application will apply the command to restart the device), 2-restart automatically
(the upper-layer application applies the command to restart the device directly). If there is no need to restart the
device, this field will not be displayed-->
<IntercomProtocolTypeChange>1</IntercomProtocolTypeChange>
<!-- req, auto restart after operating mode is modified, 1- restart, not displayed if not supported -->
<DevWorkModeChange>1</DevWorkModeChange>
<!-- req, auto restart after SIP local port is modified, 1- restart, not displayed if not supported -->
<LocalPortChange>1</LocalPortChange>
<!-- req, auto restart after SIP server register cycle is modified, 1- restart, not displayed if not supported -->
<LoginCycleChange>1</LoginCycleChange>
<!-- req, auto restart after RTP port is modified, 1- restart, not displayed if not supported -->
<RtpPortChange>1</RtpPortChange>
<!-- req, auto restart after audio compression priority level is modified, 1- restart, not displayed if not supported -->
<AudioEncodePriorityChange>1</AudioEncodePriorityChange>
<!-- req, auto restart after preview delay time is modified, 1- restart, not displayed if not supported -->
<PreviewDelayTimeChange>1</PreviewDelayTimeChange>
<!-- req, auto restart after NIC type is modified, 0- no -->
<NetworkCardTypeChange>0</NetworkCardTypeChange>
<!--req, auto restart after device cloud storage mode is modified, 1- restart, not displayed if not supported-->
1059
Device Network SDK (General) Developer Guide
<CloudStorageModeChangeReboot>1</CloudStorageModeChangeReboot>
<VcaDecModeChange>1</VcaDecModeChange>
<!--req, auto restart after enabling smart decoding mode, 1- restart, not displayed if not supported-->
<CompleteRestoreReboot>1</CompleteRestoreReboot>
<!--req, auto restart after restoring to factory defaults, 1- restart, not displayed if not supported-->
<SwitchVehicleDetection>1</SwitchVehicleDetection>
<!--req, auto restart after vehicle detection mode is modified, 1- restart, not displayed if not supported-->
<SwitchHVTVehicleDetection>1</SwitchHVTVehicleDetection>
<!--req, auto restart after mixed vehicle detection mode is switched, 1- restart, not displayed if not supported-->
<SmartCodec>1</SmartCodec>
<!--req, auto restart after high performance compression detection mode is switched, 1- restart, not displayed if
not supported-->
<NUCLEUSToOther>1</NUCLEUSToOther>
<!--opt, auto restart after switching from nucleus to other protocol, 1- restart, not displayed if not supported-->
<SystemSwitchReboot>1</SystemSwitchReboot>
<!--opt, whether to reboot when switching video intercom system, 1-reboot, this node will not be displayed if
reboot is not required>
<TerminalModeReboot>1</TerminalModeReboot>
<!--opt, whether to reboot when the face recognition terminal switching the terminal mode, 1-reboot, this node
will not be displayed if reboot is not required>
<ThirdStream>1</ThirdStream>
<!--opt, whether to restart after third stream is enabled, 1- yes, not displayed if not supported-->
<ExtensionModuleUpgradeReboot>1</ExtensionModuleUpgradeReboot>
<!--opt, whether to reboot after upgrading extended module: 1-Reboot. If there is no need to reboot, this node
will not be displayed-->
<WorkModeReboot>
<!--opt, whether the reboot is required when switching working mode of intelligent identity detection terminal,1-
yes, if reboot is not required, this node will not return-->
</WorkModeReboot>
<MultiFaceRecogizeChange><!--opt, whether the reboot is required when switching multi-face recognition,1-yes, if
reboot is not required, this node will not return--></MultiFaceRecogizeChange>
<FaceRecogizeModeChange><!--whether reboot is required after switching facial recognition mode: 1-yes, 2-
device reboots automatically, this node is not returned if reboot is not required--></FaceRecogizeModeChange>
<ChannelControllerUpgradeReboot>1</ChannelControllerUpgradeReboot>
<!--opt, whether to reboot after upgrading lane controller: 1- Reboot. If there is no need to reboot, this node will
not be displayed-->
<UbootUpgradeReboot><!--opt, whether to reboot after upgrading uboot: 1-reboot. If there is no need to reboot,
this node will be displayed--></UbootUpgradeReboot>
</NeedReboot>
<SupportMainBoardCameraPTZ>true</SupportMainBoardCameraPTZ><!--opt, PTZ that supports camera control of
master controller-->
<Support3DPTZ>true</Support3DPTZ>
<!--opt, whether to support 3D64 speed PTZ control-->
<SupportUnifiedIPCProtocol>true</SupportUnifiedIPCProtocol>
<!--opt, whether to support unified IPC protocol, using NET_DVR_IPC_ENUM_UNIFY type-->
<SupportRemoveStorage>true</SupportRemoveStorage>
<!--opt, remove device storage function (including video, playback, picture and log) xs:boolean -->
<CloudSupport>1</CloudSupport>
<!--opt, whether to support third-party cloud: 1- yes, not displayed if not supported-->
<isSupportBatchUploadPic>true</isSupportBatchUploadPic>
<!--opt, whether to support batch upload picture (BATCH_UPLOAD_PICTURE_FILE), not displayed if not supported--
>
1060
Device Network SDK (General) Developer Guide
<isSupportDownloadVehicleInfo>true</isSupportDownloadVehicleInfo>
<!--opt, whether to support vehicle information search (NET_DVR_GET_VEHICLE_INFORMATION), not displayed if
not supported-->
<isSupportConfirmMechanism>true</isSupportConfirmMechanism>
<!--Whether supports confirming arming, if not supports, no return.-->
<isSupportDNS>
<!--opt, whether to support enabling manual DNS settings, 1- yes, not displayed if not supported--></
isSupportDNS>
<HRUDP>
<!--opt,HRUDP (reliable transmission) capability-->
<LinkList>
<!--req,HRUDP connection list-->
<Link>
<!--req,HRUDP connection-->
<previewLink>1</previewLink>
<!--req,HRUDP number of preview connections-->
<recommendResolution opt="39-1920*1080"></recommendResolution>
<!--req,recommended resolution-->
</Link>
</LinkList>
</HRUDP>
<isSupportCountBinocular>true</isSupportCountBinocular>
<!--opt,"supported means the device is dual-lens people counting camera, not displayed if not supported"-->
<isSupportUploadCountBinocular>true</isSupportUploadCountBinocular>
<!--opt,"If supports, the dual-lens people counting camera list will be uploaded, otherwise, no return."-->
<supportChoosePlaybackDrawframe>true</supportChoosePlaybackDrawframe>
<!--opt, whether supports extracting frames for playback, if not supported, no return-->
<isSupportMinSAS>true</isSupportMinSAS>
<isSupportMinSAS>true</isSupportMinSAS>
<!--req, whether to support miniSAS HDD-->
<isNotSupportSummerTime>true</isNotSupportSummerTime>
<!--opt,"return this capability when DST is not supported"-->
<isSupportPanoramicStitch>true</isSupportPanoramicStitch>
<!--opt, whether to support uploading panoramic view configurationfile function, not returned if not supported-->
<isSupportGetFigure/>
<!--opt,xs:boolean, whether supports getting video thumbnails-->
<isSupportGetThumbnails>
<!--opt, whether supports getting video thumbnails by time segment-->
<isSupportStreamID opt="true,false"/>
<!--opt, whether supports stream ID-->
<resultDataType opt="0,1"/><!--opt, search type: 0-I frame, 1-picture data-->
<StartTime>
<year min="" max=""/>
<month min="" max=""/>
<day min="" max=""/>
<hour min="" max=""/>
<minute min="" max=""/>
<second min="" max=""/>
</StartTime>
<StopTime>
<!--opt, search end time-->
<year min="" max=""/>
1061
Device Network SDK (General) Developer Guide
1062
Device Network SDK (General) Developer Guide
F.160 XML_CAMERAPARA
CAMERAPARA message in XML format
<xml version="1.0" encoding="utf-8"?>
<!--req, camera parameter capability set description -->
<CAMERAPARA version="2.0">
<ChannelList>
<ChannelEntry>
<ChannelNumber>1</ChannelNumber>
<IPStartChanNoDefault><!--optional, xs:integer, start digital channel No. The device's digital channel No. will start
from the returned No.--></IPStartChanNoDefault>
<PowerLineFrequencyMode><!-- req, format -->
<isNotSupportDigitalChanCfg opt="true,false"/><!--optional, whether setting digital channels is not supported:
true-yes (not supported), false-no (supported). If this field is not returned, it indicates that setting digital channels is
supported-->
<Range>0,1</Range><!-- req, 0-50HZ; 1-60HZ -->
<Default>0</Default><!-- req, default value -->
</PowerLineFrequencyMode>
<CaptureMode>
<!--req, correspond to byCaptureMode in NET_DVR_CAMERAPARAMCFG_EX-->
<!--req, the device supports captureModePWithIndex and captureModeNWithIndex, when returning
captureModeP and captureModeN, the client resolves the capability set, first with captureModePWithIndex and
captureModeNWithIndex, or captureModeP and captureModeN if the former nodes are not supported-->
<!--req, 0-close, 1-640*480@25fps, 2-640*480@30ps, 3-704*576@25fps, 4-704*480@30fps,
5-1280*720@25fps, 6-1280*720@30fps, 7-1280*720@50fps, 8-1280*720@60fps, 9-1280*960@15fps,
10-1280*960@25fps, 11-1280*960@30fps, 12-1280*1024@25fps, 13-1280*1024@30fps, 14-1600*900@15fps,
15-1600*1200@15fps, 16-1920*1080@15fps, 17-1920*1080@25fps, 18-1920*1080@30fps, 19-1920*1080@50fps,
20-1920*1080@60fps, 21-2048*1536@15fps, 22-2048*1536@20fps, 23-2048*1536@24fps, 24-2048*1536@25fps,
25-2048*1536@30fps, 26-2560*2048@25fps, 27-2560*2048@30fps, 28-2560*1920@7.5fps, 29-3072*2048@25fps,
30-3072*2048@30fps, 31-2048*1536@12.5, 32-2560*1920@6.25, 33-1600*1200@25, 34-1600*1200@30,
35-1600*1200@12.5,36-1600*900@12.5, 37-1600@900@15, 38-800*600@25, 39-800*600@30fps,
136-640*960@25fps, 137-640*960@24fps, 142-2992*2192@25fps, 143-2992*2192@30fps,158-384*288@8.3fps,
159-640*512@8.3fps, 160-160*120@8.3fps, 161-1024*768@8.3fps, 162-640*480@8.3fps-->
<captureModeP opt="close,640*480@25fps,640*480@30ps,704*576@25fps,704*480@30fps,1280*720@25fps,
1280*720@30fps,1280*720@50fps,1280*720@60fps,1280*960@15fps,1280*960@25fps, 1280*960@30fps,
1280*1024@25fps,1280*1024@30fps,1600*900@15fps,1600*1200@15fps, 1920*1080@15fps,1920*1080@25fps,
1920*1080@30fps,1920*1080@50fps,1920*1080@60fps, 2048*1536@15fps,2048*1536@20fps,2048*1536@24fps,
2048*1536@25fps,2048*1536@30fps, 2560*2048@25fps,2560*2048@30fps,2560*1920@7.5fps,3072*2048@25fps,
3072*2048@30fps, 2048*1536@12.5fps,2560*1920@6.25fps,1600*1200@25fps,1600*1200@30fps,
1600*1200@12.5fps, 1600*900@12.5fps,1600@900@15fps,800*600@25fps,800*600@30fps,640*960@25fps,
640*960@24fps"/>
<!--req, The value of captureMode in P standard-->
<captureModeN opt="close,640*480@25fps,640*480@30ps,704*576@25fps,704*480@30fps,
1280*720@25fps, 1280*720@30fps,1280*720@50fps,1280*720@60fps,1280*960@15fps,1280*960@25fps,
1280*960@30fps,1280*1024@25fps,1280*1024@30fps,1600*900@15fps,1600*1200@15fps, 1920*1080@15fps,
1920*1080@25fps,1920*1080@30fps,1920*1080@50fps,1920*1080@60fps, 2048*1536@15fps,2048*1536@20fps,
2048*1536@24fps,2048*1536@25fps,2048*1536@30fps, 2560*2048@25fps,2560*2048@30fps,2560*1920@7.5fps,
3072*2048@25fps,3072*2048@30fps, 2048*1536@12.5fps,2560*1920@6.25fps,1600*1200@25fps,
1600*1200@30fps,1600*1200@12.5fps, 1600*900@12.5fps,1600@900@15fps,800*600@25fps,800*600@30fps,
640*960@25fps,640*960@24fps"/>
1063
Device Network SDK (General) Developer Guide
<!--req, to enable 3D noise reduction, SMD, rotation or WDR in 1080p50/1080p60 mode, the prompt will show
"please set capture mode with normal frame rate"-->
<CaptureModeIndex19>
<!--1920*1080@50fps-->
<!--req, mutually exclusive capability, difital noise reduction, line crossing detection, rotation, WDR access
capability-->
<mutexAbility opt="digitalNoiseReduction,traversingVirtualPlane,fieldDetection,corridorMode,WDR"/>
</CaptureModeIndex19>
<CaptureModeIndex20>
1064
Device Network SDK (General) Developer Guide
<!--req, 1920*1080@60fps-->
<!--req, mutually exclusive capability, difital noise reduction, line crossing detection, rotation, WDR access
capability-->
<mutexAbility opt="digitalNoiseReduction,traversingVirtualPlane,fieldDetection,corridorMode,WDR"/>
</CaptureModeIndex20>
<!--req, to enable rotation or WDR in 720p50/720p60 mode, the prompt will show "please set capture mode with
normal frame rate"-->
<CaptureModeIndex7>
<!--1280*720@50fps-->
<!--req mutually exclusive capability rotation WDR access capability-->
<mutexAbility opt="corridorMode,WDR"/>
</CaptureModeIndex7>
<CaptureModeIndex8>
<!--1280*720@60fps-->
<!--req mutually exclusive capability rotation WDR access capability-->
<mutexAbility opt="corridorMode,WDR"/>
</CaptureModeIndex8>
<CaptureModeIndex52>
<!--2048*1536@50fps-->
<!--req mutually exclusive capability rotation WDR access capability-->
<mutexAbility opt="WDR"/>
</CaptureModeIndex52>
<CaptureModeIndex53>
<!--2048*1536@60fps -->
<!--req mutually exclusive capability rotation WDR access capability-->
<mutexAbility opt="WDR"/>
</CaptureModeIndex53>
<CaptureModeIndex87>
<!--1280*960@50fps -->
<!--req mutually exclusive capability WDR access capability-->
<mutexAbility opt="WDR"/>
</CaptureModeIndex87>
<CaptureModeIndex88>
<!--1280*960@60fps -->
<!--req mutually exclusive capability WDR access capability-->
<mutexAbility opt="WDR"/>
</CaptureModeIndex88>
<CaptureModeIndex89>
<!--1280*960@100fps -->
<!--req mutually exclusive capability WDR access capability-->
<mutexAbility opt="WDR"/>
</CaptureModeIndex89>
<CaptureModeIndex90>
<!--1280*960@120fps -->
1065
Device Network SDK (General) Developer Guide
<ExposureSet>
<!-- req, exposure time, 0(index): auto*8(display on the client), 40000*8 us(the actual value)-->
<!-- req,0-auto*8(40000*8us),1-auto*5(40000*5us),2-auto*4(40000*4us),3-auto*2(40000*2us),-->
<!-- req,4-1/25(40000us),5-1/50(20000us),6-1/100(10000us),7-1/250(4000us),8-1/500(2000us), -->
<!-- req,9-1/750(1333us),10-1/1000(1000us),11-1/2000(500us),12-1/4000(250us),-->
<!-- req,13-1/10,000(100us),14-1/100,000(10us), 17-1/150, 18-1/200, 20-1-1000000us, 21-1/75, 22-1/125,
23-1/175, 24-1/225,25-1/300, 26-1/400 -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14</Range>
<Default>4</Default><!-- req, default value-->
<DynamicAbility>
<!--req, IPC 5.1.0 supports to get or set abilities dynamicly-->
<dynamicAbilityLinkTo opt="wdrEnable,irisType"/>
<!--req, Dynamic related items, WDR enable, the structure used for defining the type of len is
NET_DVR_CAMERAPARAMCFG_EX, the parameters is [Link] and [Link] -->
</DynamicAbility>
</ExposureSet>
<exposureUSERSET><!--req, customized exposure time-->
<Min>1</Min><!--req, minimum value-->
<Max>40000</Max><!--req, maximum value-->
<Default>20000</Default><!--req, default value-->
</exposureUSERSET>
<ExposureTarget> <!--req, reserved-->
1066
Device Network SDK (General) Developer Guide
1067
Device Network SDK (General) Developer Guide
<LaserConfig>
<controlMode opt="auto,manual"/>
<autoMode><!--req,Control Mode-->
<sensitivity min="0" max="100"/><!--req,laser light sensitivity-->
<triggerMode opt=" cameraModuleTrigger, photoresistanceTrigger"/>
<!--req laser light triggering mode-->
<limitBrightness min="0" max="100"/>
<!--req,laser light brightness limitation-->
<angle min="1" max="36"/><!--req,laser light angle-->
<enable opt="true,false" />
<!-- dep, enable manual control laser: 0- No, 1- Yes -->
<illumination min="0" max="100" /><!-- dep, laser light strength limit-->
1068
Device Network SDK (General) Developer Guide
<manualMode>
<sensitivity min="0" max="100"/><!--req,laser light sensitivity-->
<triggerMode opt=" cameraModuleTrigger, photoresistanceTrigger"/>
<!--req laser light triggering mode-->
<brightness min="0" max="255"/><!--req,laser light brightness-->
<angle min="1" max="36"/><!--req,laser light angle-->
</manualMode>
</LaserConfig>
1069
Device Network SDK (General) Developer Guide
</WDRLevel1>
<WDRLevel2><!--req, level 2 of wide dynamic range, from 0 to 15-->
<Min>0</Min><!--req, minimum value-->
<Max>15</Max><!--req, maximum value-->
<Default>0</Default><!--req, default value-->
</WDRLevel2>
<WDRContrastLevel><!--req, contrast of wide dynamic range, from 0 to 100 -->
<Min>0</Min><!-- req, minimum value -->
<Max>100</Max><!-- req, maximum value -->
<Default>50</Default><!-- req, default value -->
</WDRContrastLevel>
</WDR>
<DayNightFilter><!--req, day and night switch -->
<DayNightFilterType><!--req, day and night switch mode -->
<!--req, 0- day,1- night, 2- auto, 3- timing, 4- triggered by alarm input , 5- Auto mode 2(no photosensitivity)-->
<Range>0,1,2,3,4</Range>
<Default>2</Default><!--req, default value -->
</DayNightFilterType>
<SwitchSchedule>
<SwitchScheduleEnabled><!--req, reserved -->
<Range>0,1</Range><!--req, 0- disable 1- enable -->
<Default>1</Default><!--req, default value -->
</SwitchScheduleEnabled>
<DayToNightFilterLevel><!--req, sensitivity of switching day to night -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12</Range>
<!--req, 0, 1, 2, 3, 4, 5, 6, 7, 10-low, 11-medium, 12-high -->
<!-- req, (10~12: new options for speed domes) -->
<Default>3</Default><!-- req, default value -->
</DayToNightFilterLevel>
<NightToDayFilterLevel><!-- req, sensitivity of switching night to day -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12</Range>
<!-- req, 0, 1, 2, 3, 4, 5, 6, 7, 10-low, 11-medium, 12-high -->
<!-- req, (10~12: new options for speed domes) -->
<Default>3</Default><!-- req, default value -->
</NightToDayFilterLevel>
<DayNightFilterTime><!-- req, filtering time of switching day to night -->
<!-- req, IPC(min/max); speed dome/zoom camera(Range) -->
<Min>10</Min><!-- req, minimum value -->
<Max>120</Max><!-- req, maximum value -->
<Range>0,1,2,3,4,5,6,7</Range>
<!-- req, zoom camera/speed dome: 0-2S, 1-3S, 2-5S, 3-10S, 4-15S, 5-30S, 6-45S, 7-60S -->
<Default>55</Default><!-- req, default value -->
</DayNightFilterTime>
<NightDayFilterTime>
<!-- req, IPC(min/max); speed dome/zoom camera(Range) -->
<Min>0</Min><!-- req, minimum value -->
<Max>120</Max><!-- req, maximum value -->
<Range>0,1,2,3,4,5,6,7</Range>
<!-- req, zoom camera/speed dome:0-2S,1-3S,2-5S,3-10S,4-15S,5-30S,6-45S,7-60S -->
<Default>55</Default><!-- req, default value -->
</NightDayFilterTime>
<TimeSchedule><!--2012-08-29-->
1070
Device Network SDK (General) Developer Guide
1071
Device Network SDK (General) Developer Guide
<HighSensitivitySupport>
<!--req, whether supports setting high sensitivity: 1- suport, no this node if not support-->
<Range>1</Range>
</HighSensitivitySupport>
<InitializeLensSupport>
<!--req, whether supports initializing the Lens: 1-support, no this node if not support-->
<Range>1</Range>
</InitializeLensSupport>
<CameraResetSupport>
<!--req, whether supports rebooting movement: 1-support, no this node if not support-->
<Range>1</Range>
</CameraResetSupport>
<CameraRestoreSupport>
<!--req, whether supports resuming movement to the factory settings: 1-support, no this node if not support-->
<Range>1</Range>
</CameraRestoreSupport>
1072
Device Network SDK (General) Developer Guide
<LINEENCODE><!--req, whether it supports line coding capacity: 1-support, and there is no this node if not
support-->
1073
Device Network SDK (General) Developer Guide
<Range>1</Range>
</LINEENCODE>
<!--req, whether it supports one-key focus or not: 1- support, and there is no this node if not support-->
<OnepushFocus>1</OnepushFocus>
<Dehaze><!--req, de-haze-->
<DehazeEnable>0,1</DehazeEnable>
<!--req, enable de-haze mode or not: 0-no, 1-adaptive mode-->
</Dehaze>
<!--req, the following from dimmer mode to auto shutter compensation are special for thermal network camera--
>
<DimmerMode>
<!--req, dimmer mode: 0-semiautomatic, 1-automatic-->
<Range>0,1</Range>
<Default>0</Default><!--req, default value-->
</DimmerMode>
<PaletteMode>
<!-- req, palette: 0- white heat, 1-black heat, 2-palette2, ..., 8-palette8, 9-fusion 1, 10-rainbow, 11-fusion 2, 12-
iron red 1, 13-iron red 2, 14-sepia, 15-color 1, 16-color 2, 17-ice & fire, 18-rain, 19-red hot, 20-green hot, 21-dark blue,
22-color 3-->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22</Range>
<Default>0</Default><!-- req, default value -->
</PaletteMode>
<EnhancedMode>
<!-- req, enhanced mode(detection object surrounding): 0- not enhanced, 1-1, 2-2, 3-3, 4-4 -->
<Range>0,1,2,3,4</Range>
<Default>0</Default><!-- req, default value -->
</EnhancedMode>
<FilterSwitch>
<!-- req, filter switch: 1-support -->
<Range>1</Range>
</FilterSwitch>
<FocusSpeed>
<!-- req, focus speed: 0~10 -->
<Min>0</Min><!-- req, minimum value -->
<Max>10</Max><!-- req, maximum value -->
<Default>5</Default><!-- req, default value -->
</FocusSpeed>
<SmartIR><!--2012-08-29-->
1074
Device Network SDK (General) Developer Guide
<Illumination><!--2012-08-29-->
<Range>0,1</Range><!--req,low light: 0-closed, 1-open-->
</Illumination>
<LightInhibit><!--2012-08-29-->
<LightInhibitEnable opt="true,false"/>
<!--req, enable high light compensation: 0-closed, 1-open-->
<isNotSupportDigitalChanCfg opt="true,false"/><!--optional, whether setting digital channels is not supported:
true-yes (not supported), false-no (supported). If this field is not returned, it indicates that setting digital channels is
supported-->
<level min="0" max="100"/>
<!--req,high light compensation level-->
</LightInhibit>
<GrayLevel><!--2012-08-29-->
<Range>0,1</Range><!--req,grayscale value range,0- [0,255], 1- [16,235]-->
</GrayLevel>
1075
Device Network SDK (General) Developer Guide
<AutoExposureMode>
<!-- req, exposure and gain control of zoom camera and speed dome-->
<ExposureSet>
<!-- req, exposure mode: 0-manual mode, 1-auto exposure, 2-aperture priority, 3-shutter priority, 4-gain priority
-->
<Range>0,1,2,3,4</Range>
<Default>0</Default><!-- req, default value -->
</ExposureSet>
<IrisSet> <!-- req, aperture -->
<!-- req, 0-F1.2,1-F1.4,2-F1.6,3-F1.67,4-F1.8,5-F1.85,6-F1.96,7-F2.0,8-F2.11 -->
<!-- req, 9-F2.2,10-F2.4,11-F2.41,12-F2.64,13-F2.8,14-F2.86,15-F3.13,16-F3.2 -->
<!-- req, 17-F3.4,18-F3.53,19-F3.7,20-F3.95,21-F4.0,22-F4.4,23-F4.49,24-F4.8 -->
<!-- req, 25-F5.35,26-F5.6,27-F6.38,28-F6.4,29-F6.8,30-F7.90,31-F8.0,32-F8.8 -->
<!-- req, 33-F9.6,34-F11,35-F11.06,36-F12,37-F14,38-F16,39-F16.60,40-F17 -->
<!-- req, 41-F19,42-F22,43-F24,44-F33.19,45-F34 -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,3
9,40,41,42,43,44,45</Range>
<Default>0</Default><!-- req, default value -->
</IrisSet>
<ShutterSet> <!-- req, shutter -->
<!-- req,0-closed, 1-auto x1,2-auto x2,3-auto x4,4-auto x8,5-auto x16,6-auto x32,-->
<!-- req,7-auto x64, 8-auto x128, 9-1/1, 10-1/2, 11-1/3, 12-1/4, 13-1/6, 14-1/8,-->
<!-- req,15-1/12, 16-1/15, 17-1/25, 18-1/30, 19-1/50, 20-1/60, 21-1/75, 22-1/90,-->
<!-- req,23-1/100, 24-1/120, 25-1/125, 26-1/150, 27-1/180, 28-1/200, 29-1/215,-->
<!-- req,30-1/250, 31-1/300, 32-1/350, 33-1/425, 34-1/500, 35-1/600, 36-1/725,-->
<!-- req,37-1/1000, 38-1/1250, 39-1500, 40-1/1750, 41-1/2000, 42-1/2500, 43-3000,-->
<!-- req,44-1/3500, 45-1/4000, 46-1/6000, 47-1/10000, 48-1/30000, 49-1/100000 -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2/9,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,49</Range>
<Default>0</Default><!-- req, default value -->
</ShutterSet>
<GainSet><!-- req, gain: 0~100 -->
<Min>0</Min>
<Max>100</Max>
<!-- req, : 0-closed, 1-low, 2-medium, 3-high, 4-0, 5-1, 6-2, 7-3, 8-4, 9-5, 10-6, 11-7, 12-8, 13-9, 14-10, 15-11,
16-12, 17-13, 18-14, 19-15 -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19</Range>
<!-- req, (0~19: special for speed dome) -->
<Default>50</Default><!-- req, default value -->
1076
Device Network SDK (General) Developer Guide
</GainSet>
<GainLimit> <!-- req, gain limit -->
<!-- req, speed dome -->
<Min>0</Min><!-- req, minimum value -->
<Max>0x0f</Max><!-- req, maximum value -->
<Default>0</Default><!-- req, default value -->
</GainLimit>
<ExposureComp>
<!-- req, exposure compensation: 0~100 -->
<Min>0</Min>
<Max>100</Max>
<Default>50</Default><!-- req, default value -->
<!-- req, : 0-closed, 1-low, 2-medium, 3-high, 4-0, 5-1, 6-2, 7-3, 8-4, 9-5, 10-6, 11-7, 12-8, 13-9, 14-10, 15-11,
16-12, 17-13, 18-14 -->
<!-- req, (0~18: special for speed dome) -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19</Range>
</ExposureComp>
</AutoExposureMode>
<ZoomPara>
<!-- req, zoom parameter of zoom camera/speed dome -->
<ZoomDisplay>
<!-- req, zoom display: 0-closed, 1-open -->
<Range>0,1</Range>
<Default>0</Default><!-- req, default value -->
</ZoomDisplay>
<ZoomLimit>
<!-- req, zoom camera(Range); speed dome(min,max)-->
<!-- req, zoom limit of zoom camera: 0-10,1-18,2-20,3-22,4-23,5-30,6-36,7-37,8-38,9-39,10-40,11-unlimited -->
<Range>0,1,2,3,4,5,6,7,8,9,10,11</Range>
<!-- req, optical zoom of speed dome: 1~50 -->
<Min>1</Min>
<Max>50</Max>
<Default>1</Default><!-- req, default value -->
</ZoomLimit>
<DigitalZoom>
<!-- req, zoom camera(Range);speed dome(min,max) -->
<!-- req, digital zoom of zoom camera: 0-closed, 1- *2, 2-*4, 3-*8, 4-*10, 5-*12 -->
<Range>0,1,2,3,4,5</Range>
<!-- req, digital zoom of speed dome: 0~30 -->
<Min>1</Min>
<Max>30</Max>
<Default>1</Default><!-- req, default value -->
</DigitalZoom>
</ZoomPara>
<SnapExposure>
<!-- req, exposure control general triggered snapshot -->
<SnapMode>
<!-- req, snapshot mode: 0- snapshot mode 1, 1- snapshot mode 2, 2- snapshot mode 3 -->
<Range>0,1,2</Range>
<Default>0</Default><!-- req, default value -->
1077
Device Network SDK (General) Developer Guide
</SnapMode>
<SnapGain1>
<!-- req, snapshot gain 1: 0-100 -->
<Min>0</Min>
<Max>100</Max>
<Default>50</Default><!-- req, default value -->
</SnapGain1>
<SnapGain2>
<!-- req, snapshot gain 2: 0-100 -->
<Min>0</Min>
<Max>100</Max>
<Default>50</Default><!-- req, default value -->
</SnapGain2>
</SnapExposure>
1078
Device Network SDK (General) Developer Guide
digitalNoiseReductionLevel,digitalNoiseSpectralLevel,digitalNoiseTemporalLevel,
dehazeEnable,dehazeLevel,lightInhibitEnable,lightInhibitLevel,grayLevel"/>
</ISPAdvanceCfg>
<supportCCDFunc opt="whiteBalance,exposure,WDR,dayNightFilter,gammaCorrection,digitalNoiseReduction,
backLight,lowLight,focus,infrared,domeAemode,dehaze,parkAction,elecStab,other,ISP,laser"/>
<!--req supported front-end parameter capabilities.-->
<LensDistortionCorrection>
<enable opt="false,true" default="false"/>
<!--req,Lens Distortion Correction (0-Disable/1-Enable)-->
<mutexAbility opt="WDR"/>
<!--req,mutex in WDR -->
<level min="1" max="3">
<!--opt, xs:integer, Distortion Correction Level, 1-3-->
</level>
<zoomedInDistantView>
<!--dep, xs:integer, Remote zoom, takes effect when Distortion Correction is enabled.-->
<enabled>
<!--req, xs:bool, "true,false"-->
</enabled>
<level min="1" max="3">
<!--opt, xs:integer, Correction level of remote zoom, 1-3-->
</level>
</zoomedInDistantView>
<horizontalFOV min="0" max="100">
<!--opt, xs:integer, Horizontal FOV[0-100]-->
</horizontalFOV>
<verticalFOV min="0" max="100">
<!--opt, xs:integer, Vertical FOV[0,100]-->
</verticalFOV>
</LensDistortionCorrection>
<BrightnessSuddenChangeSuppressionCap>
<enabled opt="true,false">
<!--req, xs:boolean, brightness sudden change suppression-->
</enabled>
</BrightnessSuddenChangeSuppressionCap>
<DPCParam>
<!--req,DPC-->
<ctrltype
1079
Device Network SDK (General) Developer Guide
opt="correct,cancelCorrect,crossDisplayOpen,crossDisplayClose,point,up,down,right,left,allCorrect,save"/>
<!--req,correction, cancel correction, enable/disable DPC cross display, DPC coordinate, up-forward offset of DPC
coordinate,
down-forward offset of DPC coordinate, right-forward offset of DPC coordinate, left-forward offset of DPC
coordinate, DPC all, save defective Pixel-->
<dpcMode opt="manual,auto" def="auto"/>
<!--req,xs:string,"manual-Manual Correction, auto-Auto Correction, if device does not support this node, all will
be handled manually"-->
</DPCParam>
<FFCParam>
<mode opt="schedule,temperature "/>
<!--req,1-Continuous mode, 2-Temperature difference mode, 3-Close-->
<ScheduleMode>
<compensateTime opt="10,20,30,40,50,60,120,180,240"/>
<compensateTimeUnit opt="min"/>
<!--req,min-->
</ScheduleMode>
<FFCManualCtrl opt="true"/>
<!--req,FFC Manual Control-->
<FFCBackCompCtrl opt="true"/>
<!--req,FFC Background Compensation control-->
</FFCParam>
<DDEParam>
<mode opt="off,normal,expert"/>
<!--req,1-Close, 2-Normal Mode, 3-Expert Mode-->
<normalLevel min="1" max="100"/>
<!--req,Level settings under normal mode-->
<expertLevel min="1" max="100"/>
<!--req,Level settings under expert mode-->
</DDEParam>
<AGCParam>
<scene opt="normal,highlight,manual"/>
<!--req,1-Normal scene, 2-Highlight scene, 3- Manual scene-->
<ManualMode>
<lightLevel min="1" max="100"/>
<!--req,Brightness level-->
<gainLevel min="1" max="100"/>
<!--req,Gain level-->
</ManualMode>
</AGCParam>
<fusionMode/> <!--opt, xs:string, visual and thermal image fusion mode: "thermal"-thermal mode, "fusion"-fusion
mode, "PIP"-picture in picture mode, "Visible"-visible mode, "fusionB/W"-black and white fusion mode, "city",
"jungle", "deset", "sea", "snow"-->
<ThermometryAGC>
<mode opt = "close,auto,manual">
<!--opt, xs:string-->
</mode>
<highTemperature min="-273" max="10000">
1080
Device Network SDK (General) Developer Guide
<!--dep, xs:integer-->
</highTemperature>
<lowTemperature min="-273" max="10000">
<!--dep, xs:integer-->
</lowTemperature>
</ThermometryAGC>
<isSupportGPSControl>
<!—optional, boolean, whether the device supports GPS control capability-->
</isSupportGPSControl >
<gearRange>
<!—optional, xs;integer, the number of ranges supported by the device, e.g., when the value is 3,it indicates
supported three ranges-->
<gearRange>
</ChannelEntry>
</ChannelList>
</CAMERAPARA>
F.161 XML_Cap_AdminAccessProtocolList
AdminAccessProtocol capability message in XML format
<AdminAccessProtocolList version="2.0" xmlns="[Link]
<AdminAccessProtocol><!--multiple <AdminAccessProtocol> nodes are allowed-->
<id><!--req, xs: string, ID--></id>
<enabled opt="true,false"><!--opt, xs: boolean--></enabled>
<protocol
opt="HTTP,HTTPS,SDK,RTSP,DEV_MANAGE,WebSocket,WebSocketS,SDK_OVER_TLS,SRTP,MATRIX_GATEWAY,IOT,Bonjou
r">
<!--req, xs: string-->
</protocol>
<portNo min="2000" max="65535" default="8443"><!--req, xs:integer --></portNo>
<redirectToHttps opt="true,false">
<!--opt, xs: boolean, whether to automatically go to HTTPS when connecting to HTTP port and HTTPS is enabled.
This node is valid when protocol is "HTTPS"-->
</redirectToHttps>
<streamOverTls opt="true,false">
<!--opt, xs: boolean, whether to enable TLS link encryption when the streaming mode is SDK_OVER_TLS, true-yes,
false-no-->
</streamOverTls>
<TLS1_1Enable opt="true,false"><!--dep, xs: boolean, whether to enable TLS version 1.1, it is valid when protocol is
"HTTPS", "true"-yes, "false"-no--></TLS1_1Enable>
<TLS1_2Enable opt="true,false"><!--dep, xs: boolean, whether to enable TLS version 1.2, it is valid when protocol is
"HTTPS", "true"-yes, "false"-no--></TLS1_2Enable>
</AdminAccessProtocol>
<TLS1_0Enable opt="true,false">
<!--dep, xs: boolean, whether to enable TLS version 1.0, it is valid when protocol is "HTTPS", "true"-yes, "false"-no-->
</TLS1_0Enable>
1081
Device Network SDK (General) Developer Guide
<TLS1_1Enable opt="true,false">
<!--dep, xs: boolean, whether to enable TLS version 1.1, it is valid when protocol is "HTTPS", "true"-yes, "false"-no-->
</TLS1_1Enable>
<TLS1_2Enable opt="true,false">
<!--dep, xs: boolean, whether to enable TLS version 1.2, it is valid when protocol is "HTTPS", "true"-yes, "false"-no-->
</TLS1_2Enable>
</AdminAccessProtocolList>
F.162 XML_Cap_AudioVideoCompressInfo
AudioVideoCompressInfo capability message in XML format
<AudioVideoCompressInfo version="2.0">
<AudioCompressInfo>
<Audio><!--req, audio-->
<ChannelList>
<ChannelEntry>
<ChannelNumber><!--req channel No.1--></ChannelNumber>
<MainAudioEncodeType><!--req, encoding type of main audio stream: 0-G722_1, 1-G711_MU, 2-G711_A, 5-
MP2L2, 6-726, 7-AAC, 8-PCM, 12-AAC_LC, 13-AAC_LD, 14-Opus, 15-MP3-->
<Range>0</Range>
<OggVorbisAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G722 audio bit rate0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps -->
<G711UAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-U audio bit rate 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G711AAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-A audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<MP2L2AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps,40kbps,48kbps,56kbps,
80kbps,96kbps,112kbps,144kbps,160kbps" default="32kbps"/>
<!--req, MP2L2 audio bit rate 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps,7-40Kbps,
8-48Kbps,9-56Kbps, 10-80Kbps,11-96Kbps,12-112Kbps,13-144Kbps,14-160Kbps-->
<MP2L2SamplingRate opt="default,16kHZ,32kHZ,48kHZ,44.1kHZ" default="16kHZ"/>
<!--req audio sampling rate: 0-default, 1-16kHZ, 2-32kHZ, 3-48kHZ, 4-44.1kHZ-->
<MP2L2SamplingRate16kHZ>
<audioBitRate opt="32kbps, 40kbps, 48kbps, 56kbps, 64kbps, 80kbps, 96kbps, 112kbps, 128kbps, 144kbps,
160kbps"/>
</MP2L2SamplingRate16kHZ>
<MP2L2SamplingRate32kHZ>
<audioBitRate opt="32kbps, 48kbps, 56kbps, 64kbps, 80kbps, 96kbps, 112kbps, 128kbps, 160kbps,
192kbps"/>
</MP2L2SamplingRate32kHZ>
<MP2L2SamplingRate44.1kHZ>
<audioBitRate opt="32kbps, 48kbps, 56kbps, 64kbps, 80kbps, 96kbps, 112kbps, 128kbps, 160kbps,
192kbps"/>
</MP2L2SamplingRate44.1kHZ>
<MP2L2SamplingRate48kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
1082
Device Network SDK (General) Developer Guide
</MP2L2SamplingRate48kHZ>
<G726AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G726 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps;ipc5.1.0
Default: 0-64Kbps-->
<AACAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps" default="32kbps"/>
<!--req, AAC audio bit rate: 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps -->
<AACSamplingRate opt="default,16kHZ,32kHZ,48kHZ,44.1kHZ" default="16kHZ"/>
<!--req, AAC audio sampling rate: 0-default,1-16kHZ,2-32kHZ,3-48kHZ,4-44.1kHZ -->
<PCMSamplingRate opt="default,8kHZ,16kHZ,32kHZ,48kHZ,44.1kHZ" default="16kHZ"/>
<!--req audio sampling rate: 0-default, 1-16kHZ,2-32kHZ,3-48kHZ,4-44.1kHZ,5-8kHZ-->
<MP3AudioBitRate opt="8kbps,16kbps,32kbps,40kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,
160kbps,192kbps,224kbps,256kbps,320kbps" default="64kbps"/>
<!--req, audio bit rate->
<MP3SamplingRate opt="8kHZ,16kHZ,32kHZ,44.1kHZ,48kHZ" default="16kHZ"/><!--req, audio sampling rate-->
</MainAudioEncodeType>
<!--req, encoding type of sub stream: 0- G722_1, 1- G711_MU, 2- G711_A, 5- MP2L2, 6- G726, 7- AAC, 8- PCM,
12-AAC_LC, 13-AAC_LD, 14-Opus, 15-MP3-->
<SubAudioEncodeType>
<Range>0</Range>
<OggVorbisAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G722 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps -->
<G711UAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-U audio bit rate 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps; ipc5.1.0
Default: 0-64Kbps-->
<G711AAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-A audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps; ipc5.1.0
Default: 0-64Kbps-->
<MP2L2AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps,40kbps,48kbps,56kbps,
80kbps,96kbps,112kbps,144kbps,160kbps" default="32kbps"/>
<!--req, MP2L2 audio bit rate: 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps,7-40Kbps,
8-48Kbps,9-56Kbps,
10-80Kbps,11-96Kbps,12-112Kbps,13-144Kbps,14-160Kbps-->
<MP2L2SamplingRate opt="default,16kHZ,32kHZ,48kHZ,44.1kHZ" default="16kHZ"/>
<!--req audio samping rate: 0-default, 1-16kHZ,2-32kHZ,3-48kHZ,4-44.1kHZ-->
<MP2L2SamplingRate16kHZ>
<audioBitRate opt="32kbps,40kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,144kbps,
160kbps"/>
</MP2L2SamplingRate16kHZ>
<MP2L2SamplingRate32kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
</MP2L2SamplingRate32kHZ>
<MP2L2SamplingRate44.1kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
</MP2L2SamplingRate44.1kHZ>
<MP2L2SamplingRate48kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
</MP2L2SamplingRate48kHZ>
<G726AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G726 audio bit rate: 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps;ipc5.1.0
Default: 0-64Kbps-->
<AACAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps" default="32kbps"/>
1083
Device Network SDK (General) Developer Guide
<EventAudioEncodeType><!--req, event stream audio encoding type: 0- G722_1, 1- G711_MU, 2- G711_A -->
<Range>0</Range>
<OggVorbisAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G.722 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps -->
<G711UAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-U audio bit rate 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G711AAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-A audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<MP2L2AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, MP2L2 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G726AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G726 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<MP2L2SamplingRate opt="default,16kHZ,32kHZ,48kHZ,44.1kHZ" default="16kHZ"/>
<!--req, audio sampling rate: 0-default, 1-16kHZ, 2-32kHZ, 3-48kHZ, 4-44.1kHZ-->
<MP2L2SamplingRate16kHZ>
<audioBitRate opt="32kbps,40kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,144kbps,
160kbps"/>
</MP2L2SamplingRate16kHZ>
<MP2L2SamplingRate32kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
</MP2L2SamplingRate32kHZ>
<MP2L2SamplingRate44.1kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
</MP2L2SamplingRate44.1kHZ>
<MP2L2SamplingRate48kHZ>
<audioBitRate opt="32kbps,48kbps,56kbps,64kbps,80kbps,96kbps,112kbps,128kbps,160kbps,192kbps"/>
</MP2L2SamplingRate48kHZ>
<G726AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, audio bit rate: 0-default, 1-8Kbps, 2-16Kbps, 3-32Kbps, 4-64kbps, 5-128Kbps, 6-192Kbps, for network
camera with version 5.1.0, the default value is "0"-->
<AACAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps" default="32kbps"/>
<!--req, audio bit rate: 0-default, 1-8Kbps, 2-16Kbps, 3-32Kbps, 4-64kbps, 5-128Kbps, 6-192Kbps-->
<AACSamplingRate opt="default,16kHZ,32kHZ,48kHZ,44.1kHZ" default="16kHZ"/>
<!--req, audio sampling rate: 0-default, 1-16kHZ, 2-32kHZ, 3-48kHZ, 4-44.1kHZ-->
1084
Device Network SDK (General) Developer Guide
1085
Device Network SDK (General) Developer Guide
1086
Device Network SDK (General) Developer Guide
<!--req, audio compression type of event stream: 0- G722_1, 1- G711_MU, 2- G711_A -->
<EventAudioEncodeType>
<Range>0</Range>
<OggVorbisAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G.722 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps -->
<G711UAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-U audio bit rate 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G711AAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-A audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<MP2L2AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, MP2L2 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G726AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G726 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
</EventAudioEncodeType>
<!--req, audio compression type of the third stream: 0- G722_1, 1- G711_MU, 2- G711_A -->
<Stream3AudioEncodeType>
<Range>0</Range>
<OggVorbisAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G.722 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps -->
<G711UAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-U audio bit rate 0-default,1-8Kbps,2-16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G711AAudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G711-A audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<MP2L2AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, MP2L2 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
<G726AudioBitRate opt="default,8kbps,16kbps,32kbps,64kbps,128kbps,192kbps"/>
<!--req, G726 audio bit rate 0-default,1-8Kbps,2- 16Kbps,3-32Kbps,4-64kbps,5-128Kbps,6-192Kbps??ipc5.1.0
Default: 0-64Kbps-->
</Stream3AudioEncodeType>
<!--req, audio input type: 0-mic in,1-line in -->
<AudioInType>
<Range>0</Range>
</AudioInType>
<AudioInVolume><!--opt,volume of audio input--><!--req, 2012-08-29-->
<Min>0</Min>
<Max>100</Max>
</AudioInVolume>
</ChannelEntry>
</ChannelList>
</Audio>
<VoiceTalk><!--req, two-way aduio-->
<ChannelList>
<ChannelEntry>
1087
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
1088
Device Network SDK (General) Developer Guide
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K, -->
<!--req, 10-224K,11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K, -->
<!--req, 19-1024K,20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, CIF -->
<Index>1</Index>
<Name>CIF</Name>
<Resolution>352*288</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req,the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K, -->
<!--req, 10-224K,11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, QCIF -->
<Index>2</Index>
1089
Device Network SDK (General) Developer Guide
<Name>QCIF</Name>
<Resolution>176*144</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K, -->
<!--req, 10-224K,11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 4CIF -->
<Index>3</Index>
<Name>4CIF</Name>
<Resolution>704*576</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
1090
Device Network SDK (General) Developer Guide
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2CIF -->
<Index>4</Index>
<Name>2CIF</Name>
<Resolution>704*288</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K, -->
<!--req, 21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, VGA -->
1091
Device Network SDK (General) Developer Guide
<Index>16</Index>
<Name>VGA</Name>
<Resolution>640*480</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K, -->
<!--req, 21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, UXGA -->
<Index>17</Index>
<Name>UXGA</Name>
<Resolution>1600*1200</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
1092
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K, -->
<!--req, 21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, SVGA -->
<Index>18</Index>
<Name>SVGA</Name>
<Resolution>800*600</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
1093
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K, -->
<!--req, 21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, XVGA -->
<Index>20</Index>
<Name>XVGA</Name>
<Resolution>1280*960</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
1094
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, HD900 -->
<Index>21</Index>
<Name>HD900</Name>
<Resolution>1600*912</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
1095
Device Network SDK (General) Developer Guide
<VideoResolutionEntry>
<!--req, SXGA -->
<Index>22</Index>
<Name>SXGA</Name>
<Resolution>1280*1024</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 1080P -->
<Index>27</Index>
<Name>HD1080P</Name>
<Resolution>1920*1080</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
1096
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2560*1920 -->
<Index>28</Index>
<Name>2560*1920</Name>
<Resolution>2560*1920</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
1097
Device Network SDK (General) Developer Guide
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 1600*304 -->
<Index>29</Index>
<Name>1600*304</Name>
<Resolution>1600*304</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2048*1536 -->
<Index>30</Index>
<Name>2048*1536</Name>
<Resolution>2048*1536</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
1098
Device Network SDK (General) Developer Guide
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 1920*1536 or 2048*1536 -->
<Index>133</Index>
<Name>3MP</Name>
<Resolution>1920*1536</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
1099
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2560*1944 -->
<Index>134</Index>
<Name>5MP</Name>
<Resolution>2560*1944</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
1100
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2720*1920 -->
<Index>137</Index>
<Name>2720*1920</Name>
<Resolution>2720*1920</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
1101
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 4096*1200 -->
<Index>138</Index>
<Name>4096*1200</Name>
<Resolution>4096*1200</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
1102
Device Network SDK (General) Developer Guide
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 3840*1080 -->
<Index>139</Index>
<Name>3840*1080</Name>
<Resolution>3840*1080</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
1103
Device Network SDK (General) Developer Guide
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2720*800 -->
<Index>140</Index>
<Name>2720*800</Name>
<Resolution>2720*800</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
1104
Device Network SDK (General) Developer Guide
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 3840*1080 -->
<Index>139</Index>
<Name>3840*1080</Name>
<Resolution>3840*1080</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
1105
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
1106
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
1107
Device Network SDK (General) Developer Guide
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 512*152 -->
<Index>143</Index>
<Name>512*152</Name>
<Resolution>512*152</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
1108
Device Network SDK (General) Developer Guide
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 2048*900 -->
<Index>144</Index>
<Name>2048*900</Name>
<Resolution>2048*900</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
1109
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
1110
Device Network SDK (General) Developer Guide
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 1280*376 -->
<Index>146</Index>
<Name>1280*376</Name>
<Resolution>1280*376</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
1111
Device Network SDK (General) Developer Guide
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 8208*3072 or 4096*1536 -->
<Index>150</Index>
<Name>8208*3072</Name>
<Resolution>8208*3072</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
1112
Device Network SDK (General) Developer Guide
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 4096*1536 -->
<Index>151</Index>
<Name>4096*1536</Name>
<Resolution>4096*1536</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
1113
Device Network SDK (General) Developer Guide
<Default>
<!--req, default value for different products are different-->
</Default>
</AverageVideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<!--req, 1280*1440 -->
<Index>189</Index>
<Name>4MPLite</Name>
<Resolution>1280*1440</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5;
27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K, -->
<!--req, 20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
<AverageVideoBitrate>
<!--req, average video bit rate, it is valid when SmartCodec is enabled-->
<Min>32</Min>
<!--req, min. bit rate, unit: kb-->
<Max>16384</Max>
<!--req, max. bit rate, unit: kb-->
<!--req, 0-0K, 1-16K, 2-32K, 3-48k, 4-64K, 5-80K, 6-96K, 7-128K, 8-160k, 9-192K, 10-224K, 11-256K, 12-320K--
>
<!--req, 13-384K, 14-448K, 15-512K, 16-640K, 17-768K, 18-896K, 19-1024K, 20-1280K, 21-1536K, 22-1792K,
23-2048K-->
<!--req, 24-3072K, 25-4096K, 26-8192K, 27-16384K-->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
<Default>
1114
Device Network SDK (General) Developer Guide
</DynamicAbility>
</VideoResolutionList>
<IntervalBPFrame>
<Range>0,1,2</Range> <!--req, 0-BBP; 1-BP;2-single P-->
</IntervalBPFrame>
<SVCFunEnable opt="true,false"/><!--req,enable or disable, true-enable, false-disable-->
<SVCSupportEncodeType opt="0,1"/>/*0-HIK264??1-H264??2-mpeg4??7-M-JPEG??8-MPEG2 */
<EFrame>0</EFrame>//the largest encoding ability of E frame
<intervalIFrame min="0" max="25"/><!--req Interval of I Frame-->
<StreamSmooth>
<level min="" max=""/>
<SmartCodecCap><!--req, high performance encoding-->
<supportCodeType opt="H.264,H.265">
<!--req, xs:string= "supported encoding type, when video encoding type is other, Smart264 and Smart265
(high performance encoding field) switch is hidden" -->
</supportCodeType>
<smartCodec opt="true,false" default="false"><!--req, xs:boolen="","high encoding switch"--></smartCodec>
<H264><!--function needs to be hidden, after smart encoding is enabled after device is restarted, the capability
corresponding to hidden function will not be returned-->
<readOnlyAbility opt="keyFrameInterval,Profile,SVC,videoBitrate">
<!-- req, xs:string, "items need to be grayed out: I frame interval, encoding complexity, SVC"-->
</readOnlyAbility>
<BitrateType>
<!--req, when Smart 264 is enabled, in VBR mode, a line is added under the bitrate upper limit, and the title is
average bitrate while the bitrate upper limit is grayed out which cannot be modified; default average bitrate is
converted based on bitrate upper limit, the range is [0, bitrate upper limit]. The average bitrate is saved independently
and bitrate upper limit is not reused; when bitrate type is CBR, and average bitrate is required to be hidden, the
bitrate upper limit is configurable.-->
<Constant><!--req,CBR-->
<support opt="videoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(bitrate upper limit)"-->
</support>
<hiddenAbility opt="averageVideoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(bitrate upper limit)"-->
</hiddenAbility>
</Constant>
<Variable><!--req,VBR-->
<support opt="averageVideoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(bitrate upper limit)"-->
</support>
<readOnlyAbility opt="videoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(bitrate upper limit)"-->
</readOnlyAbility>
1115
Device Network SDK (General) Developer Guide
</Variable>
</BitrateType>
<smart264EnabledPrompt opt="prompt1,prompt2,prompt3,prompt13">
<!--opt,wo,xs:string,"Smart264 enable prompt"-->
</smart264EnabledPrompt>
</H264>
<H265>
<!--function needs to be hidden, after smart encoding is enabled after device is restarted, the capability
corresponding to hidden function will not be returned-->
<readOnlyAbility opt="keyFrameInterval,Profile,SVC,fixedQuality">
<!--req, xs:string, "items need to be grayed out: I frame interval, encoding complexity, SVC, video quality"-->
</readOnlyAbility>
<BitrateType>
<Constant><!--req,CBR-->
<support opt="videoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(video bitrate)"-->
</support>
<hiddenAbility opt="averageVideoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(video bitrate)"-->
</hiddenAbility>
</Constant>
<Variable><!--req,VBR-->
<support opt="averageVideoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(video bitrate)"-->
</support>
<readOnlyAbility opt="videoBitrate">
<!--req, xs:string,"averageVideoBitrate(average bitrate),videoBitrate(video bitrate)"-->
</readOnlyAbility>
</Variable>
</BitrateType>
<smart265EnabledPrompt opt="prompt4">
<!--opt,wo,xs:string,"Smart265 enable prompt"-->
</smart265EnabledPrompt>
</H265>
<rateType opt="constant,variable"/>
<!--opt,constant(CBR)??variable(VBR)-->
<!--opt,field byBitrateType in structure NET_DVR_COMPRESSION_INFO_V30 corresponding to rateType, all
supported by default when the node <rateType> is not returned. If the node is returned, the node content will be
resolved and displayed (sub-stream is similar to third stream definition)-->
</SmartCodecCap>
<!--req 1-Clear, 100-Smooth-->
/*0-HIK264??1-H264??2-mpeg4??7-M-JPEG??8-MPEG2*/
<supportEncodeType opt="1"/>
<supportRateType opt="constant,variable"/><!--req constant, variable-->
</StreamSmooth>
</MainChannel>
<SubChannelList>
<SubChannelEntry>
<index>1</index><!--req, sub channel -->
<VideoEncodeType><!--req, 0- private 264, 1- standard h264, 2- standard mpeg4, 7- M-JPEG, 8- MPEG2 -->
<Range>0,1,2,7,8</Range>
</VideoEncodeType>
1116
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate><!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K, -->
<!--req, 11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K, -->
<!--req, 21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<Index>2</Index>
<Name>QCIF</Name>
<Resolution>176*144</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
1117
Device Network SDK (General) Developer Guide
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate><!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K,11-256K, -->
<!--req, 12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K,21-1536K, -->
<!--req, 22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<Index>6</Index>
<Name>QVGA</Name>
<Resolution>320*240</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate><!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K,11-256K, -->
<!--req, 12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K,21-1536K, -->
<!--req, 22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<DynamicAbility>
<dynamicAbilityLinkTo opt="captureMode"/><!--req, dymatic related items, WDR enable, the related structure
of type of lens is NET_DVR_CAMERAPARAMCFG_EX byCaptureMode -->
</DynamicAbility>
1118
Device Network SDK (General) Developer Guide
</VideoResolutionList>
<IntervalBPFrame><!--req, 0-BBP; 1-BP;2-single P -->
<Range>0,1,2</Range>
</IntervalBPFrame>
<EFrame>0</EFrame><!--req, the max encoding capability of E frame -->
</SubChannelEntry>
</SubChannelList>
<EventChannel>
<VideoEncodeType><!--req, 0- private 264, 1- standard h264, 2- standard mpeg4, 7- M-JPEG, 8- MPEG2 -->
<Range>0,1,2,7,8</Range>
</VideoEncodeType>
<VideoEncodeEfficiency><!--req, the complexity of video compression: 0-low,1-medium,2-high -->
<Range>0</Range>
</VideoEncodeEfficiency>
<VideoCabac>1</VideoCabac><!--req, whether it supports CABAC or not -->
<VideoResolutionList>
<VideoResolutionEntry>
<Index>1</Index>
<Name>CIF</Name>
<Resolution>352*288</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate><!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K,11-256K, -->
<!--req, 12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K,21-1536K, -->
<!--req, 22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<Index>2</Index>
<Name>QCIF</Name>
<Resolution>176*144</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
1119
Device Network SDK (General) Developer Guide
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate><!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K,11-256K, -->
<!--req, 12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-280K,21-1536K, -->
<!--req, 22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,27-16384K -->
<Range>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27</Range>
</VideoBitrate>
</VideoResolutionEntry>
<VideoResolutionEntry>
<Index>6</Index>
<Name>QVGA</Name>
<Resolution>320*240</Resolution>
<!--req, Frame rate supported by P standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12; 12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3; 26-5; 27-7;
28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate><!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
<!--req, 0-reserved,1-16K,2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K,11-256K, -->
1120
Device Network SDK (General) Developer Guide
<VideoFrameRate>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRate>
<!--req, frame rate supported by P standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, Frame rate supported by N standard: 0-Full;1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10;
11-12;
12-16; 13-20; 14-15; 15-18; 16-22; 17-25; 18-30; 19-35; 20-40; 21-45; 22-50; 23-55; 24-60; 25-3;
26-5; 27-7; 28-9; 29-100; 30-120; 31-24; 32-48; 33-8.3-->
<VideoFrameRateN>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33</
VideoFrameRateN>
<!--req, frame rate supported by N standard, if there is no VideoFrameRateN node, it indicates that the frame
rate supported by P standard and N standard is same-->
<!--req, encoding bit rate node: if the device supports custom bit rate, it will be return in maximum and
minimum format; if the device does not support the custom bit rate, it will be returned in Range format-->
<VideoBitrate>
<!--req,video bit rate-->
<Min>16</Min><!--req, the min bitrate(unit: Kb) -->
<Max>16384</Max><!--req, the max bitrate(unit: Kb) -->
1121
Device Network SDK (General) Developer Guide
F.163 XML_Cap_Color
Color capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<Color version="2.0" xmlns="[Link]
<brightnessLevel min="" max=""><!--opt,xs:integer, brightness--></brightnessLevel>
<contrastLevel min="" max=""><!--opt,xs:integer, contrast--></contrastLevel>
<saturationLevel min="" max=""><!--opt,xs:integer, saturation--></saturationLevel>
<hueLevel min="" max=""><!--opt, xs:integer, hue--></hueLevel>
<grayScale><!--opt, gray scale-->
<grayScaleMode><!--opt,xs:string, gray scale mode: "indoor,outdoor"--></grayScaleMode>
</grayScale>
<nightMode opt="true,false">
<!--opt, xs:boolean, enable night mode, when its value is "true", the saturation can be adjusted, otherwise, the
saturation cannot be adjusted-->
</nightMode>
</Color>
F.164 XML_Cap_DefaultParam
DefaultParam capability message in XML format
<DefaultParam version="1.0" xmlns="[Link]
<DialNum min="1" max="32"><!--opt, xs:string--></DialNum>
<Username min="1" max="32"><!--opt, xs:string--></Username>
<Password min="1" max="32"><!--opt, xs:string--></Password>
<APNname min="1" max="32"><!--opt, xs:string--></APNname>
<VerifyProto opt="auto,CHAP,PAP"><!--req, xs:string, verification protocol: "auto, CHAP, PAP"--></VerifyProto>
</DefaultParam>
1122
Device Network SDK (General) Developer Guide
F.165 XML_Cap_DeviceInfo
DeviceInfo capability message in XML format
<DeviceInfo version="2.0" xmlns="[Link]
<deviceName min="" max=""><!--req, xs:string, device name--></deviceName>
<DockStation>
<!--opt, dock station configuration-->
<Platform>
<!--opt, platform configuration-->
<type opt="none, 9533, 8618, ISAPI"><!--req, xs:string, platform type--></type>
<ip><!--opt, xs:string, IP address --></ip>
<port><!--opt, xs:integer, communication port--></port>
<userName><!--req, xs:string, user name, which is used for the dock station to log in to platform--></userName>
<password><!--req, xs:string, password, which is used for the dock station to log in to platform, it should be
encrypted--></password>
</Platform>
<centralStorageBackupEnabled opt="true, false"><!--opt, xs:boolean, whether to enable central storage backup--></
centralStorageBackupEnabled>
</DockStation>
<languageType opt="chinese,english,spanish,portuguese,italian,french,russian,german,polish"/><!--opt, xs:string-->
<deviceID min="0" max="128"><!--ro, req, xs:string, uuid--></deviceID>
<deviceDescription min="0" max="16"><!--opt, xs:string--></deviceDescription>
<deviceLocation opt="STD-CGI, hangzhou"><!--opt, xs:string--></deviceLocation>
<systemContact opt="STD-CGI, [Link]"><!--opt, req, xs:string--></systemContact>
<model min="0" max="64"><!--ro, req, xs:string--></model>
<serialNumber min="0" max="48"><!--ro, req, xs:string--></serialNumber>
<macAddress min="0" max="64"><!--ro, req, xs:string--></macAddress>
<firmwareVersion min="0" max="64"><!--ro, req, xs:string--></firmwareVersion>
<firmwareReleasedDate min="0" max="64"><!--ro, opt, xs:string--></firmwareReleasedDate>
<bootVersion min="0" max="16"><!--ro, opt, xs:string--></bootVersion>
<bootReleasedDate min="0" max="16"><!--ro, opt, xs:string--></bootReleasedDate>
<hardwareVersion min="0" max="16"><!--ro, opt, xs:string--></hardwareVersion>
<encoderVersion min="0" max="64"><!--ro, opt, xs:string--></encoderVersion>
<encoderReleasedDate min="0" max="64"><!--ro, opt, xs:stirng--></encoderReleasedDate>
<decoderVersion min="0" max="64"><!--ro, opt, xs:string--></decoderVersion>
<decoderReleasedDate min="0" max="64"><!--ro, opt, xs:stirng--></decoderReleasedDate>
<deviceType opt="IPCamera, IPDome, DVR, HybirdNVR, NVR, DVS, IPZoom"><!--ro, req, xs:string--></deviceType>
<telecontrolID min="1" max="255"><!--opt, xs:integer, "1-255"--></telecontrolID>
<supportBeep><!--opt, xs:boolean: "true,false"--></supportBeep>
<firmwareVersionInfo><!--ro, opt, xs:stirng--></firmwareVersionInfo>
<subChannelEnabled><!--opt, xs:boolean: "true,false"--></subChannelEnabled>
<thrChannelEnabled><!--opt, xs:boolean: "true,false"--></thrChannelEnabled>
<actualFloorNum><!--req, xs:integer, "1-128"--></actualFloorNum>
<radarVersion><!--opt, xs:string, radar version--></radarVersion>
<powerOnMode opt="button,adapter" def="button"><!--optional, xs:string, device startup mode: "button"-press
button to power on (default), "adapter"-connect adapter to power on--></powerOnMode>
<webVersion><!--optional, read-only, xs:string, web version No., it is the current value by default--></webVersion>
<deviceRFProgramVersion><!--optional, read-only, xs:string, version No. of the device's RF (Radio Frequency)
program, it is the current value by default--></deviceRFProgramVersion>
<securityModuleSerialNo><!--optional, read-only, xs:string, serial No. of the security module, it is the current value
1123
Device Network SDK (General) Developer Guide
by default--></securityModuleSerialNo>
<securityModuleVersion><!--optional, read-only, xs:string, version No. of the security module, it is the current value
by default--></securityModuleVersion>
<securityChipVersion><!--optional, read-only, xs:string, version No. of the security chip, it is the current value by
default--></securityChipVersion>
<securityModuleKeyVersion><!--optional, read-only, xs:string, version No. of the security module key, it is the current
value by default--></securityModuleKeyVersion>
<UIDLampRecognition><!--optional, information of the UID lamp recognition device-->
<enabled opt="true,false"><!--optional, xs:boolean, whether to enable--></enabled>
</UIDLampRecognition>
<bootTime><!--optional, xs:string, read-only, system boot time, ISO 8601 format; the maximum length is 32 bytes--
></bootTime>
<isSupportNewVersionDevlanguageSwitch><!--optional, xs:boolean, whether it supports switching language by new
version of the protocol, related URI: /ISAPI/System/DeviceLanguage/capabilities. If the device does not return this
node, it does not indicate that the device does not support switching language by new version of the protocol, and
whether the device supports this function is determined by the obtained capability--></
isSupportNewVersionDevlanguageSwitch>
</DeviceInfo>
F.166 XML_Cap_DeviceLanguage
DeviceLanguage capability message in XML format
<DeviceLanguage version="2.0" xmlns="[Link]
<language
opt="SimChinese,TraChinese,English,Russian,Bulgarian,Hungarian,Greek,German,Italian,Czech,Slovakia,French,Polish,D
utch,Portuguese,Spanish,Romanian,Turkish,Japanese,Danish,Swedish,Norwegian,Finnish,Korean,Thai,Estonia,Vietname
se,Hebrew,Latvian,Arabic,Sovenian,Croatian,Lithuanian,Serbian,BrazilianPortuguese,Indonesian,Ukrainian">
<!--req, xs:string, language supported by the device: "SimChinese"-simplified Chinese, "TraChinese"-traditional
Chinese, "English", "Russian", "Bulgarian", "Hungarian", "Greek", "German", "Italian", "Czech", "Slovakia", "French",
"Polish", "Dutch", "Portuguese", "Spanish", "Romanian", "Turkish", "Japanese", "Danish", "Swedish", "Norwegian",
"Finnish", "Korean", "Thai", "Estonia", "Vietnamese", "Hebrew", "Latvian", "Arabic", "Sovenian"-Slovenian, "Croatian",
"Lithuanian", "Serbian", "BrazilianPortuguese"-Brazilian Portuguese, "Indonesian", "Ukrainian"-->
</language>
</DeviceLanguage>
F.167 XML_Cap_DiagnosedDataParameter
XML message about capability of exporting diagnose information
<?xml version="1.0" encoding="utf-8"?>
<DiagnosedDataParameter version="2.0" xmlns="[Link]
<enabled opt="true,false">
<!--required, xs:boolean, whether to enable exporting diagnose information: true-yes, false-no-->
</enabled>
<HardwareInfo opt="true,false">
<!--optional, xs:boolean,opt="true,false", whether to enable exporting hardware information, such as running
information of motor, fan, heater, compressor, supplement light, wiper, and so on-->
</HardwareInfo>
1124
Device Network SDK (General) Developer Guide
<SoftwareInfo opt="true,false">
<!--optional, xs:boolean, whether to enable exporting software information, such as software status, running log,
system information-->
</SoftwareInfo>
<logInfo opt="true,false">
<!--optional, xs:boolean, whether to enable exporting startup log--></logInfo>
</DiagnosedDataParameter>
F.168 XML_Cap_Dial
Dial capability message in XML format
<Dial version="2.0" xmlns="[Link]
<enabled opt="true,false" def="false"><!--req, xs:boolean--></enabled>
<DialMethod opt="auto,manual">
<!--req, xs:string, "auto, manual", set it to manual when accessing the private network,and you can configure dial-
up parameters(including access number, user name, password, APN, and verification protocol-->
</DialMethod>
<SwitchMethod opt="auto,4GFirst,3GFirst,manualto2G,manualto3G,manualto4G,cableFirst">
<!--req, xs:string, "auto,4GFirst,3GFirst, manualto2G, manualto3G,manualto4G,cableFirst"-->
</SwitchMethod>
<OfflineTime min="30" max="65535"><!--opt, xs:integer, unit: second--></OfflineTime>
<UIMCardNum min="1" max="32"><!--opt, xs:string--></UIMCardNum>
<DialNum min="1" max="32"><!--opt, xs:string--></DialNum>
<Username min="1" max="32"><!--opt, xs:string--></Username>
<Password min="1" max="32"><!--opt, xs:string--></Password>
<APNname min="1" max="32"><!--opt, xs:string--></APNname>
<SIMNum min="" max=""><!--opt, xs:string, SIM card No. (mobile phone number)--></SIMNum>
<MTU min="100" max="1500"><!--opt, xs: integer--></MTU>
<VerifyProto opt="auto,CHAP,PAP"><!--req, xs:string, verification protocol: "auto, CHAP, PAP"--></VerifyProto>
<DefaultParam/><!--opt, default parameters, see details in the message of XML_Cap_DefaultParam-->
<netAPN min="" max=""/><!--opt, xs:string, APN configuration for the private network-->
<Flow><!--opt, flow configuration-->
<limitEnabled opt="true,false"><!--opt, xs:boolean, whether to enable flow limitation--></limitEnabled>
<consumeFlow opt="true,false"><!--opt, xs:boolean, whether supports displaying flow usage, unit: MB--></
consumeFlow>
<threshold min="" max=""><!--opt, threshold of flow, unit: MB--></threshold>
</Flow>
<enabled4G opt="true,false" def="true"><!-- opt, xs:boolean, whether to enable 4G--></enabled4G>
<isSupportNetworkKeepAlive><!--opt, xs:boolean, whether it supports network keepalive --></
isSupportNetworkKeepAlive>
<enabledDNS opt="true,false" def="true"><!-- opt, xs:boolean, whether to enable DNS manual configuration--></
enabledDNS>
<pinCode min="" max=""/><!--optional, write-only, xs:string, PIN code-->
<ISPName min="" max=""><!--optional, xs:string, ISP (Internet Service Provider) name--></ISPName>
<IMEINo min="" max=""><!--optional, xs:string, IMEI code--></IMEINo>
<ICCID><!--optional, xs:string, ICCID code--></ICCID>
<netType opt="2G,3G,4G"><!--optional, xs:string, network type--></netType>
</Dial>
1125
Device Network SDK (General) Developer Guide
See Also
XML_Cap_DefaultParam
F.169 XML_Cap_EagleFocusing
EagleFocusing capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<EagleFocusing version="2.0" xmlns="[Link]
<id><!--req,xs:string--></id>
<enabled opt="true,false"><!--req, xs:boolean, "true"-start calibration, "false"-stop calibration--></enabled>
<normalizedScreenSize><!--req,ro-->
<normalizedScreenWidth><!--req,ro,xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req,ro,xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<EagleFocusingRegionList><!--opt-->
<EagleFocusingRegion><!--list-->
<id><!--req, xs:string--></id>
<sid><!--opt,xs:string, scene ID--></sid>
<rate><!--opt,xs:integer, rate--></rate>
<spotNum><!--opt,xs:integer, the number of calibration points--></spotNum>
<type><!--req,xs:string,"line", region type, now only supports "line"--></type>
<Region><!--dep, depends on type-->
<RegionCoordinatesList size="4"><!--opt-->
<RegionCoordinates><!--list-->
<positionX><!--req,xs:integer,coordinate--></positionX>
<positionY><!--req,xs:integer,coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</EagleFocusingRegion>
</EagleFocusingRegionList>
<sceneNum min="" max=""><!--opt,xs:integer, the maximum number of supported scenes--></sceneNum>
<isSupportSceneGoto opt="true,false"><!--opt,xs:boolean, whether device supports turning to specified scene--></
isSupportSceneGoto>
<rate min="" max=""><!--opt,xs:integer, rate--></rate>
<spotNum min="" max=""><!--opt,xs:integer, the number of calibration points on line--></spotNum>
<onlyReadParam opt="rate,spotNum"><!--opt,xs:string,"rate,spotNum"--></onlyReadParam>
<isSupportAuto opt="true,false"><!--req,xs:boolean, whether device supports automatic calibration of rapid focus--
></isSupportAuto>
</EagleFocusing>
F.170 XML_Cap_ExternalDevice
XML message about external device configuration capability
<?xml version="1.0" encoding="utf-8"?>
<ExternalDevice version="2.0" xmlns="[Link]
1126
Device Network SDK (General) Developer Guide
See Also
XML_Cap_SupplementLight
F.171 XML_Cap_EZVIZ
XML message about the Hik-Connect access configuration capability
<?xml version="1.0" encoding="utf-8"?>
<EZVIZ version="2.0" xmlns="[Link]
<!--redirect: whether to enable redirecting server address-->
<!--verificationCode: only admin users are allowed to edit the verification code-->
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<registerStatus opt="true,false"><!--read-only, optional, xs:boolean--></registerStatus>
<redirect opt="true,false"><!--optional, xs:boolean--></redirect>
<serverAddress><!--optional-->
<addressingFormatType min="" max=""><!--required, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName min="" max=""><!--dependent, xs:string--></hostName>
<ipAddress min="" max=""><!--dependent, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dependent, xs:string--></ipv6Address>
</serverAddress>
<verificationCode min="" max=""><!--optional, xs:string--></verificationCode>
<offlineStatus opt="secretKeyInvalid"><!--read-only, dependent, xs:string, device offline status: "secretKeyInvalid"-
invalid verification code, it is valid when the value of registerStatus is "false"--></offlineStatus>
<streamEncrypteEnabled opt="true,false"><!--optional, xs:boolean, whether to enable stream encryption--></
streamEncrypteEnabled>
<isSupportUpISAPI><!--optional, xs:boolean, whether the device supports uplink transmitting ISAPI message-->true</
isSupportUpISAPI>
<isSupportDownISAPI><!--optional, xs:boolean, whether the device supports downlink transmitting ISAPI message--
>true</isSupportDownISAPI>
<isSupportEZVIZQRCode><!--optional, xs:boolean, whether the device supports getting the Hik-Connect QR code
(related URI: /ISAPI/System/Network/EZVIZ/QRCode?format=json)--></isSupportEZVIZQRCode>
</EZVIZ>
F.172 XML_Cap_FocusConfiguration
FocusConfiguration capability message in XML format
1127
Device Network SDK (General) Developer Guide
<FocusConfiguration>
<focusStyle opt="AUTO,MANUAL,SEMIAUTOMATIC"><!--req, xs:string--></focusStyle>
<focusLimited opt="50,100,300,600,1000,2000,5000,10000,15000" def="1000"><!--opt, xs:integer--></focusLimited>
<focusPosition/><!--dep, xs:integer, depends on FocusStyle-->
<focusSpeed><!--opt, xs:intger--></focusSpeed>
<focusSensitivity min="0" max="2" def="1"><!--optional, xs:intger, sensitivity of focus, ranging from 0 to 2. It is valid
when the focus mode is automatic or semi-automatic--></focusSensitivity>
<temperatureChangeAdaptEnabled opt="true,false"--><!--optional, xs:boolean--></
temperatureChangeAdaptEnabled>
<relativeFocusPos min="0" max="4000" def=""><!--optional, xs:intger--></relativeFocusPos>
<highTemperaturePriority opt="true,false"><!--optional, xs:boolean, enable high temperature priority mode--></
highTemperaturePriority>
<focusStatus opt="success,failed,working"><!--optional, xs:string, focus status: success, failed, working (focusing)--></
focusStatus>
<motorMovementType opt="manual,auto,armingLocation"><!--optional, xs:string, motor movement type: manual,
auto (automatic), armingLocation (arming location)--></motorMovementType>
</FocusConfiguration>
F.173 XML_Cap_FTPNotification
FTPNotification capability message in XML format
<FTPNotification version="2.0" xmlns="[Link]
<id>
<!--req, xs:string, FTP ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable the FTP server-->
</enabled>
<useSSL>
<!--opt, xs:boolean-->
</useSSL>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string, this node can only be set to "ipaddress"-->
</addressingFormatType>
<hostName>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
<portNo>
<!--opt, xs:integer, FTP port No.-->
</portNo>
<userName>
<!--req, xs:string, user name-->
</userName>
1128
Device Network SDK (General) Developer Guide
<password>
<!--wo, xs:string, password-->
</password>
<passiveModeEnabled>
<!--opt, xs:boolean-->
</passiveModeEnabled>
<annoyftp>
<!--opt, xs:boolean-->
</annoyftp>
<uploadPicture>
<!--opt, xs:boolean-->
</uploadPicture>
<uploadVideoClip>
<!--opt, xs:boolean-->
</uploadVideoClip>
<uploadPath>
<!--req-->
<pathDepth>
<!--req, xs:integer, directory levels, up to 16 levels can be supported-->
</pathDepth>
<topDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, parent directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</topDirNameRule>
<topDirName min="" max="">
<!--dep, xs:string, custom string for parent directory, the maximum string length is 32 bytes. This node is valid
when <topDirNameRule> is "customize". If attributes of "min" and "max" are not obtained after parsing, the default
value will be returned without error message-->
<topDirName/><!--dep, xs:string, custom string for parent directory, the maximum string length is 32 bytes. This
node is valid when <topDirNameRule> is "customize"-->
<subDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, child directory name-->
</subDirNameRule>
<subDirName min="" max="">
<!--dep, xs:string, custom string for child directory, the maximum string length is 32 bytes. This node is valid when
<subDirNameRule> is "customize". If attributes of "min" and "max" are not obtained after parsing, the default value
will be returned without error message-->
<subDirName/><!--dep, xs:string, custom string for child directory, the maximum string length is 32 bytes. This node
is valid when <subDirNameRule> is "customize"-->
<threeDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, the third directory name-->
</threeDirNameRule>
<threeDirName/><!--req, xs:string, custom string for the third directory, the maximum string length is 32 bytes. This
node is valid when <threeDirNameRule> is "customize"-->
<fourDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
1129
Device Network SDK (General) Developer Guide
1130
Device Network SDK (General) Developer Guide
See Also
XML_Cap_ItemList
F.174 XML_Cap_FTPNotificationList
FTPNotificationList capability message in XML format
<FTPNotificationList version="2.0" xmlns="[Link]
<FTPNotification/><!--opt, see details in the message of XML_Cap_FTPNotification-->
</FTPNotificationList>
See Also
XML_Cap_FTPNotification
F.175 XML_Cap_HardwareService
HardwareService capability message in XML format
<HardwareService version="2.0" xmlns="[Link]
<IrLightSwitch><!--opt-->
<mode opt="open,close"><!--req, xs:string --></mode>
</IrLightSwitch>
<ABF><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
</ABF>
<LED><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
</LED>
<Defog><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
</Defog>
<SupplementLight><!--opt-->
1131
Device Network SDK (General) Developer Guide
F.176 XML_Cap_hddList
hddList capability message in XML format
<hddList version="2.0" xmlns="[Link] size="">
<hdd><!--list-->
<id><!--read-only, required, xs: string; ID--></id>
<hddName><!--read-only, required, xs: string--></hddName>
<hddPath><!--read-only, optional, xs: string--></hddPath>
<hddType opt="IDE,SATA,eSATA,NFS,iSCSI,Virtual Disk"><!--read-only, required, xs: string--></hddType>
<status
opt="ok,unformatted,error,idle,mismatch,offline,smartFailed,reparing,formating,notexist,unRecordHostFormatted">
<!--read-only, required, xs: string, unRecordHostFormatted--unformatted in education sharing system-->
</status>
<capacity><!--read-only, required, xs: float, unit: MB--></capacity>
<freeSpace><!--read-only, required, xs: float, unit: MB--></freeSpace>
<property opt="RW,read-only,Redund"><!--required, xs: string, HDD properties--></property>
<group><!--optional, xs: string; HDD group ID--></group>
<reservedDayCfg min="0" max="1000"><!--optional, xs:integer, video saving duration, it is between 0 and 1000,
unit: day--></reservedTimeCfg>
<DataModeList><!--optional, read-only, current HDD allocation mode-->
<DataMode>
<type opt="recordStorage,pictureCloudStorage,fileStorage">
<!--required, xs: string, storage application type, recordStorage-video storage, pictureCloudStorage-picture to be
saved in cloud storage, fileStorage-file-storage->
</type>
<occupancyRate><!--required, xs: integer, HDD usage, range: [0,100]--></occupancyRate>
1132
Device Network SDK (General) Developer Guide
</DataMode>
</DataModeList>
<formatType opt="FAT32,EXT4" def="FAT32">
<!--read-only, optional, xs: string, formatting type, this node is only available for SD card; if this node does not
exist, the default formatting type is FAT32-->
</formatType>
<Encryption>
<passwordLen min="6" max="64"/>
<encryptionStatus opt="unencrypted,encrypted,verfyFailed"><!--read-only, optional, xs:string, encryption status:
"unencrypted", "encrypted", "verfyFailed"-verification failed--></encryptionStatus>
<encryptFormatType opt="FAT32,EXT4"><!--read-only, optional, xs:string--></encryptFormatType>
</Encryption>
<isSupportLogStorage><!--optional, xs:boolean, whether it can be used as a log HDD--></isSupportLogStorage>
</hdd>
</hddList>
F.177 XML_Cap_HiddenInformation
XML message about hidden configuration capability of POS information
<HiddenInformation version="2.0" xmlns="[Link]
<id>
<!--required, xs:integer, device channel No.-->
</id>
<funcType opt="POS">
<!--required, xs:string, functional type: "POS"-hide POS information-->
</funcType>
<PosCofig>
<!--dependent, this node is valid only when the value of node <funcType> is set to "POS"-->
<keyWordOne min="0" max="32">
<!--required, xs:string, keyword 1-->
</keyWordOne>
<keyWordTwo min="0" max="32">
<!--required, xs:string, keyword 2-->
</keyWordTwo>
<keyWordThree min="0" max="32">
<!--required, xs:string, keyword 3-->
</keyWordThree>
</PosCofig>
</HiddenInformation>
F.178 XML_Cap_ImageChannel
XML message about image channel capability
<ImageChannel version="2.0" xmlns="[Link]
<id><!--req, xs:integer--></id>
<enabled><!--req, xs:boolean--></enabled>
<videoInputID><!--req, xs:integer--></videoInputID>
1133
Device Network SDK (General) Developer Guide
1134
Device Network SDK (General) Developer Guide
<isSupportlaserSpotManual><!--opt, boolean--></isSupportlaserSpotManual>
<isSupportLaserSpotAdjustment><!--opt, boolean--></isSupportLaserSpotAdjustment>
<DigitalZoom>
<ZoomRatio opt="1x,2x,4x,8x,16x,32x"><!--req, xs:string---></ZoomRatio>
</DigitalZoom>
<Palettes>
<mode
opt="WhiteHot,BlackHot,Fusion1,Rainbow,Fusion2,Ironbow1,Ironbow2,Sepia,Color1,Color2,IceFire,Rain,RedHot,Green
Hot,DeepBlue,Color3"><!--
opt,xs:string,"WhiteHot,BlackHot,Fusion1,Rainbow,Fusion2,Ironbow1,Ironbow2,Sepia,Color1,Color2,IceFire,Rain,RedH
ot,GreenHot,DeepBlue,Color3"--></mode>
<ColorateTarget><!--dep,mode="WhiteHot","target coloration"-->
<ColorateTargetModeList>
<ColorateTargetMode><!--list-->
<id><!--req,xs:integer "index,which starts from 1"--></id>
<mode opt="colorateHotAreae,colorateIntervalArea,colorateColdArea"><!--
req,xs:string,"colorateHotAreae,colorateIntervalArea,colorateColdArea"--></mode>
<enabled opt="true,false"><!--req,xs:boolean,"true,false"--></enabled>
<TemperatureLimit><!--req "temperature range"-->
<minTemperature><!--dep <mode> is colorateHotAreae/colorateIntervalArea,xs:float--></minTemperature>
<maxTemperature><!--dep <mode> is colorateColdArea/colorateIntervalArea,xs:float--></maxTemperature>
</TemperatureLimit>
<Color><!--req,"area color"-->
<R><!--req,xs:integer--></R>
<G><!--req,xs:integer--></G>
<B><!--req,xs:integer--></B>
</Color>
</ColorateTargetMode>
</ColorateTargetModeList>
</ColorateTarget>
<supportColorateTargetMode opt="WhiteHot,BlackHot"><!--opt,xs:string, palette modes that support target
coloration--></supportColorateTargetMode>
</Palettes>
<ExposureSync opt="true,false" def="false">
<enabled><!--req, xs:boolean--></enabled>
</ExposureSync>
<BrightnessSuddenChangeSuppressionCap/><!--opt-->
<isSupportIcr><!--opt, boolean--></isSupportIcr>
<isSupportMultishut><!--opt, boolean--></isSupportMultishut>
<isSupportPlateBright><!--opt, boolean--></isSupportPlateBright>
<isSupportJPEGParam><!--opt, boolean--></isSupportJPEGParam>
<isSupportDarkEnhance><!--opt, boolean--></isSupportDarkEnhance>
<isSupportHdr><!--opt, boolean--></isSupportHdr>
<isSupportLse><!--opt, boolean--></isSupportLse>
<isSupportMce><!--opt, boolean--></isSupportMce>
<isSupportScve><!--opt, boolean--></isSupportScve>
<isSupportSectionCtrl><!--opt, boolean--></isSupportSectionCtrl>
<isSupportAutoContrast><!--opt, boolean--></isSupportAutoContrast>
<isSupportGrayRange><!--opt, boolean--></isSupportGrayRange>
<isSupportLSEDetail><!--opt, boolean--></isSupportLSEDetail>
<isSupportCapture><!--opt, boolean--></isSupportCapture>
<isSupportBrightEnhance><!--opt, boolean--></isSupportBrightEnhance>
1135
Device Network SDK (General) Developer Guide
<isSupportRecord><!--opt, xs:boolean--></isSupportRecord>
<isSupportDefog><!--opt, xs:boolean--></isSupportDefog>
<isSupportGeneral><!--opt, xs:boolean, whether to display general configuration page on the interface--></
isSupportGeneral>
<isSupportIa><!--opt, xs:boolean, whether to display video configuration page on the interface--></isSupportIa>
<NoiseReduce2D>
<noiseReduce2DEnable><!--req, xs:boolean--></noiseReduce2DEnable>
<noiseReduce2DLevel min="0" max="100"><!--dep,xs:integer--></noiseReduce2DLevel>
</NoiseReduce2D>
<Shutter>
<ShutterLevel min="100" max="40000"><!--req, xs:integer--></ShutterLevel>
</Shutter>
<Gain>
<GainLevel min="0" max="100"><!--req, xs:integer--></GainLevel>
</Gain>
<TempRange/><!--opt, temperature range capability, see XML_Cap_tempRange for details-->
</ImageChannel>
Remarks
The nodes <DigitalZoom> and <ExposureSync> are not supported by thermographic automation
thermal camera (DS-2TA03-15SVI, DS2TA06-25SVI).
F.179 XML_Cap_Integrate
Message about the configuration capability of the access protocol in XML format.
<Integrate version="2.0" xmlns="[Link]
<CGI>
<enable opt="true, false"><!--optional, xs:boolean--></enable>
<certificateType opt="digest,digest/baisc" def="digest"><!--required, xs:string--></certificateType>
</CGI>
<ONVIF>
<enable opt="true, false"><!--optional, xs:boolean--></enable>
<certificateType opt="digest,digest/WSSE,WSSE" def="digest/WSSE"><!--required, xs:string--></certificateType>
</ONVIF>
<ISAPI>
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</ISAPI>
<IPCAddStatus>
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</IPCAddStatus>
<Bonjour>
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</Bonjour>
<Megaeyes>
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</Megaeyes>
<WebSocket>
<enable><!--optional, xs:boolean, "true,false"--></enable>
</WebSocket>
1136
Device Network SDK (General) Developer Guide
<WebSocketS>
<enable><!--optional, xs:boolean, "true,false"--></enable>
</WebSocketS>
</Integrate>
F.180 XML_Cap_IPFilter
IPFilter capability message in XML format
<IPFilter version="2.0" xmlns="[Link]
<enabled opt="true, false"><!--req, xs:boolean--></enabled>
<permissionType opt="deny, allow">
<!--req, xs:string, IP address filter status: "deny, allow". If this node is configured, it will overwrite value of all
<permissionType> in <IPFilterAddres>-->
</permissionType>
<IPFilterAddressList size="32"><!--opt, the attribute "size" refers to the maximum number of IP addresses supported
by the device. If the attribute "size" is not returned, the default supported number of IP addresses is 48-->
<IPFilterAddress>
<id min="" max=""><!--req, xs:string, ID--></id>
<permissionType opt="deny, allow"><!--dep, ro, xs:string--></permissionType>
<addressFilterType opt="mask,range">
<!--dep, ro, xs:string, filter type: "mask"-single address, "range"-address range-->
</addressFilterType>
<AddressRange><!--dep, this node is valid when <addressFilterType> contains "range"-->
<startIPAddress min="" max=""><!--dep, xs:string--></startIPAddress>
<endIPAddress min="" max=""><!--dep, xs:string--></endIPAddress>
<startIPv6Address min="" max=""><!--dep, xs:string--></startIPv6Address>
<endIPv6Address min="" max=""><!--dep, xs:string--></endIPv6Address>
</AddressRange>
<AddressMask><!--dep, it is valid when <addressFilterType> contains "mask"-->
<ipAddress min="" max=""><!--dep, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dep, xs:string--></ipv6Address>
<bitMask min="" max=""><!--opt, xs:string--></bitMask>
<bitMaskIPV6 min="" max=""> <!--req, xs:string, IPv6 prefix length--></bitMaskIPV6>
</AddressMask>
<describeMsg min="" max=""><!--opt, xs:string--></describeMsg>
</IPFilterAddress>
</IPFilterAddressList>
</IPFilter>
F.181 XML_Cap_ItemList
ItemList capability message in XML format
<ItemList size="15">
<Item>
<itemID min="1" max="15">
<!--req, xs:string, item ID, which is between 1 and 15-->
</itemID>
1137
Device Network SDK (General) Developer Guide
<itemOrder
opt="none,devIp,time,buildUnitNo,outDoorDevNo,unlockType,devName,deviceNo,channelName,channelNo,
plateNo,plateColor,laneNo,carSpeed,
positionInfo1,pictureNo,CarNo,speedLimit,illegalCode,siteNo,directionNo,carColor,platePosition,carType,illegalType,cu
stom">
<!--req, xs:string, name element: "none", "devIp"-device IP address, "time", "buildUnitNo"-building No. and unit
No., "outDoorDevNo"-door station, "unlockType"-unlocking type, "devName"-device name, "deviceNo"-device No.,
"channelName"-channel name, "channelNo"-channel No., "plateNo"-license plate number, "plateColor"-license plate
color, "laneNo"-lane No., "carSpeed"-vehicle speed, "positionInfo1"-camera 1, "pictureNo"-picture No., "CarNo"-
vehicle No., "speedLimit"-speed limit, "illegalCode"-violation code, "siteNo"-intersection No., "directionNo"-direction
No., "carColor"-vehicle color, "platePosition"-license plate coordinates, "carType"-vehicle type, "illegalType"-violation
type, "custom"-->
</itemOrder>
<itemCustomStr min="1" max="32">
<!--req, xs:string, element custom string, which is between 1 and 32, unit: bytes. This node is valid only when
<itemOrder> is "custom". Currently traffic cameras only support one custom name-->
</itemCustomStr>
</Item>
</ItemList>
F.182 XML_Cap_LensDistortionCorrection
LensDistortionCorrection capability message in XML format
<LensDistortionCorrection version="2.0" xmlns="[Link]
<enabled><!--req, xs: boolean--></enabled>
<level opt="level1,level2,level3,custom">
<!--opt, xs: string, distortion correction level: level 1, level 2, level 3, custom-->
</level>
<accurateLevel min="0" max="100">
<!--opt, xs: integer, correction strength, value range: [0,100]-->
</accurateLevel>
<zoomedInDistantViewLevel min="0" max="100">
<!--opt, xs: integer, zooming in range, value range: [0-100], this node is valid when distortion correction is enabled-->
</zoomedInDistantViewLevel>
<horizontalFOV min="0" max="100"><!--opt, xs: integer, horizontal FOV, value range: [0,100]--></horizontalFOV>
<verticalFOV min="0" max="100"><!--opt, xs: integer, vertical FOV, value range: [0,100]--></verticalFOV>
</LensDistortionCorrection>
F.183 XML_Cap_MACFilter
MACFilter capability message in XML format
<MACFilter version="2.0" xmlns="[Link]
<enabled opt="true,false"><!--req, xs:boolean--></enabled>
<permissionType opt="deny, allow"><!-- req, xs:string,"deny, allow"--></permissionType>
<MACFilterAddressList size="">
<MACFilterAddress>
<id> <!--req, xs:string;id--></id>
1138
Device Network SDK (General) Developer Guide
F.184 XML_Cap_MaxElevation
MaxElevation capability message in XML format
<MaxElevation version="1.0" xmlns="[Link]
<mElevation min="-20" max="0"><!--req, xs:integer, the lower limit of max. tilt-angle--> </mElevation>
<mVerElevation><!--req, xs:integer, the upper limit of max. tilt-angle, normally it is 90°--></mVerElevation>
</MaxElevation>
F.185 XML_Cap_MountingScenario
MountingScenario capability message in XML format
<MountingScenario version="2.0" xmlns="[Link]
<mode
opt="indoor,outdoor,day,night,morning,nightfall,mode1,mode2,mode3,mode4,street,lowIllumination,custom1,custom
2,normal,road,faceSnap,highway,road2,backlight,frontlight">
<!--req, xs:string, "lowIllumination"-low illumination, "backlight"-back light, "frontlight"-front light, "faceSnap"-face
picture capture-->
</mode>
</MountingScenario>
F.186 XML_Cap_SalveCamera
SalveCamera capability message in XML format
<SlaveCamera version="2.0" xmlns="[Link]
<SlaveCameraInfoList>
<SlaveCameraInfo>
<id min="1" max="4">
<!--req, xs:integer-->
</id>
<serverAddress>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName max="">
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
1139
Device Network SDK (General) Developer Guide
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</serverAddress>
<userName max="">
<!--req, xs:string-->
</userName>
<passWord max="">
<!--req, xs:string-->
</passWord>
<portNo min="" max="">
<!--req, xs:integer-->
</portNo>
<loginStatus opt="login,logout">
<!--req,xs:string-->
</loginStatus>
</SlaveCameraInfo>
</SlaveCameraInfoList>
</SlaveCamera>
F.187 XML_Cap_Schedule
Schedule capability message in XML format
<Schedule version="2.0" xmlns="[Link]
<id><!--req, xs:string, ID--></id>
<eventType
opt="IO,VMD,videoloss,PIR,linedetection,fielddetection,audioexception,facedetection,regionEntrance,regionExiting,loi
tering,group,rapidMove,parking,unattendedBaggage,attendedBaggage,storageDetection,shipsDetection,HUMANATTRI
BUTE,humanAttribute,faceContrast,faceSnap, mixedTargetDetection">
<!--opt, xs:string, event type-->
</eventType>
<inputIOPortID><!--ro, dep, xs:string, alarm input ID--></inputIOPortID>
<outputIOPortID><!--ro, dep, xs:string, alarm output ID--></inputIOPortID>
<videoInputChannelID><!--ro, dep, xs:string, video input channel ID--></videoInputChannelID>
<TimeBlockList size="8"><!--req-->
<TimeBlock>
<dayOfWeek opt="1,2,3,4,5,6,7">
<!--opt, xs:integer, days of the week in ISO8601 time format, 1-Monday, 2-Tuesday, 3-Wednesday, 4-Thursday, 5-
Friday, 6-Saturday, 7-Sunday-->
</dayOfWeek>
<TimeRange><!--req, time periods in arming schedule-->
<beginTime><!--req, xs:time, start time of time period, in ISO8601 time format--></beginTime>
<endTime><!--req, xs:time, end time of time period, in ISO8601 time format--></endTime>
</TimeRange>
</TimeBlock>
</TimeBlockList>
<HolidayBlockList><!--opt, holiday arming period-->
<TimeBlock>
<TimeRange><!--req, time period-->
1140
Device Network SDK (General) Developer Guide
F.188 XML_Cap_storage
XML message about configuration capability of storage working mode
<?xml version="1.0" encoding="utf-8"?>
<storage version="2.0" xmlns="[Link]
<hddList size=""><!--optional, the contents are same to the message XML_hddList (related URI: /ISAPI/ContentMgmt/
Storage/hdd)--></hddList>
<nasList size=""><!--optional, the contents are same to the message XML_nasList (related URI: /ISAPI/ContentMgmt/
Storage/nas)--></nasList>
<workMode opt="group,quota,extract"><!--optional, xs:string, working mode: "group", "quota", "extract--></
workMode>
<supportDataReconstruction opt="all,record">
<!--optional, xs:string, whether the device supports disk data reconstruction, and the supported data type for
reconstruction: "all", "record"-->
</supportDataReconstruction>
<isSupportSSDManagement>
<!--optional, xs:string, whether the device supports SSD management (related URI: /ISAPI/ContentMgmt/
storage/ssd/<ID>/capabilities?format=json)-->
</isSupportSSDManagement>
<ssdList size=""><!--optional, the contents are same to the message XML_ssdList (related URI: /ISAPI/ContentMgmt/
Storage/ssd)--></ssdList>
</storage>
F.189 XML_Cap_storageExtension
XML message about storage strategy capability.
<storageExtension xmlns="[Link] version="2.0" >
<LoopEnable,opt="true,false">
<!--optional, xs:boolean, whether to enable overwriting-->
</LoopEnable>
<enableDormant>
<!-optional, xs:boolean-->
</enableDormant>
<packDuration max="300" min="1">
<!-optional, xs:integer, unit: minute-->
</packDuration>
<logStorageMode opt="system,custom">
<!-optional, xs:string, log storage mode: "system"-system default mode, "custom"-custom mode-->
</logStorageMode>
<logStorageId>
1141
Device Network SDK (General) Developer Guide
<!--dependent, xs:integer, disk ID (saving logs in a disk) or array number (saving logs in disk arrays), which are valid
only when logStorageMode is "custom"; -->
</logStorageId>
<logStorageCycle min="0" max="90" def="90">
<!--dependent, xs:integer, log storage period,which is valid only when logStorageMode is "custom"-->
</logStorageCycle>
</storageExtension>
F.190 XML_Cap_StreamingChannel
StreamingChannel capability message in XML format
<StreamingChannel version="2.0" xmlns="[Link]
<id opt="111,222,333,444"><!--req, xs:string, ID--></id>
<channelName min="0" max="64"><!--req, xs:string, channel name--></channelName>
<enabled opt="true,false" def="true"><!--req, xs:boolean--></enabled>
<Transport><!--req-->
<rtspPortNo min="0" max="65535" def="554">554</rtspPortNo>
<maxPacketSize min="0" max="1500"><!--optional, xs:integer--></maxPacketSize>
<audioPacketLength min="0" max="5000"/>
<audioInboundPacketLength min="0" max="5000"/><!--optional, xs:integer-->
<audioInboundPortNo min="0" max="65535"/><!--optional, xs:integer-->
<videoSourcePortNo min="0" max="65535"/><!--optional, xs:integer-->
<audioSourcePortNo min="0" max="65535"/><!--optional, xs:integer-->
<ControlProtocolList><!--req-->
<ControlProtocol><!--list-->
<streamingTransport opt="RTSP/RTP,HTTP"><!--req, xs:string, "HTTP,RTSP,SHTTP,SRTP"--></streamingTransport>
</ControlProtocol>
</ControlProtocolList>
<Unicast><!--opt-->
<enabled opt="true,false" def="false"/><!--req, xs:boolean-->
<rtpTransportType opt="RTP/UDP,RTP/TCP"/><!--optional, xs:string, "RTP/UDP,RTP/TCP"-->
</Unicast>
<Multicast><!--opt-->
<enabled opt="true,false" def="false"/><!--req, xs:boolean-->
<userTriggerThreshold/><!--optional, xs:integer-->
<videoDestPortNo min="1" max="65535" def="8860"/><!--optional, xs:integer-->
<audioDestPortNo min="1" max="65535" def="8860/><!--optional, xs:integer-->
<destIPAddress min="8" max="16"/><!--dep, xs:string-->
<destIPv6Address min="15" max="39"/><!--dep, xs:string-->
<ttl min="0" max="127" def="1"/><!--optional, xs:integer-->
<activeMulticastEnabled>
<!--optional, xs: boolean, "true, false", whether to enable active multicast, which is mutually exclusive with
passive multicast-->
</activeMulticastEnabled>
<packagingFormat opt="RTP,TS,ES,PS"><!--optional, xs: string, encapsulation format--></packagingFormat>
<FecInfo><!--opt-->
<fecRatio min="0" max="100">
<!--req, read-only, xs: integer, extra bandwidth occupation ratio of forward error correction (FEC) data, the value
is between 0 and 100, the default value is 0-->
1142
Device Network SDK (General) Developer Guide
</fecRatio>
<fecDestPortNo>
<!--optional, xs: integer, port No. of FEC multicast, the default port No. is specified by device-->
</fecDestPortNo>
</FecInfo>
</Multicast>
<Security><!--opt-->
<enabled opt="true,false" def="false"/><!--req, xs:boolean-->
<certificateType opt="digest,digest/baisc" def="digest"><!--req, xs:string--></certificateType>
<SecurityAlgorithm><!--dependency, this node is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType opt="MD5,SHA256,MD5/SHA256"><!--optional, xs:string, algorithm type: "MD5", "SHA256",
"MD5/SHA256"--></algorithmType>
</SecurityAlgorithm>
</Security>
<SRTPMulticast><!--opt-->
<SRTPVideoDestPortNo min="" max=""><!--optional, xs:integer--></SRTPVideoDestPortNo>
<SRTPAudioDestPortNo min="" max=""><!--optional, xs:integer--></SRTPAudioDestPortNo>
</SRTPMulticast>
</Transport>
<Video>
<enabled opt="true,false">true</enabled>
<videoInputChannelID opt="1,2,3,4">2</videoInputChannelID>
<videoCodecType opt="MJPEG,MPEG4">MPEG4</videoCodecType>
<videoScanType opt="interlaced,progressive">progressive</videoScanType>
<videoResolutionWidth min="0" max="640">640</videoResolutionWidth>
<videoResolutionHeight min="0" max="480">480</videoResolutionHeight>
<videoDiffResolutionList><!--optional, list, if this node exists, it indicates that the resolution depends on the node
<videoCodecType>, and <videoResolutionWidth> and <videoResolutionHeight> are invalid. For forward
compatibility, the maximum set of <videoCodecType>, <videoResolutionWidth>, and <videoResolutionHeight>-->
<videoDiffResolution>
<videoCodecType>
<!--req, xs:string, "MPEG4,MJPEG,3GP,H.264,HK.264,MPNG,SVAC"-->
</videoCodecType>
<videoResolutionWidth><!--req, xs:integer--></videoResolutionWidth>
<videoResolutionHeight><!--req, xs:integer--></videoResolutionHeight>
</videoDiffResolution>
</videoDiffResolutionList>
<videoPositionX min="0" max="640">0</videoPositionX>
<videoPositionY min="0" max="480">0</videoPositionY>
<videoQualityControlType opt="CBR,VBR">CBR</videoQualityControlType>
<constantBitRate min="50" max="4000" dynamic="true">2000</constantBitRate>
<maxFrameRate opt="2500,1250,625,312,156,78,830" >2500</maxFrameRate>
<keyFrameInterval min="0", max="10000">1000</keyFrameInterval>
<rotationDegree opt="0,90,180,270" def="0">0</rotationDegree>
<mirrorEnabled opt="true,false" def="false">false</mirrorEnabled>
<snapShotImageType opt="JPEG" def="JPEG">JPEG</snapShotImageType>
<IntelligentInfoDisplayMethod opt="player,non-player"><!--optional, xs:string, method of displaying intelligent
information: "player", "non-player"--></IntelligentInfoDisplayMethod>
<minimumResolutionSupportedBySmartCode>
<!--optional, xs:string, the minimum resolution supported by smart coding (smart264 and smart265), e.g.,
"640*512". If this node is returned, it indicates the smart code of current device (H7, H5) is limited by the minimum
resolution, and the upper layer can get the supported minimum resolution for smart coding of current device. For the
1143
Device Network SDK (General) Developer Guide
resolution lower than the minimum resolution does not support smart coding. If this node is not returned, it indicates
the smart coding of current device (H3) is not limited by minimum resolution-->
</minimumResolutionSupportedBySmartCode>
</Video>
<Audio>
<enabled opt="true,false" def="false">false</enabled>
<audioInputChannelID opt="1,2,3,4">2</audioInputChannelID>
<audioCompressionType opt="G.726,G.711ulaw" def="G.726">G.726</audioCompressionType>
<audioBitRate opt="16,24,32,40" def="32" dynamic="true">24</audioBitRate>
<audioSamplingRate opt="8" dynamic="true">8</audioSamplingRate>
<audioResolution opt="3,4,5,6" dynamic="true"/>
</Audio>
<isSpportDynamicCapWithCondition><!--optional, xs:boolean, whether to support dynamic capability with
conditions--></isSpportDynamicCapWithCondition>
<enableCABAC><!--optional, xs:boolean, whether it supports compressing stream to improve performance--></
enableCABAC>
<subStreamRecStatus><!--optional, xs:boolean--></subStreamRecStatus>
<isSupportRefreshFrame><!--optional, xs:boolean, whether it supports refreshing frames when Smart264 is enabled--
></isSupportRefreshFrame>
<isSupportBareDataOverlay><!--optional, xs:boolen--></isSupportBareDataOverlay>
<isSupportRTCPCfg><!--optional, xs:boolean--></isSupportRTCPCfg>
<customStreamEnable><!--optional, xs:boolean, whether the stream is custom stream: "true"-yes, this node is not
returned-no--></customStreamEnable>
<isSupportPictureByUrl>
<!--optional, xs: boolean, whether the device supports capture picture in URL format (related URI: /ISAPI/
ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/capabilities?format=json)-->
</isSupportPictureByUrl>
</StreamingChannel>
F.191 XML_Cap_SoftwareService
SoftwareService capability message in XML format
<SoftwareService version="2.0" xmlns="[Link]
<ThirdStream><!--opt, third stream configuration-->
<enabled opt="true,false"><!--req, xs: boolean, whether to enable third stream configuration--></enabled>
<thirdStreamPrompt opt="prompt5">
<!--req, xs: string, set audible prompt for third stream, prompt5-"When third stream is enabled, functions such as
intrusion detection, line crossing detection, region entrance detection, region exiting detection, face detection, HDMI,
H.264+ and H265+, are not supported. New settings will take effect after a reboot."-->
</thirdStreamPrompt>
</ThirdStream>
<PanoramaDisplay><!--opt, display the image range on panorama view-->
<enabled opt="true,false" default="false">
<!--req, xs: boolean, whether to enable image range display on panorama view-->
</enabled>
</PanoramaDisplay>
<MotionDetect>
<enabled opt="true,false"><!--whether to enable motion detetion--></enabled>
<MotionDetectPrompt opt="prompt1">
1144
Device Network SDK (General) Developer Guide
<!--req, xs: string, motion detection audible prompt, prompt1-"When motion detection is enabled, functions such
as intrusion detection, line crossing detection, region entrance detection, and region exiting detection, are not
supported. New settings will take effect after a reboot."-->
</MotionDetectPrompt>
</MotionDetect>
</SoftwareService>
F.192 XML_Cap_SupplementLight
SupplementLight capability message in XML format
<SupplementLight><!--opt-->
<mode opt="schedule,off,on,auto"><!--opt, xs: string, adjustment mode of supplement light: "schedule,off,on,auto"--
></mode>
<Schedule>
<TimeRange><!--req-->
<beginTime><!--req, xs: time, ISO8601 time--></beginTime>
<endTime><!-- req, xs: time, ISO8601 time--></endTime>
</TimeRange>
</Schedule>
<brightnessLimit min="0" max="100">
<!--dep, xs: integer, brightness of supplement light, which is between 0 and 100; the brightness can be adjust when
<mode> is set to "on"-->
</brightnessLimit>
<supplementLightMode opt="mixed,whiteLight,close">
<!--opt, xs: string, illumination mode: "mixed"-hybrid, "whitelight"-white light, "close"-disabled-->
</supplementLightMode>
<irLightBrightness min="0" max="100">
<!--dep, xs: integer, brightness of IR supplement light, which is between 0 and 100; this node is valid only when
<supplementLightMode> is set to "mixed" and <mixedLightBrightnessRegulatMode> is set to "manual"-->
</irLightBrightness>
<mixedLightBrightnessRegulatMode opt="manual,auto">
<!--dep, xs: string, brightness adjustment mode of hybrid supplement light; this node is valid only when
<supplementLightMode> is set to "mixed"-->
</mixedLightBrightnessRegulatMode>
<mixedModeSupportType opt="irLight,whiteLight">
<!--dep, xs: string, light type of hybrid illumination mode, "irLight"-IR light, "whiteLight"-white light-->
</mixedModeSupportType>
<highIrLightBrightness min="0" max="100">
<!--dep, xs: integer, brightness of far IR light, which is between 0 and 100; this node cannot be configured together
with node <irLightBrightness>-->
</highIrLightBrightness>
<highWhiteLightBrightness min="0" max="100">
<!--dep, xs: integer, brightness of far white light, which is between 0 and 100; this node cannot be configured
together with node <brightnessLimit>-->
</highWhiteLightBrightness>
<lowIrLightBrightness min="0" max="100">
<!--dep, xs: integer, brightness of near IR light, which is between 0 and 100; this node cannot be configured together
with node <irLightBrightness>-->
</lowIrLightBrightness>
1145
Device Network SDK (General) Developer Guide
F.193 XML_Cap_tempRange
tempRange capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<TempRange version="2.0" xmlns="[Link]
<mode opt="automatic,manual">
<!--req, xs:string, temperature range mode: "automatic"-automatic mode, "manual"-manual mode-->
</mode>
<temperatureUpperLimit min="-20" max="550" def="150">
<!--dep, xs:float, maximum temperature, corrects to one decimal, the minimum value is "-20", the maximum value
is "550", unit: Celsius degree; its value should be larger than temperatureLowerLimit; it is valid when the value of
mode is "manual"-->
</temperatureUpperLimit>
<temperatureLowerLimit min="-20" max="550" def="0">
<!--dep, xs:float, minimum temperature, corrects to one decimal, the minimum value is "-20", the maximum value is
"550", unit: Celsius degree; its value should be smaller than temperatureUpperLimit; it is valid when the value of
mode is "manual"-->
</temperatureLowerLimit>
</TempRange>
F.194 XML_Cap_Time
Time capability message in XML format
<Time version="2.0" xmlns="[Link]
<timeMode opt="NTP,manual,satellite,timecorrect,platform"><!--required, xs:string--></timeMode>
<localTime min="0" max="256">
<!--dependent, xs:datetime, this node is required when <timemode> is "manual" or "local"-->
</localTime>
<timeZone min="0" max="256">
<!--dependent, xs:string, POSIX time zone string, this node is required when <timemode> is "manual", "local" or
"NTP"-->
</timeZone>
<satelliteInterval min="" max="">
1146
Device Network SDK (General) Developer Guide
<!--dependent, xs:integer, minutes, time synchronization interval of locating by satellite, this node is valid only when
<timemode> is "satellite"-->
</satelliteInterval>
<timeType opt="local, UTC">
<!--optional, xs: string, time type, it can be local, or UTC, or local and UTC. If this node is not returned, it indicates
that device does not support getting or setting time type-->
</timeType>
<platformType opt="EZVIZ">
<!--dependent, xs: string, platform type: "EZVIZ"-Hik-Connect; it is valid only when the value of timeMode is
"platform"-->
</platformType>
</Time>
F.195 XML_Cap_Track
Track capability message in XML format
<Track version="2.0" xmlns="[Link]
<id><!--xs:integer, the value of <id> and <Channel> is the same. For example, 201 refers to the main stream of
channel 1, 202 refers to the sub-stream of channel 2, and so on--></id>
<Channel><!--req, xs:integer--></Channel>
<Enable><!--req, xs:boolean--></Enable>
<Description><!--req, xs:string, e.g., trackType=standard,sourceTag=AXIS210a,contentType=video,codecType=MPEG4-
SP,resolution=640x480,frameRate=20 fps,bitrate=6000 kbps--></Description>
<TrackGUID><!--req, xs:string, GUID generated by the client, e.g., A01AAAAA-BBBB-CCCC-DDDD-033595353625--></
TrackGUID>
<Size><!--opt, xs:integer--></Size>
<Duration min="0" max="750"><!--opt, xs:string, video expiry date, e.g., P10DT15H indicates that the video will
expire after 10 days and 15 hours--></Duration>
<DefaultRecordingMode opt="CMR,MOTION,ALARM,EDR,ALARMANDMOTION,AllEvent,POS"><!--req, xs:string,
default video type--></DefaultRecordingMode>
<LoopEnable><!--opt, xs:boolean, whether to support recurrently overwriting--></LoopEnable>
<SrcDescriptor><!--video source description-->
<SrcGUID><!--req, xs:string, GUID generated by the device, e.g., E800A543-9D53-4520-8BB8-9509062C692D--></
SrcGUID>
<SrcChannel><!--req, xs:integer, source channel--></SrcChannel>
<StreamHint><!--req, xs:string, e.g., "video, mp4, 640x480, 20 fps, 6000 kbps"--></StreamHint>
<SrcDriver><!--req, xs:string, stream executable driver name, e.g., RTP/RTSP--></SrcDriver>
<SrcType><!--opt, xs:string, source type, e.g., "mp4", "video"--></SrcType>
<SrcUrl opt="rtsp://localhost/PSIA/Streaming/channels/101,rtsp://localhost/PSIA/Streaming/channels/102,rtsp://
localhost/PSIA/Streaming/channels/103,,rtsp://localhost/PSIA/Streaming/channels/107"><!--req, xs:string, e.g.,
rtsp://[Link]/mpeg4/[Link]--></SrcUrl>
<SrcUrlMethods><!--req, xs:string, methods supported by the source: "DESCRIBE,SETUP,PLAY,TEARDOWN"--></
SrcUrlMethods>
<SrcLogin><!--req, xs:string, login source password--></SrcLogin>
</SrcDescriptor>
<TrackSchedule><!--recording schedule-->
<ScheduleBlockList>
<ScheduleBlock><!--list, recording schedule list-->
<ScheduleBlockGUID><!--xs:string, schedule GUID, e.g., ABC12345-CDEF-4520-8BB8-7135789C8790--></
1147
Device Network SDK (General) Developer Guide
ScheduleBlockGUID>
<ScheduleBlockType><!--req, xs:string--></ScheduleBlockType>
<ScheduleAction><!--list-->
<id><!--req, xs:integer--></id>
<ScheduleActionStartTime><!--start time of the schedule-->
<DayOfWeek><!--req, xs:string, "Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"--></
DayOfWeek><!--inclusive-->
<TimeOfDay><!--xs:time, 00:00:00--></TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime><!--end time of the schedule-->
<DayOfWeek><!--req, xs:string, "Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"--></
DayOfWeek><!--exclusive-->
<TimeOfDay><!--xs:time, 08:00:00--></TimeOfDay>
</ScheduleActionEndTime>
<ScheduleDSTEnable><!--req, xs:boolean, whether to enable DST (daylight saving time)--></ScheduleDSTEnable>
<Description><!--req, xs:string, PreMorning (midnight to 8 a.m., local time)--></Description>
<Actions><!--alarm or motion detection that triggers recording-->
<Record><!--opt, xs:boolean--></Record>
<Log><!--opt, xs:boolean--></Log>
<SaveImg><!--opt, xs:boolean--></SaveImg>
<ActionRecordingMode><!--req, xs:string, recording schedule type:
"CMR,EDR,ALARM,MOTION,ALARMANDMOTION,COMMAND,SMART"--></ActionRecordingMode>
<PreRecordTimeSeconds><!--opt, xs:integer, pre-record time, it is between 0 and 10 and the default value is 5,
unit: second--></PreRecordTimeSeconds>
<PostRecordTimeSeconds><!--opt, xs:integer, post-record time, it is between 0 and 20 and the default value is
5, unit: second--></PostRecordTimeSeconds>
</Actions>
</ScheduleAction>
</ScheduleBlock>
</ScheduleBlockList>
</TrackSchedule>
<CustomExtensionList>
<CustomExtension>
<CustomExtensionName><!--opt, xs:string, example: [Link]/RaCM/trackExt/ver10--></
CustomExtensionName>
<enableSchedule><!--opt, xs:boolean, whether to enable recording schedule configuration--></enableSchedule>
<SaveAudio><!--opt, xs:boolean, whether to enable recording audio--></SaveAudio>
<PreRecordTimeSeconds><!--opt, xs:integer, pre-record time, unit: second--></PreRecordTimeSeconds>
<PostRecordTimeSeconds><!--opt, xs:integer, post-record time, unit: second--></PostRecordTimeSeconds>
<HolidaySchedule>
<ScheduleBlock>
<ScheduleBlockGUID><!--req, xs:string, example: 00000000-0000-0000-0000-000000000000--></
ScheduleBlockGUID>
<ScheduleBlockType><!--opt, xs:string, e.g., [Link]/racm/schedule/ver10--></ScheduleBlockType>
</ScheduleBlock>
</HolidaySchedule>
</CustomExtension>
</CustomExtensionList>
<IntelligentRecord><!--opt, xs:boolean, whether to enable VCA recording function: 0-no, 1-yes--></IntelligentRecord>
<delayTime opt="0,3,4,5,10,30,60,120,300"><!--opt, xs:integer, capture delay time, unit: second--></delayTime>
<durationEnabled opt="true,false"><!--opt, xs:boolean, whether to enable video expiry time. If this function is not
supported, this node will not be returned. If this function is supported, the video expiry date will be set by the node
1148
Device Network SDK (General) Developer Guide
<Duration>--></durationEnabled>
</Track>
F.196 XML_Cap_Tracking
Tracking capability message in XML format
<Tracking version="2.0" xmlns="[Link]
<enabled>
<!--req, xs:boolean-->
</enabled>
<mode opt="auto,manual">
<!--dep, xs:string, "auto,manual"-->
</mode>
<trackingTime min="0" max="60" def="5">
<!--dep, xs:integer, tracking time-->
</trackingTime>
<normalizedScreenSize>
<!--req, ro-->
<normalizedScreenWidth>
<!--req, ro, xs:integer-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--req, ro, xs:integer-->
</normalizedScreenHeight>
</normalizedScreenSize>
<ManualRegionCoordinatesList min="4" size="4">
<!--dep, tracking area-->
<RegionCoordinates>
<!--opt-->
<positionX>
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--req, xs:integer, Y-coordinate-->
</positionY>
</RegionCoordinates>
</ManualRegionCoordinatesList>
<isNotSupportTrackingDisplay>
<!--req, xs:boolean, whether to support displaying master-slave tracking on the interface: "true"-yes, "false"-no-->
</isNotSupportTrackingDisplay>
<Schedule>
<!--opt ,dep, schedule, this node is valid only when enabled is "true". By default the schedule is from 00:00 to 24:00
if no schedule is configured-->
<TimeRange >
<beginTime>
<!--UTC time, e.g.: "2018-03-13T19:42:27+08:00"-->
</beginTime>
<endTime>
<!--UTC time, e.g.: "2018-03-13T19:42:27+08:00"--->
1149
Device Network SDK (General) Developer Guide
</endTime>
</TimeRange >
</Schedule >
</Tracking>
F.197 XML_Cap_VCAResource
Capability message of intelligent resources switch in XML format
<VCAResource version="2.0" xmlns="[Link]
<type
opt="basicBehavior,fullBehavior,facesnapBehavior,facesnap,TFS,smartVehicleDetection,smartHVTDetection,smart,judic
ial,smart264AndRoadDetection,smart264AndFaceDetection,smart264AndHeatMap,smartVehicleIllegalParkingDetectio
n,smartIntelligentMonitor,smartTrafficDataCollection, roadDetection,humanRecognition, perimeterCapture,
vehicleDetection,HVTDetection,mixedTargetDetection,trackingCaptureMode,nonTrackingCaptureMode,close,faceHum
anModelingContrast,cityManagement,teacherBehavior,
12MPLiveView,personQueueDetection,verticalPeopleCounting,safetyHelmet,faceCounting">
<!--required, xs: string, intelligent resource types, "trackingCaptureMode"-panoramic capture mode,
"nonTrackingCaptureMode"-single target capture mode, "faceHumanModelingContrast"-resources of face/human
body+face modeling+face picture comparison, "verticalPeopleCounting"-vertical people counting, "safetyHelmet"-
hard hat detection, "faceCounting"-face counting, "personArming"-person arming-->
</type>
<PromptList><!--optional, prompt for switching intelligent resources-->
<Prompt><!--list-->
<resourceType opt="roadDetection">
<!--optional, xs: string, intelligent resource to prompt, currently, only "roadDetection" is supported-->
</resourceType>
<resourcePrompt opt="smartCode">
<!--optional, xs: string, prompt contents-->
</resourcePrompt>
</Prompt>
</PromptList>
</VCAResource>
F.198 XML_Cap_WirelessServer
WirelessServer capability message in XML format
<WirelessServer version="2.0" xmlns="[Link]
<wifiApEnabled opt="true,false"><!--opt,xs: boolean,--></wifiApEnabled>
<broadcastEnabled opt="true,false"><!--opt,xs: boolean--></broadcastEnabled>
<wlanShareEnabled opt="true,false"><!--opt,xs: boolean--></wlanShareEnabled>
<ssid min="" max=""><!--opt, xs: string--></ssid>
<WirelessSecurity><!--req-->
<securityMode opt="disable,WEP,WPA-personal,WPA2-personal,WPA-RADIUS,WPA-enterprise,WPA2-enterprise">
<!--opt, xs: string-->
</securityMode>
<WEP><!--dep, depends on <securityMode>-->
<authenticationType opt="open,sharedkey,auto">
1150
Device Network SDK (General) Developer Guide
1151
Device Network SDK (General) Developer Guide
</wifiApModeType>
</WirelessServer>
Remarks
For Client supports auto AP, the node <<wifiApModeType> is valid; for Client does not supports
auto AP, the node <wifiApEnabled> is valid; the values of these two nodes will effect each other,
and when <wifiApModeType> equals to "auto", the value of <wifiApEnabled> is "true".
F.199 XML_ChannelEventCap
Message about event capability of a single channel in XML format
<ChannelEventCap version="2.0" xmlns="[Link]
<eventType opt=""/>
<!--required, xs:string, event types supported by the channel; see remarks for details-->
<shieldEventType opt="behavior,faceSnap,humanRecognition,faceCapture,targetCapture"/>
<!--required, xs:string, event types that support area shield-->
<channelID><!--optional, xs:integer, current device channel No.--></channelID>
<id><!--required, xs:integer--></id>
<passThoughEventType
opt="faceSnapModeling,cityManagement,strudentsStoodUp,dredgerDetection,reverseEntrance,teacherBehaviorDetec
t,personQueueDetection">
<!--optional, xs:string, event types can be transmitted-->
</passThoughEventType>
</ChannelEventCap>
Remarks
The values of node <eventType> are shown in the table below.
eventType Description
VMD (motionDetection) Motion detection
Shelteralarm (tamperDetection) Video tampering alarm
videoLoss Video loss
ROI Region of interest
facedetection (faceDetection) Face detection
intelliTrace Auto-track
fielddetection (fieldDetection) Intrusion detection
defocus (defocusDetection) Defocus detection
audioexception (audioDetection) Audio exception detection
scenechangedetection Sudden scene change detection
(sceneChangeDetection)
1152
Device Network SDK (General) Developer Guide
eventType Description
linedetection (lineDetection) Line-crossing detection
regionEntrance Region entrance detection
regionExiting Region exiting detection
loitering Loitering detection
group People gathering detection
rapidMove Fast moving detection
parking Parking detection
unattendedBaggage Unattended baggage
attendedBaggage Object removal detection
peopleDetection Human detection
storageDetection HDD health detection
behavior Behavior analysis
faceCapture(faceSnap) Face capture
ANPR(vehicleDetection) Vehicle detection
fireDetection Fire detection
shipsDetection Ship detection
PIR PIR alarm
targetCapture (humanRecognition) Target capture
alarmResult (faceContrast) Face comparison
framesPeopleCounting People counting in single frame
hide Tampering detection
audioLoss Audio loss
cameraAngleAnormaly Image exception
violentMotion Violent motion
trial Tailing
humanEnter Human entrance
operateOverTime Operation timed out
stickUp Sticking scrip
installScanner Installing scanner
1153
Device Network SDK (General) Developer Guide
eventType Description
faceDetect ATM face detection
temperature (temperatureDetection) Temperature difference detection
PeopleCounting People counting
personQueueDetection People queuing-up detection
heatmap Heat map
mixedTargetDetection Multi-target-type detection
MTD_face Supported face attributes of multi-target-type
detection (MTD)
MTD_human Supported human attributes of multi-target-type
detection (MTD)
MTD_vehicle Supported motor vehicle attributes of multi-target-
type detection (MTD)
MTD_nonMotor Supported non-motor vehicle attributes of multi-
target-type detection (MTD)
faceSnapModeling Face capture modeling
HVTVehicleDetection Mixed-traffic detection
PictureCaptureComparision N:1 face comparison
IO Sensor alarm
smokeDetection Smoke detection
smokeAndFireDetection Smoke and fire detection
diskfull HDD is full
diskerror HDD error
nicbroken Network disconnected
ipconflict IP address conflicted
illaccess Illegal access
personDensityDetection People density detection
vehicleControl Upload alarm of vehicle in whitelist and blacklist
vehicleRcogResult Vehicle secondary recognition
cardMatch Authentication
overSpeed Overspeed alarm
1154
Device Network SDK (General) Developer Guide
eventType Description
highTempAlarm High temperature alarm
abnormalAcceleration Abnormal accelerated speed alarm
failDown People falling down
leavePosition Absence detection
peopleNumChange The number of people changed
retention Overstay detection
running Running
thermometry Temperature measurement
heatmapPDC Heat map people counting
heatmapDuration Heat map people staying duration
intersectionAnalysis Intersection analysis
AID_abandonedObject Thrown object in traffic events
AID_pedestrian Pedestrian detection in traffic events
AID_congestion Congestion detection in traffic events
AID_roadBlock Roadblock detection in traffic events
AID_construction Construction detection in traffic events
AID_trafficAccident Traffic accident detection in traffic events
AID_fogDetection Fog detection in traffic events
TFS_illegalParking Illegal parking of enforcement events
TFS_wrongDirection Wrong-way driving of enforcement events
TFS_crossLane Driving on lane line of enforcement events
TFS_laneChange Lane change of enforcement events
TFS_vehicleExist Vehicle existing of enforcement events
TFS_turnRound Turning round of enforcement events
TFS_parallelParking Parallel parking of enforcement events
TPS Traffic data collection configuration
luma Brightness exception
chroma Color cast detection
snow Snow noise
1155
Device Network SDK (General) Developer Guide
eventType Description
streak Stripe noise
freeze Image freeze
sigLose Signal loss
clarity Clarity exception
jitter Image flutter
block Video tampering
flowers Blurred screen detection
noise Image noise
ghost Abnormal light spot detection
purple Image purple edge detection
ICR ICR exception detection
protectiveFilm Protective film unremoved
certificateRevocation Certificate is expired
dataPreAlarm Traffic pre-alarm
vibrationDetection Vibration detection
radarFieldDetection Radar intrusion detection
radarLineDetection Radar line crossing detection
personArmingTrack Person arming
manualPersonArmingTrack Manual person arming
fireEscapeDetection Fire engine access detection
takingElevatorDetection Elevator detection
temperatureIntervalMeasurement Temperature range measurement
The value in the bracket is the old version, and considering the compatibility, both new and old
value will be returned.
F.200 XML_ChannelEventCapList
Message about event capability of all channels in XML format
1156
Device Network SDK (General) Developer Guide
See Also
XML_ChannelEventCap
F.201 XML_ChannelInfo
ChannelInfo message in XML format.
<ChannelInfo version="2.0" xmlns="[Link]
<id><!--required, xs:integer, channel number--></id>
<EagleEye>
<!--optional, the channel supports the functions of PanoVu series camera-->
<StreamFusion>
<!--optional, "panoramic + PTZ camera streaming channel, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</StreamFusion>
<PanoramicMetaData>
<!--optional, panoramic camera streaming channel, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</PanoramicMetaData>
</EagleEye>
<FishEye>
<!--optional, the channel supports the functions of fisheye camera-->
<FishEyeStream>
<!--optional, fisheye camera stream, it is used for software decoding of play library, it is not returned when not
support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FishEyeStream>
</FishEye>
<Thermal>
<!--optional, the channel supports the functions of thermal products-->
<TemperatureMetaData>
<!--optional, temperature measurement metadata, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</TemperatureMetaData>
<ThermometryDetection>
<!--optional, temperature measurement detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</ThermometryDetection>
<ThermometryDiffDetection>
<!--optional, temperature difference detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</ThermometryDiffDetection>
<FireDetection>
<!--optional, fire detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FireDetection>
1157
Device Network SDK (General) Developer Guide
<SmokeDetection>
<!--optional, smoke detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</SmokeDetection>
<ShipsDetection>
<!--optional, ship detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</ShipsDetection>
<IntelligentRuleDisplay>
<!--optional, intelligent rule display parameters of thermal application, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</IntelligentRuleDisplay>
<IntelligentBehaviorRule>
<!--optional, intelligent behavior rule configureation, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</IntelligentBehaviorRule>
<DPC>
<!--optional, defective pixel correction, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</DPC>
<Metadata>
<!--optional, metadata extraction, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</Metadata>
<ThermometryShieldMask>
<!--optional, temperature measurement shielded area, it is not returned when not support-->
<InsertChanNo><!--optional,xs:integer, access channel number--></InsertChanNo>
</ThermometryShieldMask>
<FaceThermometry>
<!--optional, face thermography, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FaceThermometry>
<BlackBody>
<!--optional, black body, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</BlackBody>
<BodyTemperatureCompensation>
<!--optional, body temperature compensation, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</BodyTemperatureCompensation>
<LensCorrection>
<!--optional, lens correction, when this node is not returned, it indicates not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</LensCorrection>
<BurningPrevention>
<!--optional, burning prevention, when this node is not returned, it indicates not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</BurningPrevention>
<FaceSnapThermometry>
<!--optional, upload the captured face picture with temperature information, it is not returned when this function
is not supported-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
1158
Device Network SDK (General) Developer Guide
</FaceSnapThermometry>
<TemperatureCorrect><!--optional, temperature correction; this node is not returned when this function is not
supported-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</TemperatureCorrect>
<TemperatureIntervalMeasurement><!--optional, temperature range measurement; this node is not returned when
this function is not supported-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</TemperatureIntervalMeasurement>
</Thermal>
<isSupportChangedUpload/><!--optional, xs: boolean, whether supports uploading status changes-->
<PanoramaCamera><!--optional, PTZ camera channel-->
<PTZCtrl>
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</PTZCtrl>
</PanoramaCamera>
<GlobalCamera><!--optional, Panoramic camera channe-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</GlobalCamera>
</ChannelInfo>
F.202 XML_ChannelInfoList
ChannelInfoList message in XML format
<ChannelInfoList>version="2.0" xmlns="[Link]
<ChannelInfo/><!--see details in the message of XML_ChannelInfo-->
</ChannelInfoList>
See Also
XML_ChannelInfo
F.203 XML_CheckInfo
CheckInfo message in XML format
<CheckInfo version="2.0" xmlns="[Link]
<randomString><!--req, xs: string, random string--></randomString>
<verificationCode>
<!--opt, xs: string, verification code to be sent, which will be encrypted by sha256, and then convert the
hexadecimal code to a string, finally it will be encoded by Base64. The format is first 32-byte of randomString + actual
verification code-->
</verificationCode>
</CheckInfo>
1159
Device Network SDK (General) Developer Guide
F.204 XML_VideoPic_CMSearchDescription
XML message about search conditions of video and picture
<CMSearchDescription version="2.0" xmlns="[Link]
<searchID>
<!--required, xs:string, search ID, e.g., {812F04E0-4089-11A3-9A0C-0305E82C2906}-->
</searchID>
<trackIDList>
<trackID>
<!--required, xs:integer, ID, XX01-search for the main stream video of channel XX, XX03-search for the pictures of
channel XX-->
</trackID>
</trackIDList>
<timeSpanList>
<timeSpan>
<startTime><!--required, xs:time, ISO8601 time, start time of search, e.g.: 2017-08-02T00:00:00Z--></startTime>
<endTIme><!--required, xs:time, ISO8601 time, end time of search, e.g.: 2017-08-02T23:59:59Z--></endTime>
<timeSpan>
</timeSpanList>
<searchTypeList>
<searchKeyword><!--required, xs:string, keyword list for search, the maximum length is 32 and the minimum length
is 1--></searchKeyword>
</searchTypeList>
<contentTypeList>
<contentType><!--required, xs:string, file type to be searched for: "video", "audio", "metadata"-picture, "text",
"mixed", "other"--></contentType>
<pircamID><!--optional, list, xs:integer, pircam search ID. This node is valid only when the search type is pircam.
Types of pictures captured by pircams in the device may be different, and this node is used to distinguish between
different pircams--></pircamID>
</contentTypeList>
<uploadState><!--optional, xs:string, uploading status: all, uploaded, nonUploaded, uploadFailed--></uploadState>
<lockState><!--optional, xs:string, locking status: lock, unlock, all--></lockState>
<searchResultPostion><!--required, xs:integer, start position of search--></searchResultPostion>
<maxResults><!--optional, xs:integer, maximum number of returned results--></maxResults>
<metadataList>
<metadataDescriptor>
<!--required, xs:string, description of file to be searched for, format: "[Link]/
<eventType>", <eventType> is the event type to which related video should be searched for; for details, see the table
below in remarks. For example, to search for the video/picture of motion detection, the value of contentType is
"video"/"metadata" and the value of metadataDescriptor is "[Link]/MOTION"-->
<!--to search for all videos, the value of contentType is "video" and value of metadataDescriptor is
"[Link]"; to search for all pictures, the value of contentType is "metadata" and value of
metadataDescriptor is "[Link]/allPic"-->
<!--the supported video/picture type of device is returned in the recordSearchType/pictureSearchType of
XML_RacmCap (related URI: /ISAPI/ContentMgmt/capabilities)-->
</metadataDescriptor>
<SearchProperity>
<plateSearchMask>
<!--optional, xs:string, ranges from 1 to 31-->
</plateSearchMask>
1160
Device Network SDK (General) Developer Guide
<stateOrProvince>
<!--optional, xs:integer-->
</stateOrProvince>
<country>
<!--optional, xs:string, country or region ID: 0-the algorithm library does not support the country or region ID,1-
(CZ-Czech Republic),2-(FRA-France),3-(DE-Germany),4-(E-Spain),5-(IT-Italy),6-(NL-Netherlands),7-(PL-Poland),8-(SVK-
Slovakia), 9-(BY-Belorussia), 10-(MDA-Moldova),11-(RU-Russia),12-(UA-Ukraine), 0xff-(All)-->
</country>
<subType><!--optional, xs:string, sub type: all,motorVehicle,nonMotorVehicle,pedestrian--></subType>
<capTypeDescriptor><!--optional, xs:string, capability type descriptor: anyType, event, evidence--></
capTypeDescriptor>
</SearchProperity>
</metadataList>
</CMSearchDescription>
Remarks
eventType Description
AllEvent All events
safetyHelmet Hard hat detection
smokeDetection Smoke detection
leavePosition Absence detection
peopleNumChange The number of people changed
linedetection Line crossing detection
fielddetection Intrusion detection
regionEntrance Region entrance detection
regionExiting Region exiting detection
loitering Loitering detection
group People gathering detection
rapidMove Fast moving detection
unattendedBaggage Unattended baggage detection
attendedBaggage Object removal detection
CMR Scheduled recording or capture
ALARM Alarm
EDR Motion detection or alarm
ALARMANDMOTION Motion detection and alarm
Command Command is triggered
1161
Device Network SDK (General) Developer Guide
eventType Description
pir PIR
wlsensor Wireless alarm
callhelp Calling alarm
facedetection Face detection
parking Parking
vehicleDetection Vehicle detection
manual Manual
manualSnapShot Manual capture
playSnapShot Capture of playback
dredgerDetection Dredger detection
accessController Access controller event
securityControlPanel Security control panel event
violentMotion Violent motion alarm
advReachHeight Climbing detection
toiletTarry In-Toilet overtime
audioAbnormal Sudden change of sound intensity
standUp Standing up
getUp Getting up
vehicleMonitor Vehicle arming
playCellphone Playing cellphone
retention Overstay detection
failDown People falling down alarm
sleepOnduty Sleeping on duty alarm
allPerimeterEvent All perimeter events
allBehaviorEvent All behavior analysis events
running People running
spacingChange Distance changing detection
faceSnapModeling Face capture modeling
reverseEntrance Reverse entering
1162
Device Network SDK (General) Developer Guide
eventType Description
studentsStoodUp Student standing up detection
ATMPanel ATM panel mode
ATMSurround ATM environment mode
ATMFace ATM human face mode
ATMSafetyCabin ATM safety cabin mode
temperatureIntervalMeasurem Temperature range measurement
ent
F.205 XML_CMSearchProfile
CMSearchProfile message in XML format
<CMSearchProfile version="1.0" xmlns="[Link]:resourcedescription">
<searchProfile><!--req, xs: string, video search conditions--></searchProfile>
<textSearch>
<!--req, xs: string, text type to be searched, such as recording information text and metadata text-->
</textSearch>
<maxSearchTimespans>
<!--req, xs: integer, maximum time period of results returned in each search-->
</maxSearchTimespans>
<maxSearchTracks><!--req, xs: integer, maximum tracks can be searched--></maxSearchtracks>
<maxSearchSources>
<!--req, xs: integer, maximum recording channels can be searched-->
</maxSearchSources>
<maxSearchMetadatas>
<!--req, xs: integer, maximum number of metadata can be searched-->
</maxSearchMetadatas>
<maxSearchMatchResults>
<!--req, xs: integer, maximum search results can be returned-->
</maxSearchMatchResults>
<maxSearchTimeout><!--req, xs: integer, maximum search timeout--></maxSearchTimeout>
<maxConcurrentSearches>
<!--req, xs: integer, maximum concurrent search operations-->
</maxConcurrentSearches>
</CMSearchProfile>
F.206 XML_VideoPic_CMSearchResult
XML message about search results of videos and pictures
<CMSearchResult version="2.0" xmlns="[Link]
<searchID><!--req, xs:string, search ID--></searchID>
1163
Device Network SDK (General) Developer Guide
<responseStatus><!--req, xs:string--></responseStatus>
<responseStatusStrg><!--req, xs:string--></responseStatusStrg>
<numOfMatches><!--opt, xs:integer--></numOfMatches>
<matchList>
<searchMatchItem>
<sourceID></sourceID>
<trackID></trackID>
<timeSpan>
<startTime></startTime>
<endTime></endTime>
</timeSpan>
<mediaSegmentDescriptor>
<contenType><!--req, xs:string, file type, corresponding to search condition--></contenType>
<codecType><!--req, xs:string, video encoding format--></codecType>
<rateType><!--opt, xs:string, video bit rate,4Mbps--></rateType>
<playbackURI><!--opt, xs:string, video file URL, "name=" and "size=" are file name and file size respectively, e.g.,
rtsp://[Link]/Streaming/tracks/201/?
starttime=20190213T091134Z&endtime=20190213T092116Z&name=01010000093000100&size=7323
35288--></playbackURI>
<lockStatus><!--opt, xs:string, status of video file: lock-locked file, unlock-unlocked file--></lockStatus>
<remainLockTime><!--dep, xs:integer, unit:s, remaining locking time, which is returned only when lockStatus is
set to lock--></remainLockTime>
<name><!--opt, xs:string, file name--></name>
<size><!--opt, xs:integer, file size--></size>
<mediaID><!--opt, xs:integer, file ID--></mediaID>
<remark><!--opt, xs:string, file tag--></remark>
<GPSInfo><!--opt, xs:string, file GPS information--></GPSInfo>
<recorderCode><!--opt, xs:string, body camera No.--></recorderCode>
<uploadState><!--opt, xs:string, status: uploaded, nonUploaded, uploadFailed, uploading--></uploadState>
<uploadTime><!--dep, xs:datetime, time of completing video uploading, e.g., "2004-05-03T17:30:08+08:00"--></
uploadTime>
<policeCode><!--opt, xs:string, No. of the policeman who recorded the video--></policeCode>
<policeName><!--opt, xs:string, name of the policeman who recorded the video--></policeName>
<shootingTime><!--opt, xs:datetime, captured or recorded time, e.g., "2004-05-03T17:30:08+08:00"--></
shootingTime>
<FileTime><!--opt, xs:integer, time duration of the video file, unit:min--></FileTime>
<remarks><!--opt, xs:string, file remarks--></remarks>
<cloudStorageType><!--opt, xs:string, storage server type: 0-cloud storage, 1-cvr, 2-pstor, which should be
consistent with cloudStorageType in /ISAPI/ContentMgmt/channels/<ID>/cloudStorage/<ID>--></cloudStorageType>
<fileUrl><!--opt, xs:string, file URL--></fileUrl>
<thumbnailUrl><!--opt, xs:string, thumbnail URL of picture or video--></thumbnailUrl>
<encryption>
<enabled><!--opt, xs:boolean, whether to encrypt the file--></enabled>
<encryptionkey><!--opt, xs:string, encryption key, which is returned only when enabled is set to true--></
encryptionkey>
<encryptionLevel><!--opt, xs:integer, encryption level: 1-AES128, 2-AES256, which is returned only when
enabled is set to true--></encryptionLevel>
</encryption>
</mediaSegmentDescriptor>
<metadataMatches>
<metadataDescriptor><!--searching conditions:
"evidence,illegalParking,crosslane,vehicleexist,lanechange,wrongdirection,congestion,turnround,pedestrian,constructi
1164
Device Network SDK (General) Developer Guide
on,roadBlock,abandonedObject,trafficAccident,fogDetection"--></metadataDescriptor>
</metadataMatches>
</searchMatchItem>
</matchList>
</CMSearchResult>
F.207 XML_Color
XML message about color adjustment parameters
<Color version="2.0" xmlns="[Link]
<brightnessLevel><!--opt, xs:integer, brightness--></brightnessLevel>
<contrastLevel><!--opt,xs:integer, contrast--></contrastLevel>
<saturationLevel><!--opt,xs:integer, saturation--></saturationLevel>
<hueLevel><!--opt, xs:integer, hue--></hueLevel>
<grayScale>
<grayScaleMode><!--opt,xs:string, gray scale mode: "indoor,outdoor"--></grayScaleMode>
</grayScale>
<nightMode>
<!--opt, xs:boolean, enable night mode, when its value is "true", the saturation can be adjusted, otherwise, the
saturation cannot be adjusted-->
</nightMode>
</Color>
F.208 XML_DefaultParam
DefaultParam message in XML format
<DefaultParam version="1.0" xmlns="[Link]
<DialNum><!--opt, xs:string--></DialNum>
<Username><!--opt, xs:string--></Username>
<Password><!--opt, xs:string--></Password>
<APNname><!--opt, xs:string--></APNname>
<VerifyProto><!--req, xs:string, "auto, CHAP, PAP"--></VerifyProto>
</DefaultParam>
F.209 XML_Desc_AccessProtocolAbility
Input description message for getting protocol access capability.
<AccessProtocolAbility version="2.0">
<channelNO><!--req, channel No.--></channelNO>
</AccessProtocolAbility>
1165
Device Network SDK (General) Developer Guide
F.210 XML_Desc_AudioVideoCompressInfo
Input description message for getting video and audio encoding capability.
<AudioVideoCompressInfo>
<AudioChannelNumber><!--req, audio channel No.--></AudioChannelNumber>
<VoiceTalkChannelNumber><!--req, twao-way audio channel No.--></VoiceTalkChannelNumber>
<VideoChannelNumber><!--req, video channel No.--></VideoChannelNumber>
<StreamAttachInfo><!--stream additional information-->
<streamWithVca><!--whether to overlay intelligent information on stream--></streamWithVca>
<mutexAbility opt="PDC"/><!--opt-->
</StreamAttachInfo>
</AudioVideoCompressInfo>
F.211 XML_Desc_EventAbility
Input description message for getting event capability.
<?xml version="1.0" encoding="utf-8"?>
<!--req, input description message for getting event capability.-->
<EventAbility version="2.0">
<channelNO><!--req, channel No.--></channelNO>
</EventAbility>
F.212 XML_Desc_JpegCaptureAbility
Input description message for getting device capability of capturing JPEG picture.
<JpegCaptureAbility version="2.0">
<channelNO>
<!--req, channel No.-->
</channelNO>
<!--opt, the node that responds to the request can be specified, and it can be the child node of the root node-->
<ManualCapture/>
</JpegCaptureAbility>
F.213 XML_Desc_NetAppAbility
Input description message for getting network application capability.
<?xml version="1.0" encoding="utf-8"?>
<!--req, input description message for getting network application capability-->
<NetAppAbility version="2.0">
</NetAppAbility>
1166
Device Network SDK (General) Developer Guide
F.214 XML_Desc_POSAbility
Input description message for getting POS capability
<?xml version="1.0" encoding="utf-8"?>
<POSAbility version="2.0">
<!--optional, you can specify the nodes under the root node to return-->
</POSAbility>
F.215 XML_Desc_UserAbility
Input description message to get user configuration capability.
<UserAbility version="2.0"></UserAbility>
F.216 XML_DeviceCap
XML message about device capability
<DeviceCap version="2.0" xmlns="[Link]
<SysCap><!--optional-->
<isSupportDst><!--optional, xs: boolean, whether it supports daylight saving time--></isSupportDst>
<NetworkCap/><!--optional, xs: boolean, network capability-->
<IOCap/><!--optional, IO capability-->
<SerialCap/><!--optional, serial port capability-->
<VideoCap/><!--optional, video capability, see details in the message of XML_VideoCap-->
<AudioCap/><!--optional, audio capability-->
<isSupportHolidy><!--optional, xs:boolean--></isSupportHolidy>
<RebootConfigurationCap>
<Genetec><!--optional, xs:boolean--></Genetec>
<ONVIF><!--optional, xs:boolean--></ONVIF>
<RTSP><!--optional, xs:boolean--></RTSP>
<HTTP><!--optional, xs:boolean--></HTTP>
<SADP>
<ISDiscoveryMode><!--optional, xs:boolean--></ISDiscoveryMode>
<PcapMode><!--optional, xs:boolean--></PcapMode>
</SADP>
<IPCAddStatus><!--optional, xs:boolean--></IPCAddStatus>
</RebootConfigurationCap>
<isSupportExternalDevice><!--optional, xs:boolean--></isSupportExternalDevice>
<isSupportChangedUpload>
<!--optional, xs: boolean, whether it supports uploading status changes-->
</isSupportChangedUpload>
<isSupportGettingWorkingStatus>
<!--optional, xs:boolean, whether it supports getting device status-->
</isSupportGettingWorkingStatus>
<isSupportGettingChannelInfoByCondition>
1167
Device Network SDK (General) Developer Guide
<!--optional, xs:boolean-->
</isSupportGettingChannelInfoByCondition>
<isSupportDiagnosedDataParameter>
<!--optional, xs:boolean-->
</isSupportDiagnosedDataParameter>
<isSupportSimpleDevStatus>
<!--optional, xs: boolean, whether it supports getting device working status-->
</isSupportSimpleDevStatus>
<isSupportFlexible>
<!--optional, xs: boolean, whether it supports getting channel status by condition-->
</isSupportFlexible>
<isSupportPTZChannels>
<!--optional, xs:boolean, whether it supports returning PTZ channel (which is different from the video channel)-->
</isSupportPTZChannels>
<isSupportSubscribeEvent>
<!--optional, xs:boolean, whether it supports alarm or event subscription: "true,false"-->
</isSupportSubscribeEvent>
<isSupportDiagnosedData>
<!--optional, xs:boolean, "true,false", whether it supports diagnosis data-->
</isSupportDiagnosedData>
<isSupportTimeCap>
<!--optional, xs:boolean, whether it supports time capability-->
</isSupportTimeCap>
<isSupportThermalStreamData>
<!--optional, xs:boolean, whether it supports uploading thermal stream data in real-time. If it is supported, the
returned value is "true"; otherwise, this node will not be returned-->
</isSupportThermalStreamData>
<isSupportPostUpdateFirmware>
<!--optional,xs:boolean,"true,false", whether it supports upgrading the firmware-->
</isSupportPostUpdateFirmware>
<isSupportPostConfigData>
<!--optional, xs:boolean,"true,false", whether it supports importing or exporting the configuration file-->
</isSupportPostConfigData>
<isSupportUserLock>
<!--optional, xs:boolean,"true,false", whether it supports locking user-->
</isSupportUserLock>
<isSupportModuleLock><!--optional, xs:boolean, whether it supports locking the module: "true,false"--></
isSupportModuleLock>
<isSupportSoundCfg><!--optional, xs:boolean--></isSupportSoundCfg>
<isSupportMetadata>
<!--optional, xs:boolean, if it is supported, return "true", otherwise, this node will not be returned-->
</isSupportMetadata>
<isSupportShutdown><!--optional, xs:boolean, whether it supports shutdown configuration--></
isSupportShutdown>
<supportSmartOverlapChannles opt="1"/><!--optional, xs:boolean, whether it supports stream configuration of
smart events. If this function is supported, this node and the corresponding channel ID will be returned; otherwise,
this node will not be returned-->
<isSupportConsumptionMode><!--optional, xs:boolean, whether it supports switching power consumption
mode:true (yes), this node is not returned (no). Related URI: /ISAPI/System/consumptionMode/capabilities?
format=json--></isSupportConsumptionMode>
<isSupportManualPowerConsumption><!--optional, xs:boolean, whether it supports control the power
consumption mode manually: true (yes), this node is not returned (no)--></isSupportManualPowerConsumption>
1168
Device Network SDK (General) Developer Guide
</SysCap>
<voicetalkNums><!--optional, xs:integer, the number of two-way audio channels--></voicetalkNums>
<isSupportSnapshot><!--optional, xs:boolean, whether it supports capture: "true, false"--></isSupportSnapshot>
<SecurityCap/><!--optional, security capability-->
<EventCap/><!--optional, event capability-->
<ITCCap><!--optional--></ITCCap>
<ImageCap/><!--optional, image capability-->
<RacmCap/><!--optional, storage capability-->
<PTZCtrlCap>
<isSupportPatrols><!--optional, xs:boolean--></isSupportPatrols>
</PTZCtrlCap>
<SmartCap/><!--optional, intelligent capability-->
<isSupportEhome><!--optional, xs:boolean--></isSupportEhome>
<isSupportStreamingEncrypt><!--optional, xs:boolean--></isSupportStreamingEncrypt>
<TestCap>
<isSupportEmailTest><!--optional, xs:boolean--></isSupportEmailTest>
</TestCap>
<ThermalCap/><!--optional, temperature measurement capability-->
<WLAlarmCap/><!--optional, wireless alarm capability-->
<SecurityCPCapabilities/><!--optional, security control panel capability-->
<isSupportGIS>
<!--optional, xs:boolean, whether it supports GIS capability-->
</isSupportGIS>
<isSupportCompass>
<!--optional, xs:boolean-->
</isSupportCompass>
<isSupportRoadInfoOverlays>
<!--optional, xs:boolean-->
</isSupportRoadInfoOverlays>
<isSupportFaceCaptureStatistics>
<!--optional, xs:boolean-->
</isSupportFaceCaptureStatistics>
<isSupportExternalDevice>
<!--optional, xs:boolean-->
</isSupportExternalDevice>
<isSupportElectronicsEnlarge>
<!--optional, xs:boolean, whether it supports digital zoom-->
</isSupportElectronicsEnlarge>
<isSupportRemoveStorage>
<!--optional, xs:boolean-->
</isSupportRemoveStorage>
<isSupportCloud>
<!--optional, xs:boolean-->
</isSupportCloud>
<isSupportRecordHost>
<!--optional, xs:boolean-->
</isSupportRecordHost>
<isSupportEagleEye>
<!--optional, xs:boolean, whether it supports PanoVu series camera-->
</isSupportEagleEye>
<isSupportPanorama>
<!--optional, xs:boolean, whether it supports panorama-->
1169
Device Network SDK (General) Developer Guide
</isSupportPanorama>
<isSupportFirmwareVersionInfo>
<!--optional, xs:boolean, whether it supports displaying firmware version information-->
</isSupportFirmwareVersionInfo>
<isSupportExternalWirelessServer>
<!--optional, xs: boolean-->
</isSupportExternalWirelessServer>
<isSupportSetupCalibration>
<!--optional, xs:boolean, whether it supports setting calibration-->
</isSupportSetupCalibration>
<isSupportGetmutexFuncErrMsg>
<!--optional, xs:boolean, whether it supports getting mutex information-->
</isSupportGetmutexFuncErrMsg>
<isSupportTokenAuthenticate><!--optional, xs:boolean--></isSupportTokenAuthenticate>
<isSupportStreamDualVCA><!--optional, xs:boolean--></isSupportStreamDualVCA>
<isSupportlaserSpotManual>
<!--optional, boolean, whether it supports laser spot configuration-->
</isSupportlaserSpotManual>
<isSupportRTMP><!--optional, xs:boolean--></isSupportRTMP>
<isSupportTraffic><!--optional, xs:boolean--></isSupportTraffic>
<isSupportLaserSpotAdjustment>
<!--optional, boolean, whether it supports adjusting laser spot size-->
</isSupportLaserSpotAdjustment>
<VideoIntercomCap/><!--optional, video intercom capability-->
<isSupportSafetyCabin>
<!--optional, xs:boolean-->
</isSupportSafetyCabin>
<isSupportPEA>
<!--optional, xs:boolean, whether it supports one-touch security control panel capability-->
</isSupportPEA>
<isSupportCurrentLock>
<!--optional, xs:boolean, whether it supports locking current configuration-->
</isSupportCurrentLock>
<isSupportGuardAgainstTheft>
<!--optional, xs:boolean, whether it supports device anti-theft configuration-->
</isSupportGuardAgainstTheft>
<isSupportPicInfoOverlap>
<!--optional, xs:boolean, whether it supports picture information overlay-->
</isSupportPicInfoOverlap>
<isSupportPlay>
<!--optional, xs: boolean, whether it supports live view: "true,false"-->
</isSupportPlay>
<isSupportPlayback>
<!--optional, xs: boolean, whether it supports playback: "true,false"-->
</isSupportPlayback>
<UHFRFIDReader>
<!--optional, supported capability of UHF RFID card reader-->
<isSupportBasicInformation>
<!--optional, xs:boolean, whether it supports basic parameters of UHF RFID card reader-->
</isSupportBasicInformation>
<isSupportHardDiskStorageTest>
<!--optional, xs:boolean, whether it supports hard disk storage test of UHF RFID card reader-->
1170
Device Network SDK (General) Developer Guide
</isSupportHardDiskStorageTest>
</UHFRFIDReader>
<isSupportIntelligentStructureAnalysis>
<!--optional, xs:boolean, whether it supports structured VCA-->
</isSupportIntelligentStructureAnalysis>
<isSupportIntelligentAnalysisEngines>
<!--optional, xs:boolean, whether it supports VCA engine configuration-->
</isSupportIntelligentAnalysisEngines>
<PreviewDisplayNum>
<!--optional, xs:integer, the number of live view windows, which is the number of simultaneous live view windows
controlled by the device. Limited by the performance of DeepinMind series network video recorder, currently only live
view of a network camera is supported, and playback is not supported-->
</PreviewDisplayNum>
<isSupportBoard opt="true,false">
<!--optional, xs:boolean, whether it supports protocol related to sub-board-->
</isSupportBoard>
<ResourceSwitch>
<workMode opt="4KPreview,educationRecord">
<!--req, xs:string, device working mode:"4KPreview"-4K live view mode, "educationRecord"-education recording
mode-->
</workMode>
</ResourceSwitch>
<isSupportCustomStream><!--optional, xs:boolean--></isSupportCustomStream>
<isSupportTriggerCapCheck>
<!--optional, xs:boolean, whether it supports verifying capability of alarm linkage actions-->
</isSupportTriggerCapCheck>
<isSupportActiveMulticast>
<!--optional, xs: boolean, whether it supports active multicast-->
</isSupportActiveMulticast>
<isSupportChannelEventCap>
<!--optional, xs:boolean, whether it supports getting event capability by channel-->
</isSupportChannelEventCap>
<isSupportPictureServer>
<!-- opt, xs:boolean, whether it supports picture storage server-->
</isSupportPictureServer>
<isSupportVideoCompositeAlarm>
<!--optional, xs:boolean, whether it supports video double check alarm-->
</isSupportVideoCompositeAlarm>
<isSupportSensorCalibrating>
<!--optional, xs:boolean, whether it supports double sensor calibration-->
</isSupportSensorCalibrating>
<isSupportChannelEventListCap>
<!--optional, xs:boolean, whether it supports getting event capability of all channels-->
</isSupportChannelEventListCap>
<VCAResourceChannelsCap>
<!--optional, whether it supports independently switching to another VCA resource by channel-->
<ChannelsList>
<channelsID>
<!--req, xs:integer, channel No. supported by the device-->
</channelsID>
</ChannelsList>
</VCAResourceChannelsCap>
1171
Device Network SDK (General) Developer Guide
1172
Device Network SDK (General) Developer Guide
indicates support-->
</isSupportAutoMaintenance>
<isSupportGetLinkSocketIP>
<!--optional, xs: boolean, "true,false", whether it supports getting the SocketIP of current connection-->
</isSupportGetLinkSocketIP>
<isSupportIntelligentSearch>
<!--optional, xs:boolean, whether it supports intelligent search-->
</isSupportIntelligentSearch>
<IOTCap><!--optional, xs:boolean, IoT device access capability-->
<supportChannelNum>
<!--req, xs:integer, number of supported channels of IoT device-->
</supportChannelNum>
<startChannelNo>
<!--optional, xs:integer, initial channel ID, if this node is not inputted, it indicates that the initial channel ID is 1-->
</startChannelNo>
<isSupportlinkageChannelsSearch>
<!--optional, boolean, returns "true" if support, returns "false" if not support-->
</isSupportlinkageChannelsSearch>
</IOTCap>
<isSupportEncryption>
<!--optional, xs: boolean, stream encryption capability-->
</isSupportEncryption>
<AIDEventSupport opt="abandonedObject, pedestrian, congestion, roadBlock, construction, trafficAccident,
fogDetection, wrongDirection, illegalParking, SSharpDriving, lowSpeed, dragRacing">
<!--optional, xs:string, supported traffic incident type: "abandonedObject"-objects dropped down, "pedestrian"-
pedestrian, "congestion"-congestion, "roadBlock"-roadblock, "construction"-construction, "trafficAccident"-traffic
accident, "fogDetection"-fog, "wrongDirection"-wrong-way driving, "illegalParking"-illegal parking, "SSharpDriving"-
slalom driving, "lowSpeed"-driving in low speed, "dragRacing"-street racing-->
</AIDEventSupport>
<TFSEventSupport
opt="illegalParking ,wrongDirection,crossLane,laneChange,vehicleExist,turnRound,parallelParking,notKeepDistance,not
SlowZebraCrossing,overtakeRightSide,lowSpeed,dragRacing,changeLaneContinuously,SSharpDriving,largeVehicleOccup
yLine,jamCrossLine">
<!--optional, xs:string, supported enforcement event type: "illegalParking"-illegal parking, "wrongDirection"-wrong-
way driving, "crossLane"-driving on the lane line, "laneChange"-illegal lane change, "vehicleExist"-motor vehicle on
non-motor vehicle lane, "turnRound"-illegal U-turn, "parallelParking"-parallel parking, "notKeepDistance"-not keeping
vehicle distance, "notSlowZebraCrossing"-not slowing down at zebra corssing, "overtakeRightSide"-overtaking on the
right, "lowSpeed"-driving in low speed, "dragRacing"-street racing, "changeLaneContinuously"-continuous lane
change, "SSharpDriving"-slalom driving, "largeVehicleOccupyLine"-lane occupation by large-sized vehicle,
"jamCrossLine"-queue jumping-->
</TFSEventSupport>
<isVehicleStatisticsSupport>
<!--optional, xs: boolean, whether it supports setting parameters for traffic data collection-->
</isVehicleStatisticsSupport>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<supportRemoteCtrl opt="up,down,left,right,enter,menu,num,power,esc,edit,F1,.prev,rec,play,stop,notSupport"/><!--
whether it supports remote control-->
<isSptDiagnosis>
<!--optional, xs:boolean, whether it supports device diagnosis: "true", "false"-->
</isSptDiagnosis>
1173
Device Network SDK (General) Developer Guide
<isSptSerialLogCfg>
<!--optional, xs:boolean, whether it supports configuring serial port log redirection: "true", "false"-->
</isSptSerialLogCfg>
<isSptFileExport>
<!--optional, xs:boolean, whether it supports exporting files from the device: "true", "false"-->
</isSptFileExport>
<isSptCertificationStandard>
<!--optional, xs:boolean, whether it supports configuring authentication standard for security control panel: "true",
"false"-->
</isSptCertificationStandard>
<isSptKeypadLock>
<!--optional, xs:boolean, whether it supports locking keypad: "true", "false"-->
</isSptKeypadLock>
<MixedTargetDetection><!--optional, whether the device supports recognizing specific target among mixed targets-->
<isSupportFaceRecognition><!--optional, xs:boolean, whether it supports face recognition--></
isSupportFaceRecognition>
<isSupportHumanRecognition><!--optional, xs:boolean, whether it supports human body recognition--></
isSupportHumanRecognition>
<isSupportVehicleRecognition><!--optional, xs:boolean, whether it supports vehicle recognition--></
isSupportVehicleRecognition>
</MixedTargetDetection>
<isSupportDiscoveryMode><!--optional, xs:boolean--></isSupportDiscoveryMode>
<streamEncryptionType>
<!--dep, xs:string, stream encryption type: "RTP/TLS", "SRTP/UDP", "SRTP/MULTICAST". This node is valid when
<isSupportEncryption> is "true", and the device can support one or more stream encryption types-->
</streamEncryptionType>
<isSupportLms><!--optional, xs:boolean, whether it supports laser--></isSupportLms>
<isSupportLCDScreen><!--optional, xs:boolean, whether it supports LCD screen--></isSupportLCDScreen>
<isSupportBluetooth><!--optional, xs:boolean, whether it supports bluetooth--></isSupportBluetooth>
<isSupportAcsUpdate>
<!--optional, whether it supports upgrading slave access control devices or peripheral modules: "true"-yes, this
node is not returned-no-->
</isSupportAcsUpdate>
<isSupportAccessControlCap>
<!--optional, whether it supports access control capability: "true"-yes, this node is not returned-no-->
</isSupportAccessControlCap>
<isSupportIDCardInfoEvent><!--optional, whether it supports ID card swiping event: "true"-yes. This node will not be
returned if this function is not supported--></isSupportIDCardInfoEvent>
<OpenPlatformCap><!--optional, embedded open platform capability, refer to the message XML_OpenPlatformCap
for details-->
<isSupportInstallationAngleCalibration>
<!--optional, xs:boolean, whether it supports installation angle calibration-->
</isSupportInstallationAngleCalibration>
<isSupportZeroBiasCalibration>
<!--optional, xs:boolean, whether it supports zero bias calibration-->
</isSupportZeroBiasCalibration>
<isSupportDevStatus><!--optional, xs:boolean, whether device supports getting device status--></
isSupportDevStatus>
<isSupportRadar><!--optional, xs:boolean, whether it supports the security radar--></isSupportRadar>
<isSupportRadarChannels><!--optional, xs:boolean, whether it supports getting radar channels--></
isSupportRadarChannels>
<radarIPDForm><!--optional, xs:string, radar form: "single"-single radar, "double_diagonal"-two radars forming an
1174
Device Network SDK (General) Developer Guide
1175
Device Network SDK (General) Developer Guide
<isSupportGPSVerification><!--optional, xs:boolean, whether device supports GPS verification (related URI: /ISAPI/
System/GPSVerification/channels/<ID>/points?format=json)--></isSupportGPSVerification>
<isSupportHBDLib><!--optional, xs:boolean, whether device supports human body picture library (related URI: /ISAPI/
Intelligent/HBDLib/capabilities?format=json)--></isSupportHBDLib>
<isSupportFireEscapeDetection><!--optional, xs:boolean, whether the device supports fire engine access detection
(related URI: /ISAPI/Intelligent/channels/<ID>/fireEscapeDetection/capabilities?format=json)--></
isSupportFireEscapeDetection>
<isSupportTakingElevatorDetection><!--optional, xs:boolean, whether the device supports elevator detection
(related URI: /ISAPI/Intelligent/channels/<ID>/takingElevatorDetection/capabilities?format=json)--></
isSupportTakingElevatorDetection>
<isSupportSSDFileSystemUpgrade><!--optional, xs:boolean, whether the device supports SSD file system upgrade
(related URI: /ISAPI/System/SSDFileSystem/upgrade?format=json)--></isSupportSSDFileSystemUpgrade>
<isSupportSSDFileSystemFormat><!--optional, xs:boolean, whether the device supports SSD file system formatting
(related URI: /ISAPI/System/SSDFileSystem/format?format=json)--></isSupportSSDFileSystemFormat>
<isSupportSSDFileSystemCapacity><!--optional, xs:boolean, whether the device supports getting space distribution
information of SSD file system (related URI: /ISAPI/System/SSDFileSystem/capacity?format=json)--></
isSupportSSDFileSystemCapacity>
<isSupportAIOpenPlatform><!--optional, xs:boolean, whether the device supports AI open platform capabilities; if
supports, this node will be returned and its value is true; if not, this node will not be returned--></
isSupportAIOpenPlatform>
<isSupportPictureDownloadError><!--optional, xs:boolean,whether the device supports reporting picture download
failure--></isSupportPictureDownloadError>
<characteristicCode min="1" max="128"><!--optional, xs:string, device attribute code (related URI: /ISAPI/System/
deviceInfo/characteristicCode?format=json)--></characteristicCode>
</DeviceCap>
F.217 XML_DeviceInfo
XML message about device information
<DeviceInfo version="2.0" xmlns="[Link]
<deviceName><!--required, xs:string--></deviceName>
<deviceID><!--required, read-only, xs:string, uuid--></deviceID>
<deviceDescription>
<!--optional, xs:string, description about the device defined in RFC1213. For network camera, this node is set to
"IPCamera"; for network speed dome, this node is set to "IPDome"; for DVR or DVS, this node is set to "DVR" or
"DVS"-->
</deviceDescription>
<deviceLocation><!--optional, xs:string, actual location of the device--></deviceLocation>
<deviceStatus><!--optional, read-only, xs:string, device status: "normal", "abnormal"-->
<DetailAbnormalStatus>
<!--dependent, error status details, it is valid only when deviceStatus is "abnormal"-->
<hardDiskFull>
<!--optional, read-only, xs: boolean, whether the error of "HDD full" occurred: "true"-yes,"false"-no-->
</hardDiskFull>
<hardDiskError>
<!--optional, read-only, xs:boolean, whether the error of "HDD error" occurred: "true"-yes,"false"-no-->
</hardDiskError>
<ethernetBroken>
<!--optional, read-only, xs: boolean, whether the error of "network disconnected" occurred: "true"-yes,"false"-no--
1176
Device Network SDK (General) Developer Guide
>
</ethernetBroken>
<ipaddrConflict>
<!--optional, read-only, xs: boolean, whether the error of "IP address conflicted" occurred: "true"-yes,"false"-no-->
</ipaddrConflict>
<illegalAccess>
<!--optional, read-only, xs: boolean, whether the error of "illegal login" occurred: "true"-yes,"false"-no-->
</illegalAccess>
<recordError>
<!--optional, read-only, xs: boolean, whether the error of "recording exception" occurred: "true"-yes,"false"-no-->
</recordError>
<raidLogicDiskError>
<!--optional, read-only, xs: boolean, whether the error of "RAID exception" occurred: "true"-yes,"false"-no-->
</raidLogicDiskError>
<spareWorkDeviceError>
<!--optional, read-only, xs: boolean, whether the error of "working device exception" occurred: "true"-yes,"false"-
no-->
</spareWorkDeviceError>
</DetailAbnormalStatus>
<systemContact><!--optional, xs:string, contact information of the device--></systemContact>
<model><!--required, read-only, xs:string--></model>
<serialNumber><!--required, read-only, xs:string--></serialNumber>
<macAddress><!--required, read-only, xs:string--></macAddress>
<firmwareVersion><!--required, read-only, xs:string--></firmwareVersion>
<firmwareReleasedDate><!--optional, read-only, xs:string--></firmwareReleasedDate>
<bootVersion><!--optional, read-only, xs:string--></bootVersion>
<bootReleasedDate><!--optional, read-only, xs:string--></bootReleasedDate>
<hardwareVersion><!--optional, read-only, xs:string--></hardwareVersion>
<encoderVersion><!--optional, read-only, xs:string--></encoderVersion>
<encoderReleasedDate><!--optional, read-only, xs:stirng--></encoderReleasedDate>
<decoderVersion><!--optional, read-only, xs:string--></decoderVersion>
<decoderReleasedDate><!--optional, read-only, xs:stirng--></decoderReleasedDate>
<softwareVersion><!--optional, read-only, xs:string, software version--></softwareVersion>
<capacity><!--optional, read-only, xs:integer, unit: MB, device capacity--></capacity>
<usedCapacity><!--optional, read-only, xs:integer, unit: MB, capacity usage--></usedCapacity>
<deviceType>
<!--required, read-only, xs:string,device type: "IPCamera", "IPDome", "DVR", "HybirdNVR", "NVR", "DVS", "IPZoom",
"CVR", "Radar", "PerimeterRadar"-perimeter radar, "ACS", "PHA"-Axiom hybrid security control panel-->
<deviceType>
<telecontrolID><!--optional, xs:integer, keyfob control ID, the value is between 1 and 255--></telecontrolID>
<supportBeep><!--optional, xs:boolean--></supportBeep>
<supportVideoLoss><!--optional, xs:boolean, whether it supports video loss detection--></supportVideoLoss>
<firmwareVersionInfo><!--optional, read-only, xs:string, firmware version information--></firmwareVersionInfo>
<actualFloorNum>
<!--required, xs: integer, actual number of floors, which is between 1 and 128-->
</actualFloorNum>
<subChannelEnabled><!--optional, xs:boolean, whether to support sub-stream live view: "true"-yes, "false"-no--></
subChannelEnabled>
<thrChannelEnabled><!--optional, xs:boolean, whether to support third stream live view: "true"-yes, "false"-no--></
thrChannelEnabled>
<radarVersion><!--optional, xs:string, radar version--></radarVersion>
<cameraModuleVersion><!--read-only, xs:string, camera module version--></cameraModuleVersion>
1177
Device Network SDK (General) Developer Guide
1178
Device Network SDK (General) Developer Guide
securityModuleSerialNo>
<securityModuleVersion><!--optional, read-only, xs:string, version No. of the security module--></
securityModuleVersion>
<securityChipVersion><!--optional, read-only, xs:string, version No. of the security chip--></securityChipVersion>
<securityModuleKeyVersion><!--optional, read-only, xs:string, version No. of the security module key--></
securityModuleKeyVersion>
<UIDLampRecognition><!--optional, information of the UID lamp recognition device-->
<enabled><!--optional, xs:boolean, whether to enable--></enabled>
</UIDLampRecognition>
<bootTime><!--optional, xs:string, read-only, system boot time, ISO 8601 format; the maximum length is 32 bytes--
></bootTime>
</DeviceInfo>
F.218 XML_DeviceLanguage
DeviceLanguage message in XML format
<DeviceLanguage version="2.0" xmlns="[Link]
<language>
<!--required, xs:string, language supported by the device: "SimChinese"-simplified Chinese, "TraChinese"-traditional
Chinese, "English", "Russian", "Bulgarian", "Hungarian", "Greek", "German", "Italian", "Czech", "Slovakia", "French",
"Polish", "Dutch", "Portuguese", "Spanish", "Romanian", "Turkish", "Japanese", "Danish", "Swedish", "Norwegian",
"Finnish", "Korean", "Thai", "Estonia", "Vietnamese", "Hebrew", "Latvian", "Arabic", "Sovenian"-Slovenian, "Croatian",
"Lithuanian", "Serbian", "BrazilianPortuguese"-Brazilian Portuguese, "Indonesian", "Ukrainian"-->
</language>
</DeviceLanguage>
F.219 XML_DeviceStatus
DeviceStatus message in XML format
<DeviceStatus version="2.0" xmlns="[Link]
<currentDeviceTime><!--opt, xs: datetime--></currentDeviceTime>
<deviceUpTime><!--opt, xs: integer, seconds--></deviceUpTime>
<TemperatureList><!--opt-->
<Temperature>
<tempSensorDescription><!--req, xs: string--></tempSensorDescription>
<temperature><!--req, xs: float--></temperature>
</Temperature>
</TemperatureList>
<FanList><!--opt-->
<Fan>
<fanDescription><!--req, xs: string--></fanDescription>
<speed><!--req, xs: integer--></speed>
</Fan>
</FanList>
<PressureList><!--opt-->
<Pressure>
<pressureSensorDescription><!--req, xs: string--></pressureSensorDescription>
1179
Device Network SDK (General) Developer Guide
1180
Device Network SDK (General) Developer Guide
<USBStatusList>
<USBStatus>
<!--list-->
<id>
<!--required, xs:integer-->
</id>
<state>
<!--optional, xs:string, USB status: "connected", "fullCapacity", "deviceException", "disconnected"-->
</state>
</USBStatus>
</USBStatusList>
<WifiStatusList>
<WifiStatus>
<!--list-->
<id>
<!--required, xs:integer-->
</id>
<state>
<!--optional, xs:string, Wi-Fi status: "disabled"-Wi-Fi is disabled, "enable"-Wi-Fi is enabled, "disconnected"-Wi-Fi
is disconnected, "enableHotspot"-Wi-Fi hot spot is enabled-->
</state>
</WifiStatus>
</WifiStatusList>
<AlertStreamServerList><!--opt, user of arming device-->
<AlertStreamServer><!--list-->
<id><!--opt, xs:integer--></id>
<protocolType><!--opt, xs:string, "SDK,ISAPI", arming protocol type--></protocolType>
<ipAddress><!--dep, xs:string, IP address of platform, server, NVR/CVR, and so on--></ipAddress>
</AlertStreamServer>
</AlertStreamServerList>
</DeviceStatus>
F.220 XML_DiagnosedDataParameter
XML message about parameters of exporting diagnose information
<?xml version="1.0" encoding="utf-8"?>
<DiagnosedDataParameter version="2.0" xmlns="[Link]
<enabled>
<!--required, xs:boolean, whether to enable exporting diagnose information: true-yes, false-no-->
</enabled>
<HardwareInfo>
<!--optional, xs:boolean, opt="true,false", whether to enable exporting hardware information, such as running
information of motor, fan, heater, compressor, supplement light, wiper, and so on-->
</HardwareInfo>
<SoftwareInfo>
<!--optional, xs:boolean, opt="true,false", whether to enable exporting software information, such as software
status, running log, system information-->
</SoftwareInfo>
<logInfo>
1181
Device Network SDK (General) Developer Guide
F.221 XML_Dial
Dial message in XML format
<Dial version="1.0" xmlns="[Link]
<enabled><!--req, xs:boolean--></enabled>
<DialMethod><!--req, xs:string, "auto, manual"--></DialMethod>
<SwitchMethod>
<!--req, xs:string, "auto,4GFirst,3GFirst, manualto2G, manualto3G, manualto4G"-->
</SwitchMethod>
<OfflineTime><!--opt, xs:integer--></OfflineTime>
<UIMCardNum><!--opt, xs:string--></UIMCardNum>
<DialNum><!--opt, xs:string--></DialNum>
<Username><!--opt, xs:string--></Username>
<Password><!--opt, xs:string--></Password>
<APNname><!--opt, xs:string--></APNname>
<SIMNum><!--opt, xs:string, SIM card No. (mobile phone number)--></SIMNum>
<MTU><!--opt, xs: integer--></MTU>
<VerifyProto><!--req, xs:string, "auto, CHAP, PAP"--></VerifyProto>
<DefaultParam/><!--opt, default parameters, see details in the message of XML_DefaultParam-->
<netAPN><!--opt, xs:string, APN configuration of the private network--></netAPN>
<Flow><!--opt, network traffic flow configuration-->
<limitEnabled><!--opt, xs:boolean, whether to enable traffic flow limitation--></limitEnabled>
<consumeFlow><!--opt, xs:float, unit: MB--></consumeFlow>
<threshold><!--opt, xs:integer, unit: MB--></threshold>
</Flow>
<pinCode><!--opt, wo, xs:string--></pinCode>
<enabled4G><!-- opt, xs:boolean, whether to enable 4G--></enabled4G>
<enabledDNS><!-- opt, xs:boolean, whether to enable DNS manual configuration--></enabledDNS>
<ISPName><!--optional, xs:string, ISP (Internet Service Provider) name--></ISPName>
<IMEINo><!--optional, xs:string, IMEI code--></IMEINo>
<ICCID><!--optional, xs:string, ICCID code--></ICCID>
<netType><!--optional, xs:string, network type--></netType>
</Dial>
See Also
XML_DefaultParam
F.222 XML_DownloadAbility
DownloadAbility message in XML format
<DownloadAbility version="2.0" xmlns="[Link]
<isSupportDownloadbyTime>
<!--opt, xs:boolean, whether it supports download by time-->
1182
Device Network SDK (General) Developer Guide
</isSupportDownloadbyTime>
<isSupportDownloadbyFileName>
<!--opt, xs:boolean, whether it supports download by file name -->
</isSupportDownloadbyFileName>
<isSupportDownloadToUSB>
<!--opt, xs:boolean, whether it supports exporting files to devices via USB-->
</isSupportDownloadToUSB>
</DownloadAbility>
F.223 XML_downloadRequest
XML message about downloading request
<downloadRequest version="1.0" xmlns="[Link]
<playbackURI>
<!--required, xs:string, playback URL, returned by the search service. It contains the information of file name and
size, e.g., <playbackURI>rtsp://IpAddress/Streaming/tracks/101?starttime=2016-07-18
00:00:00&endtime=2016-07-18 00:25:04Z&name=00000000721000000&size=1065437356</playbackURI>-->
</playbackURI>
<downloadCourseFile>
<!--optional, xs:boolean, whether to download the course files-->
</downloadCourseFile>
</downloadRequest>
Remarks
When download file by name, the playbackURI inputs the file start time, end time, file name, and
size; when download file by time, the playbackURI inputs the start time and end time.
F.224 XML_EPTZ
EPTZ message in XML format
<EPTZ version="2.0" xmlns="[Link]
<enabled><!--req, xs:string, whether to enable e-PTZ: "true"-yes, "false"-no--></enabled>
<streamType><!--opt, xs:integer, stream type: 1-main stream, 2-sub-stream, 3-third stream, 4-fourth stream--></
streamType>
</EPTZ>
F.225 XML_EventAbility
EventAbility capability message in XML format
<EventAbility version="2.0">
<channelNO><!--req, channel No.--></channelNO>
<ExceptionAlarm>
<exceptionType
1183
Device Network SDK (General) Developer Guide
opt="diskFull,diskError,nicBroken,ipConflict,illAccess,videoMismatch,badVideo,recordingFailure,raid,resolutionMismat
ch,spareException,POEPoweException"/>
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,SMS"/>
<!--req, exception function linkage detailing, if resolved to the capability below, it will be processed as exception
alarm shown below; if not, it will be processed according to alarmHandleType node-->
<alarmRelateAct opt="ftp,email"/>
<!--req, alarm linkage action: "ftp"- upload captured picture to FTP, "email"-upload captured JPEG picture to email--
>
<DetailedExceptionAlarm>
<DiskFull><!--req, HDD full-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</DiskFull>
<DiskError><!--req, HDD error-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</DiskError>
<NicBroken><!--req, network cable broken-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</NicBroken>
<IPConflict><!--req, IP conflict-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</IPConflict>
<IllAccess><!--req, illegal access-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</IllAccess>
<BadVideo><!--req, video loss-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</BadVideo>
<VideoMismatch><!--req, video not matched-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</VideoMismatch>
<RecordingFailure><!--req, video exception-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</RecordingFailure>
<Raid><!--req, Array exception-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</Raid>
<ResolutionMismatch><!--req, resolution not matched-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</ResolutionMismatch>
<SpareException><!--req, hot spare exception-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</SpareException>
<TemperatureException><!--req, temperature exception-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</TemperatureException>
<SubsystemException><!--req, sub system exception-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</SubsystemException>
<FanException><!--req, fan exception-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
</FanException>
</DetailedExceptionAlarm>
1184
Device Network SDK (General) Developer Guide
</ExceptionAlarm>
<AlarmIn>
<alarmTime>8</alarmTime>
<!--req, number of arming interval -->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,uploadcloud"/>
<!--req, handle -->
<notSupportPTZLinkage>true</notSupportPTZLinkage>
<!--req, dynamic display based on current capability-->
<RelatePTZ>
<!--req, dynamic display based on current capability-->
<presetNo min="" max=""/>
<!--req, link supported preset No.-->
<CruiseNo min="" max=""/>
<!--req, link supported patrol path No.-->
<ptzTrackNo min="" max=""/>
<!--req, link supported PTZ pattern No.-->
<presetDurationTime min="0" max="20"/>
<!--opt,preset dwell time -->
</RelatePTZ>
<inputType opt="switch,signal"/>
<!--opt, alarm input type: switch- relay, signal- pulse signal-->
<eventTypeNum min="1" max=""/><!--opt, supported number of composite event types-->
<eventType
opt="VMD,shelteralarm,facedetection,faceCapture,fielddetection,linedetection,regionEntrance,regionExitings,loitering
,group,rapidMove,parking,unattendedBaggage,attendedBaggage,ANPR,audioexception"/>
<!--opt,composite event types, VMD-motion detection, shelteralarm-tampering alarm, facedetection-face
detection, faceCapture-face capture, fielddetection-intrusion, linedetection-line crossing, regionEntrance-region
entrance, regionExitings-region exiting, loitering-lotering detection, group-people gathering, rapidMove-fast moving,
parking-parking detection, unattendedBaggage-unattended baggage detection, attendedBaggage-object removal
detection, ANPR-license plate recognition, audioexception-audio exception detection-->
<alarmRelateAct opt="ftp,email"/>
<!--req, alarm linkage action: ftp- upload captured picture to FTP, email- upload captured JPEG picture to email-->
</AlarmIn>
<AlarmOut>
<alarmTime>8</alarmTime>
<!--req, the number of output acyivate time-->
<pulseDuration opt="5,10,30,60,120,300,600,manual"/>
<!--req, the alarm output delay, unit: s-->
</AlarmOut>
<FaceDetection>
<!--req, face detection-->
<detectFaceEnable opt="true,false"/>
<!--req, enable face detection: true-yes, false-no -->
<detectFaceSensitive min="0" max="9"/>
<!--req,sensitivity -->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,uploadcloud "/>
<!--req, handle-->
<triggerRecord>true</triggerRecord>
<!--req,enable or disable, true-support, false-not support-->
<mutexAbility opt="traversingVirtualPlane,fieldDetection"/>
<!--req mutex ability for line crossing detection and intrusion detection-->
<alarmRelateAct opt="ftp,email"/>
1185
Device Network SDK (General) Developer Guide
<!--req, alarm linkage action: ftp- upload captured picture to FTP, email- upload captured JPEG picture to email-->
</FaceDetection>
<Track>
<!--req, intelligent track -->
<trackEnable opt="true,false"/>
<!--req, enable the configuration,true-enable, false- disable -->
<stopTrackWhenFindFace opt="true,false"/>
<!--req find face, whether stop tracking -->
<stopTrackThreshold min="1" max="100"/><!--req stop threshold value, the function is supported when the node
exits -->
<ManualTrace>
<!--opt,support manual trace, the corresponding structure is NET_DVR_PTZ_MANUALTRACE-->
<enabled>true</enabled>
<!--req, the function is supported when the node exit-->
<trackType opt="normalTrack,highSpeedRoadTrack,urbanRoadTrack"/>
<!--req trace type, the function is supported when the node exits, 0- normally track, 1- highSpeedRoadTrack, 2-
urbanRoadTrack-->
<linkageTrack opt="ipd"/>
<!--opt,"ipd means link to dome camera tracking"-->
</ManualTrace>
</Track>
<VoiceDetection>
<!--req, voice exception detection -->
<enable opt="true,false"/>
<!--req, enable voice detection: true- yes,false- no -->
<Abnormal>
<sensitivityLevel min="1" max="100"/>
<!--req,sensitivity -->
<audioMode opt="0,1,2"/>
<!--req, audio detection mode: 0- enable sensitivity detection, 1- enable db threshold detection, 2- enable both -->
<enable opt="true,false"/>
<!--req,enable audio detection: true-yes,false- no -->
<threshold min="1" max="100"/>
<!--req, audio threshold -->
</Abnormal>
<alarmTime>8</alarmTime>
<!--req, number of output activate time interval -->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,uploadcloud"/>
<!--req, handle-->
<audioSteepDrop>
<!--sound sharp rise or fall-->
<enable opt="true,false"/><!--req, whether to enable,true- enable, false-disable-->
<sensitivityLevel min="1" max="100"/>
<!--req, sensitivity-->
</audioSteepDrop>
</VoiceDetection>
<TraversingVirtualPlane>
<!--req, line crossing detection capability-->
<enable opt="true,false"/>
<!--req,false: disable; true: enable -->
<enableDualVca opt="true,false"/>
<!--req enable supporting smart post search: true- enable, false- disable-->
1186
Device Network SDK (General) Developer Guide
<ALERTLINENum>8</ALERTLINENum>
<!--req, the maximum number of warning line that traversing supported -->
<AlertLine>
<!--req, the node has the number according to the ALERTLINENum -->
<ID>1</ID>
<crossDirection opt="0,1,2"/>
<!--req, cross direction: 0-both way, 1- from left to right, 2- from right to left -->
<sensitivityLevel min="0" max="100"/>
<!--req,sensitivity -->
</AlertLine>
<alarmTime>8</alarmTime>
<!--req, number of arming time interval -->
<alarmHandleType
opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,ptztrack,uploadcloud,SMS"/>
<!--req, handle, picture: capture and send by e-mail(added because the lack of uploadftp in the early time; if there is
no string, judge the UploadFTP node of devices soft hardware to find whether support capture and then uploaded to
FTP -->
<supportLogNotCfg>true</supportLogNotCfg><!--req, support log not configuration, no return means support
configuration and log-->
<holidayTimeSlotNum>8</holidayTimeSlotNum><!--req,the number of holiday time for traversing plane detection --
>
<mutexAbility opt="faceDetection,19-1920*1080@50fps,
20-1920*1080@60fps,PDC,videoFrameRate50,videoFrameRate60,recordPlan"/>
<!--req, mutually exclusive capability, face detection, CaptureMode 1920*1080@50fps, CaptureMode
1920*1080@60fps, PDC, videoFrameRate50, videoFrameRate60, scheduled recording-->
<detectionTarget opt="all,human,vehicle,others"/>
<recogRuleType opt="vectorMode,slopeMode"/>
<!--req, line crossing detection direction: vector or slope-->
<triggerRecord>true</triggerRecord>
<!--req, whether to enable triggered recording: true- supported, false- not supported-->
<alarmRelateAct opt="ftp,email"/>
<!--req, alarm linkage action: ftp- upload captured picture to FTP, email- upload captured JPEG picture to email-->
<isSupportHumanMisinfoFilter>
<!--opt, xs:boolean, "support preventing false human detection alarm or not, if support, return true, if not, no
return"-->
</isSupportHumanMisinfoFilter>
<isSupportVehicleMisinfoFilter>
<!--opt, xs:boolean, "support preventing false vehicle detection alarm or not, if support, return true, if not, no
return"-->
</isSupportVehicleMisinfoFilter>
<isSupportAllDayUpload><!--opt, xs:boolean, whether to support uploading all-day events: "true,false"--></
isSupportAllDayUpload>
</TraversingVirtualPlane>
<FieldDetection>
<!--req, intrusion detection-->
<enable opt="true,false"/>
<!--req,false: disable; true: enable -->
<IntrusiongionNum>8</IntrusiongionNum>
<!--req,the maximum warning line that field detection supported -->
<Intrusiongion>
<!--req,INTRUSIONREGIONNum, the node has the corresponding number -->
<ID>1</ID>
1187
Device Network SDK (General) Developer Guide
1188
Device Network SDK (General) Developer Guide
<enable opt="true,false"/>
<!--req,false: disable; true: enable -->
<sensitiveLevel min="1" max="100"/>
<!--req,sensitivity -->
<alarmTime>8</alarmTime>
<!--req,number of arming time interval -->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,uploadcloud"/>
<!--req,handle -->
<sceneChangeDetectionRecord>true</sceneChangeDetectionRecord><!--req video linkage -->
<alarmRelateAct opt="ftp,email"/>
<!--req, alarm linkage action: ftp- upload captured picture to FTP, email- upload captured JPEG picture to email-->
</SceneChangeDetection>
<AudioLimitAlarm>
<!--req, sound limit alarm-->
<enable opt="true,false"/><!--req,false: disable, true: enable-->
<!--req, alarm threshold, unit: dB-->
<decibelLimit min="50" max="70"/>
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
<!--req, process type, picture: capture and email-->
</AudioLimitAlarm>
<ButtonDownAlarm>
<enable opt="true,false"/>
<!--req,false: disable, true: enable-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
<!--req, process type, picture: capture and email-->
</ButtonDownAlarm>
<VCADetection>
<!--req, VCA detection-->
<enable opt="true,false"/>
<!--req,false: disable, true: enable-->
<alarmTime>8</alarmTime>
<!--req, number of arming periods-->
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp"/>
<!--req, process type, picture: capture and email-->
<preset>true</preset>
<!--preset, no return if not supported-->
<cruise>true</cruise>
<!--patrol point, no return if not supported-->
<ptzTrack>true</ptzTrack>
<!--PTZ track, no return if not supported-->
<holidaySched>true</holidaySched>
<!--holiday plan, no return if not supported-->
<alarmRelateAct opt="ftp,email"/>
<!--req, alarm linkage action: ftp- upload captured picture to FTP, email- upload captured JPEG picture to email-->
</VCADetection>
<VehicleDetection>
<DetectVehicleCalibration><!--req, detect vehicle calibration ability-->
<widePixels>400</widePixels>
<highPixels>400</highPixels>
</DetectVehicleCalibration>
<TriggerCond>
<channel min="" max=""/><!--req, channel No.-->
1189
Device Network SDK (General) Developer Guide
1190
Device Network SDK (General) Developer Guide
1191
Device Network SDK (General) Developer Guide
<!--req,Y-axis, 0.001~1-->
</Start>
<End>
<x min="0.001" max="1"/>
<!--req,X-axis, 0.001~1-->
<y min="0.001" max="1"/>
<!--req,Y-axis, 0.001~1-->
</End>
<lineType
opt="unknown,ordinaryLanes,busLanes,fastLane,slowLane,motorcycleLane,nonmotorVehicleLane,reversedLane,banTr
ucksLane,mixLane"/>
<!--req, lane line type, 0-Unknow, 1-The white solid line between lanes, 2-Lane Stop Line, 3-Single
Yellow Line, 4-Double Yellow Line,5-Guardrails on the Lane Line, 6-The lane line the vehicle cannot cross, 7-Dotted
Line-->
</Line>
</LaneLine>
<PlateRecog>
<pointNum min="3" max="20"/>
<!--req, efficient point, great than or equal to 3 points, if three points are in the same line, the area is
invalid. If the lines cross, the area is invalid. Support up to 20 points.-->
<Pos>
<x min="0.001" max="1"/>
<!--req, X-axis, 0.001~1-->
<y min="0.001" max="1"/>
<!--req, Y-axis, 0.001~1-->
</Pos>
</PlateRecog>
</LaneParam>
<autoBuildRecogArea>true</autoBuildRecogArea>
<!--opt, client generates the recognition area automatically, SDK interface has no corresponding field
information-->
<brokenNetHttp>true</brokenNetHttp>
<!--opt, support breakpoint resume or not-->
<RodeType>
<!--opt,Road Type-->
<type opt="entrance,city,custom,alarmInput"/>
<!--opt, road type: entrance- entrance, city- city road, custom- custom, alarmInput- alarm input post,
publicSecurity-->
<Custom>
<delayTime min="0" max="15000"/>
<delayTimeUnit opt="ms"/>
</Custom>
</RodeType>
<brokenNetHttp>true</brokenNetHttp>
<!--opt, whether to support ANR for vehicle recognition-->
<SnapLine>
<!--opt, capture line-->
<Line>
<Start>
<x min="0.001" max="1"/>
1192
Device Network SDK (General) Developer Guide
<!--req, capture triggering mode supports linkage of arming time periods and uploading center-->
<GuardCond>
<channel min="" max=""/>
<!--req, channel No.-->
<relateType opt="MPR"/>
<!--req, relation type-->
</GuardCond>
<GuardCfg>
<detSenceID min="" max=""/>
<!--req, scene No.-->
<alarmSchedDays min="0" max="7"/>
<!--req, arming days, up to 7 days supported for one week -->
<alarmSchedTimes min="0" max="8"/>
<!--req, arming time periods, up to 8 periods supported for one day-->
<AlarmSched>
<startHour min="0" max="24"/>
<!--req, arming start time-->
<startMin min="0" max="60"/>
<!--req, arming start time-->
<stopHour min="0" max="24"/>
<!--req, arming end time-->
<stopMin min="0" max="60"/>
<!--req, arming end time-->
</AlarmSched>
<alarmHandleType
opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,focus,PTZ,uploadcloud"/>
<!--req, handling type-->
<maxAlarmOutChannelNum min="0" max="64"/>
<!--req, the max. alarm output channel to be triggered supported by the device-->
<alarmOutChannelNum min="" max=""/>
<!--req, the currently set channel No. to be triggered-->
<alarmOutTriggeredChannel min="" max=""/>
<!--req, alarm channel to be triggered-->
<direction>
<!--opt,xs:string,"both,forward,reverse",triggering direction-->
</direction>
1193
Device Network SDK (General) Developer Guide
</GuardCfg>
1194
Device Network SDK (General) Developer Guide
1195
Device Network SDK (General) Developer Guide
<deviceType opt="camera,coilTriggeringCamera,videoAnalysisCamera,ITC"/>
<!--req, device type, 0-Camera for Monitoring, 1-Coil Triggered Camera, 2-Video Analysis Camera, 3-All-in-
one(ITC)-->
<monitoringSiteIDLen min="0" max="48"/>
<!--req, monitoring site No. length-->
<deviceIDLen min="0" max="48"/>
<!--req, device No. length-->
<directionNo min="" max=""/>
<!--req, monitoring direction No.-->
<monitoringSInfoLen min="0" max="48"/>
<!--req, monitoring site description length-->
</MonitorCfg>
1196
Device Network SDK (General) Developer Guide
<TriggerParam>
<PostIPCHVT>
<enable opt="disable,enable"/>
<!--req, enable-->
<laneNum min="" max=""/>
<!--req, number of lanes-->
<LaneBoundaryLine>
<Line>
<Start>
<x min="0.001" max="1"/>
<!--req, X axis, 0.001 to 1-->
<y min="0.001" max="1"/>
<!--req, Y axis, 0.001 to 1-->
</Start>
<End>
<x min="0.001" max="1"/>
<!--req, X coordinate, 0.001~1-->
<y min="0.001" max="1"/>
<!--req, Y coordinate, 0.001~1-->
</End>
</Line>
</LaneBoundaryLine>
<PlateRecogParam>
<defaultCHNLen min="0" max="3"/>
<!--req, length of the string for province name shorthand-->
<province
opt="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,0xff"/>
<!--req province index-->
<enable opt="disable,enable"/>
<!--req, whether to enable the region sign-->
<!--detected type-->
<RecogMode>
<plateRecogPos opt="fromFront,fromBack"/>
<!--plate recognition position, fromFront- from front, fromBack- from back-->
<plateRecogType opt="big,little"/>
<!--plate recognition type, big- big plate, little- little plate-->
<vechileColorRecog opt="true,false"/>
<!--vehicle color recognition: 0- disable, cannot be enabled for recognition of small plate or from back, 1-
enable-->
<farmVehicleRecog opt="true,false"/>
<!--farming vehicle recognition-->
<blurRecog opt="true,false"/>
<!--fuzzy recognition-->
<locationType opt="frameLocation,sceneLocation"/>
<!--location type: frameLocation- frame location, sceneLocation- scene location-->
<recogType opt="frameRecognition,sceneRecognition"/>
<!--recognition type: frameRecognition- frame recognition, sceneRecognition- scene recognition-->
<recogTime opt="daytime,night"/>
<!--recognition time: daytime- day, night- night-->
<motorCarRecog opt="true,false"/>
<!--motorcycle recognition-->
<sceneType opt="epolice,gate"/>
1197
Device Network SDK (General) Developer Guide
<!--req, capture trigger mode supports linkage to arming time periods and uploading to center-->
<GuardCond>
<channel min="" max=""/>
<!--req, channel No.-->
1198
Device Network SDK (General) Developer Guide
<relateType opt="MPR"/>
<!--req, linkage type-->
</GuardCond>
<GuardCfg>
<detSenceID min="" max=""/>
<!--req, detection scene No.-->
<alarmSchedDays min="0" max="7"/>
<!--req, arming days, up to 7 days a week are supported-->
<alarmSchedTimes min="0" max="8"/>
<!--req, arming time periods, up to 8 periods a day are supported-->
<AlarmSched>
<startHour min="0" max="24"/>
<!--req, arming start time-->
<startMin min="0" max="60"/>
<!--req, arming start time-->
<stopHour min="0" max="24"/>
<!--req, arming end time-->
<stopMin min="0" max="60"/>
<!--req, arming end time-->
</AlarmSched>
<alarmHandleType opt="monitor,audio,center,alarmout,picture,wirelesslight,uploadftp,focus,PTZ"/>
<!--req, processing type-->
<maxAlarmOutChannelNum min="0" max="64"/>
<!--req, max number of triggered alarm output channels supported by device-->
<alarmOutChannelNum min="" max=""/>
<!--req, current set alarm triggered channels-->
<alarmOutTriggeredChannel min="" max=""/>
<!--req, trigger alarm channel-->
<direction>
<!--opt,xs:string,"both,forward,reverse", trigger direction-->
</direction>
</GuardCfg>
1199
Device Network SDK (General) Developer Guide
opt="unknown,place,crossingNo,deviceNo,directionNo,direction,laneNo,lane,captureTime,captureTimeWithMS,plateN
o,vehicleColor,vehicleType,vehicleBrand,vehicleSpeed,speedLimitSign,vehicleLength,illegalcode,monitorInfo,illegalActi
vities,superSpeedRatio,redStartTime,redStopTime,redBrightTime,securityCode,captureNo,safeBelt,monitorNo,sunViso
r,laneDirection,licensePlateColor,sceneNumber,sceneName,vehicleDirection,validity"/>
<!--req character type: 0- unknown, 1- location, 2- crossroad No., 3- device No., 4- direction No., 5- direction, 6-
lane No., 7- lane, 8- capture time(without millisecond), 9- capture time (without millisecond), 10- plate No., 11-
vehicle color, 12- vehicle type, 13- vehicle brand, 14- vehicle speed, 15- speed limit sign, 16- vehicle length, 17- illegal
code, 18- camera information, 19- illegal conduct, 20- overspeed ratio, 21- red light start time, 22- light off time, 23-
red light duration, 24- anti-counterfeiting code, 25- capture code, 26- safety belt, 27- camera No.,28- sun shield, 29-
lane driving direction, 30- plate color, 31- scene No., 32- scene name, 36- vehicle direction, 38- confidence -->
<changeLineNum min="0" max="10"/>
<!--req lines after item overlay [0-10](default to 0)-->
<spaceNum min="0" max="255"/>
<!--req spaces after item overlay [0-255](default to 0)-->
<enablePos opt="0,1 "/>
<!--req whether to enable coordinate display, 0- no, 1- yes-->
<startPosTop min="0" max="2448"/>
<!--req start top coordinate, only valid for internal picture overlay [0-2448](default to 0)-->
<startPosLeft min="0" max="2448"/>
<!--req start left coordinate, only valid for internal picture overlay [0-2448](default to 0)-->
</SingleItem>
<linePercent min="0" max="100"/>
<!--req overlay line percentage (0-100),(default to 100)-->
<itemsStlye opt="0,1"/>
<!--req overlay type: 0- horizontal, 1- vertical(default to horizontal)-->
<startPosTop min="0" max="2448"/>
<!--req start top coordinate, only valid for internal picture overlay [0-2448](default to 0)-->
<startPosLeft min="0" max="2448"/>
<!--req start left coordinate, only valid for internal picture overlay [0-2448](default to 0)-->
<charStyle opt="0,1"/>
<!--req character type, 0- Song 1- Wei(default)-->
<charSize min="" max=""/>
<!--req character length-->
<charInterval min="0" max=""/>
<!--req character space, [0-16], unit: pixel(default)-->
<foreClorRGB opt="B,G,R,White"/>
<!--req foreground color RGB value bit0-7:(B) bit8-15:(G) bit16-23:(R) (default: 0x00FFFFFF-white)-->
<backClorRGB opt="B,G,R,Black"/>
<!--req background color RGB value, only valid for external picture overlay, bit0-7:(B) bit8-15:(G) bit16-23:(R)
(default: x00000000-black-->
<colorAdapt opt="disable,enable"/>
<!--req whether the color is self-adaptive 0- no, 1- yes-->
<paramFillZeroEnble opt="disable,enable"/>
<!--req enable parameter zero fill, 0- enable, 1- disable (detailed notes) speed, speed limit, zero fill to 3 places-->
<plateLeftCornerEnable opt="disable,enable"/>
<!--req enable plate small picture overlay to upper left corner, 0- disable, 1- enable-->
<startSPicPosTop min="0" max="2448"/>
<!--req start top coordinate, only valid for internal picture overlay [0-2448](default to 0)-->
<startSPicPosLeft min="0" max="2448"/>
<!--req start left coordinate, only valid for internal picture overlay [0-2448](default to 0)-->
<osdLocate opt="inside,upper,lower"/>
<!--req OSD overlay position 0- inside the picture, 1- top edge, 2- bottom edge (top edge is exclusive for
1200
Device Network SDK (General) Developer Guide
composite picture)-->
</OverlapItemParam>
<OverlapInfoParam>
<siteLen min="0" max="128"/>
<!--req, location description length-->
<roadNumLen min="0" max="32"/>
<!--req, crossroads No. length-->
<instrumentNumLen min="0" max="32"/>
<!--req, device No. length-->
<directionLen min="0" max="32"/>
<!--req, direction No. length-->
<directionDescLen min="0" max="32"/>
<!--req, direction description length-->
<laneDesLen min="0" max="32"/>
<!--req, lane description-->
<monitoringSite1Len min="0" max="44"/>
<!--req, camera 1 information length-->
<monitoringSite2Len min="0" max="32"/>
<!--req, camera 2 information length-->
</OverlapInfoParam>
</OverlapCfg>
1201
Device Network SDK (General) Developer Guide
</HVTVehicleDetection>
<!--req, support current trigger mode by default, device will be indicated if the node is returned, supporting detailed
function, the interface display is based on capability-->
<CurVehicleDetection>
<getCfg>true</getCfg>
<setCfg>true</setCfg>
</CurVehicleDetection>
<AlarmSearch><!--optional, capability of searching for alarm or event information-->
<alarmComm opt="json,faceSnap,faceContrast"><!--required, xs:string, supported alarm type: "json"-alarm
transmitted in JSON format, "faceSnap"-face capture, "faceContrast"-face comparison--></alarmComm>
<EventList><!--dependent, specific alarm type to be transmitted, this node is valid only when <alarmComm> is
"json"-->
<Event>
<type><!--required, xs:string, event type: "mixedTargetDetection"-multi-target-type detection--></type>
<subEventType opt="face,human,vehicle,radar"><!--optional, xs:string, sub event type: 1-"face", 2-"human"
(human body), 3-"vehicle", 4-"radar". The index starts from 1--></subEventType>
</Event>
</EventList>
</AlarmSearch>
</EventAbility>
F.226 XML_EventCap
EventCap capability message in XML format
<EventCap version="2.0" xmlns="[Link]
<isSupportHDFull><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportHDFull>
<isSupportHDError><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportHDError>
<isSupportNicBroken><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportNicBroken>
<isSupportIpConflict><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportIpConflict>
<isSupportIllAccess><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportIllAccess>
<isSupportViException><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportViException>
<isSupportViMismatch><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportViMismatch>
<isSupportRecordException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportRecordException>
<isSupportTriggerFocus><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportTriggerFocus>
<isSupportMotionDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportMotionDetection>
<isSupportVideoLoss><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportVideoLoss>
<isSupportTamperDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportTamperDetection>
<isSupportStudentsStoodUp><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportStudentsStoodUp>
<isSupportFramesPeopleCounting><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportFramesPeopleCounting>
<isSupportRaidException><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRaidException>
<isSupportSpareException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportSpareException>
<isSupportPoePowerException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportPoePowerException>
1202
Device Network SDK (General) Developer Guide
1203
Device Network SDK (General) Developer Guide
"false"-not support--></isSupportLaneChange>
<isSupportVehicleExist><!--optional, xs:boolean, whether it supports motor vehicle on non-motor vehicle lane
detection: "true"-support, "false"-not support--></isSupportVehicleExist>
<isSupporFogDetection><!--optional, xs:boolean, whether it supports fog detection: "true"-support, "false"-not
support--></isSupporFogDetection>
<isSupportIntersectionAnalysis><!--optional, xs: boolean, whether it supports configuring intersection analysis alarm:
"true"-support, "false"-not support--></isSupportIntersectionAnalysis>
<isSupportVoltageInstable><!--optional,xs:boolean, whether it supports supply voltage exception alarm: "true"-
support, "false"-not support--></isSupportVoltageInstable>
<isSupportSafetyHelmetDetection><!--optional, xs:boolean, whether it supports hard hat detection: "true"-support,
"false"-not support--></isSupportSafetyHelmetDetection>
<isSupportCertificateRevocation><!--optional, xs:boolean, whether it supports certificate expiry alarm--></
isSupportCertificateRevocation>
<isSupportNoMaskDetection><!--optional, xs:boolean, whether device supports no wearing mask detection--></
isSupportNoMaskDetection>
<isSupportTMPA><!--optional, xs:boolean, whether device supports temperature measurement pre-alarm--></
isSupportTMPA>
<RuleScheduleCap><!--optional, capability of setting arming schedule by rule-->
<isSupportCityManagement>
<!--optional, xs:boolean, whether the device supports setting arming schedule by rule for intelligent city
management; if supports, the value is true, otherwise, this node will not be returned-->
</isSupportCityManagement>
</RuleScheduleCap>
<isSupportTemperatureIntervalMeasurement><!--optional, xs:boolean, whether the device supports temperature
range measurement--></isSupportTemperatureIntervalMeasurement>
</EventCap>
F.227 XML_EventNotificationAlert_AlarmEventInfo
EventNotificationAlert message with alarm/event information in XML format.
<EventNotificationAlert version="2.0" xmlns="[Link]
<ipAddress><!--dep, xs:string, device IPv4 address--></ipAddress>
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, alarm/event triggered or occurred time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, alarm/event frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, alarm/event type, "peopleCounting, ANPR,..."--></eventType>
<eventState>
<!--req, xs:string, durative alarm/event status: "active"-valid, "inactive"-invalid, e.g., when a moving target is
detected,
the alarm/event information will be uploaded continuously unit the status is set to "inactive"-->
</eventState>
<eventDescription><!--req, xs:string, alarm/event description--></eventDescription>
<...><!--opt, for different alarm/event types, the nodes are different, see the message examples in different
applications--></...>
</EventNotificationAlert>
1204
Device Network SDK (General) Developer Guide
F.228 XML_EventTrigger
Linkage parameter message in XML format
<EventTrigger version="2.0" xmlns="[Link]
<id><!--required, xs:string, ID--></id>
<eventType>
<!--required, xs:string, see details in the "Remarks" below-->
</eventType>
<eventDescription><!--optional, xs:string--></eventDescription>
<inputIOPortID><!--dependent, xs:string, alarm input ID--></inputIOPortID>
<dynInputIOPortID><!--dependent, xs:string, dynamic alarm input ID--></dynInputPortID>
<videoInputChannelID>
<!--dependent, xs:string, video input channel ID, it is valid when <eventType> is "VMD, videoloss, tamperdetection,
regionEntrance, regionExiting, loitering, group, rapidMove, parking, unattendedBaggage, attendedBaggage"-->
</videoInputChannelID>
<dynVideoInputChannelID><!--dependent, xs:string, dynamic video input channel ID--></dynVideoInputChannelID>
<intervalBetweenEvents><!--optional, xs:integer, event time interval, unit: second--></intervalBetweenEvents>
<WLSensorID><!--dependent, xs:string, ID--></WLSensorID>
<EventTriggerNotificationList/><!--optional, alarm/event linkage actions, see details in the message of
XML_EventTriggerNotificationList-->
</EventTrigger>
Remarks
The node <eventType> can be the following values: IO, VMD, videoloss, raidfailure,
recordingfailure, badvideo, POS, analytics, fanfailure, overheat, tamperdetection, diskfull, diskerror,
nicbroken, ipconflict, illaccess, videomismatch, resolutionmismatch, radifailure, PIR, WLSensor,
spareException, poePowerException, heatmap, counting, linedetection, fielddetection,
regionEntrance, regionExiting, loitering, group,rapidMove, parking, unattendedBaggage,
attendedBaggage, HUMANATTRIBUTE, blackList, whitelist, peopleDetection, allVehicleList,
otherVehicleList, vehicledetection, storageDetection, shipsDetection, humanAttribute,
faceContrast, blackListFaceContrast, whiteListFaceContrast, faceSnap, faceLib,
personDensityDetection, personQueueDetecton, mixedTargetDetection, HVTVehicleDetection,
illegalParking, pedestrian, trafficAccident, construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, thermometry,
shipsFlowDetection, dredgerDetection, reverseEntrance, luma, highHDTemperature,
lowHDTemperature, hdImpact, hdBadBlock, SevereHDFailure, safetyHelmetDetection,
vibrationDetection, HBDLib,TMPA,faceThermometry,noMaskDetection
See Also
XML_EventTriggerNotificationList
F.229 XML_EventTriggerCapType
XML message about capability of alarm linkage action types
1205
Device Network SDK (General) Developer Guide
1206
Device Network SDK (General) Developer Guide
this node is not returned-no (configuration parameters of the surveillance center can be edited)--></
isNotSupportCenterModify>
<isSupportMessageConfig>
<!--optional, xs:boolean, whether it supports SMS configuration, if supports, set cellphoneNumber to null-->
</isSupportMessageConfig>
<isSupportAnalogOutput><!--optional, xs:boolean, whether it supports IO output of linkage analog channel--></
isSupportAnalogOutput>
<isSupportIOOutputUnify><!--optional, xs:boolean, whether it supports configuration of IO output--></
isSupportIOOutputUnify>
<isSupportFaceContrast><!--optional, xs:boolean, whether it supports face picture comparison linkage--></
isSupportFaceContrast>
<isSupportSiren><!--optional, xs:boolean, whether it supports siren linkage--></isSupportSiren>
<isSupportOutput><!--optional, xs:boolean, whether it supports relay linkage--></isSupportOutput>
</EventTriggerCapType>
F.230 XML_EventTriggerNotification
Event linkage notification message in XML format
<EventTriggerNotification><!--opt-->
<id><!--required, xs:string, device ID--></id>
<notificationMethod>
<!--required, xs:string, linkage actions, opt="email,IM,IO,syslog,HTTP,FTP,beep,ptz,record, monitorAlarm, center,
LightAudioAlarm,focus,trace,cloud,SMS,whiteLight,audio,whiteLight,faceContrast,siren,output"-->
</notificationMethod>
<notificationRecurrence>
<!--optional, xs:string, "beginning,beginningandend,recurring"-->
</notificationRecurrence>
<notificationInterval><!--dependent, xs:integer, unit: millisecond--></notificationInterval>
<outputIOPortID><!--dependent, xs:string, video output No., it is required only when notificationMethod is "IO"--></
outputIOPortID>
<dynOutputIOPortID><!--dependent, xs:string, dynamic video output No., it is required only when
notificationMethod is "IO"--></dynOutputIOPortID>
<videoInputID><!--dependent, xs:string, video input No., it is required only when notificationMethod is "record"--></
videoInputID>
<dynVideoInputID><!--dependent, xs:string, dynamic video input No., it is required only when notificationMethod is
"record"--></dynVideoInputID>
<ptzAction><!--dependent, it is required only when notificationMethod is "ptz"-->
<ptzChannelID><!--required, xs:string, PTZ channel ID--></ptzChannelID>
<actionName><!--required, xs:string, PTZ control type: "preset", "pattern", "patrol"--></actionName>
<actionNum><!--dependent, xs:integer></actionNum>
</ptzAction>
<WhiteLightAction><!--dependent, white light linkage parameters, this node is valid when notificationMethod is
"whiteLight"-->
<whiteLightDurationTime><!--required, xs:integer, white light flashing duration, it is between 1 and 60, unit:
second--></whiteLightDurationTime>
</WhiteLightAction>
<cellphoneNumber><!--dependent, xs:string, min="0" max="11",cellphone number--></cellphoneNumber-->
</EventTriggerNotification>
1207
Device Network SDK (General) Developer Guide
F.231 XML_EventTriggerNotificationList
EventTriggerNotificationList message in XML format
<EventTriggerNotificationList version="2.0" xmlns="[Link]
<EventTriggerNotification/><!--opt, see details in the message of XML_EventTriggerNotification-->
</EventTriggerNotificationList>
See Also
XML_EventTriggerNotification
F.232 XML_EventTriggersCap
XML message about linkage capabilities of different alarm categories
<EventTriggersCap version="2.0" xmlns="[Link]
<DiskfullTriggerCap><!--optional, xs: EventTriggerCapType--></DiskfullTriggerCap>
<DiskerrorTriggerCap><!--optional, xs: EventTriggerCapType--></DiskerrorTriggerCap>
<NicbrokenTriggerCap><!--optional, xs: EventTriggerCapType--></NicbrokenTriggerCap>
<IpconflictTriggerCap><!--optional, xs: EventTriggerCapType--></IpconflictTriggerCap>
<IllaccesTriggerCap><!--optional, xs: EventTriggerCapType--></IllaccesTriggerCap>
<BadvideoTriggerCap><!--optional, xs: EventTriggerCapType--></BadvideoTriggerCap>
<VideomismatchTriggerCap><!--optional, xs: EventTriggerCapType--></VideomismatchTriggerCap>
<IOTriggerCap><!--optional, xs: EventTriggerCapType--></IOTriggerCap>
<LineDetectTriggerCap><!--optional, xs: EventTriggerCapType--></LineDetectTriggerCap>
<RegionEntranceTriggerCap><!--optional, xs: EventTriggerCapType--></RegionEntranceTriggerCap>
<RegionExitingTriggerCap><!--optional, xs: EventTriggerCapType--></RegionExitingTriggerCap>
<LoiteringTriggerCap><!--optional, xs: EventTriggerCapType--></LoiteringTriggerCap>
<GroupDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></GroupDetectionTriggerCap>
<RapidMoveTriggerCap><!--optional, xs: EventTriggerCapType--></RapidMoveTriggerCap>
<ParkingTriggerCap><!--optional, xs: EventTriggerCapType--></ParkingTriggerCap>
<UnattendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></UnattendedBaggageTriggerCap>
<AttendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></AttendedBaggageTriggerCap>
<FireDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FireDetectionTriggerCap>
<FireDetectionCap><!--optional, xs: EventTriggerCapType--></FireDetectionCap>
<StorageDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></StorageDetectionTriggerCap>
<ShipsDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></ShipsDetectionTriggerCap>
<ThermometryCap><!--optional, xs: EventTriggerCapType--></ThermometryCap>
<VandalProofTriggerCap><!--optional, xs: EventTriggerCapType--></VandalProofTriggerCap>
<BlackListTriggerCap><!--optional, xs: EventTriggerCapType, configuration capability of blacklist arming linkage--></
BlackListTriggerCap>
<WhiteListTriggerCap><!--optional, xs: EventTriggerCapType, configuration capability of whitelist arming linkage--></
WhiteListTriggerCap>
<AllVehicleListTriggerCap><!--optional,xs:EventTriggerCapType, configuration capability of other list arming linkage--
></AllVehicleListTriggerCap>
<OtherVehicleListTriggerCap><!--optional,xs:EventTriggerCapType--></OtherVehicleListTriggerCap>
<PeopleDetectionTriggerCap><!--optional,xs:EventTriggerCapType--></PeopleDetectionTriggerCap>
<PIRAlarmCap><!--optional, xs: EventTriggerCapType--></PIRAlarmCap>
1208
Device Network SDK (General) Developer Guide
1209
Device Network SDK (General) Developer Guide
1210
Device Network SDK (General) Developer Guide
</RuleTriggerCap>
</EventTriggersCap>
See Also
XML_EventTriggerCapType
F.233 XML_externSecurityCap
externSecurityCap message in XML format
<externSecurityCap>
<RestAdminPassWord>
<isSupportWithSecurityQuestion>
<!--opt, xs: boolean, whether supports resetting password by answering security questions, "true,false" -->
</isSupportWithSecurityQuestion>
<isSupportWithGUIDFileData>
<!-- opt, xs: boolean, whether supports resetting password by importing GUID file, "true,false" -->
</isSupportWithGUIDFileData>
<isSupportWithSecurityEmail>
<!-- opt, xs: boolean, whether supports resetting password by setting recovery email, "true,false" -->
</isSupportWithSecurityEmail>
</RestAdminPassWord>
<SecurityLimits><!--opt-->
<LoginPasswordLenLimit min="1" max="16">
<!--opt, minimum and maximum lengths of login password-->
</LoginPasswordLenLimit>
<SecurityAnswerLenLimit min="1" max="128">
<!--opt, minimum and maximum answer length of security questions-->
</SecurityAnswerLenLimit>
</SecurityLimits>
</externSecurityCap>
F.234 XML_FocusConfiguration
FocusConfiguration message in XML format
<FocusConfiguration version=“2.0” xmlns=“[Link]
<focusStyle/><!--req, xs:string, focus type, "AUTO, MANUAL, SEMIAUTOMATIC"-->
<focusLimited/><!--opt, xs:integer, the minimum focus length, unit: cm-->
<focusPosition/><!--dep, depends on "FocusStyle", xs:integer-->
<focusSpeed><!--opt, xs:intger--></focusSpeed>
<focusSensitivity>
<!--opt, xs:intger, focus sensitivity, ranges from 0 to 2, it is valid when "focusStyle" is "MANUAL" or
"SEMIAUTOMATIC"-->
</focusSensitivity>
<temperatureChangeAdaptEnabled><!--opt, xs:boolean, "true,false"--></temperatureChangeAdaptEnabled>
<relativeFocusPos>
<!--opt, xs:intger, relative focus value, it is valid when "focusStyle" is "MANUAL" or "SEMIAUTOMATIC"-->
1211
Device Network SDK (General) Developer Guide
</relativeFocusPos>
<highTemperaturePriority><!--opt,xs:boolean, whether to enable high temperature priority mode--></
highTemperaturePriority>
</FocusConfiguration>
F.235 XML_FTPNotification
FTPNotification message in XML format
<FTPNotification version="2.0" xmlns="[Link]
<id>
<!--req, xs:string, FTP ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable the FTP server-->
</enabled>
<useSSL>
<!--opt, xs:boolean-->
</useSSL>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string, this node can only be set to "ipaddress"-->
</addressingFormatType>
<hostName>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
<portNo>
<!--opt, xs:integer, FTP port No.-->
</portNo>
<userName>
<!--req, xs:string, user name-->
</userName>
<password>
<!--wo, xs:string, password-->
</password>
<passiveModeEnabled>
<!--opt, xs:boolean-->
</passiveModeEnabled>
<annoyftp>
<!--opt, xs:boolean-->
</annoyftp>
<uploadPicture>
<!--opt, xs:boolean-->
</uploadPicture>
<uploadVideoClip>
1212
Device Network SDK (General) Developer Guide
<!--opt, xs:boolean-->
</uploadVideoClip>
<uploadPath>
<!--req-->
<pathDepth>
<!--req, xs:integer, directory levels, up to 16 levels can be supported-->
</pathDepth>
<topDirNameRule>
<!--dep, xs:string, parent directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</topDirNameRule>
<topDirName/><!--dep, xs:string, custom string for parent directory, the maximum string length is 32 bytes. This
node is valid when <topDirNameRule> is "customize"-->
<subDirNameRule>
<!--dep, xs:string, child directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</subDirNameRule>
<subDirName/><!--dep, xs:string, custom string for child directory, the maximum string length is 32 bytes. This node
is valid when <subDirNameRule> is "customize"-->
<threeDirNameRule>
<!--dep, xs:string, the third directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</threeDirNameRule>
<threeDirName/><!--req, xs:string, custom string for the third directory, the maximum string length is 32 bytes. This
node is valid when <threeDirNameRule> is "customize"-->
<fourDirNameRule>
<!--dep, xs:string, the fourth directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device
IP address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</fourDirNameRule>
<fourDirName/><!--req, xs:string, custom string for the fourth directory, the maximum string length is 32 bytes. This
node is valid when <fourDirNameRule> is "customize"-->
</uploadPath>
<picArchivingInterval>
<!--opt, xs:integer, the value is between 1 and 30, 0-close-->
</picArchivingInterval>
<picNameRuleType>
<!--opt, xs:string, picture name rule type: "default, prefix"-->
</picNameRuleType>
<picNamePrefix>
<!--dep, xs:string, prefix length of the picture name, which is between 0 and 32-->
1213
Device Network SDK (General) Developer Guide
</picNamePrefix>
<ftpPicNameRuleType>
<!--req, xs:string, type of FTP picture name rule: "videoIntercom"-rule used by video intercom products, "ITC"-rule
used by traffic cameras-->
</ftpPicNameRuleType>
<FTPPicNameRule>
<!--dep, picture name rule of a specific FTP-->
<ItemList/><!--req, see details in the message of XML_ItemList-->
<delimiter>
<!--req, xs:string, delimiter, which is a single character and the default value is "_"-->
</delimiter>
<customStr>
<!--req, xs:string, custom string, its length is between 1 and 128-->
</customStr>
</FTPPicNameRule>
<upDataType>
<!-- opt, xs:integer, picture uploading type: 0-all, 1-checkpoint, 2-violation. When only one FTP server is enabled,
this node can only be set to 0. When two FTP servers are both enabled, you should set 1 for one FTP server and set 2
for another FTP server, which means that two FTP servers cannot be set to the same type-->
</upDataType>
<uploadPlateEnable>
<!--opt, xs:boolean, whether to enable uploading license plate thumbnail-->
</uploadPlateEnable>
<site>
<!--req, xs:string, place, the maximum string length is 128 bytes-->
</site>
<roadNum>
<!--req, xs:string, intersection No., the maximum string length is 32 bytes-->
</roadNum>
<instrumentNum>
<!--req, xs:string, device No., the maximum string length is 32 bytes-->
</instrumentNum>
<direction>
<!--req, xs:string, direction No., the maximum string length is 32 bytes-->
</direction>
<directionDesc>
<!--req, xs:string, direction description, the maximum string length is 32 bytes-->
</directionDesc>
<monitoringInfo1>
<!--req, xs:string, camera 1 information, the maximum string length is 44 bytes-->
</monitoringInfo1>
<uploadAttachedInfomation>
<!--req, xs:boolean, whether to upload additional information-->
</uploadAttachedInfomation>
<brokenNetHttp><!--opt, xs:boolean, whether to enable ANR (automatic network replenishment)--></
brokenNetHttp>
</FTPNotification>
See Also
XML_ItemList
1214
Device Network SDK (General) Developer Guide
F.236 XML_hdd
XML message about HDD parameters
<hdd version="2.0" xmlns="[Link]
<id><!--read only, req, xs: string; ID--></id>
<hddName><!--read only, req, xs: string--></hddName>
<hddPath><!--read only, opt, xs: string--></hddPath>
<hddType><!--read only, req, xs: string, "IDE, SATA, eSATA, NFS, iSCSI, Virtual Disk"--></hddType>
<status>
<!--required, read only, xs: string, HDD status:
"ok,unformatted,error,idle,mismatch,offline,smartFailed,reparing,formating,notexist,unRecordHostFormatted,synching
,syncError,unloaded". "unRecordHostFormatted"--unformatted in education sharing system, "synching"-synchronizing,
"syncError"-synchronization exception--->
</status>
<capacity><!--read only, req, xs: float, unit: MB--></capacity>
<freeSpace><!--read only, req, xs: float, unit: MB--></freeSpace>
<property><!--required, xs: string, HDD properties, "RW,RO,Redund"--></property>
<group><!--optional, xs: string; HDD group ID--></group>
<reservedDayCfg><!--optional, xs:integer, video saving duration, it is between 0 and 1000, unit: day--></
reservedTimeCfg>
<DataModeList><!--opt, ro, current HDD allocation mode-->
<DataMode>
<type><!--required, xs: string, storage application type: "recordStorage"-video storage, "pictureCloudStorage"-
picture to be saved in cloud storage, "fileStorage"-file storage--></type>
<occupancyRate><!--required, xs: integer, HDD usage, range: [0,100]--></occupancyRate>
</DataMode>
</DataModeList>
<formatType>
<!--optional, read only, xs: string, formatting type: FAT32 (default) and EXT4, this node is only available for SD card; if
this node does not exist, the default formatting type is FAT32-->
</formatType>
<encryptionStatus><!--optional, read only, xs:string, encryption status: "unencrypted", "encrypted", "verfyFailed"-
verification failed--></encryptionStatus>
</hdd>
F.237 XML_hddList
XML message about HDD list parameters
<hddList xmlns="[Link] version="2.0" >
<hdd xmlns="[Link] version="2.0" >
<id>
<!--read-only, required, xs:string, HDD ID-->
</id>
<hddName>
<!--read-only, required, xs:string-->
</hddName>
<hddPath>
1215
Device Network SDK (General) Developer Guide
1216
Device Network SDK (General) Developer Guide
</logStorageEnable>
</hdd>
</hddList>
F.238 XML_IllegalLoginLock
IllegalLoginLock message in XML format
<IllegalLoginLock version="2.0" xmlns="[Link]
<enabled>true</enabled>
<maxIllegalLoginTimes>
<!--opt, xs: integer, maximum illegal login attempts, whose value is between 3 and 20, and the default value is 5-->
</maxIllegalLoginTimes>
<maxIllegalLoginLockTime><!--optional, xs:integer, lock duration when maximum illegal login attempts reached the
upper limit, range:[0,120], unit: minute--></maxIllegalLoginLockTime>
</IllegalLoginLock>
F.239 XML_ImageChannel
ImageChannel message in XML format
<ImageChannel version="2.0" xmlns="[Link]
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<videoInputID><!--req, xs: integer--></videoInputID>
<Defog/><!--opt, electronic defogging parameters, see details in the message of XML_Defog-->
<NoiseReduce2D/><!--opt, 2D noise reduction parameters, see details in the message of XML_NoiseReduce2D-->
<Focusconfiguration/><!--opt-->
<LensInitialization/><!--opt-->
<ImageFlip/><!--opt, image automatic flipping parameters, see details in the message of XML_ImageFlip-->
<ImageFreeze/><!--opt-->
<proportionalpan/><!--opt-->
<WDR/><!--opt, WDR parameters, refer to the message XML_WDR for details-->
<BLC/><!--opt, BLC parameters, refer to the message XML_BLC for details-->
<NoiseReduce/><!--opt, 3D DNR parameters, see details in the message of XML_NoiseReduce-->
<ImageEnhancement/><!--opt, image enhancement parameters, see details in the message of
XML_ImageEnhancement-->
<DSS/><!--opt, low illumination electronic shutter parameters in exposure, see details in the message of XML_DSS-->
<WhiteBlance/><!--opt, WB parameters, see details in the message of XML_WhiteBlance-->
<Exposure/><!--opt, exposure parameters, see details in the message of XML_Exposure-->
<Sharpness/><!--opt, sharpness parameters, see details in the message of XML_Sharpness-->
<gammaCorrection/><!--opt, gamma correction parameters, see details in the message of XML_gammaCorrection-->
<powerLineFrequency/><!--opt, image standard parameters, refer to the message XML_powerLineFrequency for
details-->
<Color/><!--opt, image color parameters, see details in the message of XML_Color-->
<IrcutFilter/><!--opt, day/night auto switch parameters, see details in the message of XML_IrxutFilter-->
<ImageModeList/><!--opt, default image mode parameters, see details in the message of XML_ImageModeList-->
<BrightEnhance/><!--opt, brightness enhancement parameters, see details in the message of XML_BrightEnhance-->
<ISPMode/><!--opt, day/night mode parameters, see details in the message of XML_ISPMode-->
1217
Device Network SDK (General) Developer Guide
F.240 XML_Integrate
Message about the access protocol parameters in XML format.
<Integrate version="2.0" xmlns="[Link]
<CGI>
<enable opt="true, false"><!--optional, xs:boolean--></enable>
<certificateType opt="digest,digest/baisc" def="digest"><!--required, xs:string--></certificateType>
</CGI>
<ONVIF>
<enable opt="true, false"><!--optional, xs:boolean--></enable>
<certificateType opt="digest,digest/WSSE,WSSE" def="digest/WSSE"><!--req, xs:string --></certificateType>
</ONVIF>
1218
Device Network SDK (General) Developer Guide
<ISAPI>
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</ISAPI>
<IPCAddStatus><!--display the network camera adding status, which indicates whether the local network camera has
been added to the NVR-->
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</IPCAddStatus>
<Bonjour><!-- bonjour service-->
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</Bonjour>
<Megaeyes><!--Mega Eyes service-->
<enable opt="true, false"><!--optional, xs:boolean, "true,false"--></enable>
</Megaeyes>
<WebSocket>
<enable><!--optional, xs:boolean, "true,false"--></enable>
</WebSocket>
<WebSocketS>
<enable><!--optional, xs:boolean, "true,false"--></enable>
</WebSocketS>
</Integrate>
F.241 XML_IntelliCap
XML message about intelligent capability
<IntelliCap version="2.0" xmlns="[Link]
<isFaceSupport><!--optional, xs:boolean, whether it supports face detection--></isFaceSupport>
<isBehaviorSupport><!--optional, xs:boolean, whether it supports behavior analysis--></isBehaviorSupport>
<isLineDetectionSupport><!--optional, xs:boolean, whether it supports line crossing detection--></
isLineDetectionSupport>
<isFieldDetectionSupport><!--optional, xs:boolean, whether it supports intrusion detection--></
isFieldDetectionSupport>
<isRegionEntranceSupport><!--optional, xs:boolean, whether it supports region entrance detection--></
isRegionEntranceSupport>
<isRegionExitingSupport><!--optional, xs:boolean, whether it supports region exiting detection--></
isRegionExitingSupport>
<isLoiteringSupport><!--optional, xs:boolean, whether it supports loitering detection--></isLoiteringSupport>
<isGroupSupport><!--optional, xs:boolean, whether it supports people gathering detection--></isGroupSupport>
<isRapidMoveSupport><!--optional, xs:boolean, whether it supports fast moving detection--></
isRapidMoveSupport>
<isParkingSupport><!--optional, xs:boolean, whether it supports parking detection--></isParkingSupport>
<isUnattendedBaggageSupport><!--optional, xs:boolean, whether it supports unattended baggage detection--></
isUnattendedBaggageSupport>
<isAttendedBaggageSupport><!--optional, xs:boolean, whether it supports object removal detection--></
isAttendedBaggageSupport>
<isTeacherSupport><!--optional, xs:boolean, whether it supports teacher's behavior detection--></
isTeacherSupport>
<isStudentSupport><!--optional, xs:boolean, whether it supports student's behavior detection--></
isStudentSupport>
<isCombinedSupport><!--optional, xs:boolean, whether it supports combined detection--></isCombinedSupport>
1219
Device Network SDK (General) Developer Guide
1220
Device Network SDK (General) Developer Guide
<positive opt="true,false"/><!--optional, xs:boolean, whether it is false human body recognition alarm: "true"-yes,
"false"-no-->
<eventType opt="unlimit,humanRecognition">
<!--optional, xs:string, event type: "unlimit"-no limit, "humanRecognition"-human body detection alarm-->
</eventType>
<isSupportMultiChannelSearch>
<!--optional, xs:boolean, whether it supports multi-channel search-->
</isSupportMultiChannelSearch>
<isSupportTotalSearchResult>
<!--optional, xs:boolean, whether it supports limiting number of results that can be obtained after a single search--
>
</isSupportTotalSearchResult>
</HumanRecognitionModeSearchCap>
<VehicleRecognitionModeSearchCap>
<searchTargetsNumMax><!--optional, xs:integer, maximum number of sample pictures that can be imported for
searching by picture--></searchTargetsNumMax>
<eventType opt="unlimit,vehicleBlackList,vehicleWhiteList"/><!--xs:string, event type: "unlimit"-no limit,
"vehicleBlackList"-vehicle blacklist, "vehicleWhiteList"-vehicle whitelist-->
<VehicleMode>
<searchCond opt="licensePlate,vehicleLogo,vehicleSubLogoRecog,vehicleType,vehicleColor,unlimit"/>
<similarity min="0.0" max="100.0"/><!--optional, xs:float, similarity, range: [0.0,100.0]-->
</VehicleMode>
<isSupportMultiChannelSearch>
<!--optional, xs:boolean, whether it supports multi-channel search-->
</isSupportMultiChannelSearch>
<isSupportTotalSearchResult>
<!--optional, xs:boolean, whether it supports limiting number of results that can be obtained after a single search--
>
</isSupportTotalSearchResult>
</VehicleRecognitionModeSearchCap>
<FaceContrastAnalyzeCap><!--capability of manual comparison and analysis of face pictures-->
<isSupportTrigger opt="false,true"><!--optional, xs:boolean--></isSupportTrigger>
<SearchCondition><!--optional-->
<startTime><!--required, xs:time, ISO8601 time--></startTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
</SearchCondition>
</FaceContrastAnalyzeCap>
<FramesPeopleCountingCap><!--capability of people counting statistics in a single frame-->
<Statistics>
<SearchCondition>
<startTime><!--required, xs:time,ISO8601 time--></startTime>
<endTime><!--required, xs:time,ISO8601 time--></endTime>
</SearchCondition>
</Statistics>
<MaskRegion><!--optional, shielded region-->
<maxRegionNum><!--optional, xs:integer, number of regions--></maxRegionNum>
<Region>
<vertexNum min="3" max="10"><!--optional, xs:integer, number of region vertexes--></vertexNum>
</Region>
</MaskRegion>
</FramesPeopleCountingCap>
<FaceContrastPersonInfoExtend><!--configuration capability of face comparison tag-->
1221
Device Network SDK (General) Developer Guide
<personInfoCap>
<maxPersonInfo min="0" max="4">
<!--optional, xs:integer, maximum number of person tags-->
</maxPersonInfo>
</personInfoCap>
<personInfoFDlibCap>
<maxPersonInfo min="0" max="4">
<!--optional, xs:integer, maximum number of person tags-->
</maxPersonInfo>
</personInfoFDlibCap>
</FaceContrastPersonInfoExtend>
<isSupportSafetyHelmetDetection>
<!-- opt, xs:boolean, whether it supports hard hat detection-->
</isSupportSafetyHelmetDetection>
<isSupportDistanceRecognition><!--optional, xs:boolean, whether supports distance measurement--></
isSupportDistanceRecognition>
<isSupportATM><!--optional, xs:boolean, ATM intelligent configuraiton, corresponds to URI: /ISAPI/Intelligent/ATM/
capabilities?format=json--></isSupportATM>
<isSupportFaceTemperature><!--optional, xs:boolean, whether the device supports face thermography, corresponds
to URI: /ISAPI/Intelligent/faceTemperature/capabilities?format=json--></isSupportFaceTemperature>
<isSupportFireEscapeDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for fire engine access detection events of multiple
channels (related URI: URI/ISAPI/Intelligent/fireEscapeDetection/search/capabilities?format=json)-->
</isSupportFireEscapeDetectionSearch>
<isSupportTakingElevatorDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for elevator detection events of multiple channels
(related URI: /ISAPI/Intelligent/takingElevatorDetection/search/capabilities?format=json)-->
</isSupportTakingElevatorDetectionSearch>
<isSupportCityManagementSearch>
<!--optional, xs:boolean, whether the device supports searching for city management events of multiple channels
(related URI: /ISAPI/Intelligent/cityManagement/search/capabilities?format=json)-->
</isSupportCityManagementSearch>
<isSupportSafetyHelmetDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for hard hat detection events of multiple channels
(related URI: /ISAPI/Intelligent/safetyHelmetDetection/search/capabilities?format=json)-->
</isSupportSafetyHelmetDetectionSearch>
</IntelliCap>
F.242 XML_IOTTriggersCap
IOTTriggersCap message in XML format
<?xml version="1.0" encoding="utf-8"?>
<IOTTriggersCap version="2.0" xmlns="[Link]
<AccessController><!--opt, security control panel-->
<XXTriggerCap><!--opt,xs: EventTriggerCapType--></XXTriggerCap>
</AccessController>
<VideoIntercom><!--opt, video intercom-->
<XXTriggerCap><!--opt,xs: EventTriggerCapType --></XXTriggerCap>
</VideoIntercom>
1222
Device Network SDK (General) Developer Guide
Remarks
The XX in the node <XXTriggerCap> corresponds to detailed event type. E.g., if the event type is
humanRecognition, then the returned node is <HumanRecognitionTriggerCap>.
See Also
XML_EventTriggerCapType
F.243 XML_IPFilter
IPFilter message in XML format
<IPFilter version="2.0" xmlns="[Link]
<enabled><!--req, xs:boolean--></enabled>
<permissionType><!--opt, xs:string, "deny,allow"--></permissionType>
<IPFilterAddressList size = "32"/><!--opt, the character size indicates the max. number of supported IP address. See
XML_IPFilterAddressList for details-->
</IPFilter>
See Also
XML_IPFilterAddressList
F.244 XML_IPFilterAddress
IPFilterAddress message in XML format
<IPFilterAddress version="2.0" xmlns="[Link]
<id><!--req, xs:string;id--></id>
<permissionType><!--dep, xs:string, "deny,allow" --></permissionType>
<addressFilterType><!--ro, xs:string, "mask, range"--></addressFilterType>
<AddressRange><!--dep, it is valid when <addressFilterType> is "range"-->
<startIPAddress><!--dep, xs:string--></startIPAddress>
<endIPAddress><!--dep, xs:string--></endIPAddress>
<startIPv6Address><!--dep, xs:string--></startIPv6Address>
1223
Device Network SDK (General) Developer Guide
<endIPv6Address><!--dep, xs:string--></endIPv6Address>
</AddressRange>
<AddressMask><!--dep, it is valid when <addressFilterType> is "mask"-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<bitMask><!--opt, xs:string--></bitMask>
</AddressMask>
</IPFilterAddress>
F.245 XML_IPFilterAddressList
IPFilterAddressList message in XML format
<IPFilterAddressList version="2.0" xmlns="[Link]
<IPFilterAddress/><!--opt, see XML_IPFilterAddress for details-->
</IPFilterAddressList>
See Also
XML_IPFilterAddress
F.246 XML_InputProxyChannel
InputProxyChannel message in XML format
<InputProxyChannel version="2.0" xmlns="[Link]
<id><!--req, xs:string, starts from 1--></id>
<name><!--opt, xs:string--></name>
<sourceInputPortDescriptor><!--req-->
<adminProtocol><!--req, xs:string, "HIKVISION,SONY,ISAPI,ONVIF,..."--></adminProtocol>
<addressingFormatType><!--req, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dep, xs:string, domain name--></hostName>
<ipAddress><!--dep, xs:string, IP address--></ipAddress>
<ipv6Address><!--dep, xs:string, IPv6 address--></ipv6Address>
<managePortNo><!--req, xs:integer--></managePortNo>
<srcInputPort><!--req, xs:string, channel No.--></srcInputPort>
<userName><!--req, xs:string, user name, which should be encrypted--></userName>
<password><!--req, wo, xs:string, password, which should be encrypted--></password>
<streamType><!--opt, xs:string, opt="auto,tcp,udp"--></streamType>
<deviceID><!--dep, xs:string--></deviceID>
<deviceTypeName><!--ro, opt, xs:string, device type name--></deviceTypeName>
<serialNumber><!--ro, opt, xs:string, device serial No.--></serialNumber>
<firmwareVersion><!--ro, opt, xs:string, firmware version--></firmwareVersion>
<firmwareCode><!--ro, opt, xs:string, firmware code--></firmwareCode>
</sourceInputPortDescriptor>
<enableAnr>
<!--opt, xs:boolean, whether enables ANR funtion-->
</enableAnr>
<NVRInfo>
1224
Device Network SDK (General) Developer Guide
<ipAddressNVR>
<!--opt, xs:string, IP address of NVR-->
</ipAddressNVR>
<portNVR>
<!--opt, xs:integer, port No. of NVR-->
</portNVR>
<ipcChannelNo>
<!--opt, xs:integer, channel No. of the network camera in NVR-->
</ipcChannelNo>
</NVRInfo>
</InputProxyChannel>
F.247 XML_IpViewDevAbility
XML message about the video intercom device capability
<IpViewDevAbility version="2.0">
<!--video intercom device capability-->
<SipServerLogin><!--required, registration capability of SIP server-->
<AutoLogin><!--required, whether to support automatic registration-->
<enable></enable>
</AutoLogin>
<loginStatus opt="registered,unregistered"/><!--required, registration status-->
<sipLoginNameLen min="1" max="32"/><!--required, length of registered user name-->
<sipLoginPasswordLen min="1" max="16"/><!--required, length of registered password-->
<displayNameLen min="1" max="128"/><!--required, length of displayed device name-->
<localNumber min="1" max="32"/><!--required, length of local station number-->
<loginCycle min="1" max="99"/><!--required, registration period, unit: minute-->
<serverSipPort min="1024" max="65535"/>
<localPort min="1024" max="65535"><!--optional, local port No.-->
<isNotSupportLocalPort></isNotSupportLocalPort><!--optional, whether the local port is not supported: true-yes
(the local port is not supported), this field is not supported-no (the local port is supported)-->
<domainNameLen min="", max=""/><!--optional, the meaning of this field is the same as that of the field
<sipServerDomain>. For new devices, both fields need to be returned-->
<addressType opt="IP/IPV6, domain"/><!--supported address type-->
<mutexAbility opt="gbt28181"/><!--required, mutex ability, gbt28181-->
<notSupportCharacter opt=""><!--whether the domain name contains unsupported characters: true-yes (the
domain name contains unsupported characters)-->
<isNotSupportSipServerIP></isNotSupportSipServerIP><!--whether the IP address of the SIP server is not
supported: true-yes (the IP address of the SIP server is not supported), this field is not supported-no (the IP address of
the SIP server is supported). For old devices, this field will not be returned; this field is used to check whether new
devices support the IP address of the SIP server-->
<sipServerDomain min="" max=""/><!--optional, domain name of the SIP server. The meaning of this field is the
same as that of the field <domainNameLen>. For new devices, both fields need to be returned-->
<stunServerIP min="" max=""/><!--optional, IP address of the STUN server-->
<stunServerDomain min="" max=""/><!--optional, domain name of the STUN server-->
<stunServerPort min="" max=""/><!--optional, port No. of the STUN server-->
<proxyServerIP min="" max=""/><!--optional, IP address of the proxy server-->
<proxyServerDomain min="" max=""/><!--optional, domain name of the proxy server-->
<proxyServerPort min="" max=""/><!--optional, port No. of the proxy server-->
1225
Device Network SDK (General) Developer Guide
<netWork opt="0,1,2,3"/><!--optional, network type: 0-invalid, 1-wired network 1, 2-wired network 2, 3-wireless
network-->
<CalledTargetName min="" max=""/><!--optional, user name length of the called person-->
</SipServerLogin>
<LocalAbility><!--required, basic capability of video intercom extension-->
<defaultRing min="1" max="6"/><!--required, options of the default local ringtone-->
<ringVolume min="1" max="9"/><!--required, range of the local ringtone volume-->
<inputVolume min="0" max="6"/><!--required, input volume options-->
<outputVolume min="0" max="9"/><!--required, output volume options-->
<audioEncPriNum><!--required, supported number of audio encoding levels--></audioEncPriNum>
<delayPreview min="0" max="30"/><!--required, range of live view delay, unit: second-->
<AudioEncEntry><!--required, supported audio encoding type, multiple types can be set for the same node-->
<index></index>
<name></name>
<packetLen opt="160,320"/>
</AudioEncEntry>
<CallAbility><!--required, calling capability-->
<AutoResponse><!--required, support automatic response-->
<autoResponse min="0" max="30"/><!--required, range of automatic response duration, unit: second-->
</AutoResponse>
<callNumber><!--required, supported number of calling numbers--></callNumber>
<callNumberLen min="0" max="32"/>
</CallAbility>
</LocalAbIlity>
<VideoIntercom>
<!--video intercom, indoor station, door station, master station, door station (V series), doorphone-->
<monitorChannelNo min="1" max="100"/><!--required, camera channel of master station or indoor station-->
<DeviceID><!--device No.-->
<enabled>true</enabled><!--supported device No. configuration-->
<supportUnitType opt=""/><!--required, supported video intercom type-->
<InDoorDevice><!--required, indoor station-->
<floorNum min="1" max="16"/><!--required, floor No.-->
<roomNum min="1" max="16"/><!--required, room No.-->
<devIndex min="0" max="10"/><!--required, indoor station No.-->
</InDoorDevice>
<OutDoorDevice><!--required, door station/intelligent access control device-->
<period min="1" max="16"/><!--required, community No.-->
<buildingNum min="1" max="16"/><!--required, building No.-->
<unitNum min="0" max="10"/><!--required, unit No.-->
<floorNum min="1" max="16"/><!--required, floor No.-->
<devIndex min="0" max="10"/><!--required, door station No.-->
</OutDoorDevice>
<ManageUnitDevice><!--required, master station-->
<period min="1" max="16"/><!--required, community No.-->
<devIndex min="0" max="10"/><!--required, master station No.-->
</ManageUnitDevice>
<OutDoorFenceDevice><!--required, outer door station-->
<period min="1" max="16"/><!--required, community No.-->
<devIndex min="0" max="10"/><!--required, outer door station No.-->
</OutDoorFenceDevice>
<VillaOutDoorDevice><!--required, door station (V series)-->
<period min="1" max="16"/><!--required, community No.-->
1226
Device Network SDK (General) Developer Guide
1227
Device Network SDK (General) Developer Guide
1228
Device Network SDK (General) Developer Guide
1229
Device Network SDK (General) Developer Guide
1230
Device Network SDK (General) Developer Guide
vibrationDetector,dualTechnologyPirDetector,tripleTechnologyPirDetector,humidityDetector,temperatureDetector,com
bustibleGasDetecto,dynamicSwitch,controlSwitch,smartLock,waterDetector,otherDetector"/><!--detector type
supported by the device: "panicButton"-panic switch, "magneticContact"-magnetic contact, "smokeDetector"-smoke
detector, "activeInfraredDetector"-active infrared detector, "passiveInfraredDetector"-passive infrared detector,
"glassBreakDetector"-glass break detector, "vibrationDetector"-vibration detector, "dualTechnologyPirDetector"-dual
technology motion detector, "tripleTechnologyPirDetector"-triple technology detector, "humidityDetector"-humidity
detector, "temperatureDetector"-temperature detector, "combustibleGasDetecto"-gas detector, "dynamicSwitch"-
follow-up switch, "controlSwitch"-control switch, "smartLock"-smart lock, "waterDetector"-water detector,
"otherDetector"-other detector type-->
<zoneType opt="instantZone,
24hourAudibleZone,delayZone,interiorWithDelayZone,keyswitchZone,supervisedFireZone,perimeterZone,
24hourSlientZone,disable"/><!--zone type supported by the device-->
<uploadAlarmRecoveryReport><!--whether to support report configuration of uploading alarm recovery--></
uploadAlarmRecoveryReport>
<zoneDelayTime min="" max=""/><!--delayed zone delay-->
<sensitivity opt="10ms,250ms,500ms,750ms"/><!--sensitivity-->
<arrayBypass><!--whether to support zone group bypass configuration--></arrayBypass>
<moduleStatus attri="readonly" opt="offline,online"/><!--module status-->
<moduleAddress min="" max=""/><!--module aqddress-->
<moduleChannel><!--module channel--></moduleChannel>
<moduleType opt="localZone, 1zoneExpander,2zoneExpander,8ZoneExpander,8sensorZoneExpander,
1ZoneAndTrigger"/><!--supported zone type-->
<zoneNo attri="readonly" min="" max=""/><!--zone No. which can only be obtained-->
<subsystemNo attri="readonly"><!--No. of the partition that the zone belongs to, it can only be obtained--></
subsystemNo>
<alarmType opt="open,close" default="open"/><!--required, alarm device type: "open"-remain open, "close"-
remain closed-->
<InDelayTime min="0" max="255"/><!--required, entrance delay, unit: second-->
<OutDelayTime min="0" max="255"/><!--required, exiting delay, unit: second-->
</ZoneConfig>
<GetZoneList>
<enabled><!--whether the device supports getting zone list--></enabled>
</GetZoneList>
<ZoneArmDisarm>
<enabled><!--whether the device supports arming and disarming the zone--></enabled>
</ZoneArmDisarm>
<ZoneGroupBypass>
<enabled><!--whether the device supports zone group bypass--></enabled>
</ZoneGroupBypass>
</ZoneList>
<NoNeedReboot>
<videoResolutionChange opt="true,false"/><!--optional, whether the device does not reboot after changing video
resolution-->
<videoFrameRateChange opt="true,false"/><!--optional, whether the device does not reboot after changing video
frame rate-->
</NoNeedReboot>
</IpViewDevAbility >
1231
Device Network SDK (General) Developer Guide
F.248 XML_ItemList
ItemList message in XML format
<ItemList>
<Item>
<itemID>
<!--req, xs:string, item ID, which is between 1 and 15-->
</itemID>
<itemOrder>
<!--req, xs:string, name element: "none", "devIp"-device IP address, "time", "buildUnitNo"-building No. and unit
No., "outDoorDevNo"-door station, "unlockType"-unlocking type, "devName"-device name, "deviceNo"-device No.,
"channelName"-channel name, "channelNo"-channel No., "plateNo"-license plate number, "plateColor"-license plate
color, "laneNo"-lane No., "carSpeed"-vehicle speed, "positionInfo1"-camera 1, "pictureNo"-picture No., "CarNo"-
vehicle No., "speedLimit"-speed limit, "illegalCode"-violation code, "siteNo"-intersection No., "directionNo"-direction
No., "carColor"-vehicle color, "platePosition"-license plate coordinates, "carType"-vehicle type, "illegalType"-violation
type, "custom"-->
</itemOrder>
<itemCustomStr>
<!--req, xs:string, element custom string, which is between 1 and 32, unit: bytes. This node is valid only when
<itemOrder> is "custom". Currently traffic cameras only support one custom name-->
</itemCustomStr>
</Item>
</ItemList>
F.249 XML_JpegCaptureAbility
JPEG picture capture capability message in XML format
<JpegCaptureAbility version="2.0">
<channelNO>
<!--required, channel No.-->
</channelNO>
<FindPicInfo><!--required, picture information-->
<supportFileType opt=
"CMR,MOTION,ALARM,EDR,ALARMANDMOTION,manual,intelligentPic,pir,wlsensor,callhelp,previewScreenshot,facede
tection,LineDetection,FieldDetection,scenechangedetection,lockPlaybackScreenshot,INTELLIGENT,regionEntrance,regi
onExiting,loitering,group,rapidMove,parking,unattendedBaggage,attendedBaggage,VehicleDetection,HvtVehicleDetect
ion, faceSnap evidence, vcaEventGetUp, vcaEventAdvReachHeight, vcaEventToiletTarry, unregisteredStreetVendor,
illegalParking, wrongdirection,crosslane,vehicleexist,lanechange, turnround, pedestrian, roadblock, abandonedObject,
fogDetection, construction, congestion, trafficAccident,parallelParking, evidence,personQueueCounting,
personQueueTime, vcaEventSafetyHelmet, vibrationDetection, allType"/>
<!--required, supported capture type: 0-scheduled capture, 1-motion detection capture, 2-alarm capture, 3-alarm or
motion detection capture, 4-alarm and motion detection capture, 6-manual capture, 9-VCA picture, 10-PIR alarm, 11-
wireless alarm, 12-emergency alarm, 0xa-capture in live view, 0xd-face detection, 0xe-line crossing detection, 0xf-
intrusion detection, 0x10-scene change detection, 0x11-capture in local playback, 0x12-VCA detection, 0x13-region
entrance detection, 0x14-region exiting detection, 0x15-loitering detection, 0x16-people gathering detection, 0x17-
fast moving detection, 0x18-parking detection, 0x19-unattended baggage detection, 0x1a-object removal detection,
0x1b-vehicle detection, 0x1c-mixed-traffic detection (enforcement event), 0x25-face capture, 0x2a-getting up
1232
Device Network SDK (General) Developer Guide
detection, 0x2b-climbing alarm, 0x2c-in-toilet overtime detection, 0x35-unregistered street vendor, 0x36-people
density detection (number of people pre-alarm), 0x37-absence detection, 0x38-number of people exception
detection, 0x39-violent motion detection, 0x3a-illegal parking detection, 0x3b-wrong-way driving detection, 0x3c-
driving on the lane line detection, 0x3d-motor vehicle on non-vehicle lane detection, 0x3e-illegal lane change
detection, 0x3f-U-turning detection, 0x40-pedestrian detection, 0x41-roadblock detection, 0x42-thrown object
detection, 0x43-fog detection, 0x44-construction detection, 0x45-congestion detection, 0x46-traffic accident
detection, 0x47-parallel parking detection, 0x48-trigger alarm manually, 0x52-people queuing-up detection, 0x53-
waiting time detection, 0x2d-hard hat detection, 0x58-vibration detection, 0xff-all-->
<enableNeedCard opt="disable,able"/>
<province
opt="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,0xff"/>
<!--required, province index-->
<cardNumberLen min="" max=""/>
<StartTime>
<year min="" max=""/>
<month min="" max=""/>
<day min="" max=""/>
<hour min="" max=""/>
<minute min="" max=""/>
<second min="" max=""/>
</StartTime>
<StopTime>
<year min="" max=""/>
<month min="" max=""/>
<day min="" max=""/>
<hour min="" max=""/>
<minute min="" max=""/>
<second min="" max=""/>
</StopTime>
<trafficType opt="license,vehicleType,illegalType"/>
<vehicleType opt="smallCar,bigCar,bus,truck,car,minibus,smallTruck"/>
<subHvtType opt="all,motorVehicle,nonMotorVehicle,pedestrian"/>
<!--required, "all", "motorVehicle"-motor vehicle, "nonMotorVehicle"-non-motor vehicle, "pedestrian"-->
<illegalType
opt="postPic,lowSpeed,highSpeed,retrograde,rushRedLight,pressLane,violateGuide,roadStrand,vehicleillegal,roadStan
d,changeLane,dirveillegalLane,violate,crossParking,greenParking"/>
<region opt="Res,EU,ER,All"/>
<!--required, region index: 0-reserved, 1-Europe (EU), 2-Russia (ER), 0xff-all-->
<country opt="0,1,2,3,4,5,6,7,8,9,10,11,12,0xfe,0xff "/>
<!--required, country index: 0-license plate recognition for this country is not supported by the algorithm library, 1-
Czech Republic (CZ), 2-France (FRA), 3-Germany (DE), 4-Spain (E), 5-Italy (IT), 6-Netherlands (NL), 7-Poland (PL), 8-
Slovakia (SVK), 9-Belorussia (BY), 10-Moldova (MDA), 11-Russia (RU), 12-Ukraine (UA), 13-Belgium (BEL), 14-Bulgaria,
15-Denmark, 16-Finland, 17-United Kingdom, 18-Greece, 19-Croatia, 20-Hungary, 21-Israel, 22-Luxembourg, 23-
Republic of Macedonia, 24-Norway, 25-Portugal, 26-Romania, 27-Serbia, 28-Republic of Azerbaijan, 29-Georgia, 30-
Kazakhstan, 31-Republic of Lithuania, 32-Turkmenistan, 33-Uzbekistan, 34-Latvia, 35-Estonia, 36-Albania, 37-Austria,
38-Bosnia and Herzegovina, 39-Ireland, 40-Iceland, 41-Vatican, 42-Malta, 43-Sweden, 44-Switzerland, 45-Cyprus, 46-
Turkey, 47-Slovenia, 48-Republic of Montenegro, 0xfe-unrecognized, 0xff-all-->
<licenseLen min="" max=""/>
<!--optional, the maximum and minimum length of the license plate number-->
<supportAIDTFSType opt="illegalParking,wrongdirection crosslane,vehicleexist,lanechange, turnround, evidence"/>
<!--optional, xs:string, event types for searching pictures both supported by AID and TFS-->
</FindPicInfo>
1233
Device Network SDK (General) Developer Guide
<SmartPicSearchInfo>
<!--required-->
<supportFileType opt=
"vehicleDetection,faceFeature,facePicData,LineDetection,FieldDetection,unattendedBaggage,attendedBaggage,region
Entrance,regionExiting,parking,loitering,group,rapidMove,running,violentMotion,failDown,peopleNumChange,leavePo
sition,retentionParam,situationAnalysis,allType"/>
<!--required, supported file type, 0("vehicleDetection")-vehicle search, 1("faceFeature")-facial features,
2("facePicData")-face picture data, 3("LineDetection“)-line crossing, 4("FieldDetection")-intrusion, 5-
("unattendedBaggage")unattended baggage, 6("attendedBaggage")-object removal, 7("regionEntrance")-region
entrance, 8("regionExiting")-region exiting, 9("parking")-illegal parking, 10("loitering")-loitering, 11("group")-people
gathering, 12("rapidMove")-fast moving, 13("running")-people running, 14("violentMotion")-violent motion,
15("failDown")-people falling down, 16("peopleNumChange")-people number change, 17("leavePosition")-absence
detection, 18("retentionParam")-overstay detection, 19("situationAnalysis")-situation analysis-->
<StartTime>
<year min="" max=""/>
<month min="" max=""/>
<day min="" max=""/>
<hour min="" max=""/>
<minute min="" max=""/>
<second min="" max=""/>
</StartTime>
<StopTime>
<year min="" max=""/>
<month min="" max=""/>
<day min="" max=""/>
<hour min="" max=""/>
<minute min="" max=""/>
<second min="" max=""/>
</StopTime>
<VehicleCond>
<!--required, this node will be returned if vehicle search is supported-->
<licenseLen min="1" max="16"/>
<!--required, license plate number length-->
<country opt="czech,france,germany,spain,italy,netherlands,poland,slovakia,belorussia,moldova,russia,ukraine,"/>
<!--required, country-->
</VehicleCond>
<FaceFeature>
<!--required, facial features-->
<ageGroup opt="infant,child,youngster,adolescent,youth,prime,midlife,midage,old"/>
<!--required, age group-->
<sex opt="man,women"/>
<withGlasses opt="true,false"/>
<!--required, whether to support wearing glasses-->
</FaceFeature>
<FacePicData>
<!--required, face picture data-->
<faceScore min="0" max="100"/>
<!--required, similarity-->
<picType opt="jpg"/>
<!--required, picture format-->
</FacePicData>
<isSupportFaceDataAnalysis>
1234
Device Network SDK (General) Developer Guide
1235
Device Network SDK (General) Developer Guide
<ResolutionEntry>
<!--required-->
<resolutionName>
<!--required, xs:string, resolution name, "4CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
<intervalUnit>
<!--required, time interval unit, s/ms-->
</intervalUnit>
<interval min="" max="" opt="0"/>
<!--required, xs:integer, capture interval-->
<RecorderDuration min="" max=""/>
<!--required, days to keep the captured pictures-->
<DayCapture>
<!--required, all-day capture-->
<captureType opt="timing,motion,alarm,motionOrAlarm,motionAndAlarm,vca, command"/>
<!--required, capture type-->
</DayCapture>
<TimeSlot>
<!--required, scheduled capture-->
<slotNum><!--required, time period--></slotNum>
<captureType opt="timing,motion,alarm,motionOrAlarm,motionAndAlarm,vca, command"/>
<!--required, capture type-->
</TimeSlot>
<HolidayDay>
<!--required, all-day capture on holidays-->
<captureType opt="timing,motion,alarm,motionOrAlarm,motionAndAlarm,vca, command"/>
<!--required, capture type-->
</HolidayDay>
<HolidayTimeSlot>
<!--required, scheduled capture on holidays-->
<slotNum>
<!--required, time period-->
</slotNum>
<captureType opt="timing,motion,alarm,motionOrAlarm,motionAndAlarm,vca, command"/>
<!--required, capture type-->
</HolidayTimeSlot>
</TimingCap>
<EventCap>
<eventType opt="motion,hide,loss,PIR,wireless,callhelp,vca,facedDetect ,
lineDetection,fieldDetection,sceneChangeDetection"/>
<!--required, xs:string, event type-->
<ResolutionEntry>
<!--req-->
<resolutionName>
<!--required, xs:string, resolution name, "CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
1236
Device Network SDK (General) Developer Guide
</index>
<streamType>
<!--optional, xs:string, stream type: "main,sub"-->
</steamType>
</ResolutionEntry>
<ResolutionEntry>
<!--required-->
<resolutionName>
<!--required, xs:string, resolution name, "4CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
<streamType>
<!--optional, xs:string, stream type: "main,sub"-->
</steamType>
</ResolutionEntry>
<intervalUnit>
<!--required, time interval unit, s/ms-->
</intervalUnit>
<interval min="" max="" opt="0"/>
<!--required, xs:integer, capture interval-->
<capTimes min="" max=""/>
<!--required, xs:integer, number of captured pictures-->
<eventCapChan opt="1,2"/>
<!--required, xs:integer, channle that can be triggered by event to capture-->
<alarmInCapChan opt="1,2"/>
<!--required, xs:integer, channel that can be triggered by alarm input to capture-->
</EventCap>
<AdvancedParam>
<!--optional, advanced configuration parameters for capture-->
<streamType opt="0-mainstream,1-substream,2-stream3,3-stream4,4-stream5">
<!--optional, xs:string, stream type-->
</streamType>
</AdvancedParam>
</SchedCapture>
<WindowCapture>
<!--required, capture capability on video wall window-->
<FreeShowBoard>
<!--required, capture resolution supported by fluent video decoder-->
<ResolutionEntry>
<!--required-->
<resolutionName>
<!--required, xs:string, resolution name, "CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
<ResolutionEntry>
<resolutionName>
<!--required, xs:string, resolution name, "4CIF"...-->
1237
Device Network SDK (General) Developer Guide
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
</FreeShowBoard>
<NormalDecBoard>
<!--required, capture resolution supported by non-fluent video decoder-->
<ResolutionEntry>
<!--req-->
<resolutionName>
<!--required, xs:string, resolution name, "CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
<ResolutionEntry>
<resolutionName>
<!--required, xs:string, resolution name, "4CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
</NormalDecBoard >
</WindowCapture>
<VcaDecCapture>
<!--optional, VCA decoding capture capability-->
<picQuality opt="best,better,normal"/>
<!--picture quality: "best", "better", "normal"-->
<ResolutionEntry>
<!--req-->
<resolutionName>
<!--required, xs:string, resolution name, "CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
<ResolutionEntry>
<resolutionName>
<!--required, xs:string, resolution name, "4CIF"...-->
</resolutionName>
<index>
<!--required, xs:integer-->
</index>
</ResolutionEntry>
</VcaDecCapture>
<CapturePicture><!--optional, capture capability-->
<Resolution><!--required, supported resolution-->
<value opt="218-1440*1440,255-auto"/>
1238
Device Network SDK (General) Developer Guide
</Resolution>
<picQuality opt="best,good,normal"/><!--required, picture quality level, 0-high, 1-medium, 2-low-->
<picFormat opt="0-Jpeg"/><!--required, captured picture format: 0-JPEG-->
<picType opt="normal,calibPanoramicPic,calibPanoramicPicinFlash,fishCirclePic"/>
<!--required, captured picture type: normal, calibPanoramicPic-calibrated picture of PanoVu series camera (reboot
FPJA to refresh and get picture, the longest timeout is 30 minutes), calibPanoramicPicinFlash-get existing calibrated
picture of PanoVu series camera from Flash, fishCirclePic-fisheye view picture-->
</CapturePicture>
</JpegCaptureAbility>
F.250 XML_Language
Language message in XML format
<Language version="2.0" xmlns="[Link]
<type><!--req, xs: string, "GBK,EUC-KR", def="GBK"--></type>
</Language>
F.251 XML_LensDistortionCorrection
LensDistortionCorrection message in XML format
<PrivacyMaskRegion version="2.0" xmlns="[Link]
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<RegionCoordinatesList><!--req-->
<RegionCoordinates><!--list-->
<positionX><!--req, xs: integer; coordinate--></positionX>
<positionY><!--req, xs: integer; coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
<privacymaskName><!--opt, xs: string--></privacymaskName>
<maskType>
<!--opt, xs: string, "gray,red,yellow,blue,orange,green,transparent,half-transparent,mosaic"-->
</maskType>
<zoomdoorlimit><!--opt, xs: integer, the value is between 10 and 1000--></zoomdoorlimit>
</PrivacyMaskRegion>
F.252 XML_LockByName
XML message about parameters of locking and unlocking video by file name
<?xml version="1.0" encoding="utf-8"?>
<LockByName version="2.0" xmlns="[Link]
<TrackId><!--required, xs:string, channel ID, e.g., 101 indicates the main stream of channel No.1--></TrackId>
<recordName><!--required, xs:string, file name, the name length is between 1 and 100--></recordName>
<command><!--required, xs:string, operation command: "lock" and "unlock"--></command>
1239
Device Network SDK (General) Developer Guide
<duration>
<!--dependent, xs:integer, locking duration, unit: second; if the value is 0, it indicates that the video will be
permanently locked, this node is valid only when command is set to "lock"-->
</duration>
<recorderCode><!--optional, xs:string, body camera No.--></recorderCode>
<policeCode><!--optional, xs:string, No. of police that collects data, it should be encrypted--></policeCode>
</LockByName>
F.253 XML_LockCap
XML message about video locking and unlocking capability
<?xml version="1.0" encoding="utf-8"?>
<LockCap version="2.0" xmlns="[Link]
<LockByName><!--optional, lock or unlock video by file name-->
<TrackId><!--required, xs:string--></TrackId>
<recordName min="1" max="100"><!--required, xs:string, video file name--></recordName>
<command opt="lock,unlock"><!--required, xs:string, operation command: "lock" and "unlock"--></command>
<duration min="" max=""><!--dependent, xs:integer, locking duration, unit: second--></duration>
<recorderCode min="1" max="100"><!--optional, xs:string, body camera No.--></recorderCode>
<policeCode min="1" max="100">
<!--optional, xs:string, No. of police that collects data, it should be encrypted-->
</policeCode>
</LockByName>
<LockByTime><!--optional, lock or unlock video by time-->
<TrackId><!--required, xs:string--></TrackId>
<recordType opt= "ALL, MANUAL, CMR, MOTION, ALARM, EDR, ALARMANDMOTION, COMMAND, SMART">
<!--required, xs:string-->
</recordType>
<startDateTime><!--dependent, xs:time, ISO8601 time format, e.g., 2004-05-03T17:30:08+08:00--></startDateTime>
<endDateTime><!-- dependent, xs:time, ISO8601 time format, e.g., 2004-05-03T17:30:08+08:00--></endDateTime>
<command opt="lock,unlock"><!--required, xs:string--></command>
<duration min="" max=""><!--dependent, xs:integer--></duration>
</LockByTime>
</LockCap>
F.254 XML_LogServer
XML message about log server information
<LogServer version="2.0" xmlns="[Link]
<enabled><!--required, xs: boolean, opt="true,false"--></enabled>
<addressingFormatType>
<!--required, xs: string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dependent, xs: string--></hostName>
<ipAddress><!--dependent, xs: string--></ipAddress>
<ipv6Address><!--dependent, xs: string--></ipv6Address>
<portNo><!--optional, xs: integer--></portNo>
1240
Device Network SDK (General) Developer Guide
<transmissionEncryption>
<!--optional, xs:boolean, whether to enable transmission encryption: "true"-yes, "false"-no (default). If this field is
not supported, the default encryption method is TLS-->
</transmissionEncryption>
<checkCertificate>
<!--optional, xs:boolean,whether to enable checking certificates-->
</checkCertificate>
<uploadInterval>
<!--optional, xs:integer, log uploading interval, which is 1 hour by default, range: [1,24],unit: hour-->
</uploadInterval>
</LogServer>
F.255 XML_LogServerCap
XML message about log server capability
<LogServerCap version="2.0" xmlns="[Link]
<enabled opt="true,false"></enabled>
<addressingFormatType opt="ipaddress,hostname">
<!--required, xs:string,"ipaddress,hostname"-->
</addressingFormatType>
<hostName min="" max="">
<!--dependent, xs:string-->
</hostName>
<ipAddress min="" max=""><!--dep, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dep, xs:string--></ipv6Address>
<portNo min="" max=""><!--opt, xs:integer--></portNo>
<transmissionEncryption opt="true,false">
<!--optional, xs:boolean, whether to enable transmission encryption: "true"-yes, "false"-no (default). If this field is
not supported, the default encryption method is TLS-->
</transmissionEncryption>
<checkCertificate opt="true,false">
<!--optional, xs:boolean,whether to enable checking certificates-->
</checkCertificate>
<uploadInterval min="1" max="24" def="1">
<!--optional, xs:integer, log uploading interval, which is 1 hour by default, range: [1,24],unit: hour-->
</uploadInterval>
</LogServerCap>
F.256 XML_PrivacyMaskRegion
PrivacyMaskRegion message in XML format
<PrivacyMaskRegion version="2.0" xmlns="[Link]
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<RegionCoordinatesList><!--req-->
<RegionCoordinates><!--req-->
<positionX><!--req, xs: integer; coordinate--></positionX>
1241
Device Network SDK (General) Developer Guide
F.257 XML_MasterSlaveTrackingCap
MasterSlaveTrackingCap capability message in XML format
<MasterSlaveTrackingCap version="2.0" xmlns="[Link]
<isSupportSlaveCameraCfg>
<!--optional, xs:boolean, whether to support PTZ camera configuration-->
</isSupportSlaveCameraCfg>
<isSupportSlaveCameraStatus>
<!--optional, xs:boolean, whether to support PTZ camera status configuration-->
</isSupportSlaveCameraStatus>
<isSupportSlaveCameraTrackingRatio>
<!--optional, xs:boolean, whether to support PTZ camera zoom ratio configuration-->
</isSupportSlaveCameraTrackingRatio>
<isSupportSlaveCameraTracking>
<!--optional, xs:boolean, whether to support PTZ camera tracking-->
</isSupportSlaveCameraTracking>
<isSupportLinkedTracking>
<!--optional, xs:boolean, whether device supports advanced parameters configuration of linked tracking (related
URI: /ISAPI/MasterSlaveTracking/linkedTracking?format=json)-->
</isSupportLinkedTracking>
</MasterSlaveTrackingCap>
F.258 XML_MaxElevation
MaxElevation message in XML format
<MaxElevation version="1.0" xmlns="[Link]
<mElevation><!--req, xs:integer, the lower limit of max. tilt-angle--></mElevation>
</MaxElevation>
F.259 XML_MountingScenario
MountingScenario message in XML format
<MountingScenario version="2.0" xmlns="[Link]
<mode>
1242
Device Network SDK (General) Developer Guide
<!--req, xs:string,
"indoor,outdoor,day,night,morning,nightfall,mode1,mode2,mode3,mode4,highway,road2,faceSnap,backlight,frontlight
", "lowIllumination"-low illumination, "backlight"-back light, "frontlight"-front light, "faceSnap"-face picture capture-->
</mode>
</MountingScenario>
F.260 XML_NetAppAbility
NetAppAbility capability message in XML format
<NetAppAbility version="2.0">
<NTP>
<intervalUnit><!--req, time interval unit: minute,hour--></intervalUnit>
<serverTest><!--required, whether it supports NTP server test--></serverTest>
</NTP>
<Net>
<NetworkInterface>
<networkInterfaceNum><!--req, number of network adapters--></networkInterfaceNum>
<NetworkInterfaceEntry>
<id></id>
<type opt="10Mbase-T,10MBase-T-full,100MBase-TX,100M-full,10M/100M/1000M-adapt,1000M-full"/>
<MTU min="500" max="9676"/>
<isSupportDNS>
<!--opt, whether supports enabling DNS manual settings: 1-support, the node will not appear if not support-->
</isSupportDNS>
<EthernetPortNo min="" max=""/>
<!--opt, ro, network interface number-->
</NetworkInterfaceEntry>
<NetworkInterfaceEntry>
<id></id>
<type opt="10Mbase-T,10MBase-T-full,100MBase-TX,100M-full,10M/100M/1000M-adapt,1000M-full"/>
<MTU min="500" max="9676"/>
<isSupportDNS>
<!--opt, whether to support enabling DNS manual settings: 1- support, the node will not appear if not support--
>
</isSupportDNS>
<EthernetPortNo min="" max=""/><!--opt,ro,network interface number-->
</NetworkInterfaceEntry>
</NetworkInterface>
<multicastIpAddr opt="IPV4,IPV6"/><!--req,multicast address type-->
</Net>
<Email>
<receiverNum>3</receiverNum><!--req,the count of recipients-->
<emailTest>true</emailTest><!--req,e-mail test-->
<enableStartTLS>true</enableStartTLS>
<!--opt,email supports enabling TSLTSL-->
<emailTestWithParam><!--required, whether it supports e-mail test with parameters--></emailTestWithParam>
<enableTSL><!--required, whether it supports encrypting the e-mail by TSL--></ enableTSL >
</Email>
<Bonjour>
1243
Device Network SDK (General) Developer Guide
1244
Device Network SDK (General) Developer Guide
1245
Device Network SDK (General) Developer Guide
<deviceStatus opt="offline,online"/>
<!--req, device registration status-->
<deviceIdLength min="" max=""/>
<!--req, device ID length-->
<netWork opt="auto,wiredNetWorkFirst,wiredNetWork,3GNetWork"/>
<!--req, auto, wired network priority, wired network, 3G network-->
<deviceID
opt="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
/>
<!--req, characters supported by device ID-->
<addressType opt="IP/IPV6, domain"/>
<!--req, supported address type-->
<protocolVersion opt="v2.0, v4.0"/>
<!--opt,protocol version-->
</CmsParam>
</CMS>
<CloudStorage>
<enable opt="disable,enable"/>
<!--req, suppor cloud direct storage mode-->
<poolID min="" max=""/>
<userNameLen min="" max=""/>
<passwdLen min="" max=""/>
<poolInfo opt="postVideoPool,illegalVideoPool,vehicleDetection"/>
<!--req, number array 0 means checkpoint recoding pool, number array 1 means violation recording pool, number
array 2 means vehicle detection data pool (IPC/D)-->
<V2.0>
<enable opt="disable,enable"/>
<!--req, support cloud storage V2.0 protocol-->
<isSupportAccessKey>
<!--opt, xs:boolen, whether supports access key-->
</isSupportAccessKey>
<isSupportSecretKey>
<!--opt, xs:boolen, whether supports encryption key-->
</isSupportSecretKey>
<postPoolID min="0" max="4294967295">
<!--opt, xs:integer-->
</postPoolID>
<accessKeyLen min="1" max="64"/>
<!--dep, access key length, it is valid when isSupportAccessKey is true-->
<secretKeyLen min="1" max="64"/>
<!--dep, encryption key length, it is valid when isSupportSecretKey is true-->
<poolInfo opt="postVideoPool,illegalVideoPool,vehicleDetection"/>
<!--req array 0- video pool of monitoring point, array 1- video pool of traffic violation, array 2- data pool of vehicle
detection (IPC/IPD)-->
</V2.0>
<Test>
<serverIpv4>true</serverIpv4>
<!--support IPV4-->
<serverIpv6>true</serverIpv6>
<!--support IPV6-->
<serverPort min="" max=""/>
<!--platform port No.-->
1246
Device Network SDK (General) Developer Guide
1247
Device Network SDK (General) Developer Guide
1248
Device Network SDK (General) Developer Guide
Example
Enter an example to illustrate your reference here (optional).
F.261 XML_NetworkCap
NetworkCap capability message in XML format
<NetworkCap version="2.0" xmlns=“[Link]
<isSupportWireless>
<!--req, xs:boolean, whether it supports accessing via wireless network, "true"-yes, "false"-no-->
<isSupportWireless>
<isSupportWAN><!--optional, xs:boolean, whether it supports WAN--></isSupportWAN>
<isSupportPPPoE>
<!--req, xs:boolean, whether it supports PPPoE, "true"-yes, "false"-no-->
<isSupportPPPoE>
<isSupportBond>
<!--req, xs:boolean, whether it supports NIC bonding, "true"-yes, "false"-no-->
<isSupportBond>
<isSupport802_1x>
<!--req, xs:boolean, whether it supports 802_1x-->
</isSupport802_1x>
<isSupportNtp>
<!--optional, xs:boolean, whether it supports NTP-->
</ isSupportNtp>
<isSupportFtp>
<!--optional, xs:boolean, whether it supports FTP-->
</isSupportFtp>
<isSupportUpnp>
<!--optional, xs:boolean, whether it supports UPnP-->
</isSupportUpnp>
<isSupportPNP>
<!--optional, xs:boolean, whether it supports PnP-->
</isSupportPNP>
<isSupportDdns>
<!--optional, xs:boolean, whether it supports DNS-->
</isSupportDdns>
<isSupportHttps>
<!--optional, xs:boolean, whether it supports HTTPS-->
</isSupportHttps>
<SnmpCap><!--optional, whether it supports SNMP-->
<isSupport><!--req, xs:boolean--></isSupport>
</SnmpCap>
<isSupportExtNetCfg>
<!--optional, xs:boolean, whether it supports configuring extended network parameters-->
</isSupportExtNetCfg>
<isSupportIPFilter>
<!--optional, xs:boolean, whether it supports filtering IP address-->
</isSupportIPFilter>
<isSupportSSH opt="true"><!--optional, xs:boolean, whether it supports SSH--></isSupportSSH>
<isSupportNetPreviewStrategy><!--optional, xs:boolean--></isSupportNetPreviewStrategy>
1249
Device Network SDK (General) Developer Guide
<isSupportEZVIZ>
<!--optional, xs:boolean, whether it supports Hik-Connect-->
</isSupportEZVIZ>
<isSupportEhome>
<!--optional, xs:boolean, whether it supports EHome (ISUP) protocol-->
</isSupportEhome>
<isSupportWirelessServer>
<!--optional, xs:boolean, whether it supports Wi-Fi hotspot-->
</isSupportWirelessServer>
<isSupportWPS><!--optional, xs:boolean, whether it supports (WPS) Wi-Fi Protected Setup--></isSupportWPS>
<isWirelessMutexWithWirelessServer><!--optional, xs:boolean, whether it supports configuring the wireless access
to be mutually exclusive with the wireless service--></isWirelessMutexWithWirelessServer>
<isSupportWirelessDial>
<!--optional, xs:boolean, whether it supports wireless dial configuration-->
</isSupportWirelessDial>
<WPS><!--optional, Wi-Fi Protected Setup configuration-->
<NetworkInterfaceList size="2">
<NetworkInterface>
<id><!--req, xs:string, NIC ID--></id>
<enabled><!--req, xs:boolean, whether the NIC is enabled--></enabled>
<isSupportAutoConnect><!--optional, xs:boolean--></isSupportAutoConnect>
<isSupportDevicePinCode>
<!--optional, xs:boolean, whether it supports device PIN code-->
</isSupportDevicePinCode>
<isSupportDevicePinCodeUpdate>
<!--optional, xs:boolean, whether it supports updating device PIN code-->
</isSupportDevicePinCodeUpdate>
<ApPinCode><!--opt-->
<ssid min="" max="">
<!--optional, xs:string, maximum and minimum SSID length that can be returned by device-->
</ssid>
<pinCode min="" max="">
<!--optional, xs:string, maximum and minimum PIN code length that can be returned by device-->
</pinCode>
</ApPinCode>
</NetworkInterface>
</NetworkInterfaceList>
</WPS>
<isSupportMACFilter>
<!--optional, xs:boolean, whether it supports filtering MAC address-->
</isSupportMACFilter>
<verificationCode max="">
<!--optional, xs:string, the maximum length of verificationCode that can be returned by device-->
</verificationCode>
<WPSCap><!--opt-->
<isSupport><!--req, xs: boolean--></isSupport>
<isSupportAutoConnect><!--req, xs: boolean--></isSupportAutoConnect>
</WPSCap>
<NetWorkMode>
<workMode><!--optional, xs:string, network mode: "close,wifi,wifiAp"--></workMode>
</NetWorkMode>
<VerificationCodeModification><!--optional, xs:string, whether the verification code can be edited by the admin
1250
Device Network SDK (General) Developer Guide
user-->
<verificationCodeType opt="normal,empty"></verificationCodeType>
<isSupportDeclarationURL><!--optional, xs:boolean, whether it supports URL declared by the service--></
isSupportDeclarationURL>
<isSupportPrivacyPolicyURL><!--optional, xs:boolean, whether it supports the privacy policy URL--></
isSupportPrivacyPolicyURL>
<verificationCodeModify opt="true,false">
<!--optional, whether the verification code is edited: "true"-yes, "false"-no, no return-not support-->
</verificationCodeModify>
<Hyperlinks><!--opt-->
<declarationURL><!--optional, xs:string--></declarationURL>
<privacyPolicyURL><!--optional, xs:string--></privacyPolicyURL>
</Hyperlinks>
<isSupportVerificationCodeCheck>
<!--optional, xs: boolean, whether it supports verifying and configuring the verification code, true-yes, if this node
is not returned or the value of the returned node is false, it indicates that not support-->
</isSupportVerificationCodeCheck>
<isSupportOldVerificationCode><!--optional, xs:boolean, whether it supports old EZVIZ password configuration. The
old password contains six uppercase letters--></isSupportOldVerificationCode>
</VerificationCodeModification>
<EZVIZSecretKey>
<!--optional, whether it supports capability of editing verification code for Hik-Connect-->
<offlineStatus>
<!--ro,dep,xs:string; it is valid when registerStatus values "false", device offline status, opt="secretKeyInvalid"-
invalid verification code-->
</offlineStatus>
<secretKey min="0" max="64"><!--optional, xs:string, verification code for Hik-Connect--></secretKey>
</EZVIZSecretKey>
<isSupportplatformAccess><!--optional, xs:boolean, capability of accessing the platform, whether it supports filtering
IP addresses that access to the platform--></isSupportplatformAccess>
<isSupportIntegrate><!--optional, xs:boolean--></isSupportIntegrate>
<isSupportIntelligentBoost><!--optional, xs:boolean, whether it supports bandwidth adaption--></
isSupportIntelligentBoost>
<isSupportWebSocket><!--optional, xs:boolean--></isSupportWebSocket>
<isSupportWebSocketS><!--optional, xs:boolean--></isSupportWebSocketS>
<isSupportHostName>
<!--optional, xs:boolean, whether it supports host name, related URI: /ISAPI/System/Network/interfaces/<ID>/
hostName/capabilities?format=json-->
</isSupportHostName>
<isSupportResourceStatistics><!--optional, xs:boolean, whether supports network resource information--></
isSupportResourceStatistics>
<isSupportBandwidthLimit><!--optional, xs:boolean--></isSupportBandwidthLimit>
<isSupportPOEPortsDisableServer><!--optional, xs:boolean--></isSupportPOEPortsDisableServer>
<isSupportPOEConfiguration><!--optional, xs:boolean--></isSupportPOEConfiguration>
<Adaption>
<streamType opt="0,1,2,3,4,5,7,8,9,10">
<!--stream types that support network self-adaptive during live view: 0-main stream, 1-sub-stream, 2-third stream,
3-virtual stream, 4-stream 5, 5-stream 6, 7-stream 7, 8-stream 8, …, and so on-->
</streamType>
<isSupportPlayback><!--optional, xs: boolean, whether it supports self-adaptive during playback--></
isSupportPlayback>
</Adaption>
1251
Device Network SDK (General) Developer Guide
<isSupportVideoImgDB><!--optional, xs:boolean, whether it supports configuring the image and video library--></
isSupportVideoImgDB>
<isSupportEventDataOverWebSocket opt="true,false"><!--optional, xs:boolean, whether it supports uploading
events via WebSocket--></isSupportEventDataOverWebSocket>
<isSupportDynamicHostName><!--optional, xs:boolean, whether it supports configuring dynamic domain name--></
isSupportDynamicHostName>
<isSupportWifiProbe><!--optional, xs:boolean, whether it supports Wi-Fi probe configuration--></
isSupportWifiProbe>
<isSupportRFIDData><!--optional, xs:boolean, whether it supports configuration of RFID data collection--></
isSupportRFIDData>
<isSupportwifiProbeSSID><!--optional, xs:boolean, whether it supports SSID configuration of Wi-Fi probe--></
isSupportwifiProbeSSID>
<isSupportPOEPortsDisableAdaptiveServer><!--optional, xs:boolean--></isSupportPOEPortsDisableAdaptiveServer>
<isSupportGetLinkSocketIP><!--optional, xs:boolean, whether it supports get the current linked SocketIP--></
isSupportGetLinkSocketIP>
<isSupportTrafficMonitor><!--optional, xs:boolean, whether it supports traffic monitoring of 4G network card--> </
isSupportTrafficMonitor>
<isSupportDMSAuthInfo><!--optional, xs:boolean, whether it supports DMS authentication information
management--></isSupportDMSAuthInfo>
<isSupportWiredandWirelessTrafficMonitor><!--optional, xs:boolean, whether it supports monitoring traffic of wired
NIC and wireless NIC--></isSupportWiredandWirelessTrafficMonitor>
<isSupport4G><!--optional, xs:boolean, whether it supports 4G module--></isSupport4G>
<isSupport4GConfig><!--optional, xs:boolean, whether it supports 4G configuration--></isSupport4GConfig>
<isSupportSipTransmit><!--optional, xs:boolean, whether it supports configuring SIP transmission parameters--></
isSupportSipTransmit>
<isSupportWifiCascade><!--optional, xs:boolean, whether it supports enabling automatic cascading of device Wi-Fi,
related URI: /ISAPI/System/Network/wifiCascade?format=json --></isSupportWifiCascade>
<isSupportRelativeInfo><!--optional, xs:boolean, whether it supports getting information of connected devices,
related URI: /ISAPI/System/Network/wifiCascade/relativeInfo?format=json--> </isSupportRelativeInfo>
<isSupportEZVIZUnbind><!--optional, xs:boolean, whether it supports unbinding devices from the Hik-Connect
account, related URI: /ISAPI/System/Network/EZVIZ/unbind?format=json--></isSupportEZVIZUnbind>
<isSupportEZVIZQRcode><!--optional, xs:boolean, whether it supports getting the Hik-Connect QR code, related URI: /
ISAPI/System/Network/EZVIZ/QRCode?format=json--></isSupportEZVIZQRcode>
<isSupportEZVIZTiming><!--optional, xs:boolean, whether the device supports timing of Hik-Connect (related URI: /
ISAPI/System/Network/EZVIZ)--></isSupportEZVIZTiming>
</NetworkCap>
F.262 XML_networkExtension
networkExtension message in XML format
<networkExtension version="2.0" xmlns="[Link]
<multicastAddress><!--opt-->
<ipVersion><!--req, xs: string, "v4,v6,dual"--></ipVersion>
<ipAddress><!--dep, xs: string--></ipAddress>
<ipv6Address><!--dep, xs: string--></ipv6Address>
</multicastAddress>
<enVirtualHost><!--opt, xs: Boolean--></enVirtualHost>
</networkExtension>
1252
Device Network SDK (General) Developer Guide
F.263 XML_NetworkSetting
NetworkSetting message in XML format
<NetworkSetting version="2.0">
/* Wi-Fi capability description*/
<WirelessSetting>
<InterfaceMode>
/*0-auto-switch, 1-wired mode */
<Range>0,1</Range>
</InterfaceMode>
<NetworkMode> //network model
/*0 -managed; 1-ad-hoc*/
<Range>0,1</Range>
</NetworkMode>
<NotSupportAutoDNS>true</NotSupportAutoDNS><!--req->
<SecurityMode>//security mode
<Range>0,1,2,3,4,5</Range> /* 0-not encrypted; 1-wep; 2-wpa-psk; 3 wpa-enterprise; 4 wpa2-psk; 5 wpa2-
enterprise*/
<WEP>//WEP encrypt mode
<AuthenticationType>//WEP authentication type
//0-open, 1-share
<Range>0,1</Range>
</AuthenticationType>
<WEPKeyLength>//WEP authentication key size
//0-64 bit, 1-128 bit; 2-152 bit
<Range>0,1,2</Range>
</WEPKeyLength>
<WEPKeyType>// WEP private key type
//0-hexadecimal, 1-ASCII code
<Range>0,1</Range>
</WEPKeyType>
</WEP>
<WPA_PSK>//WAP_PSK authentication type
<WPAKeyLength>
<Min>8</Min>
<Max>63</Max>
</WPAKeyLength>
<WPAEncryptType>//WAP_PSK encrypt mode
//0-AES, 1-TKIP
<Range>0,1</Range>
</WPAEncryptType>
</WPA_PSK>
<WPA_enterprise>
<WPAEncryptType>
//0-AES, 1-TKIP
<Range>0,1</Range>
</WPAEncryptType>
<AuthType><!-- req, authentication type-->
<Range>0,1,2</Range><!-- req, authentication types: 0-EAP_TTLS, 1-EAP_PEAP, 2-EAP_TLS-->
</AuthType>
1253
Device Network SDK (General) Developer Guide
<EAP_TTLS>
<EapolVersion><!-- req, EAPOL version: 0-version 1, 1-version 2-->
<Range>0,1</Range>
</EapolVersion>
<InterAuthType><!-- req, internal authentication methods: 0-GTC, 1-MD5, 2-MSCHAPV2-->
<Range>0,1</Range>
</InterAuthType>
<AnonyIdentityLength><!-- req, anonymous identity-->
<Min>0</Min>
<Max>32</Max>
</AnonyIdentityLength>
<UserNameLength><!-- req, user name-->
<Min>1</Min>
<Max>32</Max>
</UserNameLength>
<PasswordLength><!-- req, password-->
<Min>1</Min>
<Max>32</Max>
</PasswordLength>
<Certificate>
<Certtype>
<Range>0,1,2</Range><!-- req, certificate file types: 0-CA,1-Certificate, 2-key file--->
</Certtype>
<FileType>
<Range>0,1</Range><!-- req, certificate file types: 0-PEM,1-PFX--->
</FileType>
</Certificate>
</EAP_TTLS>
<EAP_PEAP>
<EapolVersion><!-- req,EAPOL version: 0-version 1, 1-version 2-->
<Range>0,1</Range>
</EapolVersion>
<InterAuthType><!-- req, internal authentication methods: 0-GTC, 1-MD5, 2-MSCHAPV2-->
<Range>0,1,2</Range>
</InterAuthType>
<PeapVersion><!-- req,PEAP version,0-version 0,1-version 1-->
<Range>0,1</Range>
</PeapVersion>
<PeapLabel><!-- req, PEAP tag: 0-old tag,1-new tag-->
<Range>0,1</Range>
</PeapLabel>
<AnonyIdentityLength><!-- req, anonymous identity-->
<Min>0</Min>
<Max>32</Max>
</AnonyIdentityLength>
<UserNameLength><!-- req, user name-->
<Min>1</Min>
<Max>32</Max>
</UserNameLength>
<PasswordLength><!-- req, password-->
<Min>1</Min>
<Max>32</Max>
1254
Device Network SDK (General) Developer Guide
</PasswordLength>
<Certificate>
<Certtype>
<Range>0,1,2</Range><!-- req, certificate types: 0-CA,1-Certificate, 2-key file-->
</Certtype>
<FileType>
<Range>0,1</Range><!-- req, certificate file types: 0-PEM,1-PFX-->
</FileType>
</Certificate>
</EAP_PEAP>
<EAP_TLS>
<EapolVersion><!-- req, EAPOL version: 0-version 1,1-version 2-->
<Range>0,1</Range>
</EapolVersion>
<IdentityLength><!-- req, identity-->
<Min>1</Min>
<Max>32</Max>
</IdentityLength>
<PrivateKeyPswdLength><!-- req, private key password-->
<Min>1</Min>
<Max>32</Max>
</PrivateKeyPswdLength>
<Certificate>
<Certtype>
<Range>0,1,2</Range><!-- req,certificate types: 0-CA,1-Certificate,2-key file--->
</Certtype>
<FileType>
<Range>0,1</Range><!-- req, certificate file types: 0-PEM, 1-PFX--->
</FileType>
</Certificate>
</EAP_TLS>
</WPA_enterprise>
</SecurityMode>
<closeWifi opt="true,false"/><!--opt,whether to support disabling Wi-Fi: true-support,false-not support-->
<mutexAbility opt="wirelessServer"/><!-- opt,it is mutually exclusive with Wi-Fi hotspots-->
</WirelessSetting>
<WPS>
<Enabled>
<Range>0,1</Range><!-- req,whether to enable WPS: 0-disable, 1-enable-->
<Default>1</Default>
</Enabled>
<WPSConnect>
<Range>0,1,2,3</Range><!-- req,WPS connection methods: 0-PBC, 1-AP PIN, 2-device PIN code-->
</WPSConnect>
<isNotSupportUpdatePinCode><!--opt,xs:boolen,"true"-"NET_DVR_GET_DEVICE_PIN" is invalid--></
isNotSupportUpdatePinCode>
</WPS>
<MessageConfig>
<enable opt="true,false"/>
<whiteListNum>8<whiteListNum>
<PhoneCfg>
<phoneNumLen>32</phoneNumLen>
1255
Device Network SDK (General) Developer Guide
F.264 XML_OnlineUpgradeCap
OnlineUpgradeCap message in XML format
<OnlineUpgradeCap version="2.0" xmlns="[Link]
<firmwareNum max="" />
<!--req, the number of online upgrade packages, including full package and incremental package. Full package is
used for upgrading whole firmware, while incremental package is used for upgrade certain unit, such as openssl
library-->
<firmwareCode max="" />
<!--req, the maximum length of firmware code-->
<firmwareVersion max="" />
<!--req, the maximum length of version-->
<firmwareCodeNumOnce max="" />
<!--req, the maximum number of firmware codes can be obtained each time-->
<upgradePercent min="" max="" />
<!--req-->
<Version>
1256
Device Network SDK (General) Developer Guide
F.265 XML_OnlineUpgradeServer
OnlineUpgradeServer message in XML format
<OnlineUpgradeServer version="2.0" xmlns="[Link]
<connectStatus><!--ro, req xs:boolean, online upgrade server connection status--></connectStatus>
</OnlineUpgradeServer>
F.266 XML_OnlineUpgradeStatus
OnlineUpgradeStatus message in XML format
<OnlineUpgradeStatus version="2.0" xmlns="[Link]
<status>
<!--ro, req, xs:string,
"notUpgrade,upgrading,successful,languageMismatch,writeFlashError,packageTypeMismatch,packageVersionMismatc
h,netUnreachable,unknownError"-->
</status>
1257
Device Network SDK (General) Developer Guide
F.267 XML_OnlineUpgradeVersion
OnlineUpgradeVersion message in XML format
<OnlineUpgradeVersion version="2.0" xmlns="[Link]
<newVersionAvailable><!--ro,req,xs:boolean, whether there is new verion of upgrade package--></
newVersionAvailable>
<newVersion><!--ro, dep,xs:string, new version No.--></newVersion>
<changeLog><!--ro, dep,xs:string, update content of new version--></changeLog>
</OnlineUpgradeVersion>
F.268 XML_ParkAction
ParkAction message in XML format
<ParkAction version="2.0" xmlns="[Link]
<enabled><!--required, xs: boolean, whether to enable parking--></enabled>
<Parktime><!--req, xs:integer, parking time, unit: second--></Parktime>
<Action> <!--parking actions-->
<ActionType opt="autoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,areaScan"><!--required,
xs:string, action type: "atuoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,areaScan"--></
ActionType>
<ActionNum><!--required, xs:integer, parking No. This node will be used when <ActionType> is "patrol", "pattern",
or "preset". For other parking action types, this node should be set to 0--></ActionNum>
</Action>
</ParkAction>
F.269 XML_POSAbility
XML message about POS capability
<?xml version="1.0" encoding="utf-8"?>
<POSAbility>
<FilterRule>
<maxFilterNum><!--required, maximum number of rules can be configured--></maxFilterNum>
<enable opt ="true,false"/><!--required, whether to enable rule-->
<characterSetType opt="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18"/>
<!--required, character set types supported by device-->
<protocalType opt="Generic,AVE VSI-ADD,AVE Vnet,EPSON,NUCLEUS"/>
<Generic><!--required, Generic protocol parameters-->
<caseSensitive opt="true,false"/><!--required, whether it is case sensitive-->
<GenericStartCond>
<exclusive opt="true,false"/>
<!--required, whether it contains the flag; currently, only the start flag is supported, it can control the start and
1258
Device Network SDK (General) Developer Guide
end-->
<maxSignalDataLen><!--required, maximum length of flag--></maxSignalDataLen>
<supportAnyChar opt="true,false"/>
<!--required, whether it supports any character: "true"-yes, "false"-no-->
<supportHex opt="true,false"/>
<!--required, whether it supports hexadecimal: "true"-yes, "false"-no-->
</GenericStartCond>
<GenericEndCond>
<exclusive opt="true,false"/>
<!--required, whether it contains the flag-->
<maxSignalDataLen><!--required, maximum length of flag--></maxSignalDataLen>
<moreLine min="0" max="4"/>
<!--required, continue to search more lines after the transaction-->
<supportHex opt="true,false"/>
<!--required, whether it supports hexadecimal: "true"-yes, "false"-no-->
</GenericEndCond>
<GenericLineSpaceCond>
<maxSignalDataLen><!--required, maximum length of flag--></maxSignalDataLen>
<supportHex opt="true,false"/>
<!--required, whether it supports hexadecimal: "true"-yes, "false"-no-->
</GenericLineSpaceCond>
<GenericIgnoreCond>
<maxSignalDataLen><!--required, maximum length of flag--></maxSignalDataLen>
</GenericIgnoreCond>
</Generic>
<AVE>
<!--required, AVE protocol parameters-->
<posAddr min="0" max="10"/>
<!--required, range of POS address No.-->
</AVE>
<NUCLEUS>
<!--optional, NUCLEUS protocol parameters-->
<employeeNo min="" max=""/>
<!--optional, employee No.-->
<terminalNo min="" max=""/>
<!--optional, POS No.-->
<shiftNo min="" max=""/>
<!--optional, shift No.-->
</NUCLEUS>
</FilterRule>
<ConnectMode>
<!--required, connection mode capability-->
<enable opt="true,false"/><!--required, whether its supports configuring connection mode-->
<connectMode opt="TCPMonitor,TCPRecv,Serial232,UDPMonitor,Sniff,MultiCast,USBToRS232"/>
<!--required, "TCPMonitor"-listening mode (TCP), "TCPRecv"-receive via TCP network, "Serial"-connect with serial
port, "UDPMonitor"-listening mode (UDP), "Sniff"-network sniffer, "MultiCast", "USBToRS232"-convert USB to RS-232--
>
<TCPMonitor>
<!--required, network listening in TCP mode-->
<port min="0" max="65535"/>
<!--required, available port number range-->
<restrictRemoteIPv4 opt="true,false"/>
1259
Device Network SDK (General) Developer Guide
1260
Device Network SDK (General) Developer Guide
F.270 XML_PrivacyMaskRegion
PrivacyMaskRegion message in XML format
<PrivacyMaskRegion version="2.0" xmlns="[Link]
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<RegionCoordinatesList><!--req-->
<RegionCoordinates><!--req-->
<positionX><!--req, xs: integer; coordinate--></positionX>
<positionY><!--req, xs: integer; coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
<privacymaskName><!--opt, xs: string--></privacymaskName>
<maskType>
<!--opt, xs:string "gray,red,yellow,blue,orange,green,transparent,half-transparent,mosaic,black"-->
</maskType>
<zoomdoorlimit><!--opt, xs: integer, the value is between 10 and 1000--></zoomdoorlimit>
</PrivacyMaskRegion>
F.271 XML_PTZAux
PTZAux message in XML format
<?xml version="1.0" encoding="utf-8"?>
<PTZAux version="2.0" xmlns="[Link]
<id><!--req,xs:string,id--></id>
<type><!--req, ro, xs:string,"LIGHT,WIPER,FAN,HEATER",auxiliary type: light, wiper, fan, heater--></type>
<status><!--req, xs:string,"on,off", auxiliary status: turned on, turned off--></status>
</PTZAux>
F.272 XML_PTZChannel
PTZChannel message in XML format
1261
Device Network SDK (General) Developer Guide
F.273 XML_PTZChanelCap
XML message about PTZ channel capability
<PTZChanelCap version="2.0" xmlns="[Link]
<AbsolutePanTiltPositionSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</AbsolutePanTiltPositionSpace>
<AbsoluteZoomPositionSpace><!--optional-->
<ZRange/><!--required-->
</AbsoluteZoomPositionSpace>
<RelativePanTiltSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</RelativePanTiltSpace>
<RelativeZoomSpace><!--optional-->
<ZRange/><!--required-->
</RelativeZoomSpace>
1262
Device Network SDK (General) Developer Guide
<ContinuousPanTiltSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</ContinuousPanTiltSpace>
<ContinuousZoomSpace><!--optional-->
<ZRange/><!--required-->
</ContinuousZoomSpace>
<MomentaryPanTiltSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</MomentaryPanTiltSpace>
<MomentaryZoomSpace><!--optional-->
<ZRange/><!--required-->
</MomentaryZoomSpace>
<homePostionSupport><!--required, xs:boolean--></homePostionSupport>
<maxPresetNum>
<!--required, xs:integer, max. supported preset number-->
</maxPresetNum>
<maxPatrolNum>
<!--required,xs:integer, max. supported patrol number-->
</maxPatrolNum>
<maxPatternNum>
<!--required,xs:integer, max. supported pattern number-->
</maxPatternNum>
<maxLimitesNum>
<!--required,xs:integer, max. supported limit number-->
</maxLimitesNum>
<maxTimeTaskNum>
<!--required,xs:integer, max. supported timing task number-->
</maxTimeTaskNum>
<serialNumber min="1" max="4">
<!--configuration capability of RS-485 serial port supported by current channel-->
</serialNumber>
<controlProtocol>
<!--optional, xs:string,"pelco-d,modbus-RTU,modbus-ASCII", supported PTZ control protocol-->
</controlProtocol>
<controlAddress>
<!--optional, xs:string, 0-255, address-->
</controlAddress>
<PTZRs485Para>
<!--optional, PTZ RS485 parameters capability-->
<baudRate>
<!--required, xs:integer, baud rate-->
</baudRate>
<dataBits>
<!--required, xs:integer, data bit-->
</dataBits>
<parityType>
<!--required, xs:string, "none,even,odd,mark,space", verification type-->
</parityType>
<stopBits>
<!--required, xs:string, "1,1.5,2" , stop bit-->
1263
Device Network SDK (General) Developer Guide
</stopBits>
<flowCtrl>
<!--required, xs:string, "none, software, hardware", stream control type-->
</flowCtrl>
</PTZRs485Para>
<PresetNameCap>
<!--optional, preset name capability-->
<presetNameSupport>
<!--optional,xs:boolean, whether to support preset name?-->
</presetNameSupport>
<maxPresetNameLen>
<!--dependent,xs:integer, preset name length-->
</maxPresetNameLen>
<specialNo/>
<!--dependent, special preset-->
</PresetNameCap>
<isSupportPosition3D>
<!--optional, xs:boolean, whether to support 3D position-->
</isSupportPosition3D>
<isSupportManualTrack>
<!--optional,xs:boolean, whether to support manual tracking position(NET_DVR_PTZ_MANUALTRACE)?-->
</isSupportManualTrack>
<manualControlSpeed opt="compatible,pedestrian,nonMotorVehicle,motorVehicle,selfadaptive">
<!--optional,xs:string, manual control speed: "compatible"-compatible mode, "pedestrian"-pedestrian,
"nonMotorVehicle"-non-motor vehicle, "motorVehicle"-motor vehicle, "selfadaptive"-self adaptive-->
</manualControlSpeed>
<isSpportPtzlimiteds>
<!--optional,xs:boolean, whether to support PTZ limitation-->
</isSpportPtzlimiteds>
<ParkAction/><!--see details in the message XML_ParkAction-->
<TimeTaskList/><!--see details in the message XML_TimeTaskList-->
<Thermometry>
<maxThermometryPresetNum>
<!--optional, xs:integer-->
</maxThermometryPresetNum>
</Thermometry>
<isSpportPtzEagleFocusing>
<!--optional, xs:boolean-->
</isSpportPtzEagleFocusing>
<TrackingRatio/>
<!--optional, tracking zoom ratio-->
<coefficient min="1" max="10" default="5">
<!--optional, xs:integer, zoom ratio-->
</coefficient>
</TrackingRatio>
<TrackInitPosition>
<!--optional, tracking initial position-->
<slaveCameraID>
<!--optional, xs:integer, slave camera ID, 1..4 -->
</slaveCameraID>
</TrackInitPosition>
<isSupportAbsoluteEx><!--optional,xs:boolean, whether to support extended capability for PTZ absolute position--></
1264
Device Network SDK (General) Developer Guide
isSupportAbsoluteEx>
<isSupportCruise><!--optional,xs:boolean, whether to support auto-switch mode--></isSupportCruise>
<isSupportAreaScan><!--optional,xs:boolean, whether to support area scan--></isSupportAreaScan>
<isSupportFaceSnap3D><!--optional, xs: boolean--></isSupportFaceSnap3D>
<ManualPTZLockCap><!--optional, PTZ manual locking capability-->
<lockStatus opt="lock,unlock"><!--optional, xs:string, PTZ locking status, the default status is locked--></lockStatus>
<unLockTime><!--optional, xs:integer, remaining unlocking time duration (the automatic locking time duration is
300 s in the unlocked status*--></unLockTime>
</ManualPTZLockCap>
<isSupportOnepushSynchronizeFOV>
<!--optional, xs:boolean, whether supports one-touch synchronize FOV, return true for supports, and no return
indicates not support-->
</isSupportOnepushSynchronizeFOV>
<isSupportLensCorrection>
<!--optional, xs:boolean, whether supports lens correction, return true for supports, and no return indicates not
support-->
</isSupportLensCorrection>
<isSupportPTZTrackStatus>
<!--optional, xs:boolean, whether to support getting PTZ tracking linkage status-->
</isSupportPTZTrackStatus>
<ptzctrlSupportSerialNumber opt="1,3"><!--optional, xs:string, RS-485 serial port range supported in PTZ control
mode--></ptzctrlSupportSerialNumber>
<LFPositionCap><!--optional, capability of calibrating position for smart linkage-->
<elevation><!--optional, xs:integer, range: [-900,2700]--></elevation>
<azimuth><!--optional, xs:integer, range: [0,3600]--></azimuth>
<absoluteZoom><!--optional, xs:integer, range: [1,1000]--></absoluteZoom>
</LFPositionCap>
<pqrsZoom min="" max=""/><!--optional, xs: integer, zooming coordinates of Sony zoom camera module-->
<mnstFocus min="" max=""/><!--optional, xs: integer, focus coordinates of Sony zoom camera module-->
<isSupportPTZSave>
<!--optional, xs: boolean, whether supports saving the current PTZ position information-->
</isSupportPTZSave>
<isSupportPTZSaveGet>
<!--optional, xs:boolean, whether to support saving the PTZ position information of the current channel by GET
method-->
</isSupportPTZSaveGet>
<isSupportAutoGotoCfg>
<!--optional, xs: boolean, whether supports automatically restoring to saved PTZ position: "true"-yes, this node is
not returned-no-->
<isSupportAutoGotoCfg>
<lockTime><!--optional, xs:integer, PTZ locking time, unit: second--></lockTime>
<isSupportPTZCtrlStatus><!--optional, xs:boolean, whether it supports getting the absolute PTZ position of the
current channel: "true"-yes, "false"-no. If this node is not returned, it does not necessarily indicate that the device
does not support this function--></isSupportPTZCtrlStatus>
<isSupportInitializationCtrl><!--optional, xs:boolean, whether it supports electric PTZ self-checking and control--></
isSupportInitializationCtrl>
<isSupportComponentCtrl><!--optional, xs:boolean, whether it supports PTZ component control--></
isSupportComponentCtrl>
<DoubleMirror><!--optional-->
<enabled opt="true,fasle" def="false"><!--required, xs:boolean--></enabled>
</DoubleMirror>
<MoveAutoTracking><!--optional, moving object tracking-->
1265
Device Network SDK (General) Developer Guide
See Also
XML_ParkAction
XML_TimeTaskList
F.274 XML_PTZOSDDisplay
PTZOSDDisplay message in XML format
<PTZOSDDisplay version="2.0" xmlns="[Link]
<zoomlable><!--req, xs:string, "2sec, 5sec, 10sec, alwaysclose, alwaysopen"--></zoomlable>
<azimuth><!--req, xs:string, "2sec, 5sec, 10sec, alwaysclose, alwaysopen"--></azimuth>
<presetlable><!--req, xs:string, "2sec, 5sec, 10sec, alwaysclose, alwaysopen"--></presetlable>
<actionStatusDisplayEnabled><!--opt, xs:boolean, display status or not--></actionStatusDisplayEnabled>
</PTZOSDDisplay>
F.275 XML_RacmCap
XML message about device storage capability
<?xml version="1.0" encoding="utf-8"?>
<RacmCap version="1.0" xmlns="[Link]
<isSupportZeroChan>
<!--optional, xs:boolean, whether it supports channel-zero, "true"-yes, "false"-no-->
</isSupportZeroChan>
<inputProxyNums><!--optional, xs:integer, number of supported digital channels--></inputProxyNums>
<eSATANums><!--optional, xs:integer, number of supported eSATAs--></eSATANums>
<miniSASNums><!--optional, xs:integer, number of supported miniSATAs--></miniSASNums>
<nasNums><!--optional, xs:integer, number of supported NASs--></nasNums>
<ipSanNums><!--optional, xs:integer, number of supported IPSANs--></ipSanNums>
<isSupportRaid>
<!--optional, xs:boolean, whether it supports RAID, "true"-yes, "false"-no-->
</isSupportRaid>
<isSupportExtHdCfg>
1266
Device Network SDK (General) Developer Guide
1267
Device Network SDK (General) Developer Guide
<!--optional, xs:boolean, whether it supports synchronizing network camera's password, "true"-yes, "false"-no-->
</isSupportSyncIPCPassword>
<isSupportTransferIPC>
<!--optional, xs:boolean, whether it supports network camera passthrough function, "true"-yes, "false"-no-->
</isSupportTransferIPC>
<isSupportPOS><!--optional, xs:boolean, whether it supports POS, "true"-yes, "false"-no--></isSupportPOS>
<isSupportPassBackBasicCfg>
<!--optional, xs:boolean, whether it supports the ANR basic function of CVR, "true"-yes, "false"-no-->
</isSupportPassBackBasicCfg>
<PassBackTaskConfig><!--optional, task management function of ANR-->
<isSupportAddTask><!--optional, xs:boolean, whether it supports adding task, "true"-yes, "false"-no--></
isSupportAddTask>
<isSupportSearchTask><!--optional, xs:boolean, whether it supports task search, "true"-yes, "false"-no--></
isSupportSearchTask>
<isSupportControlTask><!--optional, xs:boolean, whether it supports task control, "true"-yes, "false"-no--></
isSupportControlTask>
<isSupportDeleteTask><!--optional, xs:boolean, whether it supports deleting task, "true"-yes, "false"-no--></
isSupportDeleteTask>
</PassBackTaskConfig>
<PassBackPlanConfig><!--optional, task plan of ANR-->
<isSupportAddPlan><!--optional, xs:boolean, whether it supports adding plan, "true"-yes, "false"-no--></
isSupportAddPlan>
<isSupportSearchPlan><!--optional, xs:boolean, whether it supports plan search, "true"-yes, "false"-no--></
isSupportSearchPlan>
<isSupportDeletePlan><!--optional, xs:boolean, whether it supports deleting plan, "true"-yes, "false"-no--></
isSupportDeletePlan>
</PassBackTaskConfig>
<IRAIDCap/><!--optional, network RAID-->
<isSupportStorageExtraInfo>
<!--optional, xs:boolean, whether it supports configuring storage additional information, "true"-yes, "false"-no-->
</isSupportStorageExtraInfo>
<isSupportRecordStatus><!--optional, xs:boolean--></isSupportRecordStatus>
<supportAIDTFSType opt="illegalParking,wrongdirection crosslane,vehicleexist,lanechange, turnround, evidence"/>
<!--optional, xs:string, event picture search conditions supported by both AID and TFS-->
<isSupportRacmChannelsCap><!--optional, xs:boolen--></isSupportRacmChannelsCap>
<LockCap/><!--optional, lock or unlock video-->
<isSupportForamtAll><!--optional, xs:boolean, "true,false"--></isSupportForamtAll>
<isSupportExtendCabinetCfg>
<!--optional, xs:boolean, whether it supports enclosure configuration-->
</isSupportExtendCabinetCfg>
<diskGroupNums><!--optional, xs:integer, number of supported HDD groups--></diskGroupNums>
<isSupportCountingSearchByUTC><!--optional, xs:boolean, whether it supports searching people counting results by
UTC time--></isSupportCountingSearchByUTC>
<isSupportPlaybackReverseByUTC><!--optional, xs:boolean, whether it supports reverse playback by UTC time--></
isSupportPlaybackReverseByUTC>
<isSupportWebPrivatePlaybackByUTC>
<!--optional, xs: boolean, whether it supports playback based on Web private protocol-->
</isSupportWebPrivatePlaybackByUTC >
<isSupportFindCommonFileByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching files-->
</isSupportFindCommonFileByUTC>
<isSupportFindEventFileByUTC><!--optional, xs: boolean, whether it supports extending the time zone for searching
1268
Device Network SDK (General) Developer Guide
files by event-->
</isSupportFindEventFileByUTC >
<isSupportSmartSearchRecordByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for VCA search-->
</isSupportSmartSearchRecordByUTC>
<isSupportMRDSearchByTimeZone>
<!--optional, xs: boolean, whether it supports extending the time zone for searching files by calendar-->
</isSupportMRDSearchByTimeZone>
<isSupportSearchRecordLabelByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching video tags-->
</isSupportSearchRecordLabelByUTC>
<isSupportSearchPictureByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching pictures-->
</isSupportSearchPictureByUTC>
<isSupportSmartSearchPictureByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching pictures with smart
information-->
</isSupportSmartSearchPictureByUTC>
<isSupportFindLogByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching log-->
</isSupportFindLogByUTC>
<isSupportUploadRecordByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for uploading files to cloud storage-->
</isSupportUploadRecordByUTC>
<isSupportPlaybackByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for playback by time and locating by time-->
</isSupportPlaybackByUTC>
<SecurityLog>
<isSupportSecurityLog><!--optional, boolean, whether it supports security log--></isSupportSecurityLog>
<isSupportLogServer><!--optional, boolean, whether it supports log server configuration--></isSupportLogServer>
<isSupportLogServerTest><!--optional, xs: boolean, whether it supports log server test--></isSupportLogServerTest>
<SecurityLogTypeList><!--required, xs: list, supported log type list-->
<SecurityLogType>
<primaryType><!--required, xs: string, major type--></primaryType>
<secondaryType optional=""><!--required, xs: string, minor type--></secondaryType>
</SecurityLogType>
</SecurityLogTypeList>
</SecurityLog>
<iSptInputProxyChanCap>
<!--optional, xs:boolean, whether it supports getting the capability of the digital channel-->
</iSptInputProxyChanCap>
<isSupportLogDataPackage>
<!--optional, xs:boolean, whether it supports exporting logs: "true, false"-->
</isSupportLogDataPackage>
<logSearchTimeSpanNums>
<!--optional, xs:integer, supported number of time periods for log search-->
</logSearchTimeSpanNums>
<isSupportManualRecord>
<!--optional, xs:boolean, whether the device supports manual recording-->
</isSupportManualRecord>
<isSupportRemark><!--optional, xs:boolean, whether it supports file remarks--></isSupportRemark>
<FileUpload><!--optional, upload file-->
1269
Device Network SDK (General) Developer Guide
F.276 XML_RecordAbility
RecordAbility message in XML format.
<xml version="1.0" encoding="utf-8">
<RecordAbility version="2.0"><!--req, video capability set description-->
<Label><!--opt,whether support video tag--></Label>
<CmdTriggerRecord><!--opt,whether support trigger video by command--></CmdTriggerRecord>
1270
Device Network SDK (General) Developer Guide
F.277 XML_ResponseStatus
XML message about response status
<ResponseStatus version="2.0" xmlns="[Link]
<requestURL>
<!--required, read-only, xs:string, request URL-->
</requestURL>
<statusCode>
<!--required, read-only, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid
1271
Device Network SDK (General) Developer Guide
Note
See Response Codes of Text Protocol for details about sub status codes and corresponding error
codes.
F.278 XML_RTSPCertificate
XML message about parameters of RTSP authentication mode
<RTSPCertificate xmlns="[Link] version="2.0" >
<certificateType>
<!--required, xs:string, authentication mode: digest (default), digest/basic-->
</certificateType>
<SecurityAlgorithm>
<!--dependent, authentication algorithm, it is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType>
<!--optional, xs:string, algorithm types: MD5, SHA256, MD5/SHA256-->
</algorithmType>
</SecurityAlgorithm>
</RTSPCertificate>
F.279 XML_RTSPCertificateCap
XML message about capability of RTSP authentication mode
<RTSPCertificateCap xmlns="[Link] version="2.0" >
<certificateType def="digest" opt="digest,digest/basic" >
<!--required, xs:string-->
</certificateType>
<SecurityAlgorithm>
<!--depend, authentication algorithm, it is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType opt="MD5,SHA256,MD5/SHA256" >
<!--optional, xs:string, algorithm type-->
</algorithmType>
</SecurityAlgorithm>
</RTSPCertificateCap>
1272
Device Network SDK (General) Developer Guide
F.280 XML_Schedule
Schedule message in XML format
<Schedule version="2.0" xmlns="[Link]
<id><!--required, xs:string, ID--></id>
<eventType>
<!--optional, xs:string, alarm/event types, see details in the "Remarks" below-->
</eventType>
<inputIOPortID><!--read-only, dependent, xs:string, alarm input No.--></inputIOPortID>
<outputIOPortID><!--read-only, dependent, xs:string, alarm output No.--></inputIOPortID>
<videoInputChannelID><!--read-only, dependent, xs:string, video input channel ID--></videoInputChannelID>
<TimeBlockList size="8"><!--required-->
<TimeBlock><!--list-->
<dayOfWeek>
<!--optional, xs:integer, day of the week based on ISO8601, "1"=Monday, ...-->
</dayOfWeek>
<TimeRange><!--required-->
<beginTime><!--required, xs:time, ISO8601 time--></beginTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
</TimeRange>
<CustomExtension>
<vehicleDetectSceneID>
<!--required, xs:interger-->
</vehicleDetectSceneID>
</CustomExtension>
</TimeBlock>
</TimeBlockList>
<HolidayBlockList><!--optional-->
<TimeBlock><!--list-->
<TimeRange><!--required-->
<beginTime><!--required, xs:time, ISO8601 time--></beginTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
</TimeRange>
</TimeBlock>
</HolidayBlockList>
</Schedule>
Remarks
The node <eventType> can be set to the following values: IO, VMD,videoloss, PIR,linedetection,
fielddetection, audioexception, facedetection, regionEntrance, regionExiting, loitering, group,
rapidMove, parking, unattendedBaggage,attendedBaggage, storageDetection, shipsDetection,
HUMANATTRIBUTE, humanAttribute, faceContrast, faceSnap, faceLib, whiteListFaceContrast,
personDensityDetection, personQueueDetection, mixedTargetDetection, fireDetection,
illegalParking, pedestrian, trafficAccident,construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, reverseEntrance,
vehicledetect, safetyHelmetDetection, vibrationDetection, TMPA, faceThermometry, HBDLib.
1273
Device Network SDK (General) Developer Guide
F.281 XML_SecurityCap
SecurityCap capability message in XML format
<SecurityCap version="2.0" xmlns="[Link]
<supportUserNums><!--optional, xs:integer, number of supported users--></supportUserNums>
<userBondIpNums><!--optional, xs:integer, number of bound IP addresses supported by the user--></
userBondIpNums>
<userBondMacNums><!--optional, xs:integer, number of bound MAC addresses supported by the user--></
userBondMacNums>
<isSupCertificate><!--optional, xs:boolean, whether it supports certification: "true", "false"--></isSupCertificate>
<issupIllegalLoginLock><!--optional, xs: boolean, whether it supports locking illegal login: "true,false"--
><issupIllegalLoginLock>
<isSupportOnlineUser><!--optional, xs: boolean, "true,false"--><isSupportOnlineUser>
<isSupportAnonymous><!--optional, xs: boolean, "true,false"--><isSupportAnonymous>
<isSupportStreamEncryption><!--optional, xs:boolean, whether it supports stream encryption: "true", "false"--></
isSupportStreamEncryption>
<securityVersion opt="1,2"/><!--optional, xs:interger, encryption capability, each version contains encryption
algorithm and node range to be encrypted. "1"-encrypt by AES128, "2"-encrypt by AES256-->
<keyIterateNum>
<!--dependent xs:integer, iteration times, this node depends on securityVersion, and the value is usually between
100 and 1000-->
</keyIterateNum>
<isSupportUserCheck>
<!--dependent optional, xs:boolean, whether it supports verifying password when editing/adding/deleting user
parameters, this node depends on securityVersion-->
</isSupportUserCheck>
<isSupportGUIDFileDataExport><!--optional, xs:boolean, "true,false"--></isSupportGUIDFileDataExport>
<isSupportSecurityQuestionConfig><!--optional, xs:boolean, "true,false"--></isSupportSecurityQuestionConfig>
<supportSecurityNode opt="wirelessServer,wirelessDial"><!--optional, xs:string, "true,false"--></
supportSecurityNode>
<isSupportGetOnlineUserListSC><!--optional, xs:boolean, "true,false"--></isSupportGetOnlineUserListSC>
<SecurityLimits><!--optional-->
<LoginPasswordLenLimit min="1" max="16"><!--opt--></LoginPasswordLenLimit>
<SecurityAnswerLenLimit min="1" max="128"><!--opt--></SecurityAnswerLenLimit>
</SecurityLimits>
<RSAKeyLength opt="512,1024,2048" def=2048/><!--optional, RSA key length of the HTTPS certificate-->
<isSupportONVIFUserManagement><!--optional, xs:boolean, whether it supports user management by ONVIF
protocol: "true", "false"--><isSupportONVIFUserManagement>
<WebCertificateCap><!--opt-->
<CertificateType opt="basic, digest, digest/basic"><!--required, xs:string--></CertificateType>
<SecurityAlgorithm><!--dependent, this node is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType opt="MD5,SHA256,MD5/SHA256"><!--optional, xs:string, algorithm type: "MD5", "SHA256",
"MD5/SHA256"--></algorithmType>
</SecurityAlgorithm>
</WebCertificateCap>
<isSupportConfigFileImport>
<!--optional, xs: boolean, whether it supports importing configuration files securely: "true"-yes. If it is not
supported, this node will not be returned-->
</isSupportConfigFileImport>
<isSupportConfigFileExport>
1274
Device Network SDK (General) Developer Guide
<!-- optional, xs:boolean, whether it supports exporting configuration files securely: "true"-yes. If it is not
supported, this node will not be returned-->
</isSupportConfigFileExport>
<cfgFileSecretKeyLenLimit min="0" max="16">
<!--optional, length limit of the configuration files' encryption key-->
</cfgFileSecretKeyLenLimit>
<isSupportDeviceCertificatesManagement>
<!--optional, xs: boolean, whether it supports device certificate management: true-yes, if not support, this node will
not be returned-->
</isSupportDeviceCertificatesManagement>
<supportIPCActivatePassword><!--optional, xs:boolean, whether it supports configuring password for activating the
network camera--></supportIPCActivatePassword>
<isIrreversible>
<!--dependent optional, xs:boolean, whether it supports irreversible password storage. If this node does not exist,
irreversible password storage is not supported-->
</isIrreversible>
<salt><!--optional, xs:string, salt of user name--></salt>
<keypadPassword min="1" max=""/><!--optional, xs:string, keypad password length. If different types of users have
different keypad password length, this node only indicates the administrator's keypad password length, otherwise this
node indicates that all types of users have the same keypad password length-->
<installerKeypadPassword min="1" max=""/><!--optional, xs:string, installer's keypad password length-->
<operatorKeypadPassword min="1" max=""/><!--optional, xs:string, operator's keypad password length-->
<userOperateType opt="1,2,3">
<!--optional, xs:string, user operation type: "1"-network user, "2"-keypad user, "3"-network user and keypad user-->
</userOperateType>
<isSupportOnvifInfo><!--optional, xs:boolean, whether it supports the API of getting ONVIF protocol information. If
this node is returned and its value is "true", in indicates supporting this funcion; if this node is not returned, it
indicates that this function is not supported--></isSupportOnvifInfo>
<isSupportPictureURlCertificate opt="true,false"><!--optional, xs:boolean, whether it supports configuring picture
URL authentication. If this node is not returned, it indicates that the default picture authentication method of the
device is digest--></isSupportPictureURlCertificate>
<isSupportUnloggedUserPermissionConfig opt="true,false"><!--optional, xs:boolean, whether it supports configuring
permissions for users that have not logged in--></isSupportUnloggedUserPermissionConfig>
<isSupportUserNamePasswordCheckUpgrade><!--optional, xs:boolean, whether it supports upgrading user name
and password verification. If this node is not returned, it indicates that this function is not supported--></
isSupportUserNamePasswordCheckUpgrade>
<isSupportDeviceSelfSignCertExport><!--optional, xs:boolean--></isSupportDeviceSelfSignCertExport>
<isSupportSecurityEmail><!--optional, xs:boolean, whether it supports configuring security E-mail address. If this
node is not returned, it indicates that this function is not supported--></isSupportSecurityEmail>
<isSupportRTSPCertificate opt="true,false"><!--optional, xs:boolean--></isSupportRTSPCertificate>
<isSptUserEnabled><!--optional, xs:boolean, whether it supports configuration of enabling user: "true"-yes, "false"-
no--></isSptUserEnabled>
<isSptAdminCap><!--optional, xs:boolean, whether it supports getting administrator permission capability: "true"-
yes, "false"-no--></isSptAdminCap>
<DoubleVerificationCap><!--optional, double verification capability-->
<isSupportUsersConfig>
<!--optional, xs: boolean, "true,false", whether it supports configuring double verification user-->
</isSupportUsersConfig>
<isSupportUsersPermissionConfig>
<!--optional, xs: boolean, "true,false", whether it supports configuring the permission of double verification user--
>
</isSupportUsersPermissionConfig>
1275
Device Network SDK (General) Developer Guide
</DoubleVerificationCap>
<isSupportCertificateCustomID><!--optional, xs:Boolean, whether it supports certificate configuration with custom
ID--></isSupportCertificateCustomID>
<maxIllegalLoginTimes min="3" max="20"def="5">
<!--dependentxs:integer,"maximum illegal login attempts" -->
</maxIllegalLoginTimes>
<SecurityAdvanced>
<securityEnhanced> <!--optional,xs:boolean,security reinforcement--> </securityEnhanced>
<noOperationEnabled><!—required, xs:Boolean, whether to enable the timeout of no operation--></
noOperationEnabled>
<noOperationTime min="1" max="60"def="15"><!—required, xs:integer,timeout of no operation, unit: minute--></
noOperationTime>
<isSupportDigestStatus><!—optional, Boolean—digest status></isSupportDigestStatus>
</SecurityAdvanced>
<LoginLinkNum><maxLinkNum min="1" max="128"def="50"><!—required, xs:integer,maximum number of logged in
accounts--></maxLinkNum><LoginLinkNum>
<isSupportCCClientCertificate><!—optional,Boolean—whether to enable the CC client certificate></
isSupportCCClientCertificate>
<passwordValidity min="0" max="365"><!--optional, xs:string, password validity period, unit: day. If this node is
returned, it indicates supporting configuring password validity period. The password validity period can only be edited
by the administrator user--></passwordValidity>
<maxIllegalLoginLockTime min="1" max="120" def="30"><!--optional, xs:integer, the lock duration when maximum
illegal login attempts reached the upper limit; unit: minute--></maxIllegalLoginLockTime>
</SecurityCap>
F.282 XML_SecurityQuestion
SecurityQuestion message in XML format
<SecurityQuestion version="2.0" xmlns="[Link]
<QuestionList>
<Question><!--the number of security question must be 3-->
<id><!--required, xs: integer, question ID, which corresponds to that of device--></id>
<answer>
<!--write-only, xs: string, answer of the security question, it will not be returned when getting question; when
setting question, this node will be encrypted (BASE64-->AES128CBE) for transmission-->
</answer>
<mark>
<!—required, read-only, xs: boolean, whether the configured security question is marked-->
</mark>
</Question>
</QuestionList>
<password>
<!--write-only, xs: string, password that encrypted by CBC, this node will not be returned when getting question; but
it is required when setting question-->
</password>
</SecurityQuestion>
See Also
1276
Device Network SDK (General) Developer Guide
F.283 XML_SerialCap
Serial port capability message in XML format
<SerialCap version="2.0" xmlns="[Link]
<rs485PortNums min="1" max="5" def="1">
<!--optional, xs: integer-->
</rs485PortNums>
<supportRS23Cconfig>
<!--optional, xs: boolean-->
</supportRS23Cconfig>
<rs422PortNums opt="0">
<!--optional, xs: integer-->
</rs422PortNums>
<rs232PortNums opt="1">
<!--optional, xs: integer, range of RS-232 serial port No. supported by the device-->
</rs232PortNums>
<rs485WorkMode opt="Led, CaptureTrigger">
<!--optional, xs: string, range of RS-485 serial port No. supported by the device-->
</rs485WorkMode>
<isSupportAuthenticationService>
<!--optional, xs:boolean, whether the device supports serial port authentication-->
</isSupportAuthenticationService>
</SerialCap>
F.284 XML_Shield
Message about shielded area parameters in XML format
<Shield version="1.0" xmlns="[Link]
<enabled><!--req, xs:string, whether enables the shield function: "true,false"--></enabled>
<RegionList>
<Region>
<id><!--req, xs:string, area ID--></id>
<enabled><!--req, xs:string, whether enables the shield function of this area: "true,false"--></enabled>
<RegionCoordinatesList>
<RegionCoordinates><!--req-->
<positionX><!--req, xs:integer, X-coordinate--></positionX>
<positionY><!--req, xs:integer, Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</RegionList>
</Shield>
1277
Device Network SDK (General) Developer Guide
F.285 XML_SlaveCamera
SlaveCamera message in XML format
<SlaveCameraInfo version="2.0" xmlns="[Link]
<id>
<!--req, xs:string-->
</id>
<serverAddress>
<addressingFormatType>
<!--req, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</serverAddress>
<userName>
<!--req, xs:string-->
</userName>
<passWord>
<!--wo, xs:string-->
</passWord>
<portNo>
<!--req, xs:integer-->
</portNo>
<loginStatus>
<!--req, xs:string, "login,logout"-->
</loginStatus>
</SlaveCameraInfo>
F.286 XML_SlaveCameraStatus
SlaveCameraStatus message in XML format
<SlaveCameraStatus version="2.0" xmlns="[Link]
<SlaveCameraLinkStatusList>
<!--req-->
<SlaveCameraLinkStatus>
<id>
<!--req, xs:string-->
</id>
<linkStatus/>
<!--ro, xs:string, connection status: "online,offline"-->
1278
Device Network SDK (General) Developer Guide
</SlaveCameraLinkStatus>
</SlaveCameraLinkStatusList>
</SlaveCameraStatus>
F.287 XML_SNMP
XML message about SNMP configuration
<SNMP version="2.0" xmlns="[Link]
<SNMPv1c/><!--dependent -->
<SNMPv2c/><!--dependent-->
<SNMPAdvanced/><!--dependent, advanced parameters-->
<listenPort> <!--optional, xs:integer, SNMP port--></listenPort>
</SNMP>
F.288 XML_SNMPAdvanced
XML message about SNMP advanced parameter configuration
<SNMPAdvanced xmlns="[Link] version="2.0" >
<localEngineID>
<!--required, xs:hexBinary, local device engine-->
</localEngineID>
<authenticationNotificationEnabled>
<!--optional, xs:boolean, notification of failure to enable authentication-->
</authenticationNotificationEnabled>
<SNMPUserList/>
<!--optional -->
<SNMPNotificationFilterList/>
<!--optional, filtering table based on OIDS-->
<notificationEnabled>
<!--optional, xs:boolean -->
</notificationEnabled>
<SNMPNotificationReceiverList/>
<!--optional-->
<enabled>
<!--required, xs:boolean -->
</enabled>
<SNMPTrapReceiverList/>
<!--optional, all trap address information of SNMP in version 3-->
</SNMPAdvanced>
F.289 XML_SNMPTrapReceiver
XML message about parameters of single trap address of SNMP
1279
Device Network SDK (General) Developer Guide
F.290 XML_SNMPTrapReceiverList
XML message about trap address parameters of SNMP
<SNMPTrapReceiverList version="2.0" xmlns="[Link]
<SNMPTrapReceiver/> <!--optional-->
</SNMPTrapReceiverList>
F.291 XML_ssd
JSON message about a SSD information
<?xml version="1.0" encoding="utf-8"?>
<ssd version="2.0" xmlns="[Link]
<id><!--required, read-only, xs:string, SSD ID--></id>
<ssdName><!--required, read-only, xs:string, SSD name--></ssdName>
<version><!--optional, xs:string, SSD firmware version--></version>
</ssd>
1280
Device Network SDK (General) Developer Guide
F.292 XML_ssdList
JSON message about information of all SSDs
<?xml version="1.0" encoding="utf-8"?>
<ssdList version="2.0" xmlns="[Link]
<ssd><!--optional, see XML-ssd for details--></ssd>
</ssdList>
See Also
XML_ssd
F.293 XML_SSDSMARTTest
XML message about SSD S.M.A.R.T detection parameters
<?xml version="1.0" encoding="utf-8"?>
<SSDSMARTTest version="2.0" xmlns="[Link]
<testType><!--optional, xs:string, self-test type: "short", "expanded", "conveyance"--></testType>
</SSDSMARTTest>
F.294 XML_SSD_SmartTestStatus
JSON message about SSD S.M.A.R.T detection status
<?xml version="1.0" encoding="utf-8"?>
<SmartTestStatus version="2.0" xmlns="[Link]
<id><!--required, xs:string, SSD ID--></id>
<temprature><!--required, xs:integer, temperature, unit: degree--></temprature>
<powerOnDay><!--required, xs:integer, hour of use, unit: day(s)--></powerOnDay>
<selfEvaluaingStatus ><!--required, xs:string, self-evaluation status: "ok", "error"--></selfEvaluaingStatus>
<allEvaluaingStatus><!--required, xs:string, overall evaluation: "functional"-in good condition, "badsectors"-bad
block, "fault"-error--></allEvaluaingStatus>
<selfTestPercent><!--required, xs:integer, self-test progress--></selfTestPercent>
<selfTestStatus><!--required, xs:string, self-test status: "ok", "aborted", "interrupted", "failed", "unkown",
"electronic_element_error", "servo_error", "read_failed", "progress"-in progress, "not_tested", "not_recognized"--></
selfTestStatus>
<testType><!--required, xs:string, self-test type: "short", "expanded", "conveyance"-></testType>
<TestResultList><!--required, "Size=30"-->
<TestResult><!--list-->
<attributeID><!--required, xs:string, attribute ID--></attributeID>
<attributeName><!--optional, xs:string, attribute name--></attributeName>
<status><!--required, xs:string, status: "ok"-normal, "illegal"-error--></status>
<flags><!--required, xs:integer, attribute operation mark--></flags>
<thresholds><!--required, xs:integer, threshold--></thresholds>
<value><!--required, xs:string, current value--></value>
<worst><!--required, xs:integer, the worst value--></worst>
1281
Device Network SDK (General) Developer Guide
F.295 XML_StreamingChannel
StreamingChannel message in XML format
<StreamingChannel version="2.0" xmlns="[Link]
<id><!--req,xs:string;id--></id>
<channelName><!--req,xs:string--></channelName>
<enabled><!--req,xs:boolean--></enabled>
<Transport><!--req-->
<maxPacketSize><!--opt, xs: integer--></maxPacketSize>
<audioPacketLength><!--opt, xs: integer--></audioPacketLength>
<audioInboundPacketLength><!--opt, xs: integer--></audioInboundPacketLength>
<audioInboundPortNo><!--opt, xs: integer--></audioInboundPortNo>
<videoSourcePortNo><!--opt, xs: integer--></videoSourcePortNo>
<audioSourcePortNo><!--opt, xs: integer--></audioSourcePortNo>
<ControlProtocolList><!--req, protocol types for streaming-->
<ControlProtocol><!--req-->
<streamingTransport>
<!--req,xs:string,"HTTP,RTSP,SHTTP,SRTP"-->
</streamingTransport>
</ControlProtocol>
</ControlProtocolList>
<Unicast><!--opt-->
<enabled><!--req, xs: boolean--></enabled>
<interfaceID><!--opt, xs: string--></interfaceID>
<rtpTransportType
<!--opt, xs: string, "RTP/UDP, RTP/TCP"-->
</rtpTransportType>
</Unicast>
<Multicast><!--opt-->
<enabled><!--req, xs: boolean--></enabled>
<userTriggerThreshold><!--opt, xs: integer--></userTriggerThreshold>
<destIPAddress><!--dep, xs: string--></destIPAddress>
<videoDestPortNo><!--opt, xs: integer--></videoDestPortNo>
<audioDestPortNo><!--opt, xs: integer--></audioDestPortNo>
<destIPv6Address><!--dep, xs: string--></destIPv6Address>
<ttl><!--opt, xs:integer--></ttl>
<activeMulticastEnabled>
<!--opt, xs: boolean, "true,false", whether to enable active multicast, which is mutual exclusion with passive
multicast-->
</activeMulticastEnabled>
<packagingFormat><!--opt, xs: string, container format--></packagingFormat>
<FecInfo><!--opt-->
<fecRatio>
<!--req, read-only, xs: integer, extra bandwidth occupation ratio of forward error correction (FEC) data, the value
1282
Device Network SDK (General) Developer Guide
1283
Device Network SDK (General) Developer Guide
F.296 XML_storage
XML message about storage working mode
<?xml version="1.0" encoding="utf-8"?>
<storage version="2.0" xmlns="[Link]
<hddList><!--optional, the contents are same to the message XML_hddList (related URI: /ISAPI/ContentMgmt/
Storage/hdd)--></hddList>
<nasList><!--optional, the contents are same to the message XML_nasList (related URI: /ISAPI/ContentMgmt/Storage/
nas)--></nasList>
1284
Device Network SDK (General) Developer Guide
F.297 XML_storageExtension
XML message about storage strategy.
<storageExtension xmlns="[Link] version="2.0" >
<LoopEnable,opt="true,false">
<!--optional, xs:boolean, whether to enable overwriting-->
</LoopEnable>
<enableDormant>
<!-optional, xs:boolean-->
</enableDormant>
<packDuration>
<!-optional, xs:integer, unit: minute-->
</packDuration>
<logStorageMode>
<!-optional, xs:string, log storage mode: "system"-system default mode, "custom"-custom mode-->
</logStorageMode>
<logStorageId>
<!--dependent, xs:integer, disk ID (saving logs in a disk) or array number (saving logs in disk arrays), which are valid
only when logStorageMode is "custom"; -->
</logStorageId>
<logStorageCycle>
<!--dependent, xs:integer, log storage period,which is valid only when logStorageMode is "custom"-->
</logStorageCycle>
</storageExtension>
F.298 XML_SoftwareService
SoftwareService message in XML format
<SoftwareService version="2.0" xmlns="[Link]
<ThirdStream><!--opt, third stream configuration-->
<enabled><!--req, xs: boolean, "true,false", whether to enable third stream configuration--></enabled>
</ThirdStream>
<PanoramaDisplay><!--opt, display the image range on panorama view-->
<enabled>
<!--req, xs: boolean, "true,false", whether to enable image range display on panorama view-->
</enabled>
</PanoramaDisplay>
<MotionDetect>
<enabled><!--whether to enable motion detetion--></enabled>
</MotionDetect>
</SoftwareService>
1285
Device Network SDK (General) Developer Guide
F.299 XML_SocketIP
SocketIP message in XML format
<SocketIP version="2.0" xmlns="[Link]
<ipAddress>
<!--opt, xs: string-->
</ipAddress>
<ipv6Address>
<!--opt, xs: string-->
</ipv6Address>
</SocketIP>
F.300 XML_SubscribeEvent
SubscribeEvent message in XML format
<SubscribeEvent version="2.0" xmlns="[Link] >
<heartbeat>
<!--optional, xs:integer, heartbeat interval, unit: second, the default value is 30s-->
</heartbeat>
<eventMode>
<!--required, xs:string, "all"-upload all alarms/events, "list"-upload specified alarm/event-->
</eventMode>
<EventList>
<Event><!--uploading mode of specified alarm/event, this node exists only when eventMode is "list"-->
<type>
<!--required, xs:string, alarm/event types, which are obtained from the capability, refer to Alarm/Event Types for
Subscription for its values-->
</type>
<minorAlarm>
<!--opt, xs:string, minor alarm type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type. This
node is required when type is "AccessControllerEvent"-->
</minorAlarm>
<minorException>
<!--opt, xs:string, minor exception type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorException>
<minorOperation>
<!--opt, xs:string, minor operation type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorOperation>
<minorEvent>
<!--opt, xs:string, minor event type: "0x01,0x02,0x03,0x04", see details in Access Control Event Type. This node is
required when type is "AccessControllerEvent"-->
</minorEvent>
<pictureURLType>
<!--opt, xs:string, alarm picture format: "binary"-binary, "localURL"-device local URL, "cloudStorageURL"-cloud
storage URL-->
1286
Device Network SDK (General) Developer Guide
</pictureURLType>
</Event>
</EventList>
<channels>
<!--optional, xs:string, event linked channel information, and multiple channels can be linked, each channel is
separated by comma, e.g., "1,2,3,4…"-->
</channels>
<channels>
<!--optional, xs:string, specify channels (each channel is separated by comma, e.g., "1,2,3,4…") to be armed, this
node does not exist if you want to arm all channels, and if this node exists, the sub node <channels> in the node
<Event> is invalid-->
</channels>
<identityKey max="64"/>
<!--opt, xs: string, interaction command of subscription, supports subscribing comparison results of face picture
library (importing with this command), the maximum length is 64-->
</SubscribeEvent>
F.301 XML_SubscribeEventCap
SubscribeEventCap capability message in XML format
<SubscribeEventCap version="2.0" xmlns="[Link]
<heartbeat min="" max="" />
<!--optional, heartbeat time interval, unit: second-->
<format opt="xml,json"/><!--req, supported message format-->
<channelMode opt="all,list" />
<!--required, channel subscription mode: "all"-subscribe events/alarms of all channels, "list"-subscribe events/
alarms of specific channels-->
<eventMode opt="all,list" />
<!--required, event subscription mode: "all"-subscribe all event types (must be supported), "list"-subscribe specific
event types, if "list" is returned, "all" will also be returned-->
<!--if both the channelMode and eventMode returns "all", it indicates that the device does not support subscribing
event/alarm by event type or channel-->
<EventList><!--required, dependent, upload mode of specified alarms/events, it is valid only when eventMode is
"list"-->
<Event><!--required-->
<type><!--required, xs:string, refer to Supported Alarm/Event Types for details--></type>
<minorAlarm opt="0x400,0x401,0x402,0x403">
<!--opt, xs:string, minor alarm type, see details in Access Control Event Type. This node is required when type is
"AccessControllerEvent"-->
</minorAlarm>
<minorException opt="0x400,0x401,0x402,0x403">
<!--opt, xs:string, minor exception type, see details in Access Control Event Type. This node is required when type
is "AccessControllerEvent"-->
</minorException>
<minorOperation opt="0x400,0x401,0x402,0x403">
<!--opt, xs:string, minor operation type, see details in Access Control Event Type. This node is required when type
is "AccessControllerEvent"-->
</minorOperation>
<minorEvent opt="0x01,0x02,0x03,0x04">
1287
Device Network SDK (General) Developer Guide
<!--opt, xs:string, minor event type, see details in Access Control Event Type. This node is required when type is
"AccessControllerEvent"-->
</minorEvent>
<pictureURLType opt="binary,localURL,cloudStorageURL" def=""/>
<!--opt, xs:string, alarm picture format: "binary"-binary, "localURL"-device local URL, "cloudStorageURL"-cloud
storage URL, and the def is followed by the default format-->
</Event>
</EventList>
<pictureURLType opt="binary,localURL,cloudStorageURL" def=""/>
<!--opt, xs:string, alarm picture format: "binary"-binary picture, "localURL"-device local URL, "cloudStorageURL"-
cloud storage URL. This node is the method of uploading all pictures related to the event. If this node is applied,
<pictureURLType> in <Event> is invalid; otherwise, pictures will be uploaded using the default method returned by the
device capability. For front-end devices, the default method is uploading binary pictures; for back-end devices, the
default method is by device local URL-->
<ChangedUploadSub><!--message subscription-->
<interval/><!--opt, xs:integer, lifecycle of arming GUID, the default value is 5 minutes, unit: second. The device will
generate new GUID for the arming connection after it is disconnected for the set lifecycle-->
<StatusSub>
<all/><!-- opt, xs:boolean, whether to subscribe all events-->
<channel/><!--opt, xs:boolean, whether to subscribe channel status. This node is not required when <all> is
"true"-->
<hd/><!--opt, xs:boolean, whether to subscribe disk status. This node is not required when <all> is "true"-->
<capability/><!--opt, xs:boolean, whether to subscribe capability change status. This node is not required when
<all> is "true"-->
</StatusSub>
</ChangedUploadSub>
<identityKey max="64"/>
<!--opt, xs: string, interaction command of subscription, supports subscribing comparison results of face picture
library (importing with this command), the maximum length is 64-->
</SubscribeEventCap>
F.302 XML_SubscribeEventResponse
SubscribeEventResponse message in XML format
<SubscribeEventResponse>
<id><!--req, xs:integer, subscription ID--></id>
<FailedEventList>
<!--opt, list of subscription failed events. When subscription failed, it should be returned, and the upper layer can
check whether all event/alarm subscriptions are succeeded via the existence of node FailedEventList-->
<Event>
<type>
<!--req, xs:string, refer to Supported Alarm/Event Types for details-->
</type>
<minorAlarm>
<!--opt, xs:string, minor alarm type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type. This
node is required when type is "AccessControllerEvent"-->
</minorAlarm>
<minorException>
<!--opt, xs:string, minor exception type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
1288
Device Network SDK (General) Developer Guide
F.303 XML_SupplementLight
SupplementLight message in XML format
<SupplementLight><!--opt-->
<mode><!--opt, xs: string, adjustment mode of supplement light, opt="schedule,off,on,auto"--></mode>
<Schedule>
<TimeRange><!--req-->
<beginTime><!--req, xs: time, ISO8601 time--></beginTime>
<endTime><!-- req, xs: time, ISO8601 time--></endTime>
</TimeRange>
</Schedule>
<brightnessLimit>
<!--dep, xs: integer, brightness of supplement light, which is between 0 and 100; the brightness can be adjust when
<mode> is set to "on"-->
</brightnessLimit>
<supplementLightMode>
<!--opt, xs: string, illumination mode: "mixed"-hybrid, "whitelight"-white light, "close"-disabled-->
</supplementLightMode>
<irLightBrightness>
<!--dep, xs: integer, brightness of IR supplement light, which is between 0 and 100; this node is valid only when
<supplementLightMode> is set to "mixed" and <mixedLightBrightnessRegulatMode> is set to "manual"-->
</irLightBrightness>
<mixedLightBrightnessRegulatMode>
<!--dep, xs: string, brightness adjustment mode of hybrid supplement light, opt="manual,auto"; this node is valid
1289
Device Network SDK (General) Developer Guide
F.304 XML_TargetEnhancement
TargetEnhancement message in XML format
<TargetEnhancement version="2.0" xmlns="[Link]
<enabled><!--req,xs:boolean--></enabled>
</TargetEnhancement>
F.305 XML_TargetEnhancementCap
TargetEnhancementCap message in XML format
<TargetEnhancementCap version="2.0" xmlns="[Link]
<enabled opt="true,false"><!--req, xs:boolean--></enabled>
</TargetEnhancementCap>
1290
Device Network SDK (General) Developer Guide
F.306 XML_tempRange
tempRange message in XML format
<?xml version="1.0" encoding="utf-8"?>
<TempRange version="2.0" xmlns="[Link]
<mode>
<!--req, xs:string, temperature range mode: "automatic"-automatic mode, "manual"-manual mode-->
</mode>
<temperatureUpperLimit>
<!--dep, xs:float, maximum temperature, corrects to one decimal, the minimum value is "-20", the maximum value
is "550", unit: Celsius degree; its value should be larger than temperatureLowerLimit; it is valid when the value of
mode is "manual"-->
</temperatureUpperLimit>
<temperatureLowerLimit>
<!--dep, xs:float, minimum temperature, corrects to one decimal, the minimum value is "-20", the maximum value is
"550", unit: Celsius degree; its value should be smaller than temperatureUpperLimit; it is valid when the value of
mode is "manual"-->
</temperatureLowerLimit>
</TempRange>
F.307 XML_ThermalCap
XML message about thermal capability
<ThermalCap version="2.0" xmlns="[Link]
<isSupportFireDetection><!--optional, xs:boolean, whether supports fire detection--></isSupportFireDetection>
<isSupportThermometry><!--optional, xs:boolean, whether supports temperature measurement--></
isSupportThermometry>
<isSupportRealtimeThermometry><!--optional, xs:boolean, whether supports uploading real-time temperature
measurement data--></isSupportRealtimeThermometry>
<isFireFocusZoomSupport><!--optional, xs:boolean, whether supports visible light lens zooming--></
isFireFocusZoomSupport>
<isSupportManualRanging>
<!--optional, xs:boolean, this node will be returned if one or more channels of device supports this function, see
detailed channel capability in the response information"-->
</isSupportManualRanging>
<isSupportPower><!--optional, xs:boolean, whether supports power on/off capability--></isSupportPower>
<isSupportRealtimeTempHumi><!--optional, xs:boolean, whether supports real-time detection of temperature and
humidity--></isSupportRealtimeTempHumi>
<ManualThermCap>
<manualThermRuleNum>
<!--optional, xs:integer, the max. number of supported rules for manual temperature measurement. If this node is
not returned, it indicates manual temperature measurement is not supported-->
</manualThermRuleNum>
</ManualThermCap>
<isSupportManualThermBasic>
<!--optional, xs:boolean, whether supports basic configuration of manual temperature measurement-->
</isSupportManualThermBasic>
1291
Device Network SDK (General) Developer Guide
<isSupportFireShieldMask><!--optional, xs:boolean--></isSupportFireShieldMask>
<isSupportsmokeShieldMask><!--optional, xs:boolean--></isSupportsmokeShieldMask>
<isSupportThermometryMode>
<!--optional, xs:boolean, whether the device supports the configuration of temperature measurement mode-->
</isSupportThermometryMode>
<isSupportThermalPip>
<!--optional, xs:boolean, whether the device supports the PIP configuration-->
</isSupportThermalPip>
<isSupportThermalIntelRuleDisplay><!--optional, xs:boolean, whether supports VCA rule configuration--></
isSupportThermaIntelRuleDisplay>
<AlgVersionInfo><!-opt, whether supports getting the version information of thermal algorithms library-->
<thermometryAlgName min = "1" max = "128">
<!--read-only, xs:string, version information of temperature measurement algorithms library-->
</thermometryAlgName>
<shipsAlgName min = "1" max = "128"><!--read-only, xs:string, version name of ship detection algorithms library--
></shipsAlgName>
</AlgVersionInfo>
<isSupportFaceThermometry><!--optional, xs:boolean, whether supports temperature screening configuration--></
isSupportFaceThermometry>
<isSupportThermalBlackBody><!--optional, xs:boolean, whether supports black body configuration--></
isSupportThermalBlackBody>
<isSupportThermalStreamParam><!--optional, xs:boolean, whether supports stream configuration--></
isSupportThermalStreamParam>
<isSupportBodyTemperatureCompensation>
<!--optional, xs:boolean, whether supports temperature compensation configuration-->
</isSupportBodyTemperatureCompensation>
<isSupportTemperatureCorrection><!--optional, xs:boolean, whether device supports temperature measurement
correction--></isSupportTemperatureCorrection>
<isSupportClickToThermometry><!--optional, xs:boolean, whether device supports clicking to detect temperature--
></isSupportClickToThermometry>
<isSupportThermometryHistorySearch><!--optional, xs:boolean--></isSupportThermometryHistorySearch>
<isSupportBurningPrevention><!--optional, xs:boolean, whether device supports burning prevention--></
isSupportBurningPrevention>
<isSupportTemperatureCollection><!--optional, xs:boolean, whether device supports temperature ANR--></
isSupportTemperatureCollection>
<isSupportJpegPicWithAppendData>
<!--optional, xs:boolean, whether device supports getting JPEG picture with pixel-to-pixel temperature
measurement data. If supports, it is returned and values true, if not support, it is not returned-->
</isSupportJpegPicWithAppendData>
<isSupportRealTimethermometryForHTTP>
<!--optional, xs:boolean, whether device supports real-time temperature measurement. If supports, it is returned
and its value is true, if not support, it is not returned-->
</isSupportRealTimethermometryForHTTP>
<isSupportShipsDetectionWithScene>
<!--optional, xs:boolean, whether device supports ship detection by scene, this node and isSupportShipsDetection
in XML_SmartCap are mutually exclusive-->
</isSupportShipsDetectionWithScene>
<isSupportthermometryOffLineCapture>
<!--optional, xs:boolean, whether device supports offline capture. If supports, this node returned and its value is
true; if not, it is not returned-->
</isSupportthermometryOffLineCapture>
<isSupportThermalTemperatureCorrect>
1292
Device Network SDK (General) Developer Guide
<!--optional, xs:boolean, whether device supports temperature calibration (related URI: /ISAPI/Thermal/channels/
<ID>/temperatureCorrect?format=json)-->
</isSupportThermalTemperatureCorrect>
<isSupportGreyScaleAlarm>
<!--optional, xs:boolean, whether device supports grayscale alarm. If supports, this node returned and its value is
true; if not, it is not returned-->
</isSupportGreyScaleAlarm>
<isSupportFaceSnapThermometry>
<!--optional, xs:boolean, whether device supports uploading captured face picture with temperature information:
true-support, no return-not support-->
</isSupportFaceSnapThermometry>
<isSupportTemperatureIntervalMeasurement>
<!--optional, xs:boolean, whether device supports temperature range measurement. If supports, this node returned
and its value is true; if not, it is not returned-->
</isSupportTemperatureIntervalMeasurement>
</ThermalCap>
Remarks
When getting thermal product capabilities, isSupportShipsDetectionWithScene has a higher
priority than isSupportShipsDetection. That is, firstly check if the node
isSupportShipsDetectionWithScene exists and its value is "true", that indicates ship detection
according to scene is supported, otherwise, check the if the node isSupportShipsDetection exists.
F.308 XML_TimeTaskList
TimeTaskList message in XML format
<TimeTaskList size="">
<enabled><!--req, xs: boolean--></enabled>
<Parktime min="" max=""><!--req, xs:integer, seconds--></Parktime>
<TimeTaskBlock>
<dayOfWeek><!--req, xs: integer, day of the week based on ISO8601, "1"-Monday, ...--></dayOfWeek>
<TimeTaskRange>
<TaskID min="" max=""><!--req, xs: string; ID--></TaskID>
<beginTime><!--req, xs: time, ISO8601 time--></beginTime>
<endTime> <!--req, xs: time, ISO8601 time--></endTime>
<Task>
<TaskType
opt="disable,autoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,tiltscan,periodreboot,periodadjust,
auxoutput">
<!--req, xs: strings-->
</TaskType>
<patrolTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></patrolTaskNum>
<patternTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></patternTaskNum>
<presetTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></presetTaskNum>
<auxoutputTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></
auxoutputTaskNum>
</Task>
</TimeTaskRange>
1293
Device Network SDK (General) Developer Guide
</TimeTaskBlock>
<isSupportTimeTaskCopy><!--req, xs: boolean--></isSupportTimeTaskCopy>
</TimeTaskList>
F.309 XML_Track
Track message in XML format
<Track version="2.0" xmlns="[Link]
<id><!--req, xs: integer--></id>
<Channel><!--req, xs: integer--></Channel>
<Enable><!--req, xs: boolean--></Enable>
<Description><!--req, xs: string--></Description>
<TrackGUID><!--req, xs: string--></TrackGUID>
<Size><!--opt, xs: integer--></Size>
<Duration min="" max=""><!--opt, xs: string--></Duration>
<DefaultRecordingMode><!--req, xs: string--></DefaultRecordingMode>
<LoopEnable><!--opt, xs: string--></LoopEnable>
<SrcDescriptor>
<SrcGUID><!--req, xs: string--></SrcGUID>
<SrcChannel><!--req, xs: integer--></SrcChannel>
<StreamHint><!--req, xs: string--></StreamHint>
<SrcDriver><!--req, xs: string--></SrcDriver>
<SrcType><!--req, xs: string--></SrcType>
<SrcUrl><!--req, xs: string--></SrcUrl>
<SrcUrlMethods><!--req, xs: string--></SrcUrlMethods>
<SrcLogin><!--req, xs: string--></SrcLogin>
</SrcDescriptor>
<TrackSchedule>
<ScheduleBlockList>
<ScheduleBlock>
<ScheduleBlockGUID><!--req, xs: string--></ScheduleBlockGUID>
<ScheduleBlockType><!--req, xs: string--></ScheduleBlockType>
<ScheduleAction>
<id><!--req, xs: integer--></id>
<ScheduleActionStartTime>
<DayOfWeek><!--req, xs: string--></DayOfWeek>
<TimeOfDay><!--req, xs: string--></TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime>
<DayOfWeek><!--req, xs: string--></DayOfWeek>
<TimeOfDay><!--req, xs: string--></TimeOfDay>
</ScheduleActionEndTime>
<ScheduleDSTEnable><!--req, xs: boolean--></ScheduleDSTEnable>
<Description><!--req, xs: string--></Description>
<Actions>
<Record><!--req, xs: boolean--></Record>
<Log><!--req, xs: boolean--></Log>
<SaveImg><!--req, xs: boolean--></SaveImg>
<ActionRecordingMode><!--req, xs: string--></ActionRecordingMode>
1294
Device Network SDK (General) Developer Guide
</Actions>
</ScheduleAction>
</ScheduleBlock>
</ScheduleBlockList>
</TrackSchedule>
<CustomExtensionList>
<CustomExtension>
<CustomExtensionName><!--req, xs: string--></CustomExtensionName>
<enableSchedule><!--req, xs: boolean--></enableSchedule>
<SaveAudio><!--req, xs: boolean--></SaveAudio>
<PreRecordTimeSeconds><!--req, xs: integer--></PreRecordTimeSeconds>
<PostRecordTimeSeconds><!--req, xs: integer--></PostRecordTimeSeconds>
<HolidaySchedule>
<ScheduleBlock>
<ScheduleBlockGUID><!--req, xs: string--></ScheduleBlockGUID>
<ScheduleBlockType><!--req, xs: string--></ScheduleBlockType>
</ScheduleBlock>
</HolidaySchedule>
</CustomExtension>
</CustomExtensionList>
<IntelligentRecord><!--opt, xs:boolean, whether to enable VCA recording function: 0-no, 1-yes--></IntelligentRecord>
<delayTime><!--opt, xs:integer, capture delay time, unit: second--></delayTime>
<durationEnabled><!--opt, xs:boolean, whether to enable video expiry time. If this function is not supported, this
node will not be returned. If this function is supported, the video expiry date will be set by the node <Duration>--></
durationEnabled>
</Track>
F.310 XML_Tracking
Tracking message in XML format
<Tracking version="2.0" xmlns="[Link]
<enabled>
<!--req, xs:boolean-->
</enabled>
<mode>
<!--dep, xs:string, "auto,manual"-->
</mode>
<trackingTime>
<!--dep, xs:integer-->
</trackingTime>
<normalizedScreenSize>
<!--req, ro-->
<normalizedScreenWidth>
<!--req, ro, xs:integer-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--req, ro, xs:integer-->
</normalizedScreenHeight>
</normalizedScreenSize>
1295
Device Network SDK (General) Developer Guide
F.311 XML_TrackList
TrackList message in XML format
<TrackList version="2.0" xmlns="[Link]
<Track/><!--opt, recording schedule list, refer to the message XML_Track for details-->
</TrackList>
See Also
XML_Track
F.312 XML_TwoWayAudioChannel
TwoWayAudioChannel message in XML format
<TwoWayAudioChannel version="2.0" xmlns="[Link]
<id>
<!--req, xs:string, two-way audio channel ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable two-way audio: "true"-yes, "false"-no-->
</enabled>
<audioCompressionType>
1296
Device Network SDK (General) Developer Guide
F.313 XML_TwoWayAudioChannelList
TwoWayAudioChannelList message in XML format
1297
Device Network SDK (General) Developer Guide
See Also
XML_TwoWayAudioChannel
F.314 XML_UserAbility
UserAbility message in XML format
<UserAbility version="2.0">
<userNum><!--req, number of users--></userNum>
<userPriority opt="admin,viewer,operator,none"/><!--req, user priority-->
<userNameLength min="1" max="32"/><!--req, the length of user name-->
<userPasswordLength min="1" max="16"/><!--req,the length of password-->
<LocalPermission>
<permissionType type="admin"
opt="PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup,preview,playb
ackDoubleVerification"/>
<!--req, local permission types of admin users, if the type is null, it indicates that the user has all permissions-->
</LocalPermission>
<LocalPermission>
<permissionType type="viewer"
opt="PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup,preview,playb
ackDoubleVerification"/>
<!--req, local permission types of visitors, if the type is null, it indicates that the user has all permissions-->
</LocalPermission>
<LocalPermission>
<permissionType type="operator"
opt="PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup,preview,playb
ackDoubleVerification"/>
<!--req, local permission types of operators, if the type is null, it indicates that the user has all permissions-->
</LocalPermission>
<RemotePermission>
<permissionType type="admin" opt="preview, voiceTalk, alarmOutOrUpload, transParentChannel,
contorlLocalOut,PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup,pl
aybackDoubleVerification"/>
<!--req, remote permission types of admin users, if the type is null, it indicates that the user has all permissions-->
</RemotePermission>
<RemotePermission>
<permissionType type="viewer" opt="preview, voiceTalk, alarmOutOrUpload, transParentChannel,
contorlLocalOut,PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup,pl
aybackDoubleVerification"/>
<!--req, remote permission types of visitors, if the type is null, it indicates that the user has all permissions-->
</RemotePermission>
<RemotePermission>
<permissionType type="operator" opt="preview, voiceTalk, alarmOutOrUpload, transParentChannel,
contorlLocalOut,PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup,pl
aybackDoubleVerification"/>
1298
Device Network SDK (General) Developer Guide
<!--req, remote permission types of operators, if the type is null, it indicates that the user has all permissions-->
</RemotePermission>
<UserNet>
<IPV4Address>
<!--opt, whether it supports the user to assign the address of IPV4, if not supports, this node will not be returned-->
</IPV4Address>
<IPV6Address>
<!--opt, whether it supports the user to assign the address of IPV6, if not supports, this node will not be returned--
>
</IPV6Address>
<MACAddress>
<!--opt, whether it supports the user to assign the MAC address, if not supports, this node will not be returned-->
</MACAddress>
</UserNet>
<AlarmPermission><!--opt, permission of alarm inut-->
<alarmOn><!--opt, arming permission of alarm input--></alarmOn>
<alarmOff><!--opt, disarming permission of alarm input--></alarmOff>
<alarmBypass><!--opt, bypass permission of alarm input--></alarmBypass>
</AlarmPermission>
<AlarmhostPermission><!--opt, permission of network security contorl panel-->
<netUserNo min="" max=""/><!--req, network user No.-->
<userPriority opt="admin,manage,operater"/><!--req, user type (user priority): supper admin, admin, operator-->
<AdminPermissionType opt="arm,disarm,bypass,preview,record,playback,PTZControl,log,reboot,
setConfig,getConfig,resume,siren,upgrade,alarmout,serialControl,getwayControl,voiceTalk,
controlLocalOut,diskConfig,formatDisk,sensorControl"/>
<!--req, remote permission types of supper admin user-->
<ManagerPermissionType opt="arm,disarm,bypass,preview,record,playback,PTZControl,log,reboot,
setConfig,getConfig,resume,siren,upgrade,alarmout,serialControl,getwayControl,voiceTalk,
controlLocalOut,diskConfig,formatDisk,sensorControl"/>
<!--req, remote permission types of admin user-->
<OperaterPermissionType opt="arm,disarm,bypass,preview,record,playback,PTZControl,log,reboot,
setConfig,getConfig,resume,siren,upgrade,alarmout,serialControl,getwayControl,voiceTalk,
controlLocalOut,diskConfig,formatDisk,sensorControl"/>
<!--req, remote permission types of operator-->
</AlarmhostPermission>
<ViewerDefaultPermission>
<LocalPermission>
<permissionType
opt="PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup, preview"/>
<!--req, local permission types-->
</LocalPermission>
<RemotePermission>
<permissionType opt="preview, voiceTalk, alarmOutOrUpload, transParentChannel, contorlLocalOut, PTZControl,
record, playback, parameterConfig, logOrStateCheck, restartOrShutdown, upgrade, backup"/>
<!--req, remote permission types-->
</RemotePermission>
</ViewerDefaultPermission>
<OperatorDefaultPermission>
<LocalPermission>
<permissionType
opt="PTZControl,record,playback,parameterConfig,logOrStateCheck,restartOrShutdown,upgrade,backup, preview"/>
1299
Device Network SDK (General) Developer Guide
F.315 XML_VCAResource
Message about intelligent resources switch in XML format
<VCAResource version="2.0" xmlns="[Link]
<type>
<!--required, xs:string,
"basicBehavior,fullBehavior,facesnapBehavior,facesnap,TFS,smartVehicleDetection,smartHVTDetection,smart,judicial,s
mart264AndRoadDetection,smart264AndFaceDetection,smart264AndHeatMap,smartIntelligentMonitor,smartTrafficD
ataCollection,roadDetection,humanRecognition,perimeterCapture,vehicleDetection,HVTDetection,mixedTargetDetecti
on,trackingCaptureMode,nonTrackingCaptureMode,close,faceHumanModelingContrast,cityManagement,teacherBeha
vior,12MPLiveView,personQueueDetection,verticalPeopleCounting,safetyHelmet,faceCounting,personArming"-->
</type>
</VCAResource>
F.316 XML_VideoCap
VideoCap message in XML format
<VideoCap version="2.0" xmlns="[Link]
<videoInputPortNums><!--opt, xs: integer--><videoInputPortNums>
<videoOutputPortNums><!--opt, xs: integer--><videoOutputPortNums>
<isSupportHeatmap><!--opt, xs: boolean, whether to support heat map function--></isSupportHeatmap>
<isSupportCounting><!--opt, xs: boolean--></isSupportCounting>
<countingType><!--dep, xs: string, "human,object"--></countingType>
<isSupportPreviewSwitch><!--opt, xs: boolean, whether to support live view switch--></isSupportPreviewSwitch>
<isSupportRecodStatus>
<!--opt, xs: boolean, whether supports getting recording status-->
</isSupportRecodStatus>
<isSupportPrivacyMask>
1300
Device Network SDK (General) Developer Guide
F.317 XML_WebCertificate
WebCertificate message in XML format
<WebCertificate version="2.0" xmlns="[Link]
<CertificateType>
<!--required, xs:string, authentication type: "basic", "digest", "digest/baisc"-->
</CertificateType>
<SecurityAlgorithm><!--dependent, this node is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType>
<!--optional, xs:string, algorithm type: "MD5", "SHA256", "MD5/SHA256"-->
</algorithmType>
1301
Device Network SDK (General) Developer Guide
</SecurityAlgorithm>
</WebCertificate>
F.318 XML_WirelessDialInterface
WirelessDialInterface message in XML format
<WirelessDialInterface version="1.0" xmlns="[Link]
<id> <!--req, xs:string, only one network card is supported--> </id>
<Dial/> <!—opt,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial -->
<Schedule> <!-- opt ,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule -->
<Dialstatus/> <!-- opt,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dialstatus -->
<messageConfig/> <!-- opt,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig -->
<messageList/> <!-- opt -->
</WirelessDialInterface>
F.319 XML_WirelessDialInterfaceList
WirelessDialInterfaceList message in XML format
<WirelessDialInterfaceList version="1.0"xmlns="[Link]
<WirelessDialInterface/>
</WirelessDialInterfaceList>
F.320 XML_ZoomFocus
ZoomFocus message in XML format
<ZoomFocus version="2.0" xmlns="[Link]
<pqrsZoom/><!--opt, xs: integer, zoom coordinates of Sony zoom camera module-->
<mnstFocus/><!--opt, xs: integer, focus coordinates of Sony zoom camera module-->
</ZoomFocus>
1302
Device Network SDK (General) Developer Guide
StatusCode=1
StatusCode=2
1303
Device Network SDK (General) Developer Guide
StatusCode=3
1304
Device Network SDK (General) Developer Guide
StatusCode=4
1305
Device Network SDK (General) Developer Guide
1306
Device Network SDK (General) Developer Guide
1307
Device Network SDK (General) Developer Guide
1308
Device Network SDK (General) Developer Guide
1309
Device Network SDK (General) Developer Guide
1310
Device Network SDK (General) Developer Guide
1311
Device Network SDK (General) Developer Guide
1312
Device Network SDK (General) Developer Guide
1313
Device Network SDK (General) Developer Guide
1314
Device Network SDK (General) Developer Guide
1315
Device Network SDK (General) Developer Guide
1316
Device Network SDK (General) Developer Guide
1317
Device Network SDK (General) Developer Guide
1318
Device Network SDK (General) Developer Guide
1319
Device Network SDK (General) Developer Guide
1320
Device Network SDK (General) Developer Guide
1321
Device Network SDK (General) Developer Guide
1322
Device Network SDK (General) Developer Guide
1323
Device Network SDK (General) Developer Guide
1324
Device Network SDK (General) Developer Guide
1325
Device Network SDK (General) Developer Guide
1326
Device Network SDK (General) Developer Guide
1327
Device Network SDK (General) Developer Guide
1328
Device Network SDK (General) Developer Guide
1329
Device Network SDK (General) Developer Guide
StatusCode=5
StatusCode=6
1330
Device Network SDK (General) Developer Guide
1331
Device Network SDK (General) Developer Guide
1332
Device Network SDK (General) Developer Guide
1333
Device Network SDK (General) Developer Guide
1334
Device Network SDK (General) Developer Guide
1335
Device Network SDK (General) Developer Guide
StatusCode=7
1336