Device Network SDK (Access Control On Person) : Developer Guide
Device Network SDK (Access Control On Person) : Developer Guide
Person)
Developer Guide
Device Network SDK (Access Control on Person) 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 (Access Control on Person) Developer Guide
Contents
Chapter 1 Access Control ............................................................................................................ 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 1
Chapter 2 Typical Applications .................................................................................................. 11
2.1 Data Collection ..................................................................................................................... 11
2.1.1 Online Collect Data ..................................................................................................... 11
2.1.2 Offline Collect Data ..................................................................................................... 14
2.2 Manage Person Information ................................................................................................ 19
2.3 Manage Card Information .................................................................................................... 23
2.3.1 Collect Card Information ............................................................................................. 27
2.3.2 Card Operation ............................................................................................................ 27
2.4 Manage Fingerprint Information ......................................................................................... 29
2.4.1 Fingerprint Collection ................................................................................................. 34
2.5 Manage Face Information .................................................................................................... 35
2.5.1 Create Face Picture Library ......................................................................................... 35
2.5.2 Collect Face Data ......................................................................................................... 37
2.5.3 Manage Face Records in Face Picture Library ............................................................. 38
2.5.4 Configure Facial Recognition Mode ............................................................................ 41
2.6 Configure Access Permission Control Schedule ................................................................... 43
2.7 Configure Authentication Mode Control Schedule .............................................................. 49
2.8 Configure Door Control Schedule ........................................................................................ 54
2.9 Configure Access Control Event ........................................................................................... 60
2.10 Search for Access Control Events ....................................................................................... 62
2.11 Remotely Control Door, Elevator, and Buzzer .................................................................... 66
2.12 Configure Anti-Passing Back ............................................................................................... 67
2.13 Cross-Controller Anti-Passing Back Configuration ............................................................. 70
ii
Device Network SDK (Access Control on Person) Developer Guide
iii
Device Network SDK (Access Control on Person) Developer Guide
iv
Device Network SDK (Access Control on Person) Developer Guide
v
Device Network SDK (Access Control on Person) Developer Guide
vi
Device Network SDK (Access Control on Person) Developer Guide
vii
Device Network SDK (Access Control on Person) Developer Guide
viii
Device Network SDK (Access Control on Person) Developer Guide
ix
Device Network SDK (Access Control on Person) Developer Guide
x
Device Network SDK (Access Control on Person) Developer Guide
xi
Device Network SDK (Access Control on Person) Developer Guide
xii
Device Network SDK (Access Control on Person) Developer Guide
xiii
Device Network SDK (Access Control on Person) Developer Guide
xiv
Device Network SDK (Access Control on Person) Developer Guide
xv
Device Network SDK (Access Control on Person) Developer Guide
xvi
Device Network SDK (Access Control on Person) Developer Guide
xvii
Device Network SDK (Access Control on Person) Developer Guide
1.1 Introduction
This manual mainly introduces the integration flows and related APIs for access controller,
fingerprint access control terminal, fingerprint time attendance terminal, and so on, to implement
the following functions: schedule configuration, person/card/fingerprint information management,
alarm/event configuration, door/elevator/buzzer control, anti-passing back, and so on.
1
Device Network SDK (Access Control on Person) Developer Guide
added two members: dwInfraredFacePicSize (data size of infrared face picture) and
lpInfraredFacePicBuffer (buffer of infrared face picture data) by eight bytes.
6. Added the function of offline collecting data, refer to Offline Collect Data .
7. Added three error codes to Device Network SDK Errors : 1927-"NET_ERR_CAPTURE_TIMEOUT"
(collection timed out), 1928-"NET_ERR_LOW_SCORE" (low quality of collected data), and
1929-"NET_ERR_OFFLINE_CAPTURING" (the device is collecting data offline and cannot
respond).
8. Added two sub status codes: 0x30006000-"captureTimeout" (data collection timed out) and
0x30006001-"lowScore" (low quality of collected data) to status code 3 (Device Error) in Error
Codes in ResponseStatus .
9. Added functions of operating cards, refer to Card Operation for details.
10. Added functions of configuring active infrared intrusion parameters (related API:
NET_DVR_STDXMLConfig ):
Get configuration capability: GET /ISAPI/AccessControl/Configuration/IRCfg/capabilities?
format=json
Get or set parameters: GET or PUT /ISAPI/AccessControl/Configuration/IRCfg?format=json
11. Added multiple log types, refer to HCNetSDK Log Types for details:
added six minor log types to the "MAJOR_EXCEPTION" log type:
MINOR_AUXILIARY_BOARD_OFFLINE (0x43c), MINOR_AUXILIARY_BOARD_RESUME (0x43d),
MINOR_IDCARD_SECURITY_MOUDLE_EXCEPTION (0x43e),
MINOR_IDCARD_SECURITY_MOUDLE_RESUME (0x43f), MINOR_FP_PERIPHERAL_EXCEPTION
(0x440), and MINOR_FP_PERIPHERAL_RESUME (0x441);
added three minor log types to the "MAJOR_OPERATION" log type:
MINOR_OFFLINE_DATA_OUTPUT (0x423), MINOR_CREATE_SSH_LINK (0x42d), and
MINOR_CLOSE_SSH_LINK (0x42e);
added 14 minor log types to the "MAJOR_INFORMATION" log type:
MINOR_LIVE_DETECT_OPEN ( 0x400), MINOR_LIVE_DETECT_CLOSE (0x401),
MINOR_CLEAR_DATA_COLLECTION (0x402), MINOR_DELETE_DATA_COLLECTION (0x403),
MINOR_EXPORT_DATA_COLLECTION (0x404), MINOR_CARD_LEN_CONFIG (0x405),
MINOR_DATA_BASE_INIT_FAILED (0x406), MINOR_DATA_BASE_PATCH_UPDATE (0x407),
MINOR_PSAM_CARD_INSERT (0x408), MINOR_PSAM_CARD_REMOVE (0x409),
MINOR_HARD_FAULT_REBOOT (0x40a), MINOR_PSAM_CARD_OCP (0x40b),
MINOR_STACK_OVERFLOW (0x40c), and MINOR_PARM_CFG (0x40d).
2
Device Network SDK (Access Control on Person) Developer Guide
3
Device Network SDK (Access Control on Person) Developer Guide
4
Device Network SDK (Access Control on Person) Developer Guide
5
Device Network SDK (Access Control on Person) Developer Guide
6. Added the function of getting information of face modeling failure after upgrading device, refer
to Other Configurations for details.
7. Extended access control capability message XML_Cap_AccessControl (related URL: /ISAPI/
AccessControl/capabilities ; related API: NET_DVR_STDXMLConfig ):
added three nodes: <isSupportCaptureFace> (whether to support collecting face pictures),
<isSupportCaptureInfraredFace> (whether to support collecting infrared face pictures), and
<isSupportFaceRecognizeMode> (whether to support configuring facial recognition mode).
6
Device Network SDK (Access Control on Person) Developer Guide
7
Device Network SDK (Access Control on Person) Developer Guide
5. Added the function of setting card information (related API: NET_DVR_STDXMLConfig ): PUT /
ISAPI/AccessControl/CardInfo/SetUp?format=json .
6. Extended card information capability message JSON_Cap_CardInfo (related URL: /ISAPI/
AccessControl/CardInfo/capabilities?format=json ; related API: NET_DVR_STDXMLConfig ):
added a function type "setUp" (set card information) to the node supportFunction;
added a node checkEmployeeNo (whether to check the existence of the employee No. (person
ID)).
7. Added the function of managing fingerprint, refer to Manage Fingerprint Information for
details.
8. Extended parameter union about event and card linkage configuration
NET_DVR_EVETN_CARD_LINKAGE_UNION (related API: NET_DVR_SetDeviceConfig ):
added a member byEmployeeNo (employee No. (person ID)) by 32 bytes.
9. Extended parameter structure about event and card linkage configuration
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51 (related API: NET_DVR_SetDeviceConfig ):
added a linkage type "3" (employee No. (person ID) linkage) to the member byProMode.
10. Extended access control event details structure NET_DVR_ACS_EVENT_DETAIL (related API:
NET_DVR_StartRemoteConfig ):
added 11 authentication modes: 10 (face or fingerprint or card or password), 11 (face
+fingerprint), 12 (face+password), 13 (face+card), 14 (face), 19 (face+fingerprint+card), 20 (face
+password+fingerprint), 21 (employee No.+face), 22 (face or face+card), 23 (fingerprint or
face), and 24 (card or face or password) to the member byCurrentVerifyMode;
added a member byEmployeeNo (employee No. (person ID)).
11. Added the function of getting the total number of access control events by specific conditions
(related API: NET_DVR_STDXMLConfig ):
Get the capability: GET /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json ;
Get the total number: POST /ISAPI/AccessControl/AcsEventTotalNum?format=json .
12. Added the structure about extended access control event information
NET_DVR_ACS_EVENT_INFO_EXTEND .
13. Extended access control alarm/event information structure
NET_DVR_ACS_ALARM_INFO_V50 :
added two members pAcsEventInfoExtend (it points to the structure
NET_DVR_ACS_EVENT_INFO_EXTEND when it is set to 1) and byAcsEventInfoExtend (whether
pAcsEventInfoExtend is valid).
14. Added the function of log mode configuration and event optimization configuration, refer to
Other Configurations for details.
15. Extended fingerprint and card reader parameters structure
NET_DVR_CARD_READER_CFG_V50 (related API: NET_DVR_SetDVRConfig ):
added two members bySupportDelFPByID (whether the fingerprint and card reader supports
deleting fingerprint by finger ID) and byDefaultVerifyMode (default authentication mode of
the fingerprint and card reader (factory settings)).
16. Extended access controller configuration parameter structure NET_DVR_ACS_CFG (related API:
NET_DVR_GetDVRConfig ):
added a member byProtocol (communication protocol type of the card reader).
8
Device Network SDK (Access Control on Person) Developer Guide
9
Device Network SDK (Access Control on Person) Developer Guide
10
Device Network SDK (Access Control on Person) Developer Guide
11
Device Network SDK (Access Control on Person) Developer Guide
Steps
12
Device Network SDK (Access Control on Person) Developer Guide
13
Device Network SDK (Access Control on Person) Developer Guide
Note
The preset parameters are used to display custom information on the device UI during data
collection. Currently, it only supports displaying the name of the person whose data is being
collected. The preset parameters should be configured again for each collection.
4. Perform the following operation(s) to collect ID card information, card information, face data, or
fingerprint online.
Collect ID Card a. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
Information ISAPI/AccessControl/capabilities for getting access control capability
to check whether the device supports online collecting ID card
information.
The capability is returned in the message XML_Cap_AccessControl by
lpOutputParam. If it supports, the node <isSupportCaptureIDInfo> is
returned and its value is "true". Otherwise, online ID card collection is
not supported.
b. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json for
getting the capability of online collecting ID card information.
The capability is returned in the message JSON_IdentityInfoCap by
lpOutputParam.
c. Call NET_DVR_STDXMLConfig to pass through the request URL:
POST /ISAPI/AccessControl/CaptureIDInfo?format=json and set
lpInputParam to the message JSON_IdentityInfoCond for online
collecting ID card information.
The online collected ID card information is returned in the message
JSON_IdentityInfo by lpOutputParam.
Collect Card Refer to Collect Card Information
Information
Collect Face Refer to Collect Face Data
Data
Collect Refer to Fingerprint Collection
Fingerprint
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
14
Device Network SDK (Access Control on Person) Developer Guide
needs to be collected. The offline collected data will be stored on the device and can also be
downloaded, exported, or deleted from the device.
Before You Start
• Make sure you have called NET_DVR_Init to initialize the development environment.
• Make sure you have called NET_DVR_Login_V40 to log in to the device.
15
Device Network SDK (Access Control on Person) Developer Guide
Steps
16
Device Network SDK (Access Control on Person) Developer Guide
Note
Before setting rule parameters of offline data collection, you'd better call
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
OfflineCapture/ruleInfo?format=json for getting the existing or configured parameters for
reference. The parameters are returned in the message JSON_RuleInfo by lpOutBuffer of
lpOutputParam.
6. Collect ID card information, card information, face data, or fingerprint on the stand-alone device
offline.
7. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/OfflineCapture/progress?format=json for getting the progress of offline data
collection.
The collection progress is returned in the message JSON_CaptureProgress by lpOutBuffer of
lpOutputParam.
8. Optional: Perform the following operation(s) after collecting data offline.
Export Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
Collected AccessControl/OfflineCapture/dataOutput?format=json and set lpInBuffer
Data of lpInputParam to the message JSON_DataOutputCfg .
17
Device Network SDK (Access Control on Person) Developer Guide
Note
During exporting, you can call NET_DVR_STDXMLConfig to pass through the
request URL: GET /ISAPI/AccessControl/OfflineCapture/dataOutput/
progress?format=json for getting the progress of exporting the offline
collected data.
Note
- The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
- After a search condition message JSON_SearchTaskCond is applied by
calling NET_DVR_SendRemoteConfig , the next piece of data can be
searched only when NET_DVR_JSON_DATA_CFG is returned by the
callback function fRemoteConfigCallback .
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finishing searching.
Delete A Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Specific Piece ISAPI/AccessControl/OfflineCapture/DataCollections/<captureNo>?
of Collected format=json .
Data
Delete All Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Collected ISAPI/AccessControl/OfflineCapture/DataCollections?format=json .
Data
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
18
Device Network SDK (Access Control on Person) Developer Guide
19
Device Network SDK (Access Control on Person) Developer Guide
Steps
20
Device Network SDK (Access Control on Person) Developer Guide
Note
The type of data to be sent (dwDataType) should be set to "ENUM_SEND_JSON_DATA".
4. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection and finish adding.
5. Optional: Perform the following operation(s) after adding persons.
Set Person a. Call NET_DVR_StartRemoteConfig with the command of
Information NET_DVR_JSON_CONFIG (command No.:2550) to pass through the
request URL: PUT /ISAPI/AccessControl/UserInfo/SetUp?format=json
for setting up persistent connection and setting callback function to set a
person.
b. Call NET_DVR_SendRemoteConfig to send the person information
message JSON_UserInfo via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
ENUM_SEND_JSON_DATA.
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish setting.
Edit Person a. Call NET_DVR_StartRemoteConfig with the command of
Information NET_DVR_JSON_CONFIG (command No.: 2550) to pass through the
request URL: PUT /ISAPI/AccessControl/UserInfo/Modify?format=json
for setting up persistent connection and set callback function for editing
a person.
b. Call NET_DVR_SendRemoteConfig to send the person information
message JSON_UserInfo via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish editing.
21
Device Network SDK (Access Control on Person) Developer Guide
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA", and the search results
JSON_UserInfoSearch will be returned in the callback function
configured by the above step.
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish searching.
Get Number Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
of Total ISAPI/AccessControl/UserInfo/Count?format=json .
Added
Persons Note
The number of total added persons will be returned in the message
JSON_UserInfoCount .
Delete Person Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
Only ISAPI/AccessControl/UserInfo/Delete?format=json and set lpInBuffer of
lpInputParam to the message JSON_UserInfoDelCond .
Note
The timeout of deleting person only can be configured, and setting the
timeout to 60s is suggested.
Delete Person a. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
with Linked ISAPI/AccessControl/UserInfoDetail/Delete/capabilities?format=json
Card and for getting capability of deleting person with linked card and fingerprint.
Fingerprint And the capability is returned in the message JSON_Cap_UserInfoDetail
by the output parameter (lpOutputParam).
b. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
ISAPI/AccessControl/UserInfoDetail/Delete?format=json and set
lpInBuffer of lpInputParam to the message JSON_UserInfoDetail for
starting deleting.
c. Call NET_DVR_StartRemoteConfig with the command of
NET_DVR_JSON_CONFIG (command No.: 2550) to pass through the
request URL: GET /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?
22
Device Network SDK (Access Control on Person) Developer Guide
Note
If the value of node status in the deleting progress message
JSON_UserInfoDetailDeleteProcess is "success", it indicates that
deleting completed and perform the next step; if the value is "failed", it
refers to uncompleted deleting progress and you should repeatedly pass
through the request URL: GET /ISAPI/AccessControl/UserInfoDetail/
DeleteProcess?format=json to continuously getting the deleting
progress.
d. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish getting deleting progress.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out off the device and release the resources.
23
Device Network SDK (Access Control on Person) Developer Guide
Steps
24
Device Network SDK (Access Control on Person) Developer Guide
Note
The type of data to be sent (dwDataType) should be set to "ENUM_SEND_JSON_DATA".
4. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection and finishing adding.
5. Optional: Perform the following operation(s) after adding cards.
Set Card a. Call NET_DVR_StartRemoteConfig with the command of
Information NET_DVR_JSON_CONFIG (command No.: 2550) to pass through the
request URL: PUT /ISAPI/AccessControl/CardInfo/SetUp?format=json
for setting up persistent connection and setting callback function to set
a card.
b. Call NET_DVR_SendRemoteConfig to send the card information
message JSON_CardInfo via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish setting.
Edit Card a. Call NET_DVR_StartRemoteConfig with the command of
Information NET_DVR_JSON_CONFIG (command No.: 2550) to pass through the
request URL: PUT /ISAPI/AccessControl/CardInfo/Modify?format=json
for setting up persistent connection and setting callback function to edit
a card.
b. Call NET_DVR_SendRemoteConfig to send the card information
message JSON_CardInfo via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish editing.
25
Device Network SDK (Access Control on Person) Developer Guide
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA", and the search results
JSON_CardInfoSearch will be returned in the callback function
configured by the above step.
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish searching.
Get Number Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
of Total Added ISAPI/AccessControl/CardInfo/Count?format=json .
Cards
Note
The number of total added cards will be returned in the message
JSON_CardInfoCount .
Get Number Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
of Cards ISAPI/AccessControl/CardInfo/Count?format=json&employeeNo=<ID> .
Linked with A
Person Note
The number of cards linked with a person will be returned in the message
JSON_CardInfoCount .
Delete Card Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
ISAPI/AccessControl/CardInfo/Delete?format=json and set lpInBuffer of
lpInputParam to the message JSON_CardInfoDelCond .
Note
The timeout of deleting card can be configured, and setting the timeout to
60s is suggested.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out off the device and release the resources.
26
Device Network SDK (Access Control on Person) Developer Guide
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
27
Device Network SDK (Access Control on Person) Developer Guide
28
Device Network SDK (Access Control on Person) Developer Guide
29
Device Network SDK (Access Control on Person) Developer Guide
Steps
30
Device Network SDK (Access Control on Person) Developer Guide
Note
To collect the fingerprint, refer to Fingerprint Collection for details.
1. Get the fingerprint configuration capability to know the configuration details or notices.
- Call NET_DVR_GetDeviceAbility and set the capability type dwAbilityType to "ACS_ABILITY"
for getting the fingerprint configuration and deleting capability to know the configuration
details or notices.
Note
The input parameter pointer pInBuf should be set to the message XML_Desc_AcsAbility .
The capability is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related nodes are <FingerPrint> and <DelFingerPrint>.
- Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
FingerPrintCfg/capabilities?format=json to get the fingerprint configuration capability to
know the required configuration details.
2. Set up persistent connection to apply fingerprint information and set callback function to return
applying status.
- Call NET_DVR_StartRemoteConfig with NET_DVR_JSON_CONFIG (command No.: 2550) to
pass through request URL: POST /ISAPI/AccessControl/FingerPrintDownload?format=json
for setting up persistent connection and set callback function ( fRemoteConfigCallback ) for
applying fingerprint information (i.e., fingerprint data and parameters) and returning
applying status
- Call NET_DVR_StartRemoteConfig with NET_DVR_SET_FINGERPRINT_CFG_V50 (command
No.: 2184) to set up persistent connection and set callback function
( fRemoteConfigCallback ) for applying fingerprint information (i.e., fingerprint data and
parameters) and returning applying status.
Note
• Before setting fingerprint parameters, you'd better call
NET_DVR_GET_FINGERPRINT_CFG_V50 (command No.: 2183) to get the existing
configurations for reference, and the input parameter lpInBuffer refers to the structure
NET_DVR_FINGER_PRINT_INFO_COND_V50 .
• When applying the fingerprint information, whether to apply the card No. or employee ID
for linking with the fingerprint is determined by the capability of XML_AcsAbility . If the
<employeeNo> node is returned in the capability, it indicates that the device supports
applying fingerprint information based on person, so the card No. in the structure
NET_DVR_FINGER_PRINT_INFO_COND_V50 is not required, and the fingerprint will link
with the person directly after applying.
3. Set fingerprint parameters and start applying fingerprint data via the persistent connection.
- Call NET_DVR_SendRemoteConfig to send the fingerprint information structure
NET_DVR_FINGER_PRINT_CFG_V50 via the persistent connection for starting applying.
31
Device Network SDK (Access Control on Person) Developer Guide
Note
The type of data to be sent (dwDataType) should be set to "ENUM_ACS_SEND_DATA".
- Call NET_DVR_SendRemoteConfig to send the fingerprint information message
JSON_FingerPrintCfg via the persistent connection for starting applying.
Note
The type of data to be sent (dwDataType) should be set to "ENUM_SEND_JSON_DATA".
- Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/AccessControl/
FingerPrintDownload?format=json to set the fingerprint parameters (e.g., employee No. to
be linked, fingerprint modules to be applied, and so on) and start applying the recorded
fingerprint data.
Note
The binary fingerprint data is collected and recorded by the fingerprint recorder.
4. Check the status of applying fingerprint data.
- Check the applying status in the structure of NET_DVR_FINGER_PRINT_STATUS_V50
returned by NET_DVR_StartRemoteConfig .
Note
When the parameter byStatus in the structure is "3", it indicates that the fingerprint
information is applied.
- Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
FingerPrintProgress?format=json for getting the applying status to make sure that the
applying is completed.
Note
The fingerprint data is linked to a person according to the configured employee No. and
applied to the specified fingerprint modules only when the value of applying status
(totalStatus) is 1.
5. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection and finish setting
and applying.
6. Optional: Perform the following operation(s) after setting and applying fingerprint information.
Set Option 1:
Fingerprint a. Call NET_DVR_StartRemoteConfig with NET_DVR_JSON_CONFIG
Information (command No.: 2550) to pass through the request URL: POST /ISAPI/
AccessControl/FingerPrint/SetUp?format=json for setting up persistent
connection and set callback function fRemoteConfigCallback for setting
the fingerprint information.
b. Call NET_DVR_SendRemoteConfig to send the fingerprint information
message JSON_FingerPrintCfg via the persistent connection.
32
Device Network SDK (Access Control on Person) Developer Guide
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish setting.
Option 2:
Call NET_DVR_STDXMLConfig to pass through the request URL: POST /
ISAPI/AccessControl/FingerPrint/SetUp?format=json .
Edit Call NET_DVR_STDXMLConfig to pass through the request URL: POST /
Fingerprint ISAPI/AccessControl/FingerPrintModify?format=json and set the input
Information buffer (lpInBuffer) of the input parameter (lpInputParam) to the message
JSON_FingerPrintModify .
Note
Only the fingerprint parameters (such as fingerprint ID, type, and so on) can
be edited. The collected fingerprint data cannot be edited.
Get Option 1:
Fingerprint a. Call NET_DVR_StartRemoteConfig with NET_DVR_JSON_CONFIG
Data (command No.: 2550) to pass through the request URL: POST /ISAPI/
AccessControl/FingerPrintUpload?format=json for setting up persistent
connection and set callback function fRemoteConfigCallback for getting
the fingerprint information.
b. Call NET_DVR_SendRemoteConfig to send the fingerprint search
condition message JSON_FingerPrintCond via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish getting.
Option 2:
Call NET_DVR_STDXMLConfig to pass through the request URL: POST /
ISAPI/AccessControl/FingerPrintUpload?format=json to get a fingerprint or
all fingerprints of a person.
Delete a. Start deleting the fingerprint information.
Fingerprint Option 1: Call NET_DVR_StartRemoteConfig with
NET_DVR_DEL_FINGERPRINT_CFG_V50 (command No.:2517) and set the
input parameter lpInBuffer (it refers to the structure
NET_DVR_FINGER_PRINT_INFO_CTRL_V50 ) for setting up persistent
33
Device Network SDK (Access Control on Person) Developer Guide
34
Device Network SDK (Access Control on Person) Developer Guide
35
Device Network SDK (Access Control on Person) Developer Guide
Steps
Note
There are three types of face picture library, including infrared face picture library, list library,
and static library. So if you want to specify a face picture library, you should provide the library
type and library ID together.
The ID of the created face picture library (FDID) is returned.
3. Optional: Perform the following operation(s) after creating a face picture library.
Edit A Face Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
Picture Library ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType= and set the
input buffer (lpInBuffer) of the input parameter (lpInputParam) to the
message JSON_EditFPlibInfo
Delete A Face Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Picture Library ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType= .
36
Device Network SDK (Access Control on Person) Developer Guide
Delete All Face Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Picture ISAPI/Intelligent/FDLib?format=json .
Libraries
Search for A Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
Specific Face ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType= .
Picture Library The information of the specified face picture library is returned in the
message JSON_SingleFPLibInfo by the output buffer (lpOutBuffer) of the
output parameter (lpOutputParam).
Search for All Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
Face Picture ISAPI/Intelligent/FDLib?format=json .
Libraries The information of all face picture libraries is returned in the message
JSON_FPLibListInfo by the output buffer (lpOutBuffer) of the output
parameter (lpOutputParam).
Note
In the URL, both the library ID (FDID) and the library type (faceLibType) are required to specify a
face picture library, e.g., /ISAPI/Intelligent/FDLib?
format=json&FDID=1223344455566788&faceLibType=blackFD.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
37
Device Network SDK (Access Control on Person) Developer Guide
Figure 1-7 Programming Flow of Managing Face Records in Face Picture Library
1. Prepare picture URLs (picture storage location) or binary pictures in form format for being
imported to the library.
2. Apply the picture URL or binary picture with person information for adding a face record to the
library according to the face picture library ID (FDID).
38
Device Network SDK (Access Control on Person) Developer Guide
Note
• The type of data to be sent (dwDataType) should be set to "ENUM_SEND_JSON_DATA".
• After a face record is added to the face picture library by calling
NET_DVR_SendRemoteConfig , the next face record can be added to the face picture
library only when JSON_ResponseStatus is returned by the callback function
fRemoteConfigCallback .
3) Call NET_DVR_StopRemoteConfig to disconnect the persistent connection and finish adding.
3. Optional: Perform the following operation(s) after adding face records to the face picture
library.
Edit Face a. Call NET_DVR_StartRemoteConfig with NET_DVR_FACE_DATA_MODIFY
Record (command No.: 2553) to pass through the request URL: PUT /ISAPI/
Intelligent/FDLib/FDModify?format=json for setting up persistent
connection and set callback function ( fRemoteConfigCallback ) for
editing the face record.
b. Call NET_DVR_SendRemoteConfig to send the face record information
structure NET_DVR_JSON_DATA_CFG via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish editing.
Set Face a. Call NET_DVR_StartRemoteConfig with NET_DVR_FACE_DATA_RECORD
Record (command No.: 2551) to pass through the request URL: PUT /ISAPI/
Intelligent/FDLib/FDSetUp?format=json for setting up persistent
connection and set callback function ( fRemoteConfigCallback ) for
setting the face record.
b. Call NET_DVR_SendRemoteConfig to send the face record information
structure NET_DVR_JSON_DATA_CFG via the persistent connection.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish setting.
39
Device Network SDK (Access Control on Person) Developer Guide
Delete Face Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
Record(s) Intelligent/FDLib/FDSearch/Delete?format=json&FDID=&faceLibType= and
set the input buffer (lpInBuffer) of the input parameter (lpInputParam) to
the message JSON_DelFaceRecord .
Note
Deleting a face record or deleting face records in a batch are both
supported.
Note
The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA", and the search result message
JSON_SearchFaceRecordResult will be returned in the callback function
configured by the above steps.
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finish searching.
Note
Searching multiple face picture libraries at a time and fuzzy search are both
supported.
Get Number Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
of Face Intelligent/FDLib/Count?format=json&FDID=&faceLibType= .
Records of A The result is returned in the message JSON_FaceRecordNumInOneFPLib by
Specific Face the output buffer (lpOutBuffer) of the output parameter (lpOutputParam).
Picture
Library
Get Number Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
of Face Intelligent/FDLib/Count?format=json .
Records of The result is returned in the message JSON_FaceRecordNumInAllFPLib by
All Face the output buffer (lpOutBuffer) of the output parameter (lpOutputParam).
Picture
Libraries
40
Device Network SDK (Access Control on Person) Developer Guide
Note
In the request URL, both the library ID (FDID) and library type (faceLibType) are required to
specify a face picture library, e.g., /ISAPI/Intelligent/FDLib?
format=json&FDID=1223344455566788&faceLibType=blackFD.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
41
Device Network SDK (Access Control on Person) Developer Guide
Steps
Note
The capability will be returned in the message XML_Cap_AccessControl by lpOutputParam.
If the device supports configuring facial recognition mode, the node
<isSupportFaceRecognizeMode> is returned and its value is "true", and then you can perform
the following steps. Otherwise, it indicates that configuring facial recognition mode is not
supported by the device, please end this task.
2. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/FaceRecognizeMode/capabilities?format=json to get the configuration
capability of facial recognition mode to know the supported facial recognition modes.
The configuration capability is returned in the message JSON_Cap_FaceRecognizeMode by
lpOutputParam.
42
Device Network SDK (Access Control on Person) Developer Guide
3. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/FaceRecognizeMode?format=json to get the current facial recognition mode.
The parameters of the current facial recognition mode are returned in the message
JSON_FaceRecognizeMode by lpOutBuffer of lpOutputParam.
4. Perform one of the following operations to add face records to face picture libraries for setting
normal or deep facial recognition mode.
- Add face records to the default face picture library with "blackFD" type, refer to Manage
Face Records in Face Picture Library for details.
- Add visible face pictures to the default face picture library with "blackFD" type, and add
infrared face pictures to the default library with "infraredFD" type, refer to Manage Face
Records in Face Picture Library for details.
Note
Generally, during the initialization of the access control device, two face picture libraries with
"blackID" type (the library ID is 1) and "infraredFD" type (the library ID is 2) will be created
automatically. But if the default libraries have not been created, you should create them by
yourself, refer to Create Face Picture Library for details.
5. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
FaceRecognizeMode?format=json and set lpInBuffer of lpInputParam to the message
JSON_FaceRecognizeMode to configure facial recognition mode.
Result
The device will reboot automatically after configuring facial recognition mode, and permissions
linked with face pictures in the library will be cleared.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
43
Device Network SDK (Access Control on Person) Developer Guide
Steps
44
Device Network SDK (Access Control on Person) Developer Guide
Note
The week schedule parameters are returned in the structure NET_DVR_WEEK_PLAN_CFG
by lpOutBuffer.
b. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_WEEK_PLAN" (command
No.: 2127) and set lpInBuffer to NET_DVR_WEEK_PLAN_CFG for setting the week
schedule.
- a. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_HOLIDAY_PLAN"
(command No.: 2130) to get default or configured holiday schedule configurations for
reference.
Note
The holiday schedule parameters are returned in the structure
NET_DVR_HOLIDAY_PLAN_CFG by lpOutBuffer.
b. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_HOLIDAY_PLAN"
(command No.: 2131) and set lpInBuffer to NET_DVR_HOLIDAY_PLAN_CFG for setting the
week schedule.
c. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_HOLIDAY_GROUP"
(command No.: 2134) to get default or configured holiday group configurations for
reference.
Note
The holiday group parameters are returned in the structure
NET_DVR_HOLIDAY_GROUP_CFG by lpOutBuffer.
d. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_HOLIDAY_GROUP"
(command No.: 2135) and set lpInBuffer to NET_DVR_HOLIDAY_GROUP_CFG for adding
the configured holiday schedule to a holiday group.
3. Optional: Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_PLAN_TEMPLATE"
(command No.: 2138) to get default or configured schedule template configurations for
reference.
Note
The schedule template parameters are returned in the structure NET_DVR_PLAN_TEMPLATE by
lpOutBuffer.
4. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_PLAN_TEMPLATE" (command
No.: 2139) and set lpInBuffer to NET_DVR_PLAN_TEMPLATE for setting the schedule template.
Note
The configured schedule template can be directly linked to person ID when applying person
information. And the linked person can get the access permission configured in the template.
Example
Sample Code for Configuring Access Permission Control Schedule
45
Device Network SDK (Access Control on Person) Developer Guide
#include <stdio.h>
#include <iostream>
#include <afx.h>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
//---------------------------------------
//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};
struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
strcpy(struLoginInfo.sDeviceAddress, "192.168.1.64"); //Device IP address
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
46
Device Network SDK (Access Control on Person) Developer Guide
&struPlanTem, sizeof(struPlanTem));
if (!bRet1)
{
printf("Setting access permission schedule template failed, error:%d.\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
/*Up to 8 time periods can be set for each day. Here only takes setting one period for each day*/
47
Device Network SDK (Access Control on Person) 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 the resource.
48
Device Network SDK (Access Control on Person) Developer Guide
49
Device Network SDK (Access Control on Person) Developer Guide
Otherwise, configuring authentication mode control schedule is not supported, please end this
task.
2. Perform one of the following operations to set week or holiday schedule for authentication
mode control.
- a. Call NET_DVR_GetDVRConfig with
NET_DVR_GET_VERIFY_WEEK_PLAN
(command No.: 2124) to get the existing week schedule configurations for reference.
Note
The week schedule parameters are returned in the structure NET_DVR_WEEK_PLAN_CFG
by output buffer (lpOutBuffer).
b. Call NET_DVR_SetDVRConfig with
NET_DVR_SET_VERIFY_WEEK_PLAN
(command No.: 2125) and set the input buffer (lpInBuffer) to NET_DVR_WEEK_PLAN_CFG
for setting the week schedule.
- a. Call NET_DVR_GetDVRConfig with
NET_DVR_GET_VERIFY_HOLIDAY_PLAN
(command No.: 2128) to get the existing holiday schedule configurations for reference.
Note
The holiday schedule parameters are returned in the structure
NET_DVR_HOLIDAY_PLAN_CFG by output buffer (lpOutBuffer).
b. Call NET_DVR_SetDVRConfig with
NET_DVR_SET_VERIFY_HOLIDAY_PLAN
(command No.: 2129) and set the input buffer (lpInBuffer) to
NET_DVR_HOLIDAY_PLAN_CFG for setting the holiday schedule.
c. Call NET_DVR_GetDVRConfig with
NET_DVR_GET_VERIFY_HOLIDAY_GROUP
(command No.: 2132) to get the existing holiday group configurations for reference.
Note
The holiday group parameters are returned in the structure
NET_DVR_HOLIDAY_GROUP_CFG by output buffer (lpOutBuffer).
d. Call NET_DVR_SetDVRConfig with
NET_DVR_SET_VERIFY_HOLIDAY_GROUP
(command No.: 2133) and set the input buffer (lpInBuffer) to
NET_DVR_HOLIDAY_GROUP_CFG for adding the configured holiday schedule to a holiday
group.
3. Optional: Call NET_DVR_GetDVRConfig with
NET_DVR_GET_VERIFY_PLAN_TEMPLATE
(command No.: 2136) to get the existing schedule template configurations for reference.
50
Device Network SDK (Access Control on Person) Developer Guide
Note
The schedule template parameters are returned in the structure NET_DVR_PLAN_TEMPLATE by
output buffer (lpOutBuffer).
4. Call NET_DVR_SetDVRConfig with
NET_DVR_SET_VERIFY_PLAN_TEMPLATE
(command No.: 2137) and set the input buffer (lpInBuffer) to NET_DVR_PLAN_TEMPLATE for
setting the schedule template.
5. Optional: Call NET_DVR_GetDVRConfig with
NET_DVR_GET_CARD_READER_PLAN
(command No.: 2142) to get the existing authentication mode control schedule configurations
for reference.
Note
The authentication mode control schedule parameters are returned in the structure
NET_DVR_CARD_READER_PLAN by output buffer (lpOutBuffer).
6. Call NET_DVR_SetDVRConfig
NET_DVR_SET_CARD_READER_PLAN
(command No.: 2143) and set the input buffer (lpInBuffer) to NET_DVR_CARD_READER_PLAN
for linking the configured template to the authentication mode control schedule and finishing
the configuration.
Example
Sample Code for Configuring Authentication Mode Control Schedule
#include <stdio.h>
#include <iostream>
#include <afx.h>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
//---------------------------------------
//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};
51
Device Network SDK (Access Control on Person) Developer Guide
//---------------------------------------
//Set card reader authentication mode schedule, template 1 linked to card reader 1
NET_DVR_CARD_READER_PLAN struCardReaderPlan = {0};
struCardReaderPlan.dwSize = sizeof(struCardReaderPlan);
struCardReaderPlan.dwTemplateNo = 1;//Schedule template 1
BOOL bRet1 = NET_DVR_SetDVRConfig(lUserID, NET_DVR_SET_CARD_READER_PLAN, 1, \
&struCardReaderPlan, sizeof(struCardReaderPlan));
if (!bRet1)
{
printf("Setting card reader authentication mode schedule failed, error:%d.\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//Set card reader authentication mode schedule template 1, template 1 links to week schedule 1 and holiday group
1
CString m_csTemplateName = "card reader authentication mode schedule template 1";
NET_DVR_PLAN_TEMPLATE struPlanTem = {0};
struPlanTem.dwSize = sizeof(struPlanTem);
struPlanTem.byEnable = 1;//Enable or not: 0-No, 1-Yes
strncpy((char *)struPlanTem.byTemplateName, (LPCTSTR)m_csTemplateName, TEMPLATE_NAME_LEN);
struPlanTem.dwWeekPlanNo = 2;//Week schedule No.2
struPlanTem.dwHolidayGroupNo[0] = 2;//Holiday group No.2, up to 16 holiday groups can be linked to each
schedule
52
Device Network SDK (Access Control on Person) Developer Guide
/*Up to 8 time periods can be set for each day, and you can set different authentication modes for each time period
Here only takes setting one period for each day*/
53
Device Network SDK (Access Control on Person) Developer Guide
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 the resource.
54
Device Network SDK (Access Control on Person) Developer Guide
55
Device Network SDK (Access Control on Person) Developer Guide
Note
The week schedule parameters are returned in the structure NET_DVR_WEEK_PLAN_CFG
by output buffer (lpOutBuffer).
b. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_WEEK_PLAN_CFG" (command No.:
2101) and set the input buffer (lpInBuffer) to NET_DVR_WEEK_PLAN_CFG for setting the
week schedule.
- a. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_DOOR_STATUS_HOLIDAY_PLAN"
(command No.: 2102) to get the existing holiday schedule configurations for reference.
Note
The holiday schedule parameters are returned in the structure
NET_DVR_HOLIDAY_PLAN_CFG by output buffer (lpOutBuffer).
b. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_DOOR_STATUS_HOLIDAY_PLAN"
(command No.: 2103) and set the input buffer (lpInBuffer) to
NET_DVR_HOLIDAY_PLAN_CFG for setting the week schedule.
c. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_DOOR_STATUS_HOLIDAY_GROUP"
(command No.: 2104) to get the existing holiday group configurations for reference.
Note
The holiday group parameters are returned in the structure
NET_DVR_HOLIDAY_GROUP_CFG by output buffer (lpOutBuffer).
d. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_DOOR_STATUS_HOLIDAY_GROUP"
(command No.: 2105) and set the input buffer (lpInBuffer) to
NET_DVR_HOLIDAY_GROUP_CFG for adding the configured holiday schedule to a holiday
group.
3. Optional: Call NET_DVR_GetDVRConfig with "NET_DVR_GET_DOOR_STATUS_PLAN_TEMPLATE"
(command No.: 2106) to get the existing schedule template configurations for reference.
Note
The schedule template parameters are returned in the structure NET_DVR_PLAN_TEMPLATE by
output buffer (lpOutBuffer).
4. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_DOOR_STATUS_PLAN_TEMPLATE"
(command No.: 2107) and set the input buffer (lpInBuffer) to NET_DVR_PLAN_TEMPLATE for
setting the schedule template.
5. Optional: Call NET_DVR_GetDVRConfig with "NET_DVR_GET_DOOR_STATUS_PLAN" (command
No.: 2110) to get the existing door control schedule configurations for reference.
Note
The door control schedule parameters are returned in the structure
NET_DVR_DOOR_STATUS_PLAN by output buffer (lpOutBuffer).
56
Device Network SDK (Access Control on Person) Developer Guide
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
//---------------------------------------
//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};
struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
strcpy(struLoginInfo.sDeviceAddress, "192.168.1.64"); //Device IP address
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
//---------------------------------------
//Set door status schedule, template 1 linked to door 1
NET_DVR_DOOR_STATUS_PLAN struDoorStatusPlan = {0};
struDoorStatusPlan.dwSize = sizeof(struDoorStatusPlan);
struDoorStatusPlan.dwTemplateNo = 1;//Schedule template 1
57
Device Network SDK (Access Control on Person) Developer Guide
//Set door status schedule template 1, template 1 links to week schedule 1 and holiday group 1
CString m_csTemplateName = "door status schedule template 1";
NET_DVR_PLAN_TEMPLATE struPlanTem = {0};
struPlanTem.dwSize = sizeof(struPlanTem);
struPlanTem.byEnable = 1;//Enable or not: 0-No, 1-Yes
strncpy((char *)struPlanTem.byTemplateName, (LPCTSTR)m_csTemplateName, TEMPLATE_NAME_LEN);
struPlanTem.dwWeekPlanNo = 1;//Week schedule No.1
struPlanTem.dwHolidayGroupNo[0] = 1;//Holiday group No.1, up to 16 holiday groups can be linked to each
schedule
//struPlanTem.dwHolidayGroupNo[1] = 2;//Holiday group No.2
/*Up to 8 time periods can be set for each day, and you can set different statuses for each time period
Here only takes setting one period for each day*/
58
Device Network SDK (Access Control on Person) Developer Guide
{
memcpy(&struWeekPlan.struPlanCfg[iDate][0], lpPlanSegment, sizeof(struSinglePlanSegment));
}
59
Device Network SDK (Access Control on Person) Developer Guide
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//---------------------------------------
//Exit
Sleep(5000);
//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 the resource.
60
Device Network SDK (Access Control on Person) Developer Guide
Steps
Note
The input parameter pointer pInBuf should be set to the message XML_Desc_AcsAbility .
The capability is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related nodes is <EventLinkage>.
61
Device Network SDK (Access Control on Person) Developer Guide
Note
The parameter dwCount should be set to 1.
5. Call NET_DVR_SetDeviceConfig with NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V51
(command No.: 2519) to set the event card linkage parameters.
Note
• The parameter lpInBuffer refers to the structure NET_DVR_EVENT_CARD_LINKAGE_COND ,
and the parameter lpOutBuffer or lpInParamBuffer refers to the structure
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51 .
• The parameter dwCount should be set to 1.
6. Receive event/alarm in arming mode (see Receive Alarm/Event in Arming Mode ) or listening
mode (see Receive Alarm/Event in Listening Mode ) when alarm is triggered or event occurred.
Note
The command to receive access control alarms/events should be set to
COMM_ALARM_ACS_V50 (command No.: 0x5005) in the APIs of
NET_DVR_SetDVRMessageCallBack_V50 and NET_DVR_StartListen_V30 , and refer to the data
structure NET_DVR_ACS_ALARM_INFO_V50 for the alarm/event details.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out off the device and release the resources.
62
Device Network SDK (Access Control on Person) Developer Guide
Steps
63
Device Network SDK (Access Control on Person) Developer Guide
message JSON_AcsEventTotalNumCond for getting the total number of access control events by
specific conditions.
5. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection and finish searching.
Example
Sample Code of Searching for Access Control Event
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
64
Device Network SDK (Access Control on Person) Developer Guide
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
strcpy(struLoginInfo.sDeviceAddress, "192.168.1.64"); //Device IP address
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
65
Device Network SDK (Access Control on Person) Developer Guide
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
Figure 1-14 Programming Flow of Remotely Control Door, Elevator, and Buzzer
1. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/RemoteControl/buzzer/capabilities?format=json for getting the capability to
judge whether the buzzer control is supported and know the control details or notices.
Note
The obtained capability ( JSON_Cap_RemoteControlBuzzer ) is for buzzer control only, the door
control capability does not exist.
2. Perform one of the following operations to control door or elevator remotely or control buzzer
remotely.
- Call NET_DVR_ControlGateway to control door or elevator remotely (i.e., open door, close
door, remain open, remain closed).
- Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
RemoteControl/buzzer/<ID>?format=json for controlling the buzzer (i.e., start or stop
buzzing).
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out off the device and release the resources.
66
Device Network SDK (Access Control on Person) Developer Guide
67
Device Network SDK (Access Control on Person) Developer Guide
Steps
68
Device Network SDK (Access Control on Person) Developer Guide
Note
Before setting the following parameters, you'd better pass through the each configuration URLs
with GET method to get the existing or configured parameters for reference.
1. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/AntiSneakCfg/capabilities?format=json for getting the anti-passing back
configuration capability of the access controller.
The anti-passing back configuration capability JSON_Cap_AntiSneakCfg is returned.
2. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
AntiSneakCfg?format=json for setting the anti-passing back parameters of access controller.
3. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/CardReaderAntiSneakCfg/capabilities?format=json for getting the anti-passing
back configuration capability of card reader.
4. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
CardReaderAntiSneakCfg/<ID>?format=json for setting the anti-passing parameters of card
reader.
5. Perform the following operation(s) after configuring the anti-passing back function.
Clear Anti- Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
passing Back ISAPI/AccessControl/ClearAntiSneakCfg?format=json .
Parameters
Note
The capability of clearing anti-passing back parameters
( JSON_Cap_ClearAntiSneakCfg ) can be obtained by calling
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/ClearAntiSneakCfg/capabilities?format=json .
Clear Anti- If the anti-passing back event occurred, it will be recorded in the access
passing Back controller, so if needed, you can call NET_DVR_STDXMLConfig to pass
Records through the request URL: PUT /ISAPI/AccessControl/ClearAntiSneak?
format=json for clearing the records.
Note
The capability of clearing anti-passing back records
( JSON_Cap_ClearAntiSneak ) can be obtained by calling
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/ClearAntiSneak/capabilities?format=json .
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
69
Device Network SDK (Access Control on Person) Developer Guide
70
Device Network SDK (Access Control on Person) Developer Guide
Steps
Figure 1-16 Programming Flow of Configuring Route Anti-Passing Back Based on Network
71
Device Network SDK (Access Control on Person) Developer Guide
Note
Before setting the following parameters, you'd better pass through the each configuration URLs
with GET method to get the existing or configured parameters for reference.
1. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackMode for setting anti-passing back mode and rule.
Note
• For route anti-passing back based on network, the mode must be set to
"internetCommunicate" and the rule should be set to "line".
• To get the capability of setting anti-passing back mode and rule, you should pass through the
request URL: GET /ISAPI/AccessControl/SubmarineBackMode/capabilities . And the
capability is returned in the message XML_Cap_SubmarineBackMode .
Note
To get the capability of enabling anti-passing back of card readers, you should pass through the
request URL: GET /ISAPI/AccessControl/ReaderAcrossHost/capabilities . And the capability is
returned in the message XML_Cap_ReaderAcrossHost .
3. Perform one of the following operations to configure anti-passing back server or access
controllers.
- Configure anti-passing back server:
a. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/SubmarineBack for specifying an access controller as the server for cross-
controller anti-passing back and setting the server parameters.
Note
To get the capability of specifying a server for anti-passing back, you should pass through
the request URL: GET /ISAPI/AccessControl/SubmarineBack/capabilities . And the
capability is returned in the message XML_Cap_SubmarineBack .
b. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> for setting anti-passing back
parameters of access controllers.
Note
To get the capability of adding access controllers to anti-passing back route, you should
pass through the request URL: GET /ISAPI/AccessControl/SubmarineBackHostInfo/
capabilities . And the capability is returned in the message
XML_Cap_SubmarineBackHostInfo .
72
Device Network SDK (Access Control on Person) Developer Guide
Note
To get the capability of specifying a first card reader, you should pass through the request
URL: GET /ISAPI/AccessControl/StartReaderInfo/capabilities . And the capability is
returned in the message XML_Cap_StartReaderInfo .
d. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/SubmarineBackReader/ConfigureNo/<ID> for setting the anti-passing
back parameters of the first and other card readers.
Note
To get the capability of setting anti-passing back parameters for card readers, you should
pass through the request URL: GET /ISAPI/AccessControl/SubmarineBackReader/
capabilities . And the capability is returned in the message
XML_Cap_SubmarineBackReader .
- Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
ServerDevice for notifying the anti-passing back server information to access controllers.
Note
To get the capability of notifying anti-passing back server information to access controllers,
you should pass through thee request URL: GET /ISAPI/AccessControl/ServerDevice/
capabilities . And the capability is returned in the message XML_Cap_ServerDevice .
4. Optional: Perform the following operation(s) after configuring route anti-passing back based on
network.
Clear Cross- Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
Controller Anti- ISAPI/AccessControl/ClearSubmarineBack .
Passing Back
Parameters Note
To get the capability of clearing the cross-controller anti-passing back
parameters, you should pass through the request URL: GET /ISAPI/
AccessControl/ClearSubmarineBack/capabilities . And the capability is
returned in message XML_Cap_ClearSubmarineBack
Clear Card If the card is swiped in the anti-passing back route or entrance/exit, it will
Swiping be recorded by the server. So if need, you can call
Records in NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
Server AccessControl/ClearCardRecord for clearing card swiping records in the
server.
73
Device Network SDK (Access Control on Person) Developer Guide
Note
To get the capability of clearing card swiping records in server, you should
pass through the request URL: GET /ISAPI/AccessControl/
ClearCardRecord/capabilities . And the capability is returned in message
XML_Cap_ClearCardRecord
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
74
Device Network SDK (Access Control on Person) Developer Guide
Steps
Figure 1-17 Programming Flow of Configuring Entrance/Exit Anti-Passing Back Based on Network
Note
Before setting the following parameters, you'd better pass through the each configuration URLs
with GET method to get the existing or configured parameters for reference.
1. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackMode for setting anti-passing back mode and rule.
Note
• For route anti-passing back based on network, the mode must be set to
"internetCommunicate" and the rule should be set to "inOrOut".
• To get the capability of setting anti-passing back mode and rule, you should pass through the
request URL: GET /ISAPI/AccessControl/SubmarineBackMode/capabilities . And the
capability is returned in the message XML_Cap_SubmarineBackMode .
75
Device Network SDK (Access Control on Person) Developer Guide
Note
To get the capability of enabling anti-passing back of card readers, you should pass through the
request URL: GET /ISAPI/AccessControl/ReaderAcrossHost/capabilities . And the capability is
returned in the message XML_Cap_ReaderAcrossHost .
3. Perform one of the following operations to configure anti-passing back server or access
controllers.
- Configure anti-passing back server:
a. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/SubmarineBack for specifying an access controller as the server for cross-
controller anti-passing back and setting the server parameters.
Note
To get the capability of specifying a server for anti-passing back, you should pass through
the request URL: GET /ISAPI/AccessControl/SubmarineBack/capabilities . And the
capability is returned in the message XML_Cap_SubmarineBack .
b. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> for setting anti-passing back
parameters of access controllers.
Note
To get the capability of adding access controllers to anti-passing back route, you should
pass through the request URL: GET /ISAPI/AccessControl/SubmarineBackHostInfo/
capabilities . And the capability is returned in the message
XML_Cap_SubmarineBackHostInfo .
- Configure the access controllers:
Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
ServerDevice for notifying the anti-passing back server information to access controllers.
Note
To get the capability of notifying anti-passing back server information to access controllers,
you should pass through thee request URL: GET /ISAPI/AccessControl/ServerDevice/
capabilities . And the capability is returned in the message XML_Cap_ServerDevice .
4. Optional: Perform the following operation(s) after configuring entrance/exit anti-passing back
based on network.
Clear Cross- Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /
Controller Anti- ISAPI/AccessControl/ClearSubmarineBack .
Passing Back
Parameters
76
Device Network SDK (Access Control on Person) Developer Guide
Note
To get the capability of clearing the cross-controller anti-passing back
parameters, you should pass through the request URL: GET /ISAPI/
AccessControl/ClearSubmarineBack/capabilities . And the capability is
returned in message XML_Cap_ClearSubmarineBack
Clear Card If the card is swiped in the anti-passing back route or entrance/exit, it will
Swiping be recorded by the server. So if need, you can call
Records in NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
Server AccessControl/ClearCardRecord for clearing card swiping records in the
server.
Note
To get the capability of clearing card swiping records in server, you should
pass through the request URL: GET /ISAPI/AccessControl/
ClearCardRecord/capabilities . And the capability is returned in message
XML_Cap_ClearCardRecord
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
77
Device Network SDK (Access Control on Person) Developer Guide
Steps
Figure 1-18 Programming Flow of Configuring Route Anti-Passing Back Based on Card
Note
Before setting the parameters, you'd better pass through the each configuration URLs with GET
method to get the existing or configured parameters for reference.
1. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackMode for setting anti-passing back mode and rule.
Note
• For route anti-passing back based on network, the mode must be set to "cardReadAndWrite"
and the rule should be set to "line".
• To get the capability of setting anti-passing back mode and rule, you should pass through the
request URL: GET /ISAPI/AccessControl/SubmarineBackMode/capabilities . And the
capability is returned in the message XML_Cap_SubmarineBackMode .
78
Device Network SDK (Access Control on Person) Developer Guide
Note
To get the capability of enabling anti-passing back of card readers, you should pass through the
request URL: GET /ISAPI/AccessControl/ReaderAcrossHost/capabilities . And the capability is
returned in the message XML_Cap_ReaderAcrossHost .
3. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackHostInfo/ConfigureNo/<ID> for adding access controllers for anti-passing back
and set their parameters.
Note
To get the capability of adding access controllers to anti-passing back route, you should pass
through the request URL: GET /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities . And
the capability is returned in the message XML_Cap_SubmarineBackHostInfo .
4. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
StartReaderInfo for specifying a first card reader.
Note
To get the capability of specifying a first card reader, you should pass through the request URL:
GET /ISAPI/AccessControl/StartReaderInfo/capabilities . And the capability is returned in the
message XML_Cap_StartReaderInfo .
5. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackReader/ConfigureNo/<ID> for setting the anti-passing back parameters of the
first and other card readers.
Note
To get the capability of setting anti-passing back parameters for card readers, you should pass
through the request URL: GET /ISAPI/AccessControl/SubmarineBackReader/capabilities . And
the capability is returned in the message XML_Cap_SubmarineBackReader .
6. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/ClearSubmarineBack for clearing the cross-controller anti-passing back
parameters.
Note
To get the capability of clearing the cross-controller anti-passing back parameters, you should
pass through the request URL: GET /ISAPI/AccessControl/ClearSubmarineBack/capabilities .
And the capability is returned in message XML_Cap_ClearSubmarineBack
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
79
Device Network SDK (Access Control on Person) Developer Guide
Figure 1-19 Programming Flow of Configuring Entrance/Exit Anti-Passing Back Based on Card
Note
Before setting the following parameters, you'd better pass through the each configuration URLs
with GET method to get the existing or configured parameters for reference.
1. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackMode for setting anti-passing back mode and rule.
80
Device Network SDK (Access Control on Person) Developer Guide
Note
• For route anti-passing back based on network, the mode must be set to "cardReadAndWrite"
and the rule should be set to "inOrOut".
• To get the capability of setting anti-passing back mode and rule, you should pass through the
request URL: GET /ISAPI/AccessControl/SubmarineBackMode/capabilities . And the
capability is returned in the message XML_Cap_SubmarineBackMode .
Note
To get the capability of enabling anti-passing back of card readers, you should pass through the
request URL: GET /ISAPI/AccessControl/ReaderAcrossHost/capabilities . And the capability is
returned in the message XML_Cap_ReaderAcrossHost .
3. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
SubmarineBackHostInfo/ConfigureNo/<ID> for adding access controllers for anti-passing back
entrance/exit and set their parameters.
Note
To get the capability of adding access controllers to anti-passing back entrance/exit, you should
pass through the request URL: GET /ISAPI/AccessControl/SubmarineBackHostInfo/
capabilities . And the capability is returned in the message XML_Cap_SubmarineBackHostInfo .
4. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
AccessControl/ClearSubmarineBack for clearing the cross-controller anti-passing back
parameters.
Note
To get the capability of clearing the cross-controller anti-passing back parameters, you should
pass through the request URL: GET /ISAPI/AccessControl/ClearSubmarineBack/capabilities .
And the capability is returned in message XML_Cap_ClearSubmarineBack
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resources.
81
Device Network SDK (Access Control on Person) Developer Guide
The third-party platform connects to device automatically, when the alarm is triggered, the
platform sends alarm uploading command to the device, and then the device will upload the
alarm to the platform.
Listening Mode
When alarm is triggered, the device automatically uploads the alarm, and then the third-party
platform receives the uploaded alarm via the configured listening host (listening address and port
should be configured). This mode is applicable for multiple devices uploading alarm/event
information to one third-party platform without logging in to devices, and the restart of devices
will not affect the alarm/event uploading. But a device can only support the configuration of one
or two listening addresses and ports.
82
Device Network SDK (Access Control on Person) 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.
• 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 Intelligent Security API (ISAPI), the lCommand should be set to
"COMM_ISAPI_ALARM" (command No.: 0x6009).
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};
struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
strcpy(struLoginInfo.sDeviceAddress, "192.0.0.64"); //Device IP address
struLoginInfo.wPort = 8000; //Service port No.
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "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;
}
83
Device Network SDK (Access Control on Person) Developer Guide
//Enable arming
NET_DVR_SETUPALARM_PARAM_V50 struSetupParamV50={0};
struSetupParamV50.dwSize=sizeof(NET_DVR_SETUPALARM_PARAM_V50);
//Alarm category to be uploaded
struSetupParamV50.byAlarmInfoType=1;
//Arming level
struSetupParamV50.byLevel=1;
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;
}
84
Device Network SDK (Access Control on Person) Developer Guide
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
85
Device Network SDK (Access Control on Person) Developer Guide
The listening parameters are retruned in the structure NET_DVR_NETCFG_V50 by the output
parameter pointer lpOutBuffer.
3. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_NETCFG_V50" (command No.: 1016) and
specify the input parameter pointer lpInBuffer to the structure NET_DVR_NETCFG_V50 for
setting the listening address and port.
4. Call NET_DVR_StartListen_V30 to set callback function for returning alarm/event information
and start the listening.
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 Intelligent Security API (ISAPI), the lCommand should be set to
"COMM_ISAPI_ALARM".
The alarm/event information is automatically uploaded by the device when the configured
alarm is triggered or event occurred, and the third-party platform or system gets the alarm/
event information from the configured callback function.
5. Call NET_DVR_StopListen_V30 to stop listening and receiving alarm or event information.
Example
Sample Code of Receiving Alarm/Event in Listening Mode
#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;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
lUserID = NET_DVR_Login_V30("172.0.0.100", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}
//Enable listening
LONG lHandle;
lHandle = NET_DVR_StartListen_V30(NULL,7200, MessageCallback, NULL);
86
Device Network SDK (Access Control on Person) Developer Guide
if (lHandle < 0)
{
printf("NET_DVR_StartListen_V30 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
Sleep(5000);
//Disable listening
if (!NET_DVR_StopListen_V30(lHandle))
{
printf("NET_DVR_StopListen_V30 error, %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 (if logged in) and NET_DVR_Cleanup to log out and release resources.
87
Device Network SDK (Access Control on Person) Developer Guide
Steps
88
Device Network SDK (Access Control on Person) Developer Guide
1. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/attendanceStatusModeCfg/capabilities?format=json to get the configuration
capability of the attendance mode and know the supported attendance modes.
The configuration capability is returned in the message JSON_Cap_AttendanceStatusModeCfg
by lpOutBuffer.
2. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/attendanceStatusModeCfg?format=json to get the default or configured
attendance mode for reference.
The attendance mode is returned in the message JSON_AttendanceStatusModeCfg by
lpOutBuffer.
3. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
attendanceStatusModeCfg?format=json and set lpInBuffer to the message
JSON_AttendanceStatusModeCfg to configure the attendance mode.
4. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/attendanceStatusRuleCfg/capabilities?format=json to get the configuration
capability of the attendance status and rule and know the supported attendance status and
rules.
The configuration capability of the attendance status and rule is returned in the message
JSON_Cap_AttendanceStatusRuleCfg by lpOutBuffer.
5. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/attendanceStatusRuleCfg?attendanceStatus=&format=json to get the default or
configured attendance status and rule for reference.
The attendance status and rules are returned in the message JSON_AttendanceStatusRuleCfg
by lpOutBuffer.
6. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
attendanceStatusRuleCfg?attendanceStatus=&format=json and set lpInBuffer to the message
JSON_AttendanceStatusRuleCfg to configure the attendance status and rule.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
89
Device Network SDK (Access Control on Person) Developer Guide
90
Device Network SDK (Access Control on Person) Developer Guide
Access Controller
Get access controller parameters
Call NET_DVR_GetDVRConfig with the command of NET_DVR_GET_ACS_CFG (command No.:
2159).
And the configuration parameters are returned in the structure NET_DVR_ACS_CFG by the
output buffer (lpOutBuffer).
Set access controller parameters
Call NET_DVR_SetDVRConfig with the command of NET_DVR_SET_ACS_CFG (command No.:
2160) and set the input buffer (lpInBuffer) to the structure NET_DVR_ACS_CFG .
Printer
Get printer configuration capability
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
PrinterCfg/capabilities?format=json .
And the configuration capability is returned in the message JSON_Cap_PrinterCfg by the output
parameter (lpOutputParam).
Get printer parameters
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
PrinterCfg?format=json .
And the parameters are returned in the message JSON_PrinterCfg by the output buffer
(lpOutBuffer) of the output parameter (lpOutputParam).
Set printer parameters
Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
PrinterCfg?format=json and set the input buffer (lpInBuffer) of the input parameter
(lpInputParam) to the message JSON_PrinterCfg .
91
Device Network SDK (Access Control on Person) Developer Guide
92
Device Network SDK (Access Control on Person) Developer Guide
Parameter Settings
• Get multi-factor authentication parameters
Call NET_DVR_GetDVRConfig with the command of NET_DVR_GET_MULTI_CARD_CFG_V50
(command No.: 2515).
And the configuration parameters are returned in the structure
NET_DVR_MULTI_CARD_CFG_V50 by lpOutBuffer.
• Set multi-factor authentication parameters
Call NET_DVR_SetDVRConfig with the command of NET_DVR_SET_MULTI_CARD_CFG_V50
(command No.: 2516) and set lpInBuffer to the structure NET_DVR_MULTI_CARD_CFG_V50 .
Group Settings
• Get group parameters
Call NET_DVR_GetDVRConfig with the command of NET_DVR_GET_GROUP_CFG (command No.:
2112).
And the configuration parameters are returned in the structure NET_DVR_GROUP_CFG by
lpOutBuffer.
• Set group parameters
Call NET_DVR_SetDVRConfig with the command of NET_DVR_SET_GROUP_CFG (command No.:
2113) and set lpInBuffer to the structure NET_DVR_GROUP_CFG .
Working Status
Call NET_DVR_GetDVRConfig with the command of
NET_DVR_GET_ACS_WORK_STATUS_V50
(command No.: 2180).
And the working status is returned in the structure NET_DVR_ACS_WORK_STATUS_V50 by the
output buffer (lpOutBuffer).
Log Mode
• Get configuration capability of log mode
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
LogModeCfg/capabilities?format=json .
And the configuration capability is returned in the message JSON_Cap_LogModeCfg by the
output parameter (lpOutputParam).
• Get log mode configuration parameters
93
Device Network SDK (Access Control on Person) Developer Guide
Event Optimization
• Get configuration capability of event optimization
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
EventOptimizationCfg/capabilities?format=json .
And the configuration capability is returned in the message JSON_Cap_EventOptimizationCfg by
the output parameter (lpOutputParam).
• Get event optimization configuration parameters
Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
EventOptimizationCfg?format=json .
And the parameters are returned in the message JSON_EventOptimizationCfg by the output
buffer (lpOutBuffer) of the output parameter (lpOutputParam).
• Set event optimization parameters
Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
EventOptimizationCfg?format=json and set the input buffer (lpInBuffer) of the input parameter
(lpInputParam) to the message JSON_EventOptimizationCfg .
Note
If the node <isSupportGetFailedFaceInfo> is returned and is set to "true", it indicates that
getting the information of face modeling failure after upgrading the device is supported, and
you can continue to perform the following steps.
2. Call NET_DVR_StartRemoteConfig with
NET_DVR_GET_FAILED_FACE_INFO
(command No.: 2522) and set the input parameter lpInBuffer to the structure
NET_DVR_FAILED_FACE_COND to set up persistent connection and set callback function
fRemoteConfigCallback for getting the information.
3. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection and finish getting the
information.
94
Device Network SDK (Access Control on Person) Developer Guide
95
Device Network SDK (Access Control on Person) Developer Guide
3.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.
3.2 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 .
96
Device Network SDK (Access Control on Person) Developer Guide
3.3 NET_DVR_ControlGateway
Call this API to remotely control the door or elevator.
API Definition
BOOL NET_DVR_ControlGateway(
LONG lUserID,
LONG lGatewayIndex,
DWORD dwStaic
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lGatewayIndex
[IN] Door No. or floor No., which starts from 1, -1: Control all doors or elevators of floors.
dwStaic
[IN] Command No.: 0-Close (Under Control), 1-Open, 2-Remain Open (Free), 3-Remain Closed
(Disabled), 4-Recovery (only for elevator), 5-Vistor Call Elevator (only for elevator), 6-Resident
Call Elevator (only for elevator).
Return Values
Returns TRUE for success, and returns FALSE for failure.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
3.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
);
Parameters
lUserID
97
Device Network SDK (Access Control on Person) 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.
3.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 .
dwCommand
[IN] Device getting commands. The commands are different for different getting functions.
98
Device Network SDK (Access Control on Person) Developer Guide
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
3.6 NET_DVR_GetDownloadState
Call this API to get the file downloading progress and status.
99
Device Network SDK (Access Control on Person) Developer Guide
API Definition
LONG NET_DVR_GetDownloadState(
LONG lDownloadHandle,
LPDWORD 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.
3.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
100
Device Network SDK (Access Control on Person) Developer Guide
[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.
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
3.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.
101
Device Network SDK (Access Control on Person) Developer Guide
3.9 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.
3.10 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.
102
Device Network SDK (Access Control on Person) Developer Guide
3.11 NET_DVR_GetUploadState
Get the file uploading progress and status.
API Definition
LONG NET_DVR_GetUploadState(
LONG lUploadHandle,
LPDWORD 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.
103
Device Network SDK (Access Control on Person) Developer Guide
3.12 NET_DVR_Init
Initialize the programming environment before calling other APIs.
API Definition
BOOL NET_DVR_Init(
);
104
Device Network SDK (Access Control on Person) 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.
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
3.13 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.
105
Device Network SDK (Access Control on Person) Developer Guide
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.
See Also
NET_DVR_Logout
3.14 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 .
3.15 NET_DVR_SendRemoteConfig
Send data via the persistent connection.
API Definition
BOOL NET_DVR_SendRemoteConfig(
LONG lHandle,
DWORD dwDataType,
char *pSendBuf,
DWORD dwBufSize
);
106
Device Network SDK (Access Control on Person) Developer Guide
Parameters
lHandle
Persistent configuration handle, which is returned by NET_DVR_StartRemoteConfig .
dwDataType
[IN] Data type, which relates to the commands of NET_DVR_StartRemoteConfig .
pSendBuf
[IN] Buffer for saving data to be sent, which relates to dwDataType.
dwBufSize
[IN] Size of data to be sent.
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.
3.16 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
107
Device Network SDK (Access Control on Person) 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
3.17 NET_DVR_SetDVRConfig
Set the device parameters.
API Definition
BOOL NET_DVR_SetDVRConfig(
LONG lUserID,
DWORD dwCommand,
LONG lChannel,
LPVOID lpInBuffer,
108
Device Network SDK (Access Control on Person) Developer Guide
DWORD dwInBufferSize
);
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
3.18 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
109
Device Network SDK (Access Control on Person) Developer Guide
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"
#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 (struAlarmInfo.dwAlarmType)
{
110
Device Network SDK (Access Control on Person) Developer Guide
111
Device Network SDK (Access Control on Person) 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<struITSPlateResult.dwPicNum;i++)
{
printf("License Plate Number: %s\n", struITSPlateResult.struPlateInfo.sLicense);//License plate number
switch(struITSPlateResult.struPlateInfo.byColor)//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 ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType== 1)||
(struITSPlateResult.struPicInfo[i].byType == 2))
{
sprintf(filename,"testITSpic%d_%d.jpg",iNum,i);
fSnapPic=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate thumbnails
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType == 0))
{
sprintf(filename,"testPicPlate%d_%d.jpg",iNum,i);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen, 1, \
fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
112
Device Network SDK (Access Control on Person) Developer Guide
}
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 (struAlarmInfo.dwAlarmType)
{
case 3: //Motion detection alarm
for (i=0; i<16; i++) //#define MAX_CHANNUM 16 //The maximum number of channel
{
if (struAlarmInfo.dwChannel[i] == 1)
{
printf("Channel No. 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", struPlateResult.struPlateInfo.sLicense);//License plate number
113
Device Network SDK (Access Control on Person) Developer Guide
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;
}
//Scene picture
if (struPlateResult.dwPicLen != 0 && struPlateResult.byResultType == 1 )
{
sprintf(filename,"testpic_%d.jpg",iNum);
fSnapPic=fopen(filename,"wb");
fwrite(struPlateResult.pBuffer1,struPlateResult.dwPicLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate picture
if (struPlateResult.dwPicPlateLen != 0 && struPlateResult.byResultType == 1)
{
sprintf(filename,"testPicPlate_%d.jpg",iNum);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struPlateResult.pBuffer1,struPlateResult.dwPicLen,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<struITSPlateResult.dwPicNum;i++)
{
printf("License Plate Number: %s\n", struITSPlateResult.struPlateInfo.sLicense);//License plate number
switch(struITSPlateResult.struPlateInfo.byColor)//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");
114
Device Network SDK (Access Control on Person) Developer Guide
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
default:
break;
}
//Save scene picture
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType== 1)||
(struITSPlateResult.struPicInfo[i].byType == 2))
{
sprintf(filename,"testITSpic%d_%d.jpg",iNum,i);
fSnapPic=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate thumbnails
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType == 0))
{
sprintf(filename,"testPicPlate%d_%d.jpg",iNum,i);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen, 1, \
fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
}
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("172.0.0.100", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
115
Device Network SDK (Access Control on Person) Developer Guide
//Enable arming
NET_DVR_SETUPALARM_PARAM struSetupParam={0};
struSetupParam.dwSize=sizeof(NET_DVR_SETUPALARM_PARAM);
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
116
Device Network SDK (Access Control on Person) Developer Guide
3.19 NET_DVR_SetSDKInitCfg
Set initialization parameters.
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.
117
Device Network SDK (Access Control on Person) Developer Guide
[IN] Input parameter. Different parameter types correspond to different structures, see details in
the table above.
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.
3.20 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.
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.
118
Device Network SDK (Access Control on Person) Developer Guide
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.
3.21 NET_DVR_StartDownload
Call this API to download the files.
API Definition
LONG NET_DVR_StartDownload(
LONG lUserID,
DWORD dwDownloadType,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
char const *sFileName
);
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.
3.22 NET_DVR_StartListen_V30
Register callback function for receiving alarm/event information and start listening (supports
multiple threads).
119
Device Network SDK (Access Control on Person) Developer Guide
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 .
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).
3.22.1 MSGCallBack
Alarm/event information callback function.
120
Device Network SDK (Access Control on Person) Developer Guide
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.
3.23 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 .
121
Device Network SDK (Access Control on Person) Developer Guide
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
[OUT] User data.
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.
3.23.1 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,
122
Device Network SDK (Access Control on Person) Developer Guide
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.
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.
3.24 NET_DVR_STDXMLConfig
Transmit request URL with XML or JSON format to implement some typical functions.
API Definition
BOOL NET_DVR_STDXMLConfig(
LONG lUserID,
const NET_DVR_XML_CONFIG_INPUT *lpInputParam,
NET_DVR_XML_CONFIG_OUTPUT *lpOutputParam
);
123
Device Network SDK (Access Control on Person) Developer Guide
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
passing through request URLs for implementing different functions, and each parameter
corresponds to a component of ISAPI protocol, see the relations below:
Parameter of NET_DVR_STDXMLConfig Component of ISAPI 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 )
3.25 NET_DVR_StopDownload
Call this API to stop downloading files.
124
Device Network SDK (Access Control on Person) Developer Guide
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 returning failed, you can call NET_DVR_GetLastError to get the error code.
3.26 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 .
3.27 NET_DVR_StopRemoteConfig
Disconnect the persistent connection to stop remote configuration, and release resources.
API Definition
BOOL NET_DVR_StopRemoteConfig(
LONG lHandle
);
125
Device Network SDK (Access Control on Person) Developer Guide
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.
3.28 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.
3.29 NET_DVR_UploadFile_V40
Upload file.
API Definition
LONG NET_DVR_UploadFile_V40(
LONG lUserID,
DWORD dwUploadType,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
char *sFileName,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize
);
126
Device Network SDK (Access Control on Person) Developer Guide
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.
127
Device Network SDK (Access Control on Person) Developer Guide
4.1 NET_ALARM_RECORD_EXCEPTION
4.2 NET_ALARM_STREAM_EXCEPTION
4.3 NET_ALARM_RESOURCE_USAGE
128
Device Network SDK (Access Control on Person) Developer Guide
4.4 NET_ALARM_RECORDFILE_LOSS
4.5 NET_ALARM_CVR_SUBINFO_UNION
129
Device Network SDK (Access Control on Person) Developer Guide
4.6 NET_DVR_ACS_ALARM_INFO_V50
Access control alarm/event information structure.
Structure Definition
struct{
DWORD dwSize;
DWORD dwMajor;
DWORD dwMinor;
NET_DVR_TIME struTime;
BYTE sNetUser[MAX_NAMELEN/*16*/];
NET_DVR_IPADDR struRemoteHostAddr;
NET_DVR_ACS_EVENT_INFO_V50 struAcsEventInfo;
DWORD dwPicDataLen;
char *pPicData;
WORD wInductiveEventType;
BYTE byPicTransType;
BYTE byRes1;
DWORD dwIOTChannelNo;
char *pAcsEventInfoExtend;
BYTE byAcsEventInfoExtend;
BYTE byTimeType;
BYTE byRes[10];
}NET_DVR_ACS_ALARM_INFO_V50, *LPNET_DVR_ACS_ALARM_INFO_V50;
130
Device Network SDK (Access Control on Person) Developer Guide
Members
dwSize
Structure size.
dwMajor
Event major types, see details in Access Control Event Types .
dwMinor
Event minor types, see details in Access Control Event Types .
struTime
Time information, see NET_DVR_TIME for details.
sNetUser
User name.
struRemoteHostAddr
IP address of remote access controller, see NET_DVR_IPADDR for details.
struAcsEventInfo
Access control event details, see NET_DVR_ACS_EVENT_INFO_V50 for details.
dwPicDataLen
Picture size, non-0: picture data exists.
pPicData
Picture data.
wInductiveEventType
Inductive event type, 0-invalid. The alarm event types will be distinguished according to the
inductive event type if wInductiveEventType is not 0; otherwise, the alarm event types will be
distinguished according to dwMajor and dwMinor.
byPicTransType
Picture data transmission mode: 0-binary, 1-URL.
byRes1
Reserved.
dwIOTChannelNo
IOT channel No.
pAcsEventInfoExtend
When this member is set to 1, it points to the structure NET_DVR_ACS_EVENT_INFO_EXTEND .
byAcsEventInfoExtend
Whether pAcsEventInfoExtend is valid: 0-no, 1-yes.
byTimeType
131
Device Network SDK (Access Control on Person) Developer Guide
Time type: 0-device's local time, 1-UTC time (which is the same as struTime).
byRes
Reserved, set to 0.
4.7 NET_DVR_ACS_CFG
Access controller configuration parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byRS485Backup;
BYTE byShowCapPic;
BYTE byShowCardNo;
BYTE byShowUserInfo;
BYTE byOverlayUserInfo;
BYTE byVoicePrompt;
BYTE byUploadCapPic;
BYTE bySaveCapPic;
BYTE byInputCardNo;
BYTE byEnableWifiDetect;
BYTE byEnable3G4G;
BYTE byProtocol;
BYTE byRes[500];
}NET_DVR_ACS_CFG, *LPNET_DVR_ACS_CFG;
Members
dwSize
Structure size
byRS485Backup
Whether to enable downstream backup function of RS485: 0-no, 1-yes
byShowCapPic
Whether to display captured picture: 0-no, 1-yes
byShowCardNo
Whether to display card No.: 0-no, 1-yes
byShowUserInfo
Whether to display user information: 0-no, 1-yes
byOverlayUserInfo
Whether to display user information on video: 0-no, 1-yes
byVoicePrompt
132
Device Network SDK (Access Control on Person) Developer Guide
4.8 NET_DVR_ACS_EVENT_CFG
Access control event parameter structure.
Structure Definition
struct{
DWORD dwSize;
DWORD dwMajor;
DWORD dwMinor;
NET_DVR_TIME struTime;
BYTE sNetUser[MAX_NAMELEN/*16*/];
NET_DVR_IPADDR struRemoteHostAddr;
NET_DVR_ACS_EVENT_DETAIL struAcsEventInfo;
DWORD dwPicDataLen;
char *pPicData;
BYTE byTimeType;
BYTE byRes[61];
}NET_DVR_ACS_EVENT_CFG, *LPNET_DVR_ACS_EVENT_CFG;
Members
dwSize
Structure size.
dwMajor
133
Device Network SDK (Access Control on Person) Developer Guide
4.9 NET_DVR_ACS_EVENT_COND
Condition structure about getting access control events.
Structure Definition
struct{
DWORD dwSize;
DWORD dwMajor;
DWORD dwMinor;
NET_DVR_TIME struStartTime;
NET_DVR_TIME struEndTime;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byName[NAME_LEN/*32*/];
BYTE byPicEnable;
BYTE byTimeType;
BYTE byRes2[2];
DWORD dwBeginSerialNo;
DWORD dwEndSerialNo;
DWORD dwIOTChannelNo;
WORD wInductiveEventType;
134
Device Network SDK (Access Control on Person) Developer Guide
BYTE bySearchType;
BYTE byEventAttribute;
char szMonitorID[NET_SDK_MONITOR_ID_LEN/*64*/];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes[140];
}NET_DVR_ACS_EVENT_COND,*LPNET_DVR_ACS_EVENT_COND;
Members
dwSize
Structure size.
dwMajor
Event major types, see details in Access Control Event Types , 0-all.
dwMinor
Event minor types, see details in Access Control Event Types , 0-all.
struStartTime
Start time, see NET_DVR_TIME for details.
struEndTime
End time, see NET_DVR_TIME for details.
byCardNo
Card No.
byName
Cardholder name.
byPicEnable
Whether contain pictures: 0-no, 1-yes.
byTimeType
Time type: 0-device local time (default), 1-UTC time (which is same as struStartTime and
struEndTime).
byRes2
Reserved, set to 0.
dwBeginSerialNo
Start serial No.: 0-all.
dwEndSerialNo
End serial No.: 0-all.
dwIOTChannelNo
IOT channel No., 0-invalid.
wInductiveEventType
135
Device Network SDK (Access Control on Person) Developer Guide
Inductive event type, 0-invalid. The alarm event types will be distinguished according to the
inductive event type if wInductiveEventType is not 0; otherwise, the alarm event types will be
distinguished according to dwMajor and dwMinor.
bySearchType
Search mode: 0-reserved, 1-search by event source (the channel No. is the non-video channel
No.), 2-search by monitoring resource ID.
byEventAttribute
Event attribute: 0-undefined, 1-valid authentication, 2-other.
szMonitorID
Monitoring resource ID which consists of device serial No., channel type, and No. For example,
the access point ID is device serial No.+"DOOR"+door No.
byEmployeeNo
Employee No. (person ID)
byRes
Reserved, set to 0.
4.10 NET_DVR_ACS_EVENT_DETAIL
Access control event details structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardType;
BYTE byWhiteListNo;
BYTE byReportChannel;
BYTE byCardReaderKind;
DWORD dwCardReaderNo;
DWORD dwDoorNo;
DWORD dwVerifyNo;
DWORD dwAlarmInNo;
DWORD dwAlarmOutNo;
DWORD dwCaseSensorNo;
DWORD dwRs485No;
DWORD dwMultiCardGroupNo;
WORD wAccessChannel;
BYTE byDeviceNo;
BYTE byDistractControlNo;
DWORD dwEmployeeNo;
WORD wLocalControllerID;
BYTE byInternetAccess;
BYTE byType;
136
Device Network SDK (Access Control on Person) Developer Guide
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE bySwipeCardType;
BYTE byEventAttribute;
DWORD dwSerialNo;
BYTE byChannelControllerID;
BYTE byChannelControllerLampID;
BYTE byChannelControllerIRAdaptorID;
BYTE byChannelControllerIREmitterID;
DWORD dwRecordChannelNum;
char *pRecordChannelData;
BYTE byUserType;
BYTE byCurrentVerifyMode;
BYTE byAttendanceStatus;
BYTE byStatusValue;
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes[64];
}NET_DVR_ACS_EVENT_DETAIL, *LPNET_DVR_ACS_EVENT_DETAIL;
Members
dwSize
Structure size.
byCardNo
Card No.: 0-invalid.
byCardType
Card types: 0-invalid, 1-normal card, 2-disabled card, 3-blacklist card, 4-patrol card, 5-duress
card, 6-super card, 7-visitor card.
byWhiteListNo
Whitelist No., which is between 1 and 8, but if the value is 0, it is invalid.
byReportChannel
Event uploading channel types: 0-invalid, 1-upload in arming mode, 2-upload by central group 1,
3-upload by central group 2.
byCardReaderKind
Authentictaion device types: 0-invalid, 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-
fingerprint module.
dwCardReaderNo
Authentication device No.: 0-invalid.
dwDoorNo
Door or floor No.: 0-invalid. For Turnstile (swing barrier), door No.1 refers to entrance, and door
No.2 refers to exist.
dwVerifyNo
Multiple authentication No.: 0-invalid
137
Device Network SDK (Access Control on Person) Developer Guide
dwAlarmInNo
Alarm input No.: 0-invalid
dwAlarmOutNo
Alarm output No.: 0-invalid
dwCaseSensorNo
Event trigger No.
dwRs485No
RS485 channel No.: 0-invalid.
dwMultiCardGroupNo
Group No.
wAccessChannel
Turnstile No.
byDeviceNo
Device No.: 0-invalid.
byDistractControlNo
Distributed controller No.: 0-invalid.
dwEmployeeNo
Employee No.: 0-invalid.
wLocalControllerID
Distributed access controller No.: 0-access controller, 0 to 64: distributed access controller.
byInternetAccess
Network interface No.: 1-upstream network interface No.1, 2-upstream network interface No.2,
3-downstream network interface No.1.
byType
Zone types: 0-instant alarm zone, 1-24-hour alarm zone, 2-delayed zone, 3-internal zone, 4-key
zone, 5-fire alarm zone, 6-perimeter protection, 7-24-hour silent alarm zone, 8-24-hour auxiliary
zone, 9-24-hour shock alarm zone, 10-emergency door open alarm zone, 11-emergency door
closed alarm zone, off-none
byMACAddr
Physical address, 0-invalid.
bySwipeCardType
Card swiping type: 0-invalid, 1-QR code.
byEventAttribute
Event attribute: 0-undefined, 1-valid authentication, 2-other.
dwSerialNo
138
Device Network SDK (Access Control on Person) Developer Guide
Event serial No.: 0-invalid, which is used to judge whether the event loss occurred.
byChannelControllerID
Lane controller No.: 0-invalid, 1-master lane controller, 2-slave lane controller.
byChannelControllerLampID
Light board No. of lane controller, which is between 1 and 255, 0-invalid
byChannelControllerIRAdaptorID
IR adaptor No. of lane controller, which is between 1 and 255, 0-invalid.
byChannelControllerIREmitterID
Active infrared intrusion detector No. of lane controller, which is between 1 and 255, 0-invalid.
dwRecordChannelNum
Number of recording channels.
pRecordChannelData
Recording channel, the size depends on dwRecordChannelNum.
byUserType
Person type: 0-invalid, 1-resident, 2-visitor, 3-person in blacklist, 4-administrator.
byCurrentVerifyMode
Authentication mode: 0-invalid, 1-sleepy, 2-card+password, 3-card, 4-card or password, 5-
fingerprint, 6-fingerprint+password, 7-fingerprint or card, 8-fingerprint+card, 9-fingerprint+card
+password, 10-face or fingerprint or card or password, 11-face+fingerprint, 12-face+password,
13-face+card, 14-face, 15-employee No.+password, 16-fingerprint or password, 17-employee
No.+fingerprint, 18-employee No.+fingerprint+password, 19-face+fingerprint+card, 20-face
+password+fingerprint, 21-employee No.+face, 22-face or face+card, 23-fingerprint or face, 24-
card or face or password, 25-card or face, 26-card or face or fingerprint, 27-card or fingerprint
or password.
byAttendanceStatus
Attendance status: 0-undefined, 1-check in, 2-check out, 3-break out, 4-break in, 5-overtime in,
6-overtime out.
byStatusValue
Attendance status value.
byEmployeeNo
Employee No. (person ID). Both byEmployeeNo and dwEmployeeNo should be transferred by
the device. The byEmployeeNo will be parsed by the upper-level platform or client first. If the
byEmployeeNo is NULL, the dwEmployeeNo will be parsed.
byRes
Reserved, set to 0.
139
Device Network SDK (Access Control on Person) Developer Guide
4.11 NET_DVR_ACS_EVENT_INFO_EXTEND
Structure about extended access control event information.
Structure Definition
struct{
DWORD dwFrontSerialNo;
BYTE byUserType;
BYTE byCurrentVerifyMode;
BYTE byCurrentEvent;
BYTE byRes1;
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byAttendanceStatus;
BYTE byStatusValue;
BYTE byRes2[2];
BYTE byUUID[NET_SDK_UUID_LEN/*36*/];
BYTE byRes[88];
}NET_DVR_ACS_EVENT_INFO_EXTEND, *LPNET_DVR_ACS_EVENT_INFO_EXTEND;
Members
dwFrontSerialNo
Event serial No., 0-invalid. If this member is set to 0, the platform will judge whether the event
is lost by dwSerialNo; otherwise, the platform will judge whether the event is lost by both
dwFrontSerialNo and dwSerialNo. This member is used for discontinuous dwSerialNo after
alarm subscription.
byUserType
Person type: 0-invalid, 1-resident, 2-visitor, 3-person in blacklist, 4-administrator.
byCurrentVerifyMode
Current authentication mode of the card reader: 0-invalid, 1-sleepy, 2-card+password, 3-card, 4-
card or password, 5-fingerprint, 6-fingerprint+password, 7-fingerprint or card, 8-fingerprint
+card, 9-fingerprint+card+password, 10-face or fingerprint or card or password, 11-face
+fingerprint, 12-face+password, 13-face+card, 14-face, 15-employee No.+password, 16-
fingerprint or password, 17-employee No.+fingerprint, 18-employee No.+fingerprint+password,
19-face+fingerprint+card, 20-face+password+fingerprint, 21-employee No.+face, 22-face or face
+card, 23-fingerprint or face, 24-card or face or password, 25-card or face, 26-card or face or
fingerprint, 27-card or fingerprint or password.
byCurrentEvent
Whether it is a real-time event: 0-invalid, 1-yes (real-time event), 2-no (offline event).
byRes1
Reserved.
byEmployeeNo
140
Device Network SDK (Access Control on Person) Developer Guide
Employee No. (person ID). Both byEmployeeNo and dwEmployeeNo should be transferred by
the device. The byEmployeeNo will be parsed by the upper-level platform or client first. If the
byEmployeeNo is NULL, the dwEmployeeNo will be parsed.
byAttendanceStatus
Attendance status: 0-undefined, 1-check in, 2-check out, 3-break out, 4-break in, 5-overtime in,
6-overtime out.
byStatusValue
Attendance status value.
byRes2
Reserved.
byUUID
UUID, this member is only used when accessing EZVIZ platform.
byRes
Reserved.
See Also
NET_DVR_ACS_ALARM_INFO_V50
4.12 NET_DVR_ACS_EVENT_INFO_V50
Access control event details structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardType;
BYTE byWhiteListNo;
BYTE byReportChannel;
BYTE byCardReaderKind;
DWORD dwCardReaderNo;
DWORD dwDoorNo;
DWORD dwVerifyNo;
DWORD dwAlarmInNo;
DWORD dwAlarmOutNo;
DWORD dwCaseSensorNo;
DWORD dwRs485No;
DWORD dwMultiCardGroupNo;
WORD wAccessChannel;
BYTE byDeviceNo;
BYTE byDistractControlNo;
DWORD dwEmployeeNo;
WORD wLocalControllerID;
141
Device Network SDK (Access Control on Person) Developer Guide
BYTE byInternetAccess;
BYTE byType;
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE bySwipeCardType;
BYTE byRes2;
DWORD dwSerialNo;
BYTE byChannelControllerID;
BYTE byChannelControllerLampID;
BYTE byChannelControllerIRAdaptorID;
BYTE byChannelControllerIREmitterID;
BYTE byRes[4];
}NET_DVR_ACS_EVENT_INFO_V50, *LPNET_DVR_ACS_EVENT_INFO_V50;
Members
dwSize
Structure size.
byCardNo
Card number, some special cards' numbers are listed as the follows: "18446744073709551613"-
supper card, "18446744073709551614"-duress card, "18446744073709551615"-invalid card.
byCardType
Card types: 0-invalid, 1-normal card, 2-disabled card, 3-blacklist card, 4-patrol card, 5-duress
card, 6-super card, 7-visitor card.
byWhiteListNo
Whitelist No., which is between 1 and 8, but if the value is 0, it is invalid.
byReportChannel
Event uploading channel types: 0-invalid, 1-upload in arming mode, 2-upload by central group 1,
3-upload by central group 2.
byCardReaderKind
Authentictaion device types: 0-invalid, 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-
fingerprint module.
dwCardReaderNo
Authentication device No.: 0-invalid.
dwDoorNo
Door or floor No.: 0-invalid. For Turnstile (swing barrier), door No.1 refers to entrance, and door
No.2 refers to exit.
dwVerifyNo
Multiple authentication No.: 0-invalid
dwAlarmInNo
Alarm input No.: 0-invalid
dwAlarmOutNo
142
Device Network SDK (Access Control on Person) Developer Guide
143
Device Network SDK (Access Control on Person) Developer Guide
byChannelControllerLampID
Light board No. of lane controller, which is between 1 and 255, 0-invalid
byChannelControllerIRAdaptorID
IR adaptor No. of lane controller, which is between 1 and 255, 0-invalid.
byChannelControllerIREmitterID
Active infrared intrusion detector No. of lane controller, which is between 1 and 255, 0-invalid.
byRes
Reserved, set to 0.
4.13 NET_DVR_ACS_WORK_STATUS_V50
Access controller working status structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byDoorLockStatus[MAX_DOOR_NUM/*256*/];
BYTE byDoorStatus[MAX_DOOR_NUM/*256*/];
BYTE byMagneticStatus[MAX_DOOR_NUM/*256*/];
BYTE byCaseStatus[MAX_CASE_SENSOR_NUM/*8*/];
WORD wBatteryVoltage;
BYTE byBatteryLowVoltage;
BYTE byPowerSupplyStatus;
BYTE byMultiDoorInterlockStatus;
BYTE byAntiSneakStatus;
BYTE byHostAntiDismantleStatus;
BYTE byIndicatorLightStatus;
BYTE byCardReaderOnlineStatus[MAX_CARD_READER_NUM/*512*/];
BYTE byCardReaderAntiDismantleStatus[MAX_CARD_READER_NUM/*512*/];
BYTE byCardReaderVerifyMode[MAX_CARD_READER_NUM/*512*/];
BYTE bySetupAlarmStatus[MAX_ALARMHOST_ALARMIN_NUM/*512*/];
BYTE byAlarmInStatus[MAX_ALARMHOST_ALARMIN_NUM/*512*/];
BYTE byAlarmOutStatus[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
DWORD dwCardNum;
BYTE byFireAlarmStatus;
BYTE byBatteryChargeStatus;
BYTE byMasterChannelControllerStatus;
BYTE bySlaveChannelControllerStatus;
BYTE byAntiSneakServerStatus;
BYTE byRes3[3];
DWORD dwWhiteFaceNum;
DWORD dwBlackFaceNum;
BYTE byRes2[108];
}NET_DVR_ACS_WORK_STATUS_V50,*LPNET_DVR_ACS_WORK_STATUS_V50;
144
Device Network SDK (Access Control on Person) Developer Guide
Members
dwSize
Structure size
byDoorLockStatus
Lock status (or elevator relay status), 0-closed, 1-open, 2-short circuit alarm, 3-open circuit
alarm, 4-exception alarm
byDoorStatus
Door status (or elevator status): 1-sleepy, 2-open (for elevator: free status), 3-closed (for
elevator: disabled status), 4-normal (for elevator: controlled status).
byMagneticStatus
Magnet status: 0-closed, 1-open, 2-short circuit alarm, 3-open circuit alarm, 4-exception alarm.
byCaseStatus
Alarm input status: 0-no input, 1-with input.
wBatteryVoltage
Storage battery voltage, the actual value equals to the 10 multiples of wBatteryVoltage, unit:
volt.
byBatteryLowVoltage
Whether the storage battery is in low voltage status: 0-no, 1-yes.
byPowerSupplyStatus
Device power supply status: 1-AC, 2-storage battery.
byMultiDoorInterlockStatus
Multi-door interlocking status: 0-disabled, 1-enabled.
byAntiSneakStatus
Anti-passing back status: 0-disabled, 1-enabled.
byHostAntiDismantleStatus
Controller tampering status: 0-disabled, 1-enabled.
byIndicatorLightStatus
Indicator status: 0-offline, 1-online.
byCardReaderOnlineStatus
Fingerprint and card reader status: 0-offline, 1-online.
byCardReaderAntiDismantleStatus
Fingerprint and card reader tampering status: 0-offline, 1-online.
byCardReaderVerifyMode
145
Device Network SDK (Access Control on Person) Developer Guide
4.14 NET_DVR_ALARMER
146
Device Network SDK (Access Control on Person) Developer Guide
4.15 NET_DVR_ALARMINFO_DEV
147
Device Network SDK (Access Control on Person) 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.
4.16 NET_DVR_ALARMINFO_DEV_V40
148
Device Network SDK (Access Control on Person) 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.
4.17 NET_DVR_ALRAM_FIXED_HEADER
149
Device Network SDK (Access Control on Person) Developer Guide
150
Device Network SDK (Access Control on Person) 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.
4.18 NET_DVR_ALARMINFO_V30
151
Device Network SDK (Access Control on Person) 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.
4.19 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:
152
Device Network SDK (Access Control on Person) Developer Guide
4.20 NET_DVR_CAPTURE_FACE_CFG
Collected face data structure
Structure Definition
struct{
DWORD dwSize;
DWORD dwFaceTemplate1Size;
char *pFaceTemplate1Buffer;
DWORD dwFaceTemplate2Size;
char *pFaceTemplate2Buffer;
DWORD dwFacePicSize;
char *pFacePicBuffer;
BYTE byFaceQuality1;
BYTE byFaceQuality2;
BYTE byCaptureProgress;
BYTE byFacePicQuality;
DWORD dwInfraredFacePicSize;
char *pInfraredFacePicBuffer;
153
Device Network SDK (Access Control on Person) Developer Guide
BYTE byInfraredFacePicQuality;
BYTE byRes1[3];
NET_DVR_FACE_FEATURE struFeature;
BYTE byRes[56];
}NET_DVR_CAPTURE_FACE_CFG,*LPNET_DVR_CAPTURE_FACE_CFG;
Members
dwSize
Structure size.
dwFaceTemplate1Size
Size of face data template 1. When its value is 0, it indicates that there is no data template 1.
pFaceTemplate1Buffer
Buffer to save face data template 1, the buffer size should be smaller than or equal to 2.5 KB.
dwFaceTemplate2Size
Size of face data template 2. When its value is 0, it indicates that there is no data template 2.
pFaceTemplate2Buffer
Buffer to save face data template 2, the buffer size should be smaller than or equal to 2.5 KB.
dwFacePicSize
Size of face picture data. When its value is 0, it indicates that there is no face picture data.
pFacePicBuffer
Buffer to save face picture data.
byFaceQuality1
Face picture quality, it is between 1 and 100.
byFaceQuality2
Face picture quality, it is between 1 and 100.
byCaptureProgress
Collection progress: 0-no face data collected, 1-collected. The face information can be parsed
only when the progress value is 100.
byFacePicQuality
Face quality in the face picture.
dwInfraredFacePicSize
Size of infrared face picture data. When its value is 0, it indicates that there is no face picture
data.
pInfraredFacePicBuffer
Buffer to save infrared face picture data.
byInfraredFacePicQuality
Face quality in the infrared face picture.
154
Device Network SDK (Access Control on Person) Developer Guide
byRes1
Reserved.
struFeature
Feature information in the matted face picture, see details in the structure
NET_DVR_FACE_FEATURE .
byRes
Reserved.
4.21 NET_DVR_CAPTURE_FACE_COND
Condition structure for collecting face data.
Structure Definition
struct{
DWORD dwSize;
BYTE byRes[128];
}NET_DVR_CAPTURE_FACE_COND,*LPNET_DVR_CAPTURE_FACE_COND;
Members
dwSize
Structure size.
byRes
Reserved.
4.22 NET_DVR_CAPTURE_FINGERPRINT_CFG
Fingerprint collection result structure
Structure Definition
struct{
DWORD dwSize;
DWORD dwFingerPrintDataSize;
BYTE byFingerData[MAX_FINGER_PRINT_LEN/*768*/];
DWORD dwFingerPrintPicSize;
char *pFingerPrintPicBuffer;
BYTE byFingerNo;
BYTE byFingerPrintQuality;
BYTE byRes[62];
}NET_DVR_CAPTURE_FINGERPRINT_CFG, *LPNET_DVR_CAPTURE_FINGERPRINT_CFG;
155
Device Network SDK (Access Control on Person) Developer Guide
Members
dwSize
Structure size.
dwFingerPrintDataSize
Fingerprint data size.
byFingerData
Fingerprint details.
dwFingerPrintPicSize
Fingerprint picture size, 0-no fingerprint picture.
pFingerPrintPicBuffer
Buffer for saving fingerprint picture data.
byFingerNo
Finger No., which is between 1 and 10.
byFingerPrintQuality
Fingerprint quality, which is between 1 and 100.
byRes
Reserved, set to 0.
4.23 NET_DVR_CAPTURE_FINGERPRINT_COND
Fingerprint collection condition structure
Structure Definition
struct{
DWORD dwSize;
BYTE byFingerPrintPicType;
BYTE byFingerNo;
BYTE byRes[126];
}NET_DVR_CAPTURE_FINGERPRINT_COND, *LPNET_DVR_CAPTURE_FINGERPRINT_COND;
Members
dwSize
Structure size.
byFingerPrintPicType
Fingerprint picture type: 0-reserved.
byFingerNo
Finger No., which is between 1 and 10.
156
Device Network SDK (Access Control on Person) Developer Guide
byRes
Reserved, set to 0.
4.24 NET_DVR_CARD_READER_PLAN
Parameter structure about configuration of authentication mode control schedule.
Structure Definition
struct{
DWORD dwSize;
DWORD dwTemplateNo;
BYTE byRes[64];
}NET_DVR_CARD_READER_PLAN,*LPNET_DVR_CARD_READER_PLAN;
Members
dwSize
Structure size.
dwTemplateNo
Schedule template No.: 0-cancel linking template with schedule, and restore to the default
settings (available for swiping card to open the door); non-0-link template with schedule by No.
byRes
Reserved, set to 0.
4.25 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.
157
Device Network SDK (Access Control on Person) Developer Guide
szIssuer
Certificate issuer.
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.
4.26 NET_DVR_CARD_READER_CFG_V50
Fingerprint and card reader parameters structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byCardReaderType;
BYTE byOkLedPolarity;
BYTE byErrorLedPolarity;
BYTE byBuzzerPolarity;
BYTE bySwipeInterval;
BYTE byPressTimeout;
BYTE byEnableFailAlarm;
BYTE byMaxReadCardFailNum;
BYTE byEnableTamperCheck;
BYTE byOfflineCheckTime;
BYTE byFingerPrintCheckLevel;
BYTE byUseLocalController;
BYTE byRes1;
WORD wLocalControllerID;
WORD wLocalControllerReaderID;
WORD wCardReaderChannel;
BYTE byFingerPrintImageQuality;
BYTE byFingerPrintContrastTimeOut;
BYTE byFingerPrintRecogizeInterval;
BYTE byFingerPrintMatchFastMode;
BYTE byFingerPrintModuleSensitive;
BYTE byFingerPrintModuleLightCondition;
BYTE byFaceMatchThresholdN;
BYTE byFaceQuality;
BYTE byFaceRecogizeTimeOut;
BYTE byFaceRecogizeInterval;
158
Device Network SDK (Access Control on Person) Developer Guide
WORD wCardReaderFunction;
BYTE byCardReaderDescription[CARD_READER_DESCRIPTION/*32*/];
WORD wFaceImageSensitometry;
BYTE byLivingBodyDetect;
BYTE byFaceMatchThreshold1;
WORD wBuzzerTime;
BYTE byFaceMatch1SecurityLevel;
BYTE byFaceMatchNSecurityLevel;
BYTE byEnvirMode;
BYTE byLiveDetLevelSet;
BYTE byLiveDetAntiAttackCntLimit;
BYTE byEnableLiveDetAntiAttack;
BYTE bySupportDelFPByID;
BYTE byRes1;
BYTE byFaceContrastMotionDetLevel;
BYTE byDayFaceMatchThresholdN;
BYTE byNightFaceMatchThresholdN;
BYTE byFaceRecogizeEnable;
BYTE byBlackFaceMatchThreshold;
BYTE byRes3[2];
BYTE byDefaultVerifyMode;
DWORD dwFingerPrintCapacity;
DWORD dwFingerPrintNum;
BYTE byEnableFingerPrintNum;
BYTE byRes[231];
}NET_DVR_CARD_READER_CFG_V50,*LPNET_DVR_CARD_READER_CFG_V50;
Members
dwSize
Structure size
byEnable
Whether to enable: 0-no, 1-yes.
byCardReaderType
Fingerprint and card reader types: 1-DS-K110XM/MK/C/CK, 7-Wiegand or RS485 offline, 8-DS-
K1101M/MK, 9-DS-K1101C/CK, 10-DS-K1102M/MK/M-A, 11-DS-K1102C/CK, 12-DS-
K1103M/MK, 13-DS-K1103C/CK, 14-DS-K1104M/MK, 15-DS-K1104C/CK, 16-DS-K1102S/SK/S-A,
19-DS-K1102EM, 20- DS-K1102E, 21-DS-K1200EF, 22-DS-K1200MF, 23-DS-K1200CF, 33-DS-
K1T200EF, 34- DS-K1T300EF
byOkLedPolarity
OK LED polarity: 0-negative pole, 1-positive pole.
byErrorLedPolarity
Error LED polarity: 0-negative pole, 1-positive pole.
byBuzzerPolarity
Buzzer polarity: 0-negative pole, 1-positive pole.
159
Device Network SDK (Access Control on Person) Developer Guide
bySwipeInterval
Time interval of repeated authentication, which is valid for authentication modes such as
fingerprint, card, face, etc., unit: second.
byPressTimeout
Button pressing timeout, unit: second, which is ranging from 1 to 255.
byEnableFailAlarm
Whether to enable excessive failed authentication attempts alarm: 0-no, 1-yes.
byMaxReadCardFailNum
Maximum number of failed authentication attempts, which is ranging from 1 to 10.
byEnableTamperCheck
Whether to enable tampering detection: 0-no, 1-yes.
byOfflineCheckTime
Offline detection time, unit: second, which is ranging from 0 to 255.
byFingerPrintCheckLevel
Fingerprint recognition level: 1-1/10 error rate, 2-1/100error rate, 3-1/1000error rate,
4-1/10000error rate, 5-1/100000error rate, 6-1/1000000error rate, 7-1/10000000error rate, 8-
1/100000000error rate, 9-3/100error rate, 10-3/1000error rate, 11-3/10000error rate,
12-3/100000error rate, 13-3/1000000error rate, 14-3/10000000error rate,
15-3/100000000error rate, 16-Auto Normal, 17-Auto Secure, 18-Auto More Secure
byUseLocalController
Read-only, whether is it linked with distributed access controller or not? 0-no, 1-yes.
byRes1
Reserved, set to 0.
wLocalControllerID
Read-only, distributed access controller No. It is valid when byUseLocalController is 1, No.0
indicates that the controller is not registered, and the No. is ranging from 1 and 255.
wLocalControllerReaderID
Read-only, fingerprint and card reader No. of distributed access controller. It is valid when
byUseLocalController is 1, No.0 indicates that the controller is not registered.
wCardReaderChannel
Read-only, communication channel No. of fingerprint an card reader: 0-Wiegand or offline, 1-
RS485A, 2-RS485B. It is valid when byUseLocalController is 1.
byFingerPrintImageQuality
Fingerprint picture quality: 0-invalid, 1-low (V1), 2-medium (V1), 3-high (V1), 4-highest (V1), 5-
low (V2), 6-medium (V2), 7-high (V2), 8-highest (V2).
byFingerPrintContrastTimeOut
160
Device Network SDK (Access Control on Person) Developer Guide
161
Device Network SDK (Access Control on Person) Developer Guide
162
Device Network SDK (Access Control on Person) Developer Guide
4.27 NET_DVR_DATE
Date information structure.
Structure Definition
struct{
WORD wYear;
BYTE byMonth;
BYTE byDay;
}NET_DVR_DATE,*LPNET_DVR_DATE;
Members
wYear
Year
byMonth
Month
byDay
Day
4.28 NET_DVR_DEL_FINGER_PRINT_MODE_V50
Parameter union of fingerprint information deleting mode.
Members
uLen
163
Device Network SDK (Access Control on Person) Developer Guide
Union size.
struByCard
Parameter of deleting fingerprint information by card No. (person ID), see details in the
structure NET_DVR_FINGER_PRINT_BYCARD_V50 .
struByReader
Parameters of deleting fingerprint information by fingerprint and card reader No., see details in
the structure NET_DVR_FINGER_PRINT_BYREADER_V50 .
See Also
NET_DVR_FINGER_PRINT_INFO_CTRL_V50
4.29 NET_DVR_DEVICEINFO_V30
Device parameter structure (V30).
164
Device Network SDK (Access Control on Person) Developer Guide
165
Device Network SDK (Access Control on Person) Developer Guide
166
Device Network SDK (Access Control on Person) Developer Guide
Remarks
• The maximum number of digital channels equal to byIPChanNum+byHighDChanNum*256.
• For login via ISAPI 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
167
Device Network SDK (Access Control on Person) Developer Guide
4.30 NET_DVR_DEVICEINFO_V40
168
Device Network SDK (Access Control on Person) Developer Guide
169
Device Network SDK (Access Control on Person) Developer Guide
4.31 NET_DVR_DOOR_FILE_UPLOAD_PARAM
Structure about the parameters of the access control file to be uploaded.
170
Device Network SDK (Access Control on Person) Developer Guide
Structure Definition
struct{
DWORD dwSize;
DWORD dwFileSize;
BYTE byFileName[MAX_FILE_NAME_LEN/*100*/];
BYTE byRes1[256];
}NET_DVR_DOOR_FILE_UPLOAD_PARAM, *LPNET_DVR_DOOR_FILE_UPLOAD_PARAM;
Members
dwSize
Structure size.
dwFileSize
File size.
byFileName
File name.
byRes1
Reserved.
4.32 NET_DVR_DOOR_STATUS_PLAN
Parameter structure about door control schedule configuration.
Structure Definition
struct{
DWORD dwSize;
DWORD dwTemplateNo;
BYTE byRes[64];
}NET_DVR_DOOR_STATUS_PLAN,*LPNET_DVR_DOOR_STATUS_PLAN;
Members
dwSize
Structure size.
dwTemplateNo
Schedule template No.: 0-cancel linking the configured template with schedule, and restore to
the default settings; non-0-link the configured template with schedule.
byRes
Reserved, set to 0.
171
Device Network SDK (Access Control on Person) Developer Guide
4.33 NET_DVR_ETHERNET_V30
4.34 NET_DVR_EVENT_CARD_LINKAGE_CFG_V51
Parameter structure about event and card linkage configuration.
Structure Definition
struct{
DWORD dwSize;
BYTE byProMode;
BYTE byRes1[3];
DWORD dwEventSourceID;
NET_DVR_EVENT_CARD_LINKAGE_UNION uLinkageInfo;
BYTE byAlarmout[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byRes2[32];
BYTE byOpenDoor[MAX_DOOR_NUM/*256*/];
BYTE byCloseDoor[MAX_DOOR_NUM/*256*/];
BYTE byNormalOpen[MAX_DOOR_NUM/*256*/];
BYTE byNormalClose[MAX_DOOR_NUM/*256*/];
BYTE byMainDevBuzzer;
BYTE byCapturePic;
BYTE byRecordVideo;
BYTE byMainDevStopBuzzer;
172
Device Network SDK (Access Control on Person) Developer Guide
WORD wAudioDisplayID;
BYTE byAudioDisplayMode;
BYTE byRes3[25];
BYTE byReaderBuzzer[MAX_CARD_READER_NUM/*512*/];
BYTE byAlarmOutClose[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byAlarmInSetup[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byAlarmInClose[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byReaderStopBuzzer[MAX_CARD_READER_NUM/*64*/];
BYTE byRes[512];
}NET_DVR_EVENT_CARD_LINKAGE_CFG_V51, *LPNET_DVR_EVENT_CARD_LINKAGE_CFG_V51;
Members
dwSize
Structure size.
byProMode
Linkage type: 0-event linkage, 1-card No. linkage, 2-MAC address linkage, 3- employee No.
(person ID) linkage.
byRes1
Reserved, set to 0.
dwEventSourceID
Event triggering source ID: 0xffffffff-all. For device events, this parameter is invalid; for door
events, it refers to door No.; for card reader events, it refers to card reader ID; for alarm input
events, it refers to zone or event alarm input ID.
uLinkageInfo
Linkage action parameter, see NET_DVR_EVETN_CARD_LINKAGE_UNION for details.
byAlarmout
Linked alarm output No., which is represented by byte. 0-not link, 1-link.
byRes2
Reserved, set to 0.
byOpenDoor
Whether to enable door opening linkage, which is represented by byte. 0-disable, 1-enable.
byCloseDoor
Whether to enable door closing linkage, which is represented by byte. 0-disable, 1-enable.
byNormalOpen
Whether to enable door remaining open linkage, which is represented by byte. 0-disable, 1-
enable.
byNormalClose
Whether to enable door remaining closed linkage, which is represented by byte. 0-disable, 1-
enable.
173
Device Network SDK (Access Control on Person) Developer Guide
byMainDevBuzzer
Whether to enable access controller buzzing, 0-disable, 1-enable.
byCapturePic
Whether to enable capture linkage, 0-disable, 1-enable.
byRecordVideo
Whether to enable recording linkage, 0-disable, 1-enable.
byMainDevStopBuzzer
Whether to enable access controller stopping buzzing linkage, 0-disable, 1-enable.
wAudioDisplayID
Linked audio prompt ID, currently it is between 1 and 32, and 0 indicates no linkage.
byAudioDisplayMode
Linked audio prompt mode: 0-disable, 1-play once, 2-loop playing.
byRes3
Reserved.
byReaderBuzzer
Whether to enable buzzer linkage, which is represented by byte. 0-disable, 1-enable.
byAlarmOutClose
Whether to enable alarm output disabling linkage, which is represented by byte. 0-disable, 1-
enable.
byAlarmInSetup
Whether to enable zone arming linkage, which is represented by byte. 0-disable, 1-enable.
byAlarmInClose
Whether to enable zone disarming linkage, which is represented by byte. 0-disable, 1-enable.
byReaderStopBuzzer
Whether to enable card reader stopping buzzing linkage, which is represented by byte. 0-
disable, 1-enable.
byRes
Reserved, set to 0.
4.35 NET_DVR_EVENT_CARD_LINKAGE_COND
Condition structure about the event card linkage configuration.
Structure Definition
struct{
DWORD dwSize;
174
Device Network SDK (Access Control on Person) Developer Guide
DWORD dwEventID;
WORD wLocalControllerID;
BYTE byRes[106];
}NET_DVR_EVENT_CARD_LINKAGE_COND,*LPNET_DVR_EVENT_CARD_LINKAGE_COND;
Members
dwSize
Structure size.
dwEventID
Event ID.
wLocalControllerID
Distributed access controller No. which is between 1 and 64, while, 0-access controller.
byRes
Reserved, set to 0.
4.36 NET_DVR_EVENT_LINKAGE_INFO
Event linkage parameter structure.
Structure Definition
struct{
WORD wMainEventType;
WORD wSubEventType;
BYTE byRes[28];
}NET_DVR_EVENT_LINKAGE_INFO,*LPNET_DVR_EVENT_LINKAGE_INFO;
Members
wMainEventType
Event major types, see Access Control Event Types for details.
wSubEventType
Event minor types, see Access Control Event Types for details.
byRes
Reserved, set to 0.
See Also
NET_DVR_EVETN_CARD_LINKAGE_UNION
175
Device Network SDK (Access Control on Person) Developer Guide
4.37 NET_DVR_EVETN_CARD_LINKAGE_UNION
Parameter union about event and card linkage configuration.
Structure Definition
union{
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
NET_DVR_EVENT_LINKAGE_INFO struEventLinkage;
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
}NET_DVR_EVETN_CARD_LINKAGE_UNION,*LPNET_DVR_EVETN_CARD_LINKAGE_UNION;
Members
byCardNo
Card No.
struEventLinkage
Event linkage parameters, see details in the structure NET_DVR_EVENT_LINKAGE_INFO .
byMACAddr
Physical MAC address.
byEmployeeNo
Employee No. (person ID)
See Also
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51
4.38 NET_DVR_FACE_FEATURE
Structure about facial feature parameters.
Structure Definition
struct{
NET_VCA_RECT struFace;
NET_VCA_POINT struLeftEye;
NET_VCA_POINT struRightEye;
NET_VCA_POINT struLeftMouth;
NET_VCA_POINT struRightMouth;
NET_VCA_POINT struNoseTip;
}NET_DVR_FACE_FEATURE, *LPNET_DVR_FACE_FEATURE;
176
Device Network SDK (Access Control on Person) Developer Guide
Members
struFace
Face sub-picture area, see details in the structure NET_VCA_RECT .
struLeftEye
Coordinates of the left eye, see details in the structure NET_VCA_POINT .
struRightEye
Coordinates of the right eye, see details in the structure NET_VCA_POINT .
struLeftMouth
Coordinates of the left mouth corner, see details in the structure NET_VCA_POINT .
struRightMouth
Coordinates of the right mouth corner, see details in the structure NET_VCA_POINT .
struNoseTip
Coordinates of the nose, see details in the structure NET_VCA_POINT .
4.39 NET_DVR_FAILED_FACE_COND
Condition structure of getting face picture information, of which modeling failed
Structure Definition
struct{
DWORD dwSize;
BYTE byRes[128];
}NET_DVR_FAILED_FACE_COND, *LPNET_DVR_FAILED_FACE_COND;
Members
dwSize
Structure size.
byRes
Reserved, set to 0
4.40 NET_DVR_FAILED_FACE_INFO
Structure of modeling failure information parameters
Structure Definition
struct{
DWORD dwSize;
177
Device Network SDK (Access Control on Person) Developer Guide
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byErrorCode;
BYTE byRes1[3];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes[92];
}NET_DVR_FAILED_FACE_INFO, *LPNET_DVR_FAILED_FACE_INFO;
Members
dwSize
Structure size.
byCardNo
No. of the card linked to the face.
byErrorCode
Failure error code: 0-Invalid, 1-reading picture file failed, 2-opening picture file failed, 3-no
enough memory, 4-face modeling failed, 5-the pupillary distance is too small (less than 60), 6-
the card has no permission.
byRes1
Reserved.
byEmployeeNo
Employee No. (person ID)
byRes
Reserved, set to 0.
4.41 NET_DVR_FINGER_PRINT_BYCARD_V50
Parameter structure of deleting fingerprint information by card No. (person ID).
Structure Definition
struct{
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
BYTE byFingerPrintID[MAX_FINGER_PRINT_NUM/*10*/];
BYTE byRes1[2];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
}NET_DVR_FINGER_PRINT_BYCARD_V50,*LPNET_DVR_FINGER_PRINT_BYCARD_V50;
Members
byCardNo
No. of card linked with the fingerprint information.
byEnableCardReader
178
Device Network SDK (Access Control on Person) Developer Guide
Fingerprint and card reader IDs, which are represented by array, and each member of array
refers to one reader ID, value: 0-not delete, 1-delete.
byFingerPrintID
Finger IDs, which are represented by array, and each member of the array refers to one
fingerprint ID, value: 0-not delete, 1-delete.
byRes1
Reserved.
byEmployeeNo
Employee ID (person ID).
See Also
NET_DVR_DEL_FINGER_PRINT_MODE_V50
4.42 NET_DVR_FINGER_PRINT_BYREADER_V50
Parameter structure of deleting fingerprint information by fingerprint and card reader No.
Structure Definition
struct{
DWORD dwCardReaderNo;
BYTE byClearAllCard;
BYTE byRes1[3];
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes[516];
}NET_DVR_FINGER_PRINT_BYREADER_V50,*LPNET_DVR_FINGER_PRINT_BYREADER_V50;
Members
dwCardReaderNo
Fingerprint and card reader No.
byClearAllCard
Whether to delete the fingerprint information of all cards: 0-no, delete by card No. (person ID);
1-yes.
byRes1
Reserved.
byCardNo
No. of card linked with the fingerprint information
byEmployeeNo
Employee ID (person ID)
179
Device Network SDK (Access Control on Person) Developer Guide
byRes
Reserved.
See Also
NET_DVR_DEL_FINGER_PRINT_MODE_V50
4.43 NET_DVR_FINGER_PRINT_CFG_V50
Fingerprint configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
DWORD dwFingerPrintLen;
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
BYTE byFingerPrintID;
BYTE byFingerType;
BYTE byRes1[30];
BYTE byFingerData[MAX_FINGER_PRINT_LEN/*768*/];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byLeaderFP[MAX_DOOR_NUM_256/*256*/]
BYTE byRes[128];
}NET_DVR_FINGER_PRINT_CFG, *LPNET_DVR_FINGER_PRINT_CFG;
Members
dwSize
Structure size.
byCardNo
Card No., which is linked with the fingerprint.
dwFingerPrintLen
Size of fingerprint data. The fingerprint module and fingerprint recorder will be used in pair.
byEnableCardReader
Whether to apply fingerprint data to the fingerprint module, which is represented by array: 0-no
1-yes
byFingerPrintID
Finger No., which is between 1 and 10
byFingerType
Fingerprint type: 0-normal fingerprint, 1-duress fingerprint, 2-patrol fingerprint, 3-super
fingerprint, 4-dismiss fingerprint
180
Device Network SDK (Access Control on Person) Developer Guide
byRes1
Reserved, set to 0
byFingerData
Fingerprint data
byEmployeeNo
Employee No. (person ID)
byLeaderFP
Whether to support first time authentication function (door, represented by byte): 0-no, 1-yes.
byRes
Reserved, set to 0
4.44 NET_DVR_FINGER_PRINT_INFO_COND_V50
Fingerprint parameter configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
DWORD dwFingerPrintNum;
BYTE byFingerPrintID;
BYTE byCallbackMode;
BYTE byRes2[2];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes1[128];
}NET_DVR_FINGER_PRINT_INFO_COND_V50, *LPNET_DVR_FINGER_PRINT_INFO_COND_V50;
Members
dwSize
Structure size.
byCardNo
Card No. linked with the fingerprint. This parameter is invalid when setting fingerprint
parameters.
byEnableCardReader
Fingerprint module status: 0-invalid; 1-valid.
dwFingerPrintNum
Number of obtained or configured fingerprints, 0xffffffff-get all fingerprints' information.
byFingerPrintID
181
Device Network SDK (Access Control on Person) Developer Guide
Finger No., which is between 1 and 10, 0xff indicates-all fingerprints of the card.
byCallbackMode
Device callback mode: 0-returned when applied all; 1-returned when applied a part.
byRes2
Reserved, set to 0.
byEmployeeNo
Employee No. (person ID).
byRes1
Reserved, set to 0.
Remarks
Two fingerprint applying modes are available: blocking mode and non-blocking mode.
• Blocking Mode: Set byCallbackMode to "0", and the applying status will be returned for once
only after applying each fingerprint.
• Non-blocking Mode: Set byCallbackMode to "1", and the applying status will be returned for
multiple times after applying each fingerprint. And the next fingerprint can be applied until the
previous fingerprint information is applied.
4.45 NET_DVR_FINGER_PRINT_INFO_CTRL_V50
Condition structure for deleting fingerprint information.
Structure Definition
struct{
DWORD dwSize;
BYTE byMode;
BYTE byRes1[3];
NET_DVR_DEL_FINGER_PRINT_MODE_V50 struProcessMode;
BYTE byRes[64];
}NET_DVR_FINGER_PRINT_INFO_CTRL_V50,*LPNET_DVR_FINGER_PRINT_INFO_CTRL_V50;
Members
dwSize
Structure size.
byMode
Deleting mode: 0-by card No. (person ID), 1-by fingerprint and card reader No.
byRes1
Reserved.
struProcessMode
182
Device Network SDK (Access Control on Person) Developer Guide
4.46 NET_DVR_FINGER_PRINT_STATUS_V50
Fingerprint information applying or deleting status structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardReaderRecvStatus[MAX_CARD_READER_NUM_512/*512*/];
BYTE byFingerPrintID;
BYTE byFingerType;
BYTE byTotalStatus;
BYTE byRecvStatus;
BYTE byErrorMsg[ERROR_MSG_LEN/*32*/];
DWORD dwCardReaderNo;
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byErrorEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes[128];
}NET_DVR_FINGER_PRINT_STATUS_V50,*LPNET_DVR_FINGER_PRINT_STATUS_V50;
Members
dwSize
Structure size.
byCardNo
Card No. which is linked with the fingerprint.
byCardReaderRecvStatus
Fingerprint module status, which is represented by byte: 0-failed, 1-completed, 2-the fingerprint
module is offline, 3-try again or poor fingerprint quality, 4-memory is full, 5-the fingerprint
already exists, 6-the fingerprint ID already exists, 7-invalid fingerprint ID, 8-the fingerprint
module does not need to be configured, 10-the fingerprint module version is too old to support
the employee No.
byFingerPrintID
Finger No. which is between 1 and 10.
byFingerType
Fingerprint type: 0-normal fingerprint, 1-duress fingerprint, 2-patrol fingerprint, 3-super
fingerprint, 4-dismiss fingerprint.
183
Device Network SDK (Access Control on Person) Developer Guide
byTotalStatus
Applying status: 0-applying, 1-applied to all (it does not mean that all the applying succeeded).
byRecvStatus
Device error status: 0-succeeded, 1-invalid finger No., 2-invalid fingerprint type, 3-invalid card
No. (the card No. does not meet the device requirements), 4-the fingerprint is not linked to
employee No. or card No. (the employee No. or the card No. is NULL), 5-the employee No. does
not exist, 6-the fingerprint data length is 0, 7-invalid card reader No., 8-invalid employee No., 9-
illegal first time authentication value, 10-other parameters error.
byErrorMsg
Apply error message. When byCardReaderRecvStatus is 5, it indicates that the card No. linked
to the fingerprint already exists.
dwCardReaderNo
When byCardReaderRecvStatus is 5, it indicates that the fingerprint module corresponding to
the fingerprint already exists. This member can be used to return applying error, and 0 refers to
no error message.
byEmployeeNo
Employee No. (person ID)
byErrorEmployeeNo
Apply error message. When byCardReaderRecvStatus is 5, it indicates that the employee No.
(person ID) linked to the fingerprint already exists.
byRes
Reserved.
Related API
NET_DVR_StartRemoteConfig
4.47 NET_DVR_GROUP_CFG
Group configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
NET_DVR_VALID_PERIOD_CFG
struValidPeriodCfg;
BYTE byGroupName[GROUP_NAME_LEN/*32*/];
184
Device Network SDK (Access Control on Person) Developer Guide
BYTE byRes2[32];
}NET_DVR_GROUP_CFG,*LPNET_DVR_GROUP_CFG;
Members
dwSize
Structure size
byEnable
Whether to enable the group: 0-no, 1-yes.
byRes1
Reserved, set to 0.
struValidPeriodCfg
Group expiry date.
byGroupName
Group name
byRes2
Reserved, set to 0.
4.48 NET_DVR_GROUP_COMBINATION_INFO_V50
Group parameters structure.
Structure Definition
struct{
BYTE byEnable;
BYTE byMemberNum;
BYTE bySequenceNo;
BYTE byRes;
DWORD dwGroupNo;
}NET_DVR_MULTI_CARD_CFG_V50,*LPNET_DVR_MULTI_CARD_CFG_V50;
Members
byEnable
Whether to enable the group: 0-no, 1-yes
byMemberNum
Number of cards should be swiped in the group.
bySequenceNo
Card swiping order in the group.
byRes
185
Device Network SDK (Access Control on Person) Developer Guide
Reserved, set to 0.
dwGroupNo
Group No., 0xffffffff-remotely open door, 0xfffffffe-open door by super password.
See Also
NET_DVR_MULTI_CARD_GROUP_CFG_V50
4.49 NET_DVR_HOLIDAY_GROUP_CFG
Holiday group configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
BYTE byGroupName[HOLIDAY_GROUP_NAME_LEN/*32*/];
DWORD dwHolidayPlanNo[MAX_HOLIDAY_PLAN_NUM/*16*/];
BYTE byRes2[32];
}NET_DVR_HOLIDAY_GROUP_CFG,*LPNET_DVR_HOLIDAY_GROUP_CFG;
Members
dwSize
Structure size.
byEnable
Whether to enable: 1-enable, 0-disable.
byRes1
Reserved, set to 0.
byGroupName
Holiday group name.
dwHolidayPlanNo
Holiday schedule No.: 0-invalid.
byRes2
Reserved, set to 0.
4.50 NET_DVR_HOLIDAY_PLAN_CFG
Holiday schedule configuration structure.
186
Device Network SDK (Access Control on Person) Developer Guide
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
NET_DVR_DATE
struBeginDate;
NET_DVR_DATE
struEndDate;
NET_DVR_SINGLE_PLAN_SEGMENT
struPlanCfg[MAX_DAYS][MAX_TIMESEGMENT_V30];
BYTE byRes2[16];
}NET_DVR_HOLIDAY_PLAN_CFG,*LPNET_DVR_HOLIDAY_PLAN_CFG;
Members
dwSize
Structure size.
byEnable
Enable? 0- No; 1- Yes
byRes1
Reserved, set to 0.
struBeginDate
Holiday start time, see NET_DVR_DATE for details.
struEndDate
Holiday end time, see NET_DVR_DATE for details.
struPlanCfg
Holiday schedule parameters, up to 7 days can be set in one week, and up to 8 time periods can
be set in one day, see NET_DVR_SINGLE_PLAN_SEGMENT for details.
byRes2
Reserved, set to 0.
4.51 NET_DVR_INIT_CFG_ABILITY
187
Device Network SDK (Access Control on Person) 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
4.52 NET_DVR_IPADDR
IP Address Structure
188
Device Network SDK (Access Control on Person) Developer Guide
4.53 NET_DVR_JSON_DATA_CFG
Structure about picture data in JSON format.
Structure Definition
struct{
DWORD dwSize;
void *lpJsonData;
DWORD dwJsonDataSize;
void *lpPicData;
DWORD dwPicDataSize;
DWORD dwInfraredFacePicSize;
char *lpInfraredFacePicBuffer;
BYTE byRes[248];
}NET_DVR_JSON_DATA_CFG,*LPNET_DVR_JSON_DATA_CFG;
Members
dwSize
Structure size.
lpJsonData
Returned message in JSON format.
dwJsonDataSize
Size of the message in JSON format.
lpPicData
Picture data. If the returned message is the response status message, this member is invalid; if
the returned message in JSON format does not contain faceURL, this member should contain
picture data in binary format.
dwPicDataSize
Picture data size, the maximum size is 200 KB.
dwInfraredFacePicSize
Data size of the infrared face picture. When this member is 0, it indicates that there is no face
picture data. When the response message is JSON_ResponseStatus , this member is
meaningless. When the request message in JSON format does not contain the value of
infraredFaceURL, this member should contain the binary picture.
lpInfraredFacePicBuffer
Buffer of infrared face picture data.
byRes
Reserved.
189
Device Network SDK (Access Control on Person) Developer Guide
4.54 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.
4.55 NET_DVR_MIME_UNIT
See Also
NET_DVR_XML_CONFIG_INPUT
190
Device Network SDK (Access Control on Person) Developer Guide
4.56 NET_DVR_MULTI_CARD_CFG_V50
Multi-factor authentication parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE bySwipeIntervalTimeout;
BYTE byRes1[2];
NET_DVR_MULTI_CARD_GROUP_CFG_V50 struGroupCfg[NET_SDK_MULTI_CARD_GROUP_NUM/*20*/];
BYTE byRes2[32];
}NET_DVR_MULTI_CARD_CFG_V50,*LPNET_DVR_MULTI_CARD_CFG_V50;
Members
dwSize
Structure size
byEnable
Whether to enable multi-factor authentication: 0-no, 1-yes.
bySwipeIntervalTimeout
Card swiping interval timeout, which is ranging from 1 to 255, unit: second, default: 10s.
byRes1
Reserved, set to 0.
struGroupCfg
Card swiping parameters of group, see details in the structure
NET_DVR_MULTI_CARD_GROUP_CFG_V50 .
byRes2
Reserved, set to 0.
4.57 NET_DVR_MULTI_CARD_GROUP_CFG_V50
Card swiping parameter structure of card group.
Structure Definition
struct{
BYTE byEnable;
BYTE byEnableOfflineVerifyMode;
BYTE byRes1[2];
DWORD dwTemplateNo;
191
Device Network SDK (Access Control on Person) Developer Guide
NET_DVR_GROUP_COMBINATION_INFO_V50 struGroupCombination[GROUP_COMBINATION_NUM];
}NET_DVR_MULTI_CARD_GROUP_CFG_V50,*LPNET_DVR_MULTI_CARD_GROUP_CFG_V50;
Members
byEnable
Whether to enable card group parameters of multi-factor authentication: 0-no, 1-yes.
bySwipeIntervalTimeout
Whether to enable access authentication when the access controller is offline (open door by
super password instead of remotely opening door): 0-no, 1-yes
byRes1
Reserved, set to 0.
dwTemplateNo
Template No. of multi-factor authentication schedule, which reuses the template of access
permission control schedule.
struGroupCombination
Group parameters, see details in the structure NET_DVR_GROUP_COMBINATION_INFO_V50 .
See Also
NET_DVR_MULTI_CARD_CFG_V50
4.58 NET_DVR_NETCFG_V50
192
Device Network SDK (Access Control on Person) 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.
193
Device Network SDK (Access Control on Person) Developer Guide
4.59 NET_DVR_PLAN_TEMPLATE
Schedule template configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
BYTE byTemplateName[TEMPLATE_NAME_LEN/*32*/];
DWORD dwWeekPlanNo;
DWORD dwHolidayGroupNo[MAX_HOLIDAY_GROUP_NUM/*16*/];
BYTE byRes2[32];
}NET_DVR_PLAN_TEMPLATE,*LPNET_DVR_PLAN_TEMPLATE;
Members
dwSize
Structure size.
byEnable
Whether to enable: 1-enable, 0-disable.
byRes1
Reserved, set to 0.
byGroupName
Schedule template name.
byGroupName
Week schedule No.: 0-invalid.
dwHolidayGroupNo
Holiday group No.: 0-invalid.
byRes2
Reserved, set to 0.
4.60 NET_DVR_PPPOECFG
194
Device Network SDK (Access Control on Person) Developer Guide
4.61 NET_DVR_SETUPALARM_PARAM_V50
195
Device Network SDK (Access Control on Person) Developer Guide
196
Device Network SDK (Access Control on Person) 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.
4.62 NET_DVR_SIMPLE_DAYTIME
Time parameter structure.
Structure Definition
struct{
BYTE byHour;
BYTE byMinute;
BYTE bySecond;
197
Device Network SDK (Access Control on Person) Developer Guide
BYTE byRes;
}NET_DVR_SIMPLE_DAYTIME,*LPNET_DVR_SIMPLE_DAYTIME;
Members
byHour
Hour
byMinute
Minute
bySecond
Second
byRes
Reserved, set to 0.
4.63 NET_DVR_SINGLE_PLAN_SEGMENT
Parameter structure of a schedule
Structure Definition
struct{
BYTE byEnable;
BYTE byDoorStatus;
BYTE byVerifyMode;
BYTE byRes[5];
NET_DVR_TIME_SEGMENT struTimeSegment;
}NET_DVR_SINGLE_PLAN_SEGMENT, *LPNET_DVR_SINGLE_PLAN_SEGMENT;
Members
byEnable
Whether to enable: 1-no, 0-yes.
byDoorStatus
Door status: 0-invalid, 1-remain open (access without authentication), 2-remain closed (access
is not allowed), 3-normal (access by authentication).
byVerifyMode
Authentication mode: 0-invalid, 1-card, 2-card+password, 3-password, 4-card or password, 5-
fingerprint, 6-fingerprint+password, 7-fingerprint or password, 8-fingerprint+card, 9-fingerprint
+card+password, 10-face or fingerprint or card or password, 11-face+fingerprint, 12-face
+password, 13-face+card, 14-face, 15-employee ID+password, 16-fingerprint or password, 17-
employee ID+fingerprint, 18-employee ID+fingerprint+password, 19-face+fingerprint+card, 20-
face+password+fingerprint, 21-employee ID+face, 22-face or face+card, 23-fingerprint or face,
198
Device Network SDK (Access Control on Person) Developer Guide
4.64 NET_DVR_TIME
4.65 NET_DVR_TIME_EX
199
Device Network SDK (Access Control on Person) Developer Guide
4.66 NET_DVR_TIME_SEGMENT
Time period parameter structure.
Structure Definition
struct{
NET_DVR_SIMPLE_DAYTIME struBeginTime;
NET_DVR_SIMPLE_DAYTIME struEndTime;
}NET_DVR_TIME_SEGMENT, *LPNET_DVR_TIME_SEGMENT;
Members
struBeginTime
Start time of time period, refer to the structure NET_DVR_SIMPLE_DAYTIME for details.
struEndTime
End time of time period, refer to the structure NET_DVR_SIMPLE_DAYTIME for details.
4.67 NET_DVR_USER_LOGIN_INFO
200
Device Network SDK (Access Control on Person) Developer Guide
4.67.1 fLoginResultCallBack
4.68 NET_DVR_VALID_PERIOD_CFG
Expiry date configuration structure.
Structure Definition
struct{
BYTE byEnable;
201
Device Network SDK (Access Control on Person) Developer Guide
BYTE byBeginTimeFlag;
BYTE byEnableTimeFlag;
BYTE byTimeDurationNo;
NET_DVR_TIME_EX struBeginTime;
NET_DVR_TIME_EX struEndTime;
BYTE byTimeType;
BYTE byRes2[32];
}NET_DVR_VALID_PERIOD_CFG,*LPNET_DVR_VALID_PERIOD_CFG;
Members
byEnable
Whether to enable the expiry date: 0-no, 1-yes.
byBeginTimeFlag
Whether to enable the flag to limit the start time: 0-no, 1-yes.
byEnableTimeFlag
Whether to enable the flag to limit the end time: 0-no, 1-yes.
byTimeDurationNo
Expiry date index No., which starts from 0.
struBeginTime
Start time of the expiry date, see details in the structure NET_DVR_TIME_EX .
struEndTime
End time of the expiry date, see details in the structure NET_DVR_TIME_EX ..
byTimeType
Time type: 0-device's local time (default), 1-UTC time. This member is valid for struBeginTime
and struEndTime.
byRes2
Reserved, set to 0.
See Also
NET_DVR_GROUP_CFG
4.69 NET_DVR_WEEK_PLAN_CFG
Week schedule parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
202
Device Network SDK (Access Control on Person) Developer Guide
NET_DVR_SINGLE_PLAN_SEGMENT struPlanCfg[MAX_DAYS/*7*/][MAX_TIMESEGMENT_V30/*8*/];
BYTE byRes2[16];
}NET_DVR_WEEK_PLAN_CFG, *LPNET_DVR_WEEK_PLAN_CFG;
Members
dwSize
Structure size.
byEnable
Whether to enable: 1-no, 0-yes.
byRes1
Reserved, set to 0.
struPlanCfg
Week schedule parameters, up to 7 days can be set in one week, and up to 8 time periods can
be set in one day, see NET_DVR_SINGLE_PLAN_SEGMENT for details.
byRes2
Reserved, set to 0.
4.70 NET_DVR_XML_CONFIG_INPUT
203
Device Network SDK (Access Control on Person) Developer Guide
Related API
NET_DVR_STDXMLConfig
4.71 NET_DVR_XML_CONFIG_OUTPUT
Related API
NET_DVR_STDXMLConfig
4.72 NET_SDK_CALLBACK_STATUS_NORMAL
204
Device Network SDK (Access Control on Person) Developer Guide
4.73 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,
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,
205
Device Network SDK (Access Control on Person) Developer Guide
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
GUID file.
NET_SDK_DOWNLOAD_FILE_FORM_CLOUD
Picture in the cloud storage.
NET_SDK_DOWNLOAD_PICTURE
206
Device Network SDK (Access Control on Person) Developer Guide
Picture.
NET_SDK_DOWNLOAD_VIDEO
Video.
NET_DVR_DOWNLOAD_SCREEN_FILE
Screen server file.
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL
Static 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
Dynamic library file of RS-485 protocol.
NET_SDK_DOWNLOAD_CLUSTER_MAINTENANCE_LOG
Cluster maintenance log to be exported.
NET_SDK_DOWNLOAD_SQL_ARCHIVE_FILE
207
Device Network SDK (Access Control on Person) Developer Guide
4.74 NET_SDK_UPLOAD_TYPE
Enumerate file types to be uploaded.
Enumeration Definition
typedef enum {
UPGRADE_CERT_FILE = 0,
UPLOAD_CERT_FILE = 1,
208
Device Network SDK (Access Control on Person) Developer Guide
TRIAL_CERT_FILE = 2,
CONFIGURATION_FILE = 3,
UPLOAD_RECORD_FILE = 4,
SCENE_CONFIGURATION_FILE = 5,
UPLOAD_PICTURE_FILE = 6,
UPLOAD_VIOLATION_FILE = 7,
UPLOAD_TG_FILE = 8,
UPLOAD_DATA_TO_DB = 9,
UPLOAD_BACKGROUND_PIC = 10,
UPLOAD_CALIBRATION_FILE = 11,
UPLOAD_TME_FILE = 12,
UPLOAD_VEHICLE_BLACKWHITELST_FILE = 13,
UPLOAD_PICTURE_TO_CLOUD = 15,
UPLOAD_VIDEO_FILE = 16,
UPLOAD_SCREEN_FILE = 17,
UPLOAD_PUBLISH_MATERIAL = 18,
UPLOAD_PUBLISH_UPGRADE_FILE = 19,
UPLOAD_RING_FILE = 20,
UPLOAD_ENCRYPT_CERT = 21,
UPLOAD_THERMOMETRIC_FILE = 22,
UPLOAD_SUBBRAND_FILE = 23,
UPLOAD_LED_CHECK_FILE = 24,
BATCH_UPLOAD_PICTURE_FILE = 25,
UPLOAD_EDID_CFG_FILE = 26,
UPLOAD_PANORAMIC_STITCH = 27,
UPLOAD_BINOCULAR_COUNTING = 28,
UPLOAD_AUDIO_FILE = 29,
UPLOAD_PUBLISH_THIRD_PARTY_FILE = 30,
UPLOAD_DEEPEYES_BINOCULAR = 31,
UPLOAD_CERTIFICATE_BLACK_LIST = 32,
UPLOAD_HD_CAMERA_CORRECT_TABLE = 33,
UPLOAD_FD_DATA = 35,
UPLOAD_FACE_DATA = 36,
UPLOAD_FACE_ANALYSIS_DATA = 37,
UPLOAD_FILEVOLUME_DATA = 38,
IMPORT_DATA_TO_FACELIB = 39,
UPLOAD_LEFTEYE_4K_CALIBFILE = 40,
UPLOAD_SECURITY_CFG_FILE = 41,
UPLOAD_RIGHT_CONTROLLER_AUDIO = 42,
UPLOAD_MODBUS_CFG_FILE = 43,
UPLOAD_NOTICE_VIDEO_DATA = 44,
UPLOAD_RS485_PROTOCOL_DLL_FILE = 45,
UPLOAD_PIC_BY_BUF = 46,
UPLOAD_CLIENT_CALIBFILE = 47,
UPLOAD_HD_CAMERA_CORRECT_TABLE_3200W = 48,
UPLOAD_APP_FILE = 51,
UPLOAD_OFFLINE_CAPTURE_INFO = 56
}NET_SDK_UPLOAD_TYPE;
Members
UPGRADE_CERT_FILE
209
Device Network SDK (Access Control on Person) Developer Guide
210
Device Network SDK (Access Control on Person) Developer Guide
211
Device Network SDK (Access Control on Person) Developer Guide
4.75 NET_VCA_POINT
212
Device Network SDK (Access Control on Person) Developer Guide
4.76 NET_VCA_RECT
213
Device Network SDK (Access Control on Person) Developer Guide
5.1 /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json
Get the capability of getting total number of access control events by specific conditions.
5.2 /ISAPI/AccessControl/AcsEventTotalNum?format=json
Get the total number of access control events by specific conditions.
214
Device Network SDK (Access Control on Person) Developer Guide
5.3 /ISAPI/AccessControl/attendanceStatusModeCfg/capabilities?
format=json
Get the configuration capability of the attendance mode.
5.4 /ISAPI/AccessControl/attendanceStatusModeCfg?format=json
Operations about the attendance mode configuration.
215
Device Network SDK (Access Control on Person) Developer Guide
5.5 /ISAPI/AccessControl/attendanceStatusRuleCfg/capabilities?
format=json
Get the configuration capability of the attendance status and rule.
5.6 /ISAPI/AccessControl/attendanceStatusRuleCfg?
attendanceStatus=&format=json
Operations about the configuration of the attendance status and rule.
216
Device Network SDK (Access Control on Person) Developer Guide
5.7 /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json
Get the capability of collecting card information.
5.8 /ISAPI/AccessControl/CaptureCardInfo?format=json
Collect card information.
217
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response Succeeded: JSON_CardInfo_Collection
Failed: JSON_ResponseStatus
5.9 /ISAPI/AccessControl/CaptureFingerPrint
Collect fingerprint information.
5.10 /ISAPI/AccessControl/CaptureFingerPrint/capabilities
Get the fingerprint collection capability.
5.11 /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json
Get the capability of collecting ID card information.
218
Device Network SDK (Access Control on Person) Developer Guide
5.12 /ISAPI/AccessControl/CaptureIDInfo?format=json
Collect ID card information.
5.13 /ISAPI/AccessControl/CapturePresetParam/capabilities?
format=json
Get the configuration capability of online collection preset parameters.
219
Device Network SDK (Access Control on Person) Developer Guide
5.14 /ISAPI/AccessControl/CapturePresetParam?format=json
Get or set the online collection preset parameters.
5.15 /ISAPI/AccessControl/CaptureRule/capabilities?format=json
Get the configuration capability of online collection rules.
220
Device Network SDK (Access Control on Person) Developer Guide
5.16 /ISAPI/AccessControl/CaptureRule?format=json
Get or set the parameters of online collection rules.
5.17 /ISAPI/AccessControl/CardInfo/capabilities?format=json
Get the card management capability.
221
Device Network SDK (Access Control on Person) Developer Guide
5.18 /ISAPI/AccessControl/CardInfo/Count?format=json
Get the total number of the added cards.
5.19 /ISAPI/AccessControl/CardInfo/Count?
format=json&employeeNo=<ID>
Get the number of cards linked with a specific person.
222
Device Network SDK (Access Control on Person) Developer Guide
Remarks
The <ID> in the request URL refers to the actual person ID or employee No.
5.20 /ISAPI/AccessControl/CardInfo/Delete?format=json
Delete cards.
5.21 /ISAPI/AccessControl/CardInfo/Modify?format=json
Edit card information.
223
Device Network SDK (Access Control on Person) Developer Guide
5.22 /ISAPI/AccessControl/CardInfo/Record?format=json
Add cards and link them with a person.
5.23 /ISAPI/AccessControl/CardInfo/Search?format=json
Search for cards.
5.24 /ISAPI/AccessControl/CardInfo/SetUp?format=json
Set card information.
224
Device Network SDK (Access Control on Person) Developer Guide
Request JSON_CardInfo
Response JSON_ResponseStatus
Remarks
• If the device has checked that the card does not exist according to the card No., the card
information will be added.
• If the device has checked that the card already exists according to the card No., the card
information will be edited.
• If you want to delete a card for a person, you should set the employeeNo and cardNo, and set
the deleteCard to "true" in the message JSON_CardInfo . The success response message will be
returned no matter whether the card exists or not. Deleting the card will only delete the card's
information and will not delete the linked person information.
• If you want to delete all cards for a person, you should set the employeeNo, and set the
deleteCard to "true" in the message JSON_CardInfo . The success response message will be
returned no matter whether the person exists or not or whether the person has cards or not.
Deleting cards will only delete the cards' information and will not delete the linked person
information.
5.25 /ISAPI/AccessControl/CardOperations/capabilities?format=json
Get card operation capability.
5.26 /ISAPI/AccessControl/CardOperations/cardParam?format=json
Set card parameters (only available for CPU card).
225
Device Network SDK (Access Control on Person) Developer Guide
5.27 /ISAPI/AccessControl/CardOperations/controlBlock?format=json
Change the control block of a specific section (only available for M1 card).
5.28 /ISAPI/AccessControl/CardOperations/dataBlock/<address>?
format=json
Read or write data block (only available for M1 card).
226
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response Succeeded: JSON_DataBlock
Failed: JSON_ResponseStatus
Table 4-33 PUT /ISAPI/AccessControl/CardOperations/dataBlock/<address>?format=json
Method PUT
Description Write data block (only available for M1 card).
Query format: determine the format of request or response message.
Request JSON_DataBlock
Response JSON_ResponseStatus
Remarks
The <address> in the request URL refers to the block address, which is same as that in
JSON_DataBlock .
5.29 /ISAPI/AccessControl/CardOperations/dataBlock/control?
format=json
Do operations (i.e., plus, minus, copy, and paste) on the data block.
5.30 /ISAPI/AccessControl/CardOperations/dataTrans?format=json
Pass through the data package (only available for CPU card).
227
Device Network SDK (Access Control on Person) Developer Guide
5.31 /ISAPI/AccessControl/CardOperations/encryption?format=json
Set card encryption parameters (only available for CPU card).
5.32 /ISAPI/AccessControl/CardOperations/protocol?format=json
Set operation protocol type for the card (only available when applying card).
228
Device Network SDK (Access Control on Person) Developer Guide
5.33 /ISAPI/AccessControl/CardOperations/reset?format=json
Reset card parameters (only available for CPU card).
5.34 /ISAPI/AccessControl/CardOperations/sectionEncryption?
format=json
Set the encryption parameters of a specific section (only available for M1 card).
5.35 /ISAPI/AccessControl/CardOperations/verification?format=json
Verify the password of the encrypted section (only available for M1 card).
229
Device Network SDK (Access Control on Person) Developer Guide
5.36 /ISAPI/AccessControl/ClearCardRecord
Clear card swiping records in the cross-controller anti-passing back server.
Remarks
This request URL can only be used by the cross-controller anti-passing back server, and it is not
supported by the cross-controller anti-passing back devices based on card mode.
5.37 /ISAPI/AccessControl/ClearCardRecord/capabilities
Get the capability of clearing card swiping records in the cross-controller anti-passing back server.
230
Device Network SDK (Access Control on Person) Developer Guide
5.38 /ISAPI/AccessControl/ClearSubmarineBack
Clear cross-controller anti-passing back parameters.
5.39 /ISAPI/AccessControl/ClearSubmarineBack/capabilities
Get the capability of clearing cross-controller anti-passing back parameters.
231
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response Succeeded: XML_Cap_ClearSubmarineBack
Failed: XML_ResponseStatus
5.40 /ISAPI/AccessControl/Configuration/IRCfg/capabilities?format=json
Get active infrared intrusion capability.
5.41 /ISAPI/AccessControl/Configuration/IRCfg?format=json
Get or set active infrared intrusion parameters.
232
Device Network SDK (Access Control on Person) Developer Guide
Request JSON_IRCfg
Response JSON_ResponseStatus
5.42 /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?
format=json
Get the configuration capability of enabling NFC (Near-Field Communication) function.
5.43 /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Operations about the configuration of enabling NFC (Near-Field Communication) function.
233
Device Network SDK (Access Control on Person) Developer Guide
5.44 /ISAPI/AccessControl/Configuration/RFCardCfg/capabilities?
format=json
Get the configuration capability of enabling RF (Radio Frequency) card recognition.
5.45 /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Operations about the configuration of enabling RF (Radio Frequency) card recognition.
234
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response Succeeded: JSON_RFCardCfg
Failed: JSON_ResponseStatus
Table 4-53 PUT /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Method PUT
Description Set the parameters of enabling RF (Radio Frequency) card
recognition.
Query format: determine the format of request or response message.
Request JSON_RFCardCfg
Response JSON_ResponseStatus
5.46 /ISAPI/AccessControl/DeployInfo
Get the arming information (e.g., arming types).
Remarks
The client arming supports arming of only one channel and can upload offline events. The real-
time arming is used for other devices to arm the access control devices, which supports arming of
up to four channels and cannot upload offline events.
5.47 /ISAPI/AccessControl/DeployInfo/capabilities
Get the capability of getting arming information.
235
Device Network SDK (Access Control on Person) Developer Guide
5.48 /ISAPI/AccessControl/EventOptimizationCfg/capabilities?
format=json
Get the configuration capability of event optimization.
5.49 /ISAPI/AccessControl/EventOptimizationCfg?format=json
Operations about the event optimization configuration.
236
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response Succeeded: JSON_EventOptimizationCfg
Failed: JSON_ResponseStatus
Table 4-58 PUT /ISAPI/AccessControl/EventOptimizationCfg?format=json
Method PUT
Description Set the event optimization parameters.
Query format: determine the format of request or response message.
Request JSON_EventOptimizationCfg
Response JSON_ResponseStatus
5.50 /ISAPI/AccessControl/FaceCompareCond
Get or set the condition parameters of face picture comparison.
5.51 /ISAPI/AccessControl/FaceCompareCond/capabilities
Get condition configuration capability of face picture comparison.
237
Device Network SDK (Access Control on Person) Developer Guide
5.52 /ISAPI/AccessControl/FaceRecognizeMode/capabilities?
format=json
Get the configuration capability of the facial recognition mode.
Remarks
Switching facial recognition mode will clear face permission information in the device.
5.53 /ISAPI/AccessControl/FaceRecognizeMode?format=json
Operations about the configuration of the facial recognition mode.
238
Device Network SDK (Access Control on Person) Developer Guide
Remarks
Switching facial recognition mode will clear face permission information in the device.
5.54 /ISAPI/AccessControl/FingerPrint/DeleteProcess?format=json
Get the progress of deleting fingerprint data.
239
Device Network SDK (Access Control on Person) Developer Guide
Remarks
When starting deleting fingerprint data, this URL will be repeatedly called to get the deleting
progress until "success" or "failed" is returned by the parameter status in the message
JSON_FingerPrintDeleteProcess .
5.55 /ISAPI/AccessControl/FingerPrint/Delete/capabilities?format=json
Get the capability of deleting fingerprint data.
5.56 /ISAPI/AccessControl/FingerPrint/Delete?format=json
Start deleting the fingerprint data.
Remarks
This URL is only used to start deleting. To judge whether the deleting is completed, you should call
the request URL /ISAPI/AccessControl/FingerPrint/DeleteProcess?format=json by GET method to
get the deleting status.
240
Device Network SDK (Access Control on Person) Developer Guide
5.57 /ISAPI/AccessControl/FingerPrint/SetUp?format=json
Set the fingerprint parameters.
Remarks
• If the fingerData is not applied, it indicates editing fingerprint parameters instead of applying
fingerprint data to the fingerprint module.
• If the fingerData is applied, the fingerprint data will be added if it does not exist in the
fingerprint module, or the original fingerprint data will be overwritten if it already exists in the
fingerprint module.
• There are four different methods for deleting one or more fingerprints:
• To delete a specific fingerprint in a specific fingerprint module linked with a specific employee
No., the employeeNo, enableCardReader, fingerPrintID, and deleteFingerPrint in the
message JSON_FingerPrintCfg should be configured, and the success response message will
be returned no matter whether the fingerprint exists or not.
• To delete a specific fingerprint in all fingerprint modules linked with a specific employee No.,
the employeeNo, fingerPrintID, and deleteFingerPrint in the message JSON_FingerPrintCfg
should be configured, and the success response message will be returned no matter whether
the fingerprints exist or not.
• To delete all fingerprints in a specific fingerprint module linked with a specific employee No.,
the employeeNo, enableCardReader, and deleteFingerPrint in the message
JSON_FingerPrintCfg should be configured, and the success response message will be
returned no matter whether the fingerprints exist or not.
• To delete all fingerprints in all fingerprint modules linked with a specific employee No., the
employeeNo and deleteFingerPrint in the message JSON_FingerPrintCfg should be
configured, and the success response message will be returned no matter whether the
fingerprints exist or not.
241
Device Network SDK (Access Control on Person) Developer Guide
5.58 /ISAPI/AccessControl/FingerPrintCfg/capabilities?format=json
Get the configuration capability of fingerprint parameters.
5.59 /ISAPI/AccessControl/FingerPrintDownload?format=json
Set fingerprint parameters to link with a person, and apply the collected fingerprint data.
Remarks
This URL is only used to start applying the fingerprint data. To check whether the applying is
completed, you should call the request URL /ISAPI/AccessControl/FingerPrintProgress?
format=json by GET method to get the applying status.
5.60 /ISAPI/AccessControl/FingerPrintModify?format=json
Edit fingerprint parameters.
242
Device Network SDK (Access Control on Person) Developer Guide
Remarks
Only the fingerprint parameters can be edited. The collected fingerprint data will not be edited and
applied.
5.61 /ISAPI/AccessControl/FingerPrintProgress?format=json
Get the progress of applying fingerprint data.
Remarks
When starting applying fingerprint data, this URL will be repeatedly called to get the applying
progress until "1" is returned by the parameter totalStatus in the message
JSON_FingerPrintStatus .
5.62 /ISAPI/AccessControl/FingerPrintUpload?format=json
Get the fingerprint information, including fingerprint parameters and data.
243
Device Network SDK (Access Control on Person) Developer Guide
Remarks
• To get the information of a specific fingerprint, the searchID, employeeNo, cardReaderNo, and
fingerPrintID in the message JSON_FingerPrintCond should be configured. If the fingerprint
matching the search conditions exists, the status will be set to "OK" and the corresponding
fingerprint information will be returned by FingerPrintList in the message
JSON_FingerPrintInfo ; otherwise, the status will be set to "NoFP" and the FingerPrintList will be
set to NULL in the message JSON_FingerPrintInfo .
• To get all fingerprints linked with a specific employee No. (person ID), the searchID and
employeeNo in the message JSON_FingerPrintCond should be configured. If the fingerprints
matching the search conditions exist, the status will be set to "OK" and the corresponding
fingerprint information will be returned by FingerPrintList in the message
JSON_FingerPrintInfo . The request URL /ISAPI/AccessControl/FingerPrintUpload?format=json
will be repeatedly called by POST method to get the information of multiple fingerprints
matching the search conditions until "NoFP" is returned by status in the message
JSON_FingerPrintInfo (it indicates that information of all fingerprints matching the search
conditions are obtained). If there is no fingerprint matching the search conditions, the status will
be set to "NoFP" and the FingerPrintList will be set to NULL in the message
JSON_FingerPrintInfo .
5.63 /ISAPI/AccessControl/GetAcsEvent/capabilities
Get capability of getting access control event.
244
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response XML_Cap_GetAcsEvent
5.64 /ISAPI/AccessControl/IdentityTerminal
Operations about configuration of intelligent identity recognition terminal.
5.65 /ISAPI/AccessControl/IdentityTerminal/capabilities
Get configuration capability of intelligent identity recognition terminal.
245
Device Network SDK (Access Control on Person) Developer Guide
Request None.
Response Succeeded: XML_Cap_IdentityTerminal
Failed: XML_ResponseStatus
5.66 /ISAPI/AccessControl/LogModeCfg/capabilities?format=json
Get the configuration capability of the log mode.
5.67 /ISAPI/AccessControl/LogModeCfg?format=json
Operations about the log mode configuration.
246
Device Network SDK (Access Control on Person) Developer Guide
Request JSON_LogModeCfg
Response JSON_ResponseStatus
5.68 /ISAPI/AccessControl/OfflineCapture/capabilities?format=json
Get the online collection capability.
5.69 /ISAPI/AccessControl/OfflineCapture/DataCollections/
<captureNo>?format=json
Deleted a specific piece of offline collected data.
Remarks
The <captureNo> in the request URL refers to the collection No.
247
Device Network SDK (Access Control on Person) Developer Guide
5.70 /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?
format=json
Search for the collection data.
5.71 /ISAPI/AccessControl/OfflineCapture/DataCollections?format=json
Delete all offline collected data.
5.72 /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?
format=json
Get the progress of exporting the offline collected data.
248
Device Network SDK (Access Control on Person) Developer Guide
5.73 /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json
Export the offline collected data.
5.74 /ISAPI/AccessControl/OfflineCapture/progress?format=json
Get the offline collection progress.
249
Device Network SDK (Access Control on Person) Developer Guide
Failed: JSON_ResponseStatus
5.75 /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Get or set the parameters of offline collection rules.
5.76 /ISAPI/AccessControl/UserInfo/capabilities?format=json
Get the person management capability.
250
Device Network SDK (Access Control on Person) Developer Guide
Failed: JSON_ResponseStatus
5.77 /ISAPI/AccessControl/UserInfo/Count?format=json
Get the total number of the added persons.
5.78 /ISAPI/AccessControl/UserInfo/Delete?format=json
Delete person information only.
5.79 /ISAPI/AccessControl/UserInfo/Modify?format=json
Edit person information.
251
Device Network SDK (Access Control on Person) Developer Guide
5.80 /ISAPI/AccessControl/UserInfo/Record?format=json
Add a person.
5.81 /ISAPI/AccessControl/UserInfo/Search?format=json
Search for person information.
252
Device Network SDK (Access Control on Person) Developer Guide
Remarks
The Request (user information search condition JSON_UserInfoSearchCond ) depends on the user
information capability JSON_Cap_UserInfo (related node: <UserInfoSearchCond>).
5.82 /ISAPI/AccessControl/UserInfo/SetUp?format=json
Set person information.
Remarks
• If the device has checked that the person does not exist according to the employee No. (person
ID), the person information will be added.
• If the device has checked that the person already exists according to the employee No. (person
ID), the person information will be edited.
• If a person needs to be deleted, the deleteUser in the message JSON_UserInfo should be set to
"true", and the success response message will be returned no matter whether the person
information exists or not. Deleting the person will only delete the person's information and will
not delete the linked cards, fingerprints, and face information.
5.83 /ISAPI/AccessControl/UserInfoDetail/Delete/capabilities?
format=json
Get the capability of deleting person information (including linked cards, fingerprints, and faces)
and permissions.
253
Device Network SDK (Access Control on Person) Developer Guide
5.84 /ISAPI/AccessControl/UserInfoDetail/Delete?format=json
Start deleting all person information and permissions by employee No.
Remarks
This URL is only used to start deleting. To check whether the deleting is completed, you should call
the request URL /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?format=json by GET method
to get the deleting status.
5.85 /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?format=json
Get the status of deleting all person information and permissions by employee No.
254
Device Network SDK (Access Control on Person) Developer Guide
Remarks
When starting deleting all person information (including linked cards, fingerprints, and faces) and
permissions by employee No., this URL will be repeatedly called to get the deleting status until
"success" or "failed" is returned by the parameter status in the message
JSON_UserInfoDetailDeleteProcess .
5.86 /ISAPI/AccessControl/RemoteControl/buzzer/<ID>?format=json
Remotely control the buzzer of the card reader.
Remarks
The <ID> in the request URL refers to the buzzer No., which is also the No. of the card reader. If the
<ID> is 65535, it refers to all buzzers (card readers).
255
Device Network SDK (Access Control on Person) Developer Guide
5.87 /ISAPI/AccessControl/RemoteControl/buzzer/capabilities?
format=json
Get the capability of remotely controlling the buzzer of the card reader.
5.88 /ISAPI/AccessControl/OSDPModify/<ID>?format=json
Set the OSDP (Open Supervised Device Protocol) card reader ID.
Remarks
The <ID> in the request URL refers to the original OSDP card reader ID which is between 0 and 126,
and 127 refers to broadcast.
5.89 /ISAPI/AccessControl/OSDPModify/capabilities?format=json
Get the capability of editing the OSDP (Open Supervised Device Protocol) card reader ID.
256
Device Network SDK (Access Control on Person) Developer Guide
5.90 /ISAPI/AccessControl/OSDPStatus/<ID>?format=json
Get the OSDP (Open Supervised Device Protocol) card reader status.
Remarks
The <ID> in the request URL refers to the OSDP card reader ID which is between 0 and 126, and
127 refers to broadcast. Limited by the device, the OSDP card reader status can only be obtained
one by one.
5.91 /ISAPI/AccessControl/OSDPStatus/capabilities?format=json
Get the capability of getting the OSDP (Open Supervised Device Protocol) card reader status.
257
Device Network SDK (Access Control on Person) Developer Guide
5.92 /ISAPI/AccessControl/ReaderAcrossHost/capabilities
Get the configuration capability of cross-controller anti-passing back status of card readers.
5.93 /ISAPI/AccessControl/ReaderAcrossHost
Operations about the cross-controller anti-passing back configuration of card readers.
258
Device Network SDK (Access Control on Person) Developer Guide
Query None.
Request None.
Response Succeeded: XML_ReaderAcrossHost
Failed: XML_ResponseStatus
Table 4-108 PUT /ISAPI/AccessControl/ReaderAcrossHost
Method PUT
Description Set the cross-controller anti-passing back parameters of card readers.
Query None.
Request XML_ReaderAcrossHost
Response XML_ResponseStatus
5.94 /ISAPI/AccessControl/ServerDevice/capabilities
Get the configuration capability of cross-controller anti-passing back server information.
5.95 /ISAPI/AccessControl/ServerDevice
Operation about the configuration of cross-controller anti-passing back server information.
259
Device Network SDK (Access Control on Person) Developer Guide
5.96 /ISAPI/AccessControl/SubmarineBackMode/capabilities
Get the configuration capability of cross-controller anti-passing back mode and rule.
260
Device Network SDK (Access Control on Person) Developer Guide
5.97 /ISAPI/AccessControl/SubmarineBackReader/capabilities
Get the configuration capability of card readers for cross-controller anti-passing back.
5.98 /ISAPI/AccessControl/SubmarineBackMode
Operations about the configuration of cross-controller anti-passing back mode and rule.
261
Device Network SDK (Access Control on Person) Developer Guide
Request XML_SubmarineBackMode
Response XML_ResponseStatus
5.99 /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID>
Operations about the configuration of card readers for cross-controller anti-passing back.
Remarks
The <ID> in the request URL refers to the configuration No., which is between 1 and 128.
5.100 /ISAPI/AccessControl/StartReaderInfo/capabilities
Get the configuration capability of the first card reader.
262
Device Network SDK (Access Control on Person) Developer Guide
5.101 /ISAPI/AccessControl/StartReaderInfo
Operations about first card reader configurations.
5.102 /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities
Get the configuration capability of access controllers for cross-controller anti-passing back.
263
Device Network SDK (Access Control on Person) Developer Guide
5.103 /ISAPI/AccessControl/SubmarineBack/capabilities
Get the configuration capability of the cross-controller anti-passing back server.
5.104 /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID>
Operations about the configuration of access controllers for cross-controller anti-passing back.
264
Device Network SDK (Access Control on Person) Developer Guide
Query None.
Request None.
Response Succeeded: XML_SubmarineBackHostInfo
Failed: XML_ResponseStatus
Table 4-124 PUT /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID>
Method PUT
Description Set the parameters of access controllers for cross-controller anti-
passing back.
Query None.
Request XML_SubmarineBackHostInfo
Response XML_ResponseStatus
Remarks
The <ID> in the request URL refers to the configuration No., which is between 1 and 4. More
specifically, 1 refers to device No.1 to device No.16, 2refers to device No.17 to device No.32, 3
refers to device No.33 to device No.48, and 4 refers to device No.49 to device No.64.
5.105 /ISAPI/AccessControl/SubmarineBack
Operations about the configuration of the cross-controller anti-passing back server.
265
Device Network SDK (Access Control on Person) Developer Guide
Query None.
Request XML_SubmarineBack
Response XML_ResponseStatus
5.106 /ISAPI/AccessControl/ClearAntiSneak?format=json
Clear anti-passing back records.
5.107 /ISAPI/AccessControl/CardReaderAntiSneakCfg/<ID>?format=json
Operations about the anti-passing back configuration of a specified card reader.
266
Device Network SDK (Access Control on Person) Developer Guide
Request JSON_CardReaderAntiSneakCfg
Response JSON_ResponseStatus
Remarks
The <ID> in the request URL refers to the card reader No.
5.108 /ISAPI/AccessControl/AcsEvent?format=json
Search for access control events.
5.109 /ISAPI/AccessControl/AntiSneakCfg/capabilities?format=json
Get the anti-passing back configuration capability.
267
Device Network SDK (Access Control on Person) Developer Guide
5.110 /ISAPI/AccessControl/AntiSneakCfg?format=json
Operations about anti-passing back configuration.
5.111 /ISAPI/AccessControl/capabilities
Get the functional capability of access control.
268
Device Network SDK (Access Control on Person) Developer Guide
5.112 /ISAPI/AccessControl/CardInfo/capabilities?format=json
Get the card management capability.
5.113 /ISAPI/AccessControl/AcsEvent/capabilities?format=json
Get the capability of searching for access control events
5.114 /ISAPI/AccessControl/ClearAntiSneak/capabilities?format=json
Get the capability of clearing anti-passing back records.
269
Device Network SDK (Access Control on Person) Developer Guide
5.115 /ISAPI/AccessControl/ClearAntiSneakCfg?format=json
Clear anti-passing back parameters.
5.116 /ISAPI/AccessControl/ClearAntiSneakCfg/capabilities?format=json
Get the capability of clearing anti-passing back parameters.
270
Device Network SDK (Access Control on Person) Developer Guide
Failed: JSON_ResponseStatus
5.117 /ISAPI/AccessControl/CardReaderAntiSneakCfg/capabilities?
format=json
Get the anti-passing back configuration capability of card readers.
5.118 /ISAPI/AccessControl/PrinterCfg/capabilities?format=json
Get the printer configuration capability.
5.119 /ISAPI/AccessControl/PrinterCfg?format=json
Operations about printer configurations.
271
Device Network SDK (Access Control on Person) Developer Guide
5.120 /ISAPI/Intelligent/FDLib/capabilities?format=json
Get face picture library capability.
5.121 /ISAPI/Intelligent/FDLib?format=json
Operations about the face picture library.
272
Device Network SDK (Access Control on Person) Developer Guide
Remarks
After a face picture library is created, the face picture library ID will be returned. Each face picture
library ID of the same library type is unique.
5.122 /ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType=
Operations about the management of a specific face picture library.
273
Device Network SDK (Access Control on Person) Developer Guide
Remarks
In the URL, to specify a face picture library, both the library ID (FDID) and library type (faceLibType)
are required.
274
Device Network SDK (Access Control on Person) Developer Guide
5.123 /ISAPI/Intelligent/FDLib/Count?format=json
Get the total number of face records in all face picture libraries.
5.124 /ISAPI/Intelligent/FDLib/Count?
format=json&FDID=&faceLibType=
Get the number of face records in a specific face picture library.
Remarks
In the URL, to specify a face picture library, both the library ID (FDID) and library type (faceLibType)
are required, e.g., /ISAPI/Intelligent/FDLib/Count?
format=json&FDID=1223344455566788&faceLibType=blackFD.
275
Device Network SDK (Access Control on Person) Developer Guide
5.125 /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json
Add the face record (face picture and person information) to a face picture library or multiple face
picture libraries.
5.126 /ISAPI/Intelligent/FDLib/FDSearch?format=json
Search for the face records in the face picture library.
5.127 /ISAPI/Intelligent/FDLib/FDModify?format=json
Edit face records in the face picture library in a batch.
276
Device Network SDK (Access Control on Person) Developer Guide
5.128 /ISAPI/Intelligent/FDLib/FDSearch/Delete?
format=json&FDID=&faceLibType=
Delete the face record(s) in a specific face picture library.
Remarks
In the URL, to specify a face picture library, both the library ID (FDID) and library type (faceLibType)
are required.
5.129 /ISAPI/Intelligent/FDLib/FDSetUp?format=json
Set the face record (including face picture, person information, etc.) in the face picture library.
277
Device Network SDK (Access Control on Person) Developer Guide
Remarks
• If the face picture with the employee No. (person ID) does not exist, the face record will be
added.
• If the face picture with the employee No. (person ID) exists, the face record will be overwritten.
• When deleting the face record, the faceLibType, FDID, FPID, and deleteFP in the request
message JSON_SetFaceRecord should be configured, and the success response message will be
returned no matter whether deleting succeeded or not.
5.130 /ISAPI/System/PictureServer?format=json
Operations about the picture storage server configuration parameters.
278
Device Network SDK (Access Control on Person) Developer Guide
Request JSON_PictureServerInformation
Response JSON_ResponseStatus
279
Device Network SDK (Access Control on Person) Developer Guide
6.1 JSON_AcsEventCond
AcsEventCond message in JSON format
{
"AcsEventCond": {
"searchID": "",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"searchResultPosition": "",
/*required, integer, 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, integer, maximum number of search results. If maxResults exceeds the range returned by the device
capability, the device will return the maximum number of search results according to the device capability and will not
return error message*/
"major": ,
/*required, integer, major alarm/event types (the type value should be transformed to the decimal number), see
Access Control Event Types
for details*/
"minor": ,
/*required, integer, minor alarm/event types (the type value should be transformed to the decimal number), see
Access Control Event Types
for details*/
"startTime": "",
/*optional, string, start time (UTC time), e.g., 2016-12-12T17:30:08+08:00*/
"endTime": "",
/*optional, string, end time (UTC time), e.g.,2017-12-12T17:30:08+08:00*/
"cardNo": "",
/*optional, string, card No.*/
"name": "",
/*optional, string,cardholder name*/
"picEnable": ,
/*optional, boolean, whether to contain pictures: "false"-no, "true"-yes*/
"beginSerialNo": ,
/*optional, integer, start serial No.*/
"endSerialNo": ,
/*optional, integer, end serial No.*/
"employeeNoString":"",
/*optional, string, employee No. (person ID)*/
"eventAttribute":"",
/*optional, string, event attribute: "attendance"-valid authentication, "other"*/
280
Device Network SDK (Access Control on Person) Developer Guide
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}
}
6.2 JSON_AcsEvent
AcsEvent message in JSON format
{
"AcsEvent":{
"searchID": "",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"responseStatusStrg": "",
/*required, string, search status: "OK"-searching completed, "MORE"-searching for more results, "NO MATCH"-no
matched results*/
"numOfMatches": "",
/*required, integer, number of returned results*/
"totalMatches": "",
/*required, integer, total number of matched results*/
"InfoList": [{
/*optional, event details*/
"major": ,
/*required, integer, major alarm/event types (the type value should be transformed to the decimal number), see
Access Control Event Types
for details*/
"minor": ,
/*required, integer, minor alarm/event types (the type value should be transformed to the decimal number), see
Access Control Event Types
for details*/
"time": "",
/*required, string, time (UTC time), e.g., "2016-12-12T17:30:08+08:00"*/
"netUser": "",
/*optional, string, user name*/
"remoteHostAddr": "",
/*optional, string, remote host address*/
"cardNo": "",
/*optional, string, card No.*/
"cardType": ,
/*optional, integer, card types: 1-normal card, 2-disabled card, 3-blacklist card, 4-patrol card, 5-duress card, 6-super
card, 7-visitor card, 8-dismiss card*/
"whiteListNo": ,
/*optional, integer, whitelist No., which is between 1 and 8*/
"reportChannel": ,
/*optional, integer, channel type for uploading alarm/event: 1-for uploading arming information, 2-for uploading by
central group 1, 3-for uploading by central group 2*/
"cardReaderKind": ,
/*optional, integer, authentication unit type: 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-fingerprint
281
Device Network SDK (Access Control on Person) Developer Guide
module*/
"cardReaderNo": ,
/*Optional, integer, authentication unit No.*/
"doorNo": ,
/*optional, integer, door or floor No.*/
"verifyNo": ,
/*optional, integer, multiple authentication No.*/
"alarmInNo": ,
/*optional, integer, alarm input No.*/
"alarmOutNo": ,
/*optional, integer, alarm output No.*/
"caseSensorNo": ,
/*optional, integer, event trigger No.*/
"RS485No": ,
/*optional, integer, RS-485 channel No.*/
"multiCardGroupNo": ,
/*optional, integer, group No.*/
"accessChannel": ,
/*optional, integer, swing barrier No.*/
"deviceNo": ,
/*optional, integer, device No.*/
"distractControlNo": ,
/*optional, integer, distributed controller No.*/
"employeeNoString": "",
/*optional, integer, employee No. (person ID)*/
"localControllerID": ,
/*optional, integer, distributed access controller No.: 0-access controller, 1 to 64-distributed access controller No.1 to
distributed access controller No.64*/
"InternetAccess": ,
/*optional, integer, network interface No.: 1-upstream network interface No.1, 2-upstream network interface No.2, 3-
downstream network interface No.1*/
"type": ,
/*optional, integer, zone type: 0-instant alarm zone, 1-24-hour alarm zone, 2-delayed zone, 3-internal zone, 4-key
zone, 5-fire alarm zone, 6-perimeter protection, 7-24-hour silent alarm zone, 8-24-hour auxiliary zone, 9-24-hour
shock alarm zone, 10-emergency door open alarm zone, 11-emergency door closed alarm zone, 255-none*/
"MACAddr": "",
/*optional, string, physical address*/
"swipeCardType": ,
/*optional, integer, card swiping types: 0-invalid, 1-QR code*/
"serialNo": ,
/*optional, integer, event serial No., which is used to judge whether the event loss occurred*/
"channelControllerID": ,
/*optional, integer, lane controller No.: 1-master lane controller, 2-slave lane controller*/
"channelControllerLampID": ,
/*optional, integer, light board No. of lane controller, which is between 1 and 255*/
"channelControllerIRAdaptorID": ,
/*optional, integer, IR adapter No. of lane controller, which is between 1 and 255*/
"channelControllerIREmitterID": ,
/*optional, integer, active infrared intrusion detector No. of lane controller, which is between 1 and 255*/
"userType": "",
/*optional, string, person type: "normal"-normal person (household), "visitor"-visitor, "blacklist"-person in blacklist,
"administrators"-administrator*/
282
Device Network SDK (Access Control on Person) Developer Guide
"currentVerifyMode": "",
/*optional, string, authentication mode: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-
fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card,
"fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password,
"faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-
employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFpOrPw"-card
or fingerprint or password*/
"picEnable": ,
/*optional, boolean, whether contains picture*/
"attendanceStatus":"",
/*optional, string, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break out,
"breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/
"statusValue": ,
/*optional, integer, status value*/
"filename":
/*optional, string, file name. If multiple pictures are returned at a time, filename of each picture should be unique*/
}],
"picturesNumber":
/*optional, integer, number of captured pictures if the capture linkage action is configured. This node will be 0 or not
be returned if there is no picture*/
}
}
6.3 JSON_AcsEventTotalNum
AcsEventTotalNum message in JSON format
{
"AcsEventTotalNum":{
"totalNum":
/*required, integer, total number of events that match the search conditions*/
}
}
6.4 JSON_AcsEventTotalNumCond
AcsEventTotalNumCond message in JSON format
{
"AcsEventTotalNumCond":{
"major": ,
/*required, integer, major type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"minor": ,
/*required, integer, minor type (the type value should be transformed to the decimal number), refer to
283
Device Network SDK (Access Control on Person) Developer Guide
6.5 JSON_AddFaceRecordCond
Message about conditions of adding face record, it is in JSON format
{
"faceURL": "",
/*optional, string type, picture storage URL inputted when uploading the face picture by URL, the maximum length is
256 bytes*/
"faceLibType": "",
/*required, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"FDID": "",
/*required, face picture library ID, string type, the maximum size is 63 bytes*/
"FPID": "",
/*optional, string type, face record ID, it can be generated by device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"name": "",
/*required, name of person in the face picture, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender of person in the face picture: male, female, unknown, string type, the maximum size is 32 bytes*/
"bornTime": "",
/*required, birthday of person in the face picture, ISO8601 time format, string type, the maximum size is 20 bytes*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the max. size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card, passport,
284
Device Network SDK (Access Control on Person) Developer Guide
other*/
"certificateNumber": "",
/*optional, certificate No., string, the max. size is 32 bytes*/
"caseInfo": "",
/*optional, case information, string type, the max. size is 192 bytes, it is valid when faceLibType is "blackFD".*/
"tag": "",
/*optional, custom tag, up to 4 tags, which are separated by commas, string type, the max. size is 195 bytes, it is valid
when faceLibType is "blackFD".*/
"address": "",
/*optional, person address, string type, the max. size is 192 bytes, it is valid when faceLibType is "staticFD".*/
"customInfo": "",
/*optional, custom information, string type, the max. size is 192 bytes, it is valid when faceLibType is "staticFD".*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by Base64 during
transmission*/
"transfer":true
/*optional, boolean, whether to enable transfer*/
}
Remarks
If the field "faceURL" exists in the message, it indicates that the picture is uploaded via URL, and
the "faceURL" of message should be set to picture URL. Otherwise, the picture is uploaded as
binary data, which can be followed the message in JSON format, and separated by "boundary". See
the example below.
Example
Add Face Record When Binary Picture is Uploaded in Form Format
1) POST /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json
2) Accept: text/html, application/xhtml+xml,
3) Accept-Language: us-EN
4) Content-Type: multipart/form-data; boundary=---------------------------7e13971310878
5) User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
6) Accept-Encoding: gzip, deflate
7) Host: 10.10.36.29:8080
8) Content-Length: 9907
9) Connection: Keep-Alive
10) Cache-Control: no-cache
11)
12) -----------------------------7e13971310878
13) Content-Disposition: form-data; name="FaceDataRecord";
14) Content-Type: application/json
15) Content-Length: 9907
16)
17) {
a) "faceLibType": "blackFD",
b) "FDID": "1223344455566788",
c) "FPID": "11111aa",
d) "name": "Eric",
e) "gender": "male",
f) "bornTime": "2004-05-03",
285
Device Network SDK (Access Control on Person) Developer Guide
g) "city": “130100”,
h) "certificateType": "officerID",
i) "certificateNumber": "",
j) "caseInfo": "",
k) "tag": "aa,bb,cc,dd",
l) "address": "",
m) "customInfo": ""
18) }
19) -----------------------------7e13971310878
20) Content-Disposition: form-data; name="FaceImage";
21) Content-Type: image/jpeg
22) Content-Length: 9907
23)
24) ......JFIF.....`.`.....C........... .
25) ..
26) ................. $.' ",#..(7),01444.'9=82<.342...C. ....
27) -----------------------------7e13971310878--
Note
• In line 4, "Content-Type: multipart/form-data" indicates that the data is sent in form format. The
"boundary" is a delimiter, you can assign value to it for distinguishing other ones.
• In line 12, the request body consists of multiple same parts, and each part starts with "-" and
from the customized "boundary" delimiter, the contents after the delimiter is the description of
this part.
• In line 13, "Content-Disposition" refers to condition parameters, when adding face record, the
"name" must be set to "FaceDataRecord".
• In line 14, "Content-Type" refers to JSON format, which based on UTF-8 character set.
• In line 15, "Content-Length" refers to the size of data (contains the "\r\n" escape characters)
from line 16 to line 18.
• In line 16, the "\r\n\r\n" escape characters must be entered.
• Line 19 is the start delimiter of next part.
• Line 20 is the binary picture data, and the "name" must be set to "FaceImage".
• Line 21 is the format of the binary picture data. Here, "image/jpeg" indicates that the following
contents are JPEG format picture data.
• In line 23, the "\r\n\r\n" escape characters must be entered.
• In line 27, the customized "boundary" indicates the end of request body.
6.6 JSON_AddFaceRecordResult
Message about the result of adding the face record to face picture library, it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
286
Device Network SDK (Access Control on Person) Developer Guide
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FPID": ""
/*optional, string type, face record ID returned when the face record is added, it is unique, and the maximum size is
63 bytes. This node is valid when errorCode is "1" and errorMsg is "ok"*/
}
See Also
JSON_ResponseStatus
6.7 JSON_AntiSneakCfg
AntiSneakCfg message in JSON format
{
"AntiSneakCfg": {
"enable": ,
/*required, boolean, whether to enable anti-passing back*/
"startCardReaderNo":
/*optional, integer, first card reader No., 0-no first card reader*/
}
}
6.8 JSON_AttendanceStatusModeCfg
AttendanceStatusModeCfg message in JSON format
{
"AttendanceStatusModeCfg":{
"mode":"",
/*optional, string type, attendance mode: "disable", "manual", "auto"-automatic, "manualAndAuto"-manual and
automatic*/
"manualStatusTime": ,
/*optional, integer type, duration of manual attendance status, unit: second. This node is valid when mode is
"manual" or "manualAndAuto"*/
"attendanceStatusEnable":
/*optional, boolean type, whether to enable attendance status: "true"-yes (if the device has not been configured with
start time and end time of the automatic attendance mode, the user will be prompted to select the attendance
status), "false"-no (if the device has not been configured with start time and end time of the automatic attendance
mode, there will be no prompt)*/
}
}
287
Device Network SDK (Access Control on Person) Developer Guide
6.9 JSON_AttendanceStatusRuleCfg
AttendanceStatusRuleCfg message in JSON format
{
"AttendanceStatusRuleCfg":{
"statusKey":"",
/*optional, string type, status shortcut key: "Up", "Down", "Left", "Right", "ESC", "OK", "notConfig". If this node is not
configured, this node will be set to "notConfig" by default*/
"statusValue": ,
/*optional, integer type, status value*/
"WeekPlanCfg":[{
/*optional, schedule*/
"week":"",
/*optional, string type, day of the week: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday"*/
"enable": ,
/*optional, boolean type, whether to enable: "true"-yes, "false"-no*/
"beginTime":""
/*optional, start time*/
}]
}
}
6.10 JSON_BatchEditFaceRecord
Message about editing face records in the face picture library in a batch, and it is in JSON format.
{
"faceURL":"",
/*optional, string type, picture storage URL inputted when uploading the face picture by URL, the maximum length is
256 bytes*/
"faceLibType":"",
/*required, string type, face picture library type: "blackFD"-list library, "staticFD"-static library, the maximum length is
32 bytes*/
"FDID":"",
/*required, string type, face picture library ID, the maximum length is 63 bytes, multiple face picture libraries should
be separated by commas*/
"FPID":"",
/*optional, string type, face record ID, it can be generated by the device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"name":"",
/*required, string type, name of the person in the face picture, the maximum length is 96 bytes*/
"gender":"",
/*optional, string type, gender of the person in the face picture: "male", "female", "unknown", the maximum length is
32 bytes*/
"bornTime":"",
/*required, string type, date of birth of the person in the face picture in ISO8601 time format, the maximum length is
288
Device Network SDK (Access Control on Person) Developer Guide
20 bytes*/
"city":"",
/*optional, string type, code of the city of birth for the person in the face picture, the maximum length is 32 bytes*/
"certificateType ":"",
/*optional, string type, ID type: "officerID"-officer ID, "ID"-ID card. The maximum length is 10 bytes*/
"certificateNumber":"",
/*optional, string type, ID No., the maximum length is 32 bytes*/
"caseInfo":"",
/*optional, string type, case information, the maximum length is 192 bytes, it is valid when faceLibType is "blackFD"*/
"tag":"",
/*optional, string type, custom tag, up to 4 tags can be added and they should be separated by commas, the
maximum length of each tag is 48 bytes, and the maximum length of this node is 195 bytes. It is valid when
faceLibType is "blackFD"*/
"address":"",
/*optional, string type, person address, the maximum length is 192 bytes, it is valid when faceLibType is "staticFD"*/
"customInfo":"",
/*optional, string type, custom information, the maximum length is 192 bytes, it is valid when faceLibType is
"staticFD"*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
}
6.11 JSON_Cap_AcsEvent
AcsEvent capability message in JSON format
{
"AcsEvent":{
"AcsEventCond":{
/*optional, search conditions*/
"searchID":{
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"@min": ,
"@max":
},
"searchResultPosition":{
/*required, integer, 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*/
"@min": ,
"@max":
},
"maxResults":{
/*required, integer, maximum number of search results*/
"@min": ,
"@max":
},
"major":{
289
Device Network SDK (Access Control on Person) Developer Guide
/*required, integer, major alarm/event types (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt": "0,1,2,3,5"
},
"minorAlarm":{
/*required, integer, minor alarm type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt": "1024,1025,1026,1027…"
},
"minorException":{
/*required, integer, minor exception type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt": "39,58,59,1024…"
},
"minorOperation":{
/*required, integer, minor operation type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt": "80,90,112,113…"
},
"minorEvent":{
/*required, integer, minor event type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt": "1,2,3,4…"
},
"startTime":{
/*optional, string, start time (UTC time)*/
"@min": ,
"@max":
},
"endTime":{
/*optional, string, end time (UTC time)*/
"@min": ,
"@max":
},
"cardNo":{
/*optional, string, card No.*/
"@min": ,
"@max":
},
"name":{
/*optional, string,cardholder name*/
"@min": ,
"@max":
},
"picEnable": "true,false",
/*optional, boolean, whether to contain pictures: "false"-no, "true"-yes*/
"beginSerialNo":{
290
Device Network SDK (Access Control on Person) Developer Guide
291
Device Network SDK (Access Control on Person) Developer Guide
"whiteListNo":{
/*optional, integer, whitelist No., which is between 1 and 8*/
"@min": ,
"@max":
},
"reportChannel":{
/*optional, integer, channel type for uploading alarm/event: "1"-for uploading arming information, "2"-for uploading
by central group 1, "3"-for uploading by central group 2*/
"@opt": "1,2,3"
},
"cardReaderKind":{
/*optional, integer, authentication unit type: "1"-IC card reader, "2"-ID card reader, "3"-QR code scanner, "4"-
fingerprint module*/
"@opt": "1,2,3,4"
},
"cardReaderNo":{
/*Optional, integer, authentication unit No.*/
"@min": ,
"@max":
},
"doorNo":{
/*optional, integer, door or floor No.*/
"@min": ,
"@max":
},
"verifyNo":{
/*optional, integer, multiple authentication No.*/
"@min": ,
"@max":
},
"alarmInNo":{
/*optional, integer, alarm input No.*/
"@min": ,
"@max":
},
"alarmOutNo":{
/*optional, integer, alarm output No.*/
"@min": ,
"@max":
},
"caseSensorNo":{
/*optional, integer, event trigger No.*/
"@min": ,
"@max":
},
"RS485No":{
/*optional, integer, RS-485 channel No.*/
"@min": ,
"@max":
},
"multiCardGroupNo":{
/*optional, integer, group No.*/
292
Device Network SDK (Access Control on Person) Developer Guide
"@min": ,
"@max":
},
"accessChannel":{
/*optional, integer, swing barrier No.*/
"@min": ,
"@max":
},
"deviceNo":{
/*ptional, integer, device No.*/
"@min": ,
"@max":
},
"distractControlNo":{
/*optional, integer, distributed access controller No.*/
"@min": ,
"@max":
},
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"localControllerID":{
/*optional, integer, distributed access controller No.: "0"-access controller, "1" to "64"-distributed access controller
No.1 to distributed access controller No.64*/
"@min": ,
"@max":
},
"InternetAccess":{
/*optional, integer, network interface No.: "1"-upstream network interface No.1, "2"-upstream network interface No.
2, "3"-downstream network interface No.1*/
"@min": ,
"@max":
},
"type":{
/*optional, integer, zone type: "0"-instant alarm zone, "1"-24-hour alarm zone, "2"-delayed zone, "3"-internal zone,
"4"-key zone, "5"-fire alarm zone, "6"-perimeter protection, "7"-24-hour slient alarm zone, "8"-24-hour auxiliary zone,
"9"-24-hour shock alarm zone, "10"-emergency door open alarm zone, "11"-emergency door closed alarm zone,
"255"-none*/
"@opt": "0,1,2,3,4,5,6,7,8,9,10,11,255"
},
"MACAddr":{
/*optional, string, physical address*/
"@min": ,
"@max":
},
"swipeCardType":{
/*optional, integer, card swiping type: "0"-invalid, "1"-QR code*/
"@opt": "0,1"
},
"serialNo":{
293
Device Network SDK (Access Control on Person) Developer Guide
/*optional, integer, event serial No., which is used to judge whether the event loss occurred*/
"@min": ,
"@max":
},
"channelControllerID":{
/*optional, integer, lane controller No.: "1"-master lane controller, "2"-slave lane controller*/
"@opt": "0,1"
},
"channelControllerLampID":{
/*optional, integer, light board No. of lane controller, which is between 1 and 255*/
"@min": ,
"@max":
},
"channelControllerIRAdaptorID":{
/*optional, integer, IR adapter No. of lane controller, which is between 1 and 255*/
"@min": ,
"@max":
},
"channelControllerIREmitterID":{
/*optional, integer, active infrared intrusion detector No. of lane controller, which is between 1 and 255*/
"@min": ,
"@max":
},
"userType":{
/*optional, string, person types: "normal"-normal person (household), "visitor"-visitor, "blacklist"-person in blacklist,
"administrators"-administrator*/
"@opt": "normal,visitor,blackList,administrators"
},
"currentVerifyMode": {
/*optional, string, authentication modes: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-
fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card,
"fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password,
"faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-
employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFpOrPw"-card
or fingerprint or password*/
"@opt":
"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAndFp,faceA
ndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFpAndCard,
faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFpOrPw"
},
"picEnable": "true,false"
/*optional, boolean, whether to contain pictures*/
},
"picturesNumber":{
/*optional, integer, number of captured pictures if the capture linkage action is configured. This node will be 0 or not
be returned if there is no picture*/
"@min": ,
"@max":
},
294
Device Network SDK (Access Control on Person) Developer Guide
"attendanceStatus":{
/*optional, string, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break out,
"breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/
"@opt":"undefined,checkIn,checkOut,breakOut,breakIn,overtimeIn,overtimeOut"
},
"statusValue":{
/*optional, integer, status value*/
"@min":0,
"@max":255
}
}
}
6.12 JSON_Cap_AcsEventTotalNum
AcsEventTotalNum capability message in JSON format
{
"AcsEvent":{
"AcsEventTotalNumCond":{
/*optional, search conditions*/
"major":{
/*required, integer type, major type (the type value should be transformed to the decimal number): 0-all, 1-major
alarm type, 2-major exception type, 3-major operation type, 5-major event type, refer to
Access Control Event Types
for details*/
"@opt":"0,1,2,3,5"
},
"minorAlarm":{
/*required, integer, minor alarm type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt":"1024,1025,1026,1027…"
},
"minorException":{
/*required, integer, minor exception type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt":"39,58,59,1024…"
},
"minorOperation":{
/*required, integer, minor operation type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
"@opt":"80,90,112,113…"
},
"minorEvent":{
/*required, integer, minor event type (the type value should be transformed to the decimal number), refer to
Access Control Event Types
for details*/
295
Device Network SDK (Access Control on Person) Developer Guide
"@opt":"1,2,3,4…"
},
"startTime":{
/*optional, string, start time (UTC time)*/
"@min": ,
"@max":
},
"endTime":{
/*optional, string, end time (UTC time)*/
"@min": ,
"@max":
},
"cardNo":{
/*optional, string, card No.*/
"@min": ,
"@max":
},
"name":{
/*optional, string, cardholder name*/
"@min": ,
"@max":
},
"picEnable":"true,false",
/*optional, boolean, whether to contain pictures: "false"-no, "true"-yes*/
"beginSerialNo":{
/*optional, integer, start serial No.*/
"@min": ,
"@max":
},
"endSerialNo":{
/*optional, integer, end serial No.*/
"@min": ,
"@max":
},
"employeeNoString":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"eventAttribute":{
/*optional, string, event attribute: "attendance"-valid authentication, "other"*/
"@opt":"attendance,other"
}
},
"totalNum":{
/*required, integer, total number of events that match the search conditions*/
"@min": ,
"@max":
}
}
}
296
Device Network SDK (Access Control on Person) Developer Guide
6.13 JSON_Cap_AntiSneakCfg
AntiSneakCfg capability message in JSON format
{
"AntiSneakCfg": {
"enable": "true,false",
/*required, boolean, whether to enable anti-passing back*/
"startCardReaderNo": {
/*optional, integer, first card reader No., 0-no first card reader*/
"@min": 1,
"@max": 4
}
}
}
6.14 JSON_Cap_AttendanceStatusModeCfg
AttendanceStatusModeCfg capability message in JSON format
{
"AttendanceStatusModeCfg":{
"mode":{
/*optional, string type, attendance mode: "disable", "manual", "auto"-automatic, "manualAndAuto"-manual and
automatic*/
"@opt":"disable,manual,auto,manualAndAuto"
},
"manualStatusTime":{
/*optional, integer type, duration of manual attendance status, unit: second. This node is valid when mode is
"manual" or "manualAndAuto"*/
"@min":5,
"@max":999
},
"attendanceStatusEnable":"true,false"
/*optional, boolean type, whether to enable attendance status: "true"-yes (if the device has not been configured with
start time and end time of the automatic attendance mode, the user will be prompted to select the attendance
status), "false"-no (if the device has not been configured with start time and end time of the automatic attendance
mode, there will be no prompt)*/
}
}
6.15 JSON_Cap_AttendanceStatusRuleCfg
AttendanceStatusRuleCfg capability message in JSON format
{
"AttendanceStatusRuleCfg":{
297
Device Network SDK (Access Control on Person) Developer Guide
"statusKey":{
/*optional, string type, status shortcut key: "Up", "Down", "Left", "Right", "ESC", "OK", "notConfig". If this node is not
configured, this node will be set to "notConfig" by default*/
"@opt":"Up,Down,Left,Right,ESC,OK"
},
"attendanceStatus":{
/*optional, string type, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break
out, "breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/
"@opt":"undefined,checkIn,checkOut,breakOut,breakIn,overtimeIn,overtimeOut"
},
"statusValue":{
/*optional, integer type, status value*/
"@min":0,
"@max":255
},
"WeekPlanCfg":{
/*schedule*/
"maxSize":7,
"week":{
"@opt":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"
},
"beginTime":"",
/*start time*/
"timeValid":"minute"
/*time accuracy: "day", "hour", "minute", "second"*/
}
}
}
6.16 JSON_Cap_CardInfo
CardInfo capability message in JSON format
{
"CardInfo":{
"supportFunction":{
/*required, supported functions of adding, editing, deleting, searching for card information, and getting the total
number of added cards: "post"-add, "delete", "put"-edit, "get"-search, "setUp"-set*/
"@opt":"post,delete,put,get,setUp"
},
"CardInfoSearchCond":{
/*optional, search conditions*/
"searchID":{
/*required, string type, search ID, which is used to check the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"@min":1,
"@max":36
},
"maxResults":{
298
Device Network SDK (Access Control on Person) Developer Guide
299
Device Network SDK (Access Control on Person) Developer Guide
"@max":
},
"cardType":{
/*required, string, card type: "normalCard"-normal card, "patrolCard"-patrol card, "hijackCard"-duress card,
"superCard"-super card, "dismissingCard"-dismiss card, "emergencyCard"-emergency card (it is used to assign
permission to a temporary card, but it cannot open the door)*/
"@opt":"normalCard,patrolCard,hijackCard,superCard,dismissingCard,emergencyCard"
},
"leaderCard":{
/*optional, string, whether to support first card authentication function*/
"@min":1,
"@max":32
},
"checkCardNo":"true,false",
/*optional, boolean, whether to enable duplicated card verification: "false"-disable, "true"-enable. If this node is not
configured, the device will verify the duplicated card by default. When there is no card information, you can set
checkCardNo to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"checkEmployeeNo":"true,false",
/*optional, boolean, whether to check the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will judge the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not judge the existence of the employee No. (person ID) to speed up data applying; if this
node is set to "true" or NULL, the device will judge the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
"addCard":"true,false",
/*optional, boolean type, whether to add the card if the card information being edited does not exist: "false"-no (if
the device has checked that the card information being edited does not exist, the failure response message will be
returned along with the error code), "true"-yes (if the device has checked that the card information being edited does
not exist, the success response message will be returned, and the card will be added). If this node is not configured,
the card will not be added by default*/
"maxRecordNum":
/*required, integer type, supported maximum number of records (card records)*/
}
}
6.17 JSON_Cap_CardReaderAntiSneakCfg
CardReaderAntiSneakCfg capability message in JSON format
{
"CardReaderAntiSneakCfg": {
"cardReaderNo": {
/optional, string, card reader No.*/
"@min": ,
"@max":
}
"enable": "true,false",
/*equired, boolean, whether to enable the anti-passing back function of the card reader: "true"-enable, "false"-
disable*/
"followUpCardReader": {
/*optional, array, following card reader No. after the first card reader*/
300
Device Network SDK (Access Control on Person) Developer Guide
"@min": ,
"@max":
}
}
}
6.18 JSON_Cap_EventOptimizationCfg
EventOptimizationCfg capability message in JSON format
{
"EventOptimizationCfg":{
"enable":"true,false"
/*optional, boolean, whether to enable event optimization: "true"-yes (default), "false"-no*/
}
}
6.19 JSON_Cap_ClearAntiSneak
ClearAntiSneak capability message in JSON format
{
"ClearAntiSneak": {
"clearAll": "true,false",
/*required, boolean, whether to clear all anti-passing back records: "true"-yes, "false"-no. Clearing all anti-passing
back records is not supported by access control devices version 2.1*/
"EmployeeNoList" : {
/*optional, person ID list, this node is valid when clearAll is "false"*/
"maxSize": ,
"employeeNo": {
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
}
}
}
6.20 JSON_Cap_ClearAntiSneakCfg
ClearAntiSneakCfg capability message in JSON format
{
"ClearAntiSneakCfg": {
"ClearFlags": {
"antiSneak": "true,false"
/*required, boolean, whether to clear the anti-passing back parameter*/
301
Device Network SDK (Access Control on Person) Developer Guide
}
}
}
6.21 JSON_Cap_FaceRecognizeMode
FaceRecognizeMode capability message in JSON format
{
"FaceRecognizeMode":{
"mode":{
/*optional, string type, facial recognition mode: "normalMode"-normal mode, "deepMode"-deep mode*/
"@opt":"normalMode,deepMode"
}
}
}
6.22 JSON_Cap_FingerPrintCfg
FingerPrintCfg capability message in JSON format
{
"FingerPrintCfg":{
"searchID":{
/*required, string type, search ID*/
"@min":1,
"@max":36
},
"employeeNo":{
/*required, string, employee No. (person ID) linked with the fingerprint*/
"@min": ,
"@max":
},
"enableCardReader":{
/*required, array, fingerprint module to apply fingerprint data to*/
"@min": ,
"@max":
},
"fingerPrintID":{
/*required, integer, fingerprint No., which is between 1 and 10*/
"@min":1,
"@max":10
},
"fingerType":{
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"@opt":"normalFP,hijackFP,patrolFP,superFP,dismissingFP"
},
"leaderFP":{
302
Device Network SDK (Access Control on Person) Developer Guide
303
Device Network SDK (Access Control on Person) Developer Guide
}
}
6.23 JSON_Cap_FingerPrintDelete
FingerPrintDelete capability message in JSON format
{
"FingerPrintDelete":{
"mode":{
/*required, string, deleting mode: "byEmployeeNo"-delete by employee No. (person ID), "byCardReader"-delete by
fingerprint module*/
"@opt":"byEmployeeNo,byCardReader"
},
"EmployeeNoDetail":{
/*optional, delete by employee No. (person ID), this node is valid when mode is "byEmployeeNo"*/
"employeeNo":{
/*optional, string, employee No. (person ID) linked with the fingerprint*/
"@min": ,
"@max":
},
"enableCardReader":{
/*optional, array, fingerprint module whose fingerprints should be deleted*/
"@min": ,
"@max":
},
"fingerPrintID":{
/*optional, array, No. of fingerprint to be deleted*/
"@min": ,
"@max":
},
},
"CardReaderDetail":{
/*optional, delete by fingerprint module, this node is valid when mode is "byCardReader"*/
"cardReaderNo":{
/*optional, integer, fingerprint module No.*/
"@min": ,
"@max":
},
"clearAllCard":"true,false",
/*optional, boolean, whether to delete the fingerprint information of all cards: "false"-no (delete by employee No.),
"true"-yes (delete the fingerprint information of all employee No.)*/
"employeeNo":{
/*optional, string, employee No. (person ID) linked with the fingerprint, this node is valid when clearAllCard is
"false"*/
"@min": ,
"@max":
}
}
304
Device Network SDK (Access Control on Person) Developer Guide
}
}
6.24 JSON_Cap_LogModeCfg
LogModeCfg capability message in JSON format
{
"LogModeCfg":{
"type":{
/*optional, integer, log mode: 1-16 bytes (the host log can be stored by 25w, and the employee No. can be stored by
16 bytes), 2-12 bytes (the host log can be stored by 25w, and the employee No. can be stored by 12 bytes). This node
will be set to 1 by default*/
"@opt":"1,2"
}
}
}
6.25 JSON_Cap_OSDPModify
OSDPModify capability message in JSON format
{
"OSDPModify":{
"id":{
/*required, integer, range of the original OSDP card reader ID*/
"@min": ,
"@max":
},
"newID":{
/*required, integer, new ID of the OSDP card reader*/
"@min": ,
"@max":
}
}
}
6.26 JSON_Cap_OSDPStatus
OSDPStatus capability message in JSON format
{
"OSDPStatus":{
"id":{
/*required, integer, range of the OSDP card reader ID*/
"@min": ,
"@max":
305
Device Network SDK (Access Control on Person) Developer Guide
},
"status":"online,offline"
/*required, string, online status: "online", "offline"*/
}
}
6.27 JSON_Cap_PrinterCfg
PrinterCfg capability message in JSON format
{
"PrinterCfg":{
"enable":{
/*required, boolean, whether to enable the printer*/
"@opt":"true,false"
},
"printFormat":{
"vistorPic":{
/*optional, visitor picture*/
"enable":{
/*required, boolean, whether to print visitor picture*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"vistorName":{
/*optional, visitor name*/
"enable":{
/*required, boolean, whether to print visitor name*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"certificateNumber":{
/*optional, visitor's certificate No.*/
"enable":{
/*required, boolean, whether to print visitor's certificate No.*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
306
Device Network SDK (Access Control on Person) Developer Guide
"@max": 255,
}
},
"address":{
/*optional, visitor's address*/
"enable":{
/*required, boolean, whether to print visitor's address*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"validity":{
/*optional, expiry date*/
"enable":{
/*required, whether to print the expiry date*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"receptionDepartment":{
/*optional, reception department*/
"enable": {
/*required, boolean, whether to print the reception department*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"receptionStaff":{
/*optional, receptionist information*/
"enable":{
/*required, boolean, whether to print the receptionist information*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"registrationTime":{
307
Device Network SDK (Access Control on Person) Developer Guide
6.28 JSON_Cap_RemoteControlBuzzer
RemoteControlBuzzer capability message in JSON format
{
"RemoteControlBuzzer":{
"cardReaderNo":{
/*optional, integer, card reader No. (buzzer No.)*/
"@min": ,
"@max":
},
"cmd":{
/*required, string, command: "start"-start buzzing, "stop"-stop buzzing*/
"@opt":"start,stop"
}
}
}
6.29 JSON_Cap_UserInfo
UserInfo capability message in JSON format
{
"UserInfo":{
"supportFunction":{
/*required, supported function of adding, deleting, editing, searching for person information, and getting total
number of the added persons: "post"-add, "delete", "put"-edit, "get"-search, "setUp"-set*/
"@opt":"post,delete,put,get,setUp"
},
"UserInfoSearchCond":{
/*optional, search conditions*/
"searchID":{
/*required, string type, search ID, which is used to check the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
308
Device Network SDK (Access Control on Person) Developer Guide
searching*/
"@min":1,
"@max":36
},
"maxResults":{
/*required, integer32, maximum number of search results*/
"@min":1,
"@max":30
},
"EmployeeNoList":{
/*optional, person ID list*/
"maxSize":56,
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
}
},
"UserInfoDelCond":{
/*optional, deleting conditions*/
"EmployeeNoList":{
/*optional, person ID list (if this node does not exist, it indicates deleting all person information)*/
"maxSize":56,
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
}
},
"employeeNo":{
/*required, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"name":{
/*optional, string, name*/
"@min":1,
"@max":32
},
"userType":{
/*required, string, person type: "normal"-normal person (household), "visitor", "blackList"-person in blacklist*/
"@opt":"normal,visitor,blackList"
},
"closeDelayEnabled":"true,false",
/*optional, boolean, whether to enable door close delay: "true"-yes, "false"-no*/
"Valid":{
/*required, parameters of the effective period*/
"enable":"true, false",
/*required, boolean, whether to enable the effective period: "false"-disable, "true"-enable. If this node is set to
"false", the effective period is permanent*/
309
Device Network SDK (Access Control on Person) Developer Guide
"beginTime":{
/*required, start time of the effective period (if timeType does not exist or is "local", the beginTime is the device local
time, e.g.,: 2017-08-01T17:30:08; if timeType is "UTC", the beginTime is UTC time, e.g.,:
2017-08-01T17:30:08+08:00)*/
"@min":1,
"@max":32
},
"endTime":{
/*required, end time of the effective period (if timeType does not exist or is "local", the endTime is the device local
time, e.g.,: 2017-08-01T17:30:08; if timeType is "UTC", the endTime is UTC time, e.g.,: 2017-08-01T17:30:08+08:00)*/
"@min":1,
"@max":32
},
"timeRangeBegin":"",
/*optional, string, start time that can be configured for beginTime. If the device does not return this node, the default
start time that can be configured for beginTime is "1970-01-01T00:00:00"*/
"timeRangeEnd":"",
/*optional, string, end time that can be configured for endTime. If the device does not return this node, the default
end time that can be configured for endTime is "2037-12-31T23:59:59"*/
"timeType":{
/*optional, string, time type: "local"- device local time, "UTC"- UTC time*/
"@opt":"local,UTC"
}
},
"maxBelongGroup":4,
/*optional, integer, maximum number of groups that a person can belong to*/
"belongGroup":{
/*optional, string, group*/
"@min":1,
"@max":32
},
"password":{
/*optional, string, password*/
"@min":1,
"@max":32
},
"doorRight":{
/*optional, string, No. of door or lock that has access permission*/
"@min":1,
"@max":32
},
"RightPlan":{
/*optional, door permission schedule (lock permission schedule)*/
"maxSize":32,
"doorNo":{
/*optional, integer, door No. (lock ID)*/
"@min":1,
"@max":32
},
"maxPlanTemplate":4,
/*optional, integer, maximum number of schedule templates that can be configured for one door*/
"planTemplateNo":{
310
Device Network SDK (Access Control on Person) Developer Guide
"@opt":"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAnd
Fp,faceAndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFp
AndCard,faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFace,cardOrFac
eOrFp,cardOrFpOrPw"
},
"checkUser":"true, false",
/*optional, boolean, whether to verify the duplicated person information: "false"-no, "true"-yes. If checkUser is not
configured, the device will verify the duplicated person information by default. When there is no person information,
you can set checkUser to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"addUser": "true,false",
311
Device Network SDK (Access Control on Person) Developer Guide
/*optional, boolean type, whether to add the person if the person information being edited does not exist: "false"-no
(if the device has checked that the person information being edited does not exist, the failure response message will
be returned along with the error code), "true"-yes (if the device has checked that the person information being edited
does not exist, the success response message will be returned, and the person will be added). If this node is not
configured, the person will not be added by default*/
"maxRecordNum":
/*required, integer type, supported maximum number of records (person records)*/
"callNumbers": {
/*optional, string type, room No. list to be called, which is extended from roomNumber and it is in higher priority; by
default, the No. format is X-X-X-X, e.g., 1-1-1-401, and for standard SIP, it can be the SIP number; this node must be
configured together with roomNumber*/
"maxSize": ,
/*range of members in the array*/
"@min": 0,
/*minimum string length*/
"@max": 100
/*maximum string length*/
},
"floorNumbers": {
/*optional, integer type, floor No. list, which is extended from floorNumber and it is in higher priority; this node must
be configured together with floorNumber*/
"maxSize": ,
/*range of members in the array*/
"@min": 0,
/*minimum floor No.*/
"@max": 100
/*maximum floor No.*/
}
}
}
6.30 JSON_Cap_UserInfoDetail
UserInfoDetail capability message in JSON format
{
"UserInfoDetail":{
"mode":{
"@opt":"all,byEmployeeNo"
/*required, string type, deleting mode: "all"-delete all, "byEmployeeNo"-delete by employee No. (person ID)*/
},
"EmployeeNoList":{
/*optional, person ID list*/
"maxSize": ,
"employeeNo":{
/*optional, string type, employee No. (person ID), it is valid when mode is "byEmployeeNo"*/
"@min": ,
"@max":
}
}
312
Device Network SDK (Access Control on Person) Developer Guide
}
}
6.31 JSON_CapturePreset
CapturePreset message in JSON format
{
"CapturePreset":{
"name":""
/*optional, string, name, the maximum size is 128 bytes by default. This field is NULL by default*/
}
}
6.32 JSON_CapturePresetCap
CapturePresetCap capability message in JSON format
{
"CapturePresetCap":{
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
}
}
}
6.33 JSON_CaptureProgress
CaptureProgress message in JSON format
{
"CaptureProgress":{
"reqCaptureNum": ,
/*optional, integer, total number of person to be collected*/
"completelyCaptureNum": ,
/*optional, integer, number of completely collected persons*/
"partiallyCaptureNum": ,
/*optional, integer, number of partially collected persons*/
"reqFaceNum": ,
/*optional, integer, number of faces to be collected*/
"faceNum": ,
/*optional, integer, number of collected faces*/
"reqFingerprintNum": ,
/*optional, integer, number of fingerprints to be collected*/
"fingerprintNum": ,
313
Device Network SDK (Access Control on Person) Developer Guide
6.34 JSON_CaptureRule
CaptureRule message in JSON format
{
"CaptureRule":{
"enableCardNoLenAuto": ,
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"cardNoLen": ,
/*dependency, integer, length of the card serial No.: 3, 4, 7, 10, unit: byte. This field is valid when
enableCardNoLenAuto is "false". If this field is set to 3, it refers to Wiegand 26*/
"cardTimeout":
/*optional, integer, card collection timeout, unit: ms*/
}
}
6.35 JSON_CaptureRuleCap
CaptureRuleCap capability message in JSON format
{
"CaptureRuleCap":{
"enableCardNoLenAuto":[true,flase],
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"cardNoLen":{
/*dependency, integer, length of the card serial No.: 3, 4, 7, 10*/
"@opt":[3,4,7,10]
},
"cardTimeout":{
/*optional, integer, card collection timeout, unit: ms*/
"@min":0,
"@max":0
}
}
}
314
Device Network SDK (Access Control on Person) Developer Guide
6.36 JSON_CardEncryption
JSON message about card encryption parameters
{
"CardEncryption": {
"cardType": "",
/*required, string type, card types: "blank"-blank card, "private"-private CPU card, encrypted-other encrypted cards*/
"keyLen":,
/*depend, integer, size of key for external authentication, this field is valid only when cardType is set to "encrypted"*/
"key": ""
/*required, hexadecimal string, a 16-byte key content for external authentication*/
}
}
6.37 JSON_CardInfo
CardInfo message in JSON format
{
"CardInfo":{
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"cardNo":"",
/*required, string, card No.*/
"deleteCard": ,
/*optional, boolean, whether to delete the card: "true"-yes. This node is required only when the card needs to be
deleted; for adding or editing card information, this node can be set to NULL*/
"cardType":"",
/*optional, string, card type: "normalCard"-normal card, "patrolCard"-patrol card, "hijackCard"-duress card,
"superCard"-super card, "dismissingCard"-dismiss card, "emergencyCard"-emergency card (it is used to assign
permission to a temporary card, but it cannot open the door)*/
"leaderCard":"",
/*optional, string, whether to support first card authentication function, e.g., the value "1,3,5" indicates that the
access control points No.1, No.3, and No.5 support first card authentication function*/
"checkCardNo":"",
/*optional, boolean, whether to enable duplicated card verification: "false"-disable, "true"-enable. If this node is not
configured, the device will verify the duplicated card by default. When there is no card information, you can set
checkCardNo to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"checkEmployeeNo": ,
/*optional, boolean, whether to check the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will check the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not check the existence of the employee No. (person ID) to speed up data applying; if this
node is set to "true" or NULL, the device will check the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
"addCard":
/*optional, boolean type, whether to add the card if the card information being edited does not exist: "false"-no (if
the device has checked that the card information being edited does not exist, the failure response message will be
returned along with the error code), "true"-yes (if the device has checked that the card information being edited does
315
Device Network SDK (Access Control on Person) Developer Guide
not exist, the success response message will be returned, and the card will be added). If this node is not configured,
the card will not be added by default*/
}
}
Remarks
The employeeNo and cardNo cannot be edited. If you need to edit the cardNo, you should delete
the previous card and create a new card.
6.38 JSON_CardInfo_Collection
CardInfo message in JSON format
{
"CardInfo":{
"cardNo":"",
/*required, string, card No.*/
"cardType":""
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K"*/
}
}
6.39 JSON_CardInfoCap
CardInfoCap capability message in JSON format
{
"CardInfoCap":{
"cardNo":{
/*required, string, card No.*/
"@min":1,
"@max":32
},
"cardType": ["TypeA_M1","TypeA_CPU","TypeB","ID_125K"]
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K"*/
}
}
6.40 JSON_CardInfoCount
CardInfoCount message in JSON format
{
"CardInfoCount":{
"cardNumber":
/*number of cards*/
316
Device Network SDK (Access Control on Person) Developer Guide
}
}
6.41 JSON_CardInfoDelCond
CardInfoDelCond message in JSON format
{
"CardInfoDelCond":{
"EmployeeNoList" :[{
/*optional, person ID list, if this node does not exist or is set to NULL, it indicates deleting all cards*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}],
"CardNoList":[{
/*optional, card No. list (this node cannot exist together with the EmployeeNoList, and if this node does not exist or is
set to NULL, it indicates deleting all cards)*/
"cardNo":""
/*optional, string, card No.*/
}]
}
}
6.42 JSON_CardInfoSearch
CardInfoSearch message in JSON format
{
"CardInfoSearch":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"responseStatusStrg":"",
/*required, string, search status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-searching for
more results*/
"numOfMatches": ,
/*required, integer32, number of returned results*/
"totalMatches": ,
/*required, integer32, total number of matched results*/
"CardInfo":[{
/*optional, person information*/
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"cardNo":"",
/*required, string, card No.*/
"cardType":"",
/*required, string, card type: "normalCard"-normal card, "patrolCard"-patrol card, "hijackCard"-duress card,
"superCard"-super card, "dismissingCard"-dismiss card, "emergencyCard"-emergency card (it is used to assign
317
Device Network SDK (Access Control on Person) Developer Guide
6.43 JSON_CardInfoSearchCond
CardInfoSearchCond message in JSON format
{
"CardInfoSearchCond":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"searchResultPosition": ,
/*required, integer32, 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, integer32, maximum number of search results. If maxResults exceeds the range returned by the device
capability, the device will return the maximum number of search results according to the device capability and will not
return error message*/
"EmployeeNoList":[{
/*optional, person ID list (if this node does not exist or is set to NULL, it indicates searching for all cards)*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}],
"CardNoList":[{
/*optional, card No. list (this node cannot exist together with EmployeeNoList, and if this node does not exist or is set
to NULL, it indicates searching for all cards)*/
"cardNo":""
/*optional, string, card No.*/
}]
}
}
6.44 JSON_CardOperationsCap
JSON message about card operation capability
{
"CardOperationsCap":{
"SectionEncryption":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
318
Device Network SDK (Access Control on Person) Developer Guide
},
"sectionNo":{
/*required, integer, section No.*/
"@min": 0,
"@max": 0
},
"keyType":{
/*required, string, verification key types: "private"-private key, "normal"-other valid keys*/
"@opt": ["private", "normal"]
},
"password":{
/*optional, string, a hexadecimal verification key, this field is valid only when keyType is set to "nomal"*/
"@min": 0,
"@max": 0
},
"newKeyType":{
/*required, string, new key types: "private"-private key, "normal"-other valid keys*/
"@opt": ["private", "normal"]
},
"KeyA":{
/*optional, string, a hexadecimal key A password*/
"@min": 0,
"@max": 0
},
"KeyB":{
/*optional, string, a hexadecimal key B password*/
"@min": 0,
"@max": 0
},
"controlBits":{
/*optional, string, a hexadecimal control bit*/
"@min": 0,
"@max": 0
}
},
"Verification":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"sectionNo":{
/*required, integer, section No.*/
"@min": 0,
"@max": 0
},
"passwordType":{
/*optional, password types: "KeyA" (default), "KeyB"*/
"@opt": ["KeyA", "KeyB"]
},
"password":{
/*optional, string, a hexadecimal password*/
"@min": 0,
319
Device Network SDK (Access Control on Person) Developer Guide
"@max": 0
}
},
"DataBlock":{
"supportFunction":{
/*required, string, supported methods*/
"@opt":["put", "get", "delete", "post"]
},
"addressOfBlock":{
/*optional, integer, block address*/
"@min": 0,
"@max": 0
},
"data":{
/*required, a hexBinary string, e.g., "f2345678abf2345678abf2345678abf2"*/
"@min": 0,
"@max": 0
},
},
"DataBlockCtrl":{
"supportFunction":{
/*required, string, supported methods*/
"@opt":["put", "get", "delete", "post"]
},
"addressOfBlock":{
/*required, integer, block address*/
"@min": 0,
"@max": 0
},
"command":{
/*required, string, control commands*/
"@opt": ["add", "minus", "copy", "paste"]
},
"value":{
/*depend, integer, relative value to be changed, this field is valid only when the command is set to "add" or "minus"*/
"@min": 0,
"@max": 0
},
},
"ControlBlock":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"sectionNo":{
/*required, integer, section No.*/
"@min": 0,
"@max": 0
},
"KeyA":{
/*optional, string, a hexadecimal key A*/
"@min": 0,
320
Device Network SDK (Access Control on Person) Developer Guide
"@max": 0
},
"KeyB":{
/*optional, string, a hexadecimal key B*/
"@min": 0,
"@max": 0
},
"controlBits":{
/*optional, string, a hexadecimal control bit*/
"@min": 0,
"@max": 0
}
},
"CardProto":{
"supportFunction":{
/*required, string, supported methods*/
"@opt":["put", "get", "delete", "post"]
},
"protocol":{
/*required, string, operation protocol types*/
"@opt": ["TypeA", "TypeB", "TypeAB", "125K", "all"]
}
},
"CardEncryption":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"cardType":{
/*required, string, card types: "blank"-blank card, "private"-private CPU card, "encrypted"-other encrypted card*/
"@opt":[ "blank","private","encrypted"]
}
"keyLen":{
/*depend, integer, size of key for external authentication, this field is valid only when cardType is set to "encrypted"*/
"@min": 0,
"@max": 0
},
"key": {
/*required, hexadecimal string, a 16-byte key content for external authentication*/
"@min": 0,
"@max": 0
}
},
"CardParam":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"type":{
/*required, string, card types*/
"@opt": ["CPU1356", "PSAM1", "PSAM2","PSAM3","PSAM4"]
},
321
Device Network SDK (Access Control on Person) Developer Guide
"protocol":{
/*required, string, card protocol types*/
"@opt": ["T0", "T1"]
}
},
"CardResetResponse":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"data":{
/*required, string, resetting response information (usually, it is manufacturer, which is encoded by Base64 and
specified by device*/
"@min": 0,
"@max": 0
}
},
"DataTrans":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"content":{
/*required, string, data to be passed through, which is encoded in Base64*/
"@min": 0,
"@max": 0
}
}
}
}
6.45 JSON_CardParam
JSON message about card parameters
{
"CardParam": {
"type": ""
/*required, string, card types: " CPU1356,PSAM1,PSAM2,PSAM3,PSAM4"*/
"protocol": ""
/*required, string, card protocol types: "T0,T1"*/
}
}
6.46 JSON_CardProto
JSON message about operation protocol types of card
322
Device Network SDK (Access Control on Person) Developer Guide
{
"CardProto": {
"protocol": "TypeA"
/*required, string, operation protocol types: "TypeA,TypeB,TypeAB,125K,all"*/
}
}
6.47 JSON_CardReaderAntiSneakCfg
CardReaderAntiSneakCfg message in JSON format
{
"CardReaderAntiSneakCfg": {
"enable": ,
/*required, boolean, whether to enable the anti-passing back function of the card reader: "true"-enable, "false"-
disable*/
"followUpCardReader":
/*optional, array, following card reader No. after the first card reader, e.g., [2,3,4] indicates that card reader No. 2, No.
3, and No. 4 can be swiped after the first card reader*/
}
}
6.48 JSON_CardResetResponse
JSON message about card resetting response
{
"CardResetResponse": {
"data": ""
/*required, string, resetting response information (usually, it is manufacturer, which is encoded by Base64 and
specified by device*/
}
}
6.49 JSON_ClearAntiSneak
ClearAntiSneak message in JSON format
{
"ClearAntiSneak": {
"clearAll": ,
/*required, boolean, whether to clear all anti-passing back records: "true"-yes, "false"-no. Clearing all anti-passing
back records is not supported by access control devices version 2.1*/
"EmployeeNoList" : [{
/*optional, person ID list, this node is valid when clearAll is "false". For access control devices version 2.1, if this node
is not configured, failure response message will be returned*/
323
Device Network SDK (Access Control on Person) Developer Guide
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}]
}
}
6.50 JSON_ClearAntiSneakCfg
ClearAntiSneakCfg message in JSON format
{
"ClearAntiSneakCfg":{
"ClearFlags":{
"antiSneak":
/*required, boolean, whether to clear the anti-passing back parameters*/
}
}
}
6.51 JSON_ControlBlock
JSON message about the control block parameters of a specific section.
{
"ControlBlock": {
"sectionNo": ,
/*required, integer, section No.*/
"KeyA": "",
/*optional, string type, a hexadecimal key A password*/
"KeyB": "",
/*optional, string type, a hexadecimal key B password*/
"controlBits":""
/*optional, string type, a hexadecimal control bit*/
}
}
6.52 JSON_CreateFPLibCond
Message about the conditions of creating face picture library, and it is in JSON format.
{
"faceLibType": "",
/*required, string type, face picture library type: "infraredFD"-infrared face picture library, "blackFD"-list library,
"staticFD"-static library, the maximum size is 32 bytes*/
"name": "",
/*required, string type, face picture library name, it cannot be duplicated, the maximum size is 48 bytes*/
"customInfo": "",
324
Device Network SDK (Access Control on Person) Developer Guide
/*optional, string type, custom information, it is used to indicate the data property or uniqueness, the maximum size
is 192 bytes*/
}
6.53 JSON_CreateFPLibResult
Message about the results of creating face picture library, and it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDID": ""
/*optional, string type, returned face picture library ID when it created, the library ID of the same type is unique, the
maximum length is 63 bytes. This node is valid when errorCode is 1 and errorMsg is "ok"*/
}
See Also
JSON_ResponseStatus
6.54 JSON_DataBlock
JSON message about data block details
{
"DataBlock": {
"addressOfBlock": ,
/*optional, integer, block address*/
"data": "",
/*required, string, a hexBinary character string, i.e., "f2345678abf2345678abf2345678abf2"*/
}
}
6.55 JSON_DataBlockCtrl
JSON message about operation parameters of data block
{
"DataBlockCtrl": {
"addressOfBlock": ,
/*required, integer, block address*/
"command":"",
325
Device Network SDK (Access Control on Person) Developer Guide
6.56 JSON_DataOutputCfg
DataOutputCfg message in JSON format
{
"DataOutputCfg":{
"password":"",
/*required, string, password for exporting*/
"type":""
/*optional, string, exporting type, it is "USB" by default which refers to exporting via USB*/
}
}
6.57 JSON_DataOutputProgress
DataOutputProgress message in JSON format
{
"DataOutputProgress":{
"progress":
/*required, integer, exporting progress*/
}
}
6.58 JSON_DataTrans
JSON message about data package to be passed through
{
"DataTrans": {
"content": ""
/*required, string, data to be passed through, which is encoded by Base64*/
}
}
6.59 JSON_DelFaceRecord
Message about the parameters of deleting face records, and it is in JSON format.
326
Device Network SDK (Access Control on Person) Developer Guide
{
"FPID":[
/*array, list of face record ID, it is the same as the employee No. (person ID). Deleting multiple face records in a batch
is supported*/
{
"value":""
/*required, string type, face record ID, the maximum length is 63 bytes*/
}
]
}
6.60 JSON_EditFPlibInfo
Message about the editing information of face picture library, and it is in JSON format.
{
"name": "",
/*optional, face picture library name, string type, the max. string length is 48 bytes*/
"customInfo": ""
/*optional, custom information, it is used to indicate the data property or uniqueness, string type, the max. string
length is 192 bytes*/
}
6.61 JSON_EventOptimizationCfg
EventOptimizationCfg message in JSON format
{
"EventOptimizationCfg":{
"enable":
/*optional, boolean, whether to enable event optimization: "true"-yes (default), "false"-no*/
}
}
6.62 JSON_FaceRecognizeMode
FaceRecognizeMode message in JSON format
{
"FaceRecognizeMode":{
/*required, facial recognition mode: "normalMode"-normal mode, "deepMode"-deep mode*/
"mode":""
}
}
327
Device Network SDK (Access Control on Person) Developer Guide
6.63 JSON_FaceRecordNumInAllFPLib
Message about the total number of face records in all face picture libraries, and it is in JSON
format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDRecordDataInfo":[{
/*optional, string type, information of face records in face picture library, this node is valid when errorCode is 1 and
errorMsg is "ok"*/
"FDID": "",
/*optional, face picture library ID, string type, the maximum size is 63 bytes*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"name": "",
/*optional, face picture library name, string type, the maximum size is 48 bytes*/
"recordDataNumber": ""
/*optional, number of records, integer32 type*/
}]
}
See Also
JSON_ResponseStatus
6.64 JSON_FaceRecordNumInOneFPLib
Message about the number of face records in a specific face picture library, and it is in JSON
format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDID": "",
/*optional, face picture library ID, string type, the max. string length is 63 bytes*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the max. string length is
328
Device Network SDK (Access Control on Person) Developer Guide
32 bytes*/
"name": "",
/*optional, face picture library name, string type, the max. string length is 48 bytes*/
"recordDataNumber": ""
/*optional, number of records, integer32 type*/
}
See Also
JSON_ResponseStatus
6.65 JSON_FingerPrintCfg
FingerPrintCfg message in JSON format
{
"FingerPrintCfg":{
"employeeNo":"",
/*required, string, employee No. (person ID) linked with the fingerprint*/
"enableCardReader": ,
/*required, array, fingerprint modules to apply fingerprint data to, e.g., [1,3,5] indicates applying fingerprint data to
fingerprint modules No.1, No.3, and No.5*/
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/
"deleteFingerPrint": ,
/*optional, boolean, whether to delete the fingerprint: "true"-yes. This node is required only when the fingerprint
needs to be deleted; for adding or editing fingerprint information, this node can be set to NULL*/
"fingerType":"",
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"fingerData":"",
/*required, string, fingerprint data encoded by Base64*/
"leaderFP": ,
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5]
indicates that access control points No.1, No.3, and No.5 support first fingerprint authentication function*/
"checkEmployeeNo":
/*optional, boolean, whether to check the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will check the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not check the existence of the employee No. (person ID) to speed up data applying; if this
node is set to "true" or NULL, the device will check the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
}
}
6.66 JSON_FingerPrintCond
FingerPrintCond message in JSON format
329
Device Network SDK (Access Control on Person) Developer Guide
{
"FingerPrintCond":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"employeeNo":"",
/*required, string, employee No. (person ID) linked with the fingerprint*/
"cardReaderNo": ,
/*optional, integer, fingerprint module No.*/
"fingerPrintID":
/*optional, integer, fingerprint No., which is between 1 and 10*/
}
}
6.67 JSON_FingerPrintDelete
FingerPrintDelete message in JSON format
{
"FingerPrintDelete":{
"mode":"",
/*required, string, deleting mode: "byEmployeeNo"-delete by employee No. (person ID), "byCardReader"-delete by
fingerprint module*/
"EmployeeNoDetail":{
/*optional, delete by employee No. (person ID), this node is valid when mode is "byEmployeeNo"*/
"employeeNo":"",
/*optional, string, employee No. (person ID) linked with the fingerprint*/
"enableCardReader": ,
/*optional, array, fingerprint module whose fingerprints should be deleted, e.g., [1,3,5] indicates that the fingerprints
of fingerprint modules No.1, No.3, and No.5 are deleted*/
"fingerPrintID":
/*optional, array, No. of fingerprint to be deleted, e.g., [1,3,5] indicates deleting fingerprint No.1, No.3, and No.5*/
},
"CardReaderDetail":{
/*optional, delete by fingerprint module, this node is valid when mode is "byCardReader"*/
"cardReaderNo": ,
/*optional, integer, fingerprint module No.*/
"clearAllCard": ,
/*optional, boolean, whether to delete the fingerprint information of all cards: "false"-no (delete by employee No.),
"true"-yes (delete the fingerprint information of all employee No.)*/
"employeeNo":""
/*optional, string, employee No. (person ID) linked with the fingerprint, this node is valid when clearAllCard is
"false"*/
}
}
}
330
Device Network SDK (Access Control on Person) Developer Guide
6.68 JSON_FingerPrintDeleteProcess
FingerPrintDeleteProcess message in JSON format
{
"FingerPrintDeleteProcess":{
"status":""
/*required, string, deleting status: "processing"-deleting, "success"-deleted, "failed"-deleting failed*/
}
}
6.69 JSON_FingerPrintInfo
FingerPrintInfo message in JSON format
{
"FingerPrintInfo":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"status":"",
/*required, string, status: "OK"-the fingerprint exists, "NoFP"-the fingerprint does not exist*/
"FingerPrintList":[{
"cardReaderNo": ,
/*required, integer, fingerprint module No.*/
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/
"fingerType":"",
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"fingerData":"",
/*required, string, fingerprint data encoded by Base64*/
"leaderFP":
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5]
indicates that access control points No.1, No.3, and No.5 support first fingerprint authentication function*/
}]
}
}
6.70 JSON_FingerPrintModify
FingerPrintModify message in JSON format
{
"FingerPrintModify":{
"employeeNo":"",
331
Device Network SDK (Access Control on Person) Developer Guide
/*required, string, employee No. (person ID) linked with the fingerprint*/
"cardReaderNo": ,
/*required, integer, fingerprint module No.*/
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/
"fingerType":"",
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint. If this node is not configured, the
fingerprint type will be the original type*/
"leaderFP": ,
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5]
indicates that access control points No.1, No.3, and No.5 support first fingerprint authentication function. If this node
is not configured, the first fingerprint authentication function will remain unchanged*/
}
}
6.71 JSON_FingerPrintStatus
FingerPrintStatus message in JSON format
{
"FingerPrintStatus":{
"status":"",
/*optional, string, status: "success", "failed". This node will be returned only when editing fingerprint parameters or
deleting fingerprints; for applying fingerprint data to the fingerprint module, this node will not be returned*/
"StatusList":[{
/*optional, status list. This node will be returned only when applying fingerprint data to the fingerprint module; for
editing fingerprint parameters or deleting fingerprints, this node will not be returned*/
"id": ,
/*optional, integer, fingerprint module No.*/
"cardReaderRecvStatus": ,
/*optional, integer, fingerprint module status: 0-connecting failed, 1-connected, 2-the fingerprint module is offline, 3-
the fingerprint quality is poor, try again, 4-the memory is full, 5-the fingerprint already exists, 6-the fingerprint ID
already exists, 7-invalid fingerprint ID, 8-this fingerprint module is already configured, 10-the fingerprint module
version is too old to support the employee No.*/
"errorMsg":"",
/*optional, string, error information*/
}],
"totalStatus":
/*required, integer, applying status: 0-applying, 1-applied*/
}
}
6.72 JSON_FPLibCap
Face picture library capability message, and it is in JSON format.
{
"requestURL":"",
332
Device Network SDK (Access Control on Person) Developer Guide
"statusCode": ,
"statusString":"",
"subStatusCode":"",
"errorCode": ,
"errorMsg":" ",
/*see the description of this node and the above nodes in the message of JSON_ResponseStatus*/
"FDNameMaxLen": ,
/*required, integer32 type, maximum length of face picture library name, the default value is 64 bytes*/
"customInfoMaxLen": ,
/*required, integer32 type, maximum length of custom information, the default value is 256 bytes*/
"FDMaxNum": ,
/*required, integer32 type, maximum number of face picture libraries, the default value is 3*/
"FDRecordDataMaxNum": ,
/*required, integer type, maximum face records supported by face picture library*/
"supportFDFunction":"post,delete,put,get,setUp",
/*required, the supported operations on face picture library: "post"-create, "delete"-delete, "put"-edit, "get"-search,
"setUp"-set*/
"isSuportFDSearch": ,
/*required, boolean type, whether supports searching in face picture library: "true"-yes, "false"-no*/
"isSupportFDSearchDataPackage": ,
/*required, boolean type, whether supports packaging the found data in the face picture library: "true"-yes, "false"-
no*/
"isSuportFSsearchByPic": ,
/*required, boolean type, whether supports searching by picture in the face picture library: "true"-yes, "false"-no*/
"isSuportFSsearchByPicGenerate": ,
/*required, boolean type, whether supports exporting search by picture results from the face picture library: "true"-
yes, "false"-no*/
"isSuportFDSearchDuplicate": ,
/*required, boolean type, whether supports duplication checking: "true"-yes, "false"-no*/
"isSuportFDSearchDuplicateGenerate": ,
/*required, boolean type, whether supports exporting the duplication checking results: "true"-yes, "false"-no*/
"isSuportFCSearch": ,
/*required, boolen type, whether supports searching face picture comparison alarms: "true"-yes, "false"-no*/
"isSupportFCSearchDataPackage": ,
/*required, boolean, whether supports packaging the search results of face picture comparison alarms: "true"-yes,
"false"-no*/
"isSupportFDExecuteControl": ,
/*required, boolean, whether supports creating relation between face picture libraries and cameras: "true"-yes,
"false"-no*/
"generateMaxNum": ,
/*required, integer32 type, maximum face records can be exported from face picture library*/
"faceLibType":"blackFD,staticFD,infraredFD",
/*optional, string type, face picture library types: "blackFD"-list library, "staticFD"-static library, "infraredFD"-infrared
face picture library, the maximum size of value can be assigned to this node is 32 bytes*/
"modelMaxNum": ,
/*optional, integer type, the maximum number of search results, the default value is 100*/
"isSupportModelData":true
/*optional, boolean type, whether to support applying model data: "true"-yes, this node is not returned-no*/
}
333
Device Network SDK (Access Control on Person) Developer Guide
See Also
JSON_ResponseStatus
6.73 JSON_FPLibListInfo
Message about the list of face picture libraries, and it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDLib":[
/*optional, face picture library information, string type, this node is valid when errorCode is 1 and errorMsg is "ok"*/
{
"FDID": "",
/*optional, face picture library ID, string type, the maximum size is 63 bytes*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"name": "",
/*optional, face picture library name, string type, the maximum size is 48 bytes*/
"customInfo": ""
/*optional, custom information, string type, the maximum size is 192 bytes*/
}
]
}
See Also
JSON_ResponseStatus
6.74 JSON_IdentityInfo
IdentityInfo message in JSON format
{
"IdentityInfo":{
"chnName":"",
/*optional, string, reserved*/
"enName":"",
/*optional, string, English name*/
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
334
Device Network SDK (Access Control on Person) Developer Guide
6.75 JSON_IdentityInfoCap
IdentityInfoCap capability message in JSON format
{
"IdentityInfoCap":{
"IdentityInfoCond":{ },
/*optional, conditions of collecting ID card information*/
"chnName":{
/*optional, string, reserved*/
"@min":0,
"@max":0
},
335
Device Network SDK (Access Control on Person) Developer Guide
"enName":{
/*optional, string, English name*/
"@min":0,
"@max":0
},
"sex":{
/*optional, string, gender: "male", "female"*/
"@opt":["male", "female"]
},
"birth":{
/*optional, string, date of birth, e.g., 1990-02-24*/
"@min":0,
"@max":0
},
"addr":{
/*optional, string, address*/
"@min":0,
"@max":0
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"issuingAuthority":{
/*optional, string, authority*/
"@min":0,
"@max":0
},
"startDate":{
/*optional, string, start time of the validity period*/
"@min":0,
"@max":0
},
"endDate":{
/*optional, string, end time of the validity period*/
"@min":0,
"@max":0
},
"nation":{
/*optional, integer, reserved*/
"@min":0,
"@max":0
},
"passNo":{
/*optional, string, entry-exit permit No.*/
"@min":0,
"@max":0
},
"issueNumber":{
/*optional, string, issuing times*/
"@min":0,
336
Device Network SDK (Access Control on Person) Developer Guide
"@max":0
},
"certificateType":{
/*optional, string, certificate type*/
"@min":0,
"@max":0
},
"permanentResidenceCardNo":{
/*optional, string, permanent resident card No.*/
"@min":0,
"@max":0
},
"nationalityOrAreaCode":{
/*optional, string, country or region code*/
"@min":0,
"@max":0
},
"version":{
/*optional, string, certificate version No.*/
"@min":0,
"@max":0
},
"receivingAuthorityCode":{
/*optional, string, acceptance authority code*/
"@min":0,
"@max":0
},
"FingerprintList":{
"maxSize":0,
"fingerprint":{
/*optional, string, fingerprint information, it is encoded using base64. This field is the data size capability*/
"@min":0,
"@max":0
}
},
"pic":{
/*optional, string, ID photo information, it is encoded using base64. This field is the data size capability*/
"@min":0,
"@max":0
}
}
}
6.76 JSON_IdentityInfoCond
IdentityInfoCond message in JSON format
{
"IdentityInfoCond":{ }
337
Device Network SDK (Access Control on Person) Developer Guide
/*currently there are no condition parameters, so this field can be set to NULL*/
}
6.77 JSON_IRCfg
JSON message about active infrared intrusion parameters
{
"IRCfg": {
"enable": ,
/*required, boolean, whether to enable: true (yes), false (no)*/
"distance":
/*optional, float, distance, unit: m*/
}
}
6.78 JSON_IRCfgCap
JSON message about active infrared intrusion capability
{
"IRCfgCap": {
"enable":[true,false],
/*required, boolean, whether to enable*/
"distance":{
"@opt":[0.5,1,1.5]
}
}
}
6.79 JSON_LogModeCfg
LogModeCfg message in JSON format
{
"LogModeCfg":{
"type":
/*optional, integer, log mode: 1-16 bytes (the host log can be stored by 25w, and the employee No. can be stored by
16 bytes), 2-12 bytes (the host log can be stored by 25w, and the employee No. can be stored by 12 bytes). This node
will be set to 1 by default*/
}
}
338
Device Network SDK (Access Control on Person) Developer Guide
6.80 JSON_NFCCfg
NFCCfg message in JSON format
{
"NFCCfg":{
"enable":
/*required, boolean, whether to enable NFC function: "true"-yes, "false"-no*/
}
}
6.81 JSON_NFCCfgCap
NFCCfgCap capability message in JSON format
{
"NFCCfgCap":{
"enable":"true, false"
/*required, whether to enable NFC function: "true"-yes, "false"-no (default)*/
}
}
6.82 JSON_OfflineCaptureCap
OfflineCaptureCap capability message in JSON format
{
"OfflineCaptureCap":{
"isSuportDownloadOfflineCaptureInfoTemplate":true,
/*optional, whether it supports downloading template of offline user list: "true"-yes, this node is not returned-no*/
"isSuportUploadOfflineCaptureInfo":true,
/*optional, whether it supports uploading offline user list: "true"-yes, this node is not returned-no*/
"isSupportDownloadCaptureData":true,
/*optional, whether it supports downloading collected data: "true"-yes, this node is not returned-no*/
"isSupportDeleteAllData":true,
/*optional, whether it supports deleting all collected data: "true"-yes, this node is not returned-no*/
"isSupportDeleteTheData":true,
/*optional, whether it supports deleting specific collected data: "true"-yes, this node is not returned-no*/
"SearchTask":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"searchID":{
/*required, string, search ID which is used to check whether the upper-layer clients are the same one*/
"@min":0,
"@max":0
339
Device Network SDK (Access Control on Person) Developer Guide
},
"maxResults":{
"@min":0,
"@max":0
},
"captureNoList":{
"maxSize":0,
"@min":0,
"@max":0
},
"searchType":{
"@opt":["new", "modified"]
},
"DataCollections":{
/*optional, array, matched data information that has been searched*/
"maxSize":0,
"captureNo":{
/*optional, integer, collection No.*/
"@min":0,
"@max":0
},
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
},
"employeeNo":{
/*optional, string, employee No.*/
"@min":0,
"@max":0
},
"CardNoList":{
/*optional, string, card No. list*/
"maxSize":0,
"@min":0,
"@max":0
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"FingerprintList":{
"fingerprintID":{
"@min":0,
"@max":0
},
"fingerprint":{
/*optional, fingerprint information, it is encoded using base64*/
"@min":0,
"@max":0
}
340
Device Network SDK (Access Control on Person) Developer Guide
},
"FaceFeature":{
/*optional, string, facial feature information*/
"isSupportFaceRegion":true,
/*optional, whether it supports facial feature area*/
"isSupportCommonPoint":true
/*optional, whether it supports feature point coordinates (e.g., left eye, right eye, left mouth corner, right mouth
corner, nose)*/
},
"isSupportRiskMark":true,
/*optional, whether it supports risk data mark*/
"dataType":{
/*optional, data type*/
"@opt":["new", "modified","normal"]
}
}
},
"RuleInfo":{
/*rule list, which lists rules for collecting different types of data*/
"reqAdminRights":[true,false],
/*required, boolean, whether the administrator permission is required: "true"-yes, "false"-no*/
"enableCardNoLenAuto":[true,false],
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"maxSize":0,
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"dataType":{
/*required, string, data type: "name", "employeeNo"-employee No., "IDCardNo"-ID card No., "IDCardSerialNo"-ID
card serial No., "IDCardDetails"-ID card details, "card", "fingprint"-fingerprint, "face"*/
"@opt":["name","employeeNo","IDCardNo","IDCardSerialNo", "IDCardDetails","card", "fingprint", "face"]
},
"enable":[true, false],
/*required, string, whether to collect and display: "true"-collect and display, "false"-not collect and display*/
"uniqueCheck":[true, false],
/*dependency, boolean, whether to enable uniqueness verification: "true"-yes, "false" (default) or this node is not
returned-no. This field is valid when dataType is "name". For other data types, the field is the read-only optional
parameter*/
"len":[{
/*dependency, integer, data length. If dataType is "name", it refers to the name length and the default value is 128.
For other data types, this field is the read-only optional parameter. This node will not be returned if it is not
supported. The capability list will be returned according to the data type*/
"dataType":"",
"@min":0,
"@max":0
}],
"num":[{
/*dependency, integer, number of collected data, this field is valid when dataType is "fingerprint" or "card". The
capability list will be returned according to the data type*/
"dataType":"",
"@min":0,
341
Device Network SDK (Access Control on Person) Developer Guide
"@max":0
}],
"fingerprintIDs":{
/*dependency, integer, No. list of collected fingerprints, this field is valid when dataType is "fingerprint"*/
"maxSize":0,
"@min":0,
"@max":0
}
},
"CaptureProgress":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"reqCaptureNum":{
/*optional, integer, total number of persons to be collected*/
"@min":0,
"@max":0
},
"completelyCaptureNum":{
/*optional, integer, number of completely collected persons*/
"@min":0,
"@max":0
},
"partiallyCaptureNum":{
/*optional, integer, number of partially collected persons*/
"@min":0,
"@max":0
},
"reqFaceNum":{
/*optional, integer, number of faces to be collected*/
"@min":0,
"@max":0
},
"faceNum":{
/*optional, integer, number of collected faces*/
"@min":0,
"@max":0
},
"reqFingerprintNum":{
/*optional, integer, number of fingerprints to be collected*/
"@min":0,
"@max":0
},
"fingerprintNum":{
/*optional, integer, number of collected fingerprints*/
"@min":0,
"@max":0
},
"reqCardNum":{
/*optional, integer, number of cards to be collected*/
"@min":0,
342
Device Network SDK (Access Control on Person) Developer Guide
"@max":0
},
"cardNum":{
/*optional, integer, number of collected cards*/
"@min":0,
"@max":0
},
"reqIDCardNum":{
/*optional, integer, number of ID cards to be collected*/
"@min":0,
"@max":0
},
"IDCardNum":{
/*optional, integer, number of collected ID cards*/
"@min":0,
"@max":0
}
},
"DataOutput":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"password":{
/*required, string, password for exporting*/
"@min":0,
"@max":0
},
"type":{
/*optional, string, exporting method, the default method is "USB"*/
"@opt":"USB"
},
"progress":{
/*required, integer, exporting progress*/
"@min":0,
"@max":0
}
}
}
}
6.83 JSON_OSDPModify
OSDPModify message in JSON format
{
"OSDPModify":{
"newID":
/*required, integer, new ID of the OSDP card reader*/
343
Device Network SDK (Access Control on Person) Developer Guide
}
}
6.84 JSON_OSDPStatus
OSDPStatus message in JSON format
{
"OSDPStatus":{
"status":""
/*required, string, online status: "online", "offline"*/
}
}
6.85 JSON_PictureServerInformation
PictureServerInformation message in JSON format
{
"PictureServerInformation":{
"pictureServerType":"",
/*required, string type, picture storage server type: "tomact,VRB,cloudStorage,KMS"*/
"addressingFormatType":"",
/*required, string type, format type of the picture storage server address: "ipaddress"-IP address (default),
"hostname"-host name*/
"hostName":"",
/*string type, domain name of the picture storage server, the string length is between 0 and 64. This field is valid
when addressingFormatType is "hostname"*/
"ipv4Address":"",
/*string type, IPv4 address of the picture storage server, the string length is between 0 and 64. This field is valid when
addressingFormatType is "ipaddress"*/
"ipv6Address":"",
/*string type, IPv6 address of the picture storage server, the string length is between 0 and 128. This field is valid
when addressingFormatType is "ipaddress"*/
"portNo": ,
/*required, integer type, port No. of the picture storage server, which is between 1024 and 65535*/
"underlyingProtocol":"",
/*optional, string, bottom-level protocol of the picture storage server: "HTTP", "HTTPS". This field is valid when
pictureServerType contains "cloudStorage". If this field does not exist, the default bottom-level protocol is HTTP*/
"cloudStorage":{
/*parameters of the clould storage server, which is valid when pictureServerType is "cloudStorage"*/
"cloudManageHttpPort": ,
/*required, integer type, HTTP port No. for central management of the cloud storage server, which is between 1024
and 65535*/
"cloudTransDataPort": ,
/*required, integer type, data transmission port No. of the cloud storage server, which is between 1024 and 65535*/
"cloudCmdPort": ,
/*required, integer type, signaling port No. of the cloud storage server, which is between 1024 and 65535*/
"cloudHeartBeatPort": ,
344
Device Network SDK (Access Control on Person) Developer Guide
/*required, integer type, heartbeat port No. of the cloud storage server, which is between 1024 and 65535*/
"cloudStorageHttpPort": ,
/*required, integer type, HTTP port No. of the cloud storage server, which is between 1024 and 65535*/
"cloudUsername":"",
/*required, string type, user name of the cloud storage server, the string length is between 0 and 32*/
"cloudPassword":"",
/*required, string type, password of the cloud storage server, the string length is between 0 and 32*/
"cloudPoolId": ,
/*required, integer type, cloud storage pool ID, which is between 1 and 4294967295. If this field is not configured by
the upper-level, this field will be set to 1 by default*/
"cloudPoolIdEx":"",
/*optional, string type, cloud storage pool ID, this node is valid when cloud storage pool ID in string type is
supported*/
"clouldProtocolVersion":"",
/*required, string type, protocol version of the cloud storage server, the string length is between 0 and 32*/
"clouldAccessKey":"",
/*string type, cloud storage server access_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"clouldSecretKey":""
/*string type, cloud storage server secret_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
}
}
}
6.86 JSON_PrinterCfg
PrinterCfg message in JSON format
{
"PrinterCfg": {
/*required, boolean, whether to enable the printer*/
"enable": ,
"printFormat": {
"vistorPic": {
/*optional, visitor picture*/
"enable": ,
/*required, boolean, whether to print visitor picture*/
"lineNo":
/*required, integer, line No.*/
},
"vistorName": {
/*optional, visitor name*/
"enable": ,
/*required, boolean, whether to print visitor name*/
"lineNo":
/*required, integer, line No.*/
},
"certificateNumber": {
/*optional, visitor's certificate No.*/
345
Device Network SDK (Access Control on Person) Developer Guide
"enable": ,
/*required, boolean, whether to print visitor's certificate No.*/
"lineNo":
/*required, integer, line No.*/
},
"address": {
/*optional, visitor's address*/
"enable": ,
/*required, boolean, whether to print visitor's address*/
"lineNo":
/*required, integer, line No.*/
},
"validity": {
/*optional, expiry date*/
"enable": ,
/*required, whether to print the expiry date*/
"lineNo":
/*required, integer, line No.*/
},
"receptionDepartment": {
/*optional, reception department*/
"enable": ,
/*required, boolean, whether to print the reception department*/
"lineNo":
/*required, integer, line No.*/
},
"receptionStaff": {
/*optional, receptionist information*/
"enable": ,
/*required, boolean, whether to print the receptionist information*/
"lineNo":
/*required, integer, line No.*/
},
"registrationTime": {
/*optional, registered time*/
"enable": ,
/*optional, whether to print the registered time*/
"lineNo":
/*required, integer, line No.*/
},
}
}
}
6.87 JSON_RemoteControlBuzzer
RemoteControlBuzzer message in JSON format
{
"RemoteControlBuzzer":{
346
Device Network SDK (Access Control on Person) Developer Guide
"cmd":""
/*required, string, command: "start"-start buzzing, "stop"-stop buzzing*/
}
6.88 JSON_ResponseStatus
ResponseStatus message in JSON format.
{
"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*/
"errorMsg":"",
/*optional, string type, error details, this field is required when statusCode is not 1*/
}
Note
See Error Codes in ResponseStatus for details about the status codes, sub status codes, error
codes, and error descriptions.
6.89 JSON_RFCardCfg
RFCardCfg message in JSON format
{
"RFCardCfg":[{
"cardType":"",
/*required, string, card type: "EMCard"-EM card, "M1Card"-M1 card, "CPUCard"-CPU card, "IDCard"-ID card*/
"enabled":
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
}]
}
6.90 JSON_RFCardCfgCap
RFCardCfgCap capability message in JSON format
347
Device Network SDK (Access Control on Person) Developer Guide
{
"RFCardCfgCap":{
"cardType":{
/*required, string, card type: "EMCard"-EM card, "M1Card"-M1 card, "CPUCard"-CPU card, "IDCard"-ID card*/
"@opt":["EMCard","M1Card","CPUCard","IDCard"]
},
"enabled":{
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
"@opt":[true,false]
}
}
}
6.91 JSON_RuleInfo
RuleInfo message in JSON format
{
"RuleInfo":{
"reqAdminRights": ,
/*required, boolean, whether the administrator permission is required: "true"-yes, "false"-no*/
"enableCardNoLenAuto": ,
/*optional, boolean, whether to enable length self-adaption of the card serial No. The priority of this field is higher
than len*/
"RuleList":[{
/*rule list, which contains rules for collecting different types of data*/
"dataType":"",
/*required, string, data type: "name", "employeeNo"-employee No., "IDCardNo"-ID card No., "IDCardSerialNo"-ID
card serial No., "IDCardDetails"-ID card details, "card", "fingprint"-fingerprint, "face"*/
"enable": ,
/*required, boolean, whether to collect and display: "true"-collect and display, "false"-not collect and display*/
"uniqueCheck": ,
/*dependency, boolean, whether to enable uniqueness verification: "true"-yes, "false" (default) or this field is not
returned-no. This field is valid when dataType is "name". For other data types, this field is the read-only optional
parameter*/
"len": ,
/*dependency, integer, data length, this field is valid when dataType is "name", "enployeeNo" or "card". The default
data length of name is 128. For other data types, this field is the read-only optional parameter. If it is not supported,
this field will not be returned*/
"num": ,
/*dependency, integer, number of collected data, this field is valid when dataType is "fingerprint" or "card"*/
"fingerprintIDs":
/*dependency, integer, ID list of fingerprints that need to be collected, this field is valid when dataType is
"fingerprint"*/
}]
}
}
348
Device Network SDK (Access Control on Person) Developer Guide
6.92 JSON_SearchFaceRecordCond
Message about conditions of searching for face records, and it is in JSON format.
{
"searchResultPosition": "",
/*required, initial position of search result list, integer32 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, int32 type, maximum number of records for single searching. If maxResults exceeds the range defined by
the device capability, the device will return the maximum number of records according to the device capability and
will not return error*/
"faceLibType": "",
/*required, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"FDID": "",
/*required, face picture library ID, string type, the maximum size is 63*/
"FPID": "",
/*optional, string type, face record ID, it can be generated by device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"startTime": "",
/*optional, start time, ISO8601 time format, string type, the maximum size is 32 bytes*/
"endTime": "",
/*optional, end time, ISO8601 time format, string type, the maximum size is 32 bytes*/
"name": "",
/*optional, name, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender: male, female, unknown, string type, the maximum size is 10*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the maximum size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card,
passport, other*/
"certificateNumber": ""
/*optional, certificate No., string, the maximum size is 32 bytes*/
"isInLibrary": "yes",
/*optional, string type, whether the picture is in library (whether modeling is successful): unknown, no, yes*/
"isDisplayCaptureNum": true,
/*optional, boolean type, whether to display number of captured pictures, true: display, false: hide, by default it is
false*/
"rowKey ":"",
/*optional, string type, face picture library main key. Search by rowKey can be more efficient, the maximum size is 64
bytes*/
"transfer":true
/*optional, boolean type, whether to enable transfer*/
}
349
Device Network SDK (Access Control on Person) Developer Guide
6.93 JSON_SearchFaceRecordResult
Message about result of searching for face record.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"responseStatusStrg": "",
/*optional, searching status: "OK"-searching ended, "NO MATCHES"-no data found, "MORE"-searching, string type,
the max. size is 32 bytes. It is valid only when errorCode is 1 and errorMsgis ok*/
"searchResultPosition": "",
/*optional, initial position of search result list, integer32 type. It is valid only when errorCode is 1 and errorMsgis ok*/
"numOfMatches": "",
/*optional, returned number of results for current search, integer32. It is valid only when errorCode is 1 and
errorMsgis ok*/
"totalMatches": "",
/*optional, total number of matched results, integer32. It is valid only when errorCode is 1 and errorMsgis ok*/
"MatchList":[
/*optional, searched matched data information, array. It is valid only when errorCode is 1 and errorMsgis ok*/
{
"FPID":"",
/*optional, string type, face record ID (it is the same as the employee No. (person ID)), the maximum length is 63
bytes*/
"faceURL":"",
/*optional, face picture URL, string type, the maximum size is 128 bytes*/
"name":"",
/*required, name of person in the face picture, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender of person in the face picture: male, female, unknown, string type, the maximum size is 32 bytes*/
"bornTime": "",
/*required, birthday of person in the face picture, ISO8601 time format, string type, the maximum size is 20 bytes*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the max. size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card, passport,
other*/
"certificateNumber": "",
/*optional, certificate No., string, the max. size is 32 bytes*/
"caseInfo": "",
/*optional, case information, string type, the max. size is 192 bytes, it is valid when faceLibType is blackFD.*/
"tag": "",
/*optional, custom tag, up to 4 tags, which are separated by commas, string type, the max. size is 195 bytes, it is valid
when faceLibType is blackFD.*/
"address": "",
/*optional, person address, string type, the max. size is 192 bytes, it is valid when faceLibType is staticFD.*/
"customInfo": "",
350
Device Network SDK (Access Control on Person) Developer Guide
/*optional, custom information, string type, the max. size is 192 bytes, it is valid when faceLibType is staticFD.*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
"isInLibrary": "yes",
/*optional, string type, whether the picture is in library (whether modeling is successful): unknown, no, yes*/
"captureNum": 12,
/*optional, int, number of captured pictures*/
"rowKey": ""
/*optional, string type, face picture library main key. Search by rowKey can be more efficient, the maximum size is 64
bytes*/
}
]
}
See Also
JSON_ResponseStatus
6.94 JSON_SearchTaskCond
SearchTaskCond message in JSON format
{
"SearchTaskCond":{
"searchID":"",
/*required, string, search ID which is used to check whether the upper-layer clients are the same one*/
"searchResultPosition": ,
/*required, integer32, 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. If the
device returns the picture along with the response message, this field should be between 0 and totalMatches*/
"maxResults": ,
/*required, integer32, the maximum number of results that can be obtained by calling the URL at a time. If the device
returns the picture along with the response message, this field can only be set to 1*/
"captureNoList": ,
/*optional, integer, collection No. list. If the collection No. is not configured, it will search all data according to
searchResultPosition*/
"searchType":""
/*optional, search type: "new"-search and only return newly added data, "modified"-search and only return edited
data. By default all data will be searched*/
}
}
6.95 JSON_SearchTaskResponse
SearchTaskResponse message in JSON format
{
"SearchTaskResponse":{
351
Device Network SDK (Access Control on Person) Developer Guide
"searchID":"",
/*required, string, search ID which is used to check whether the upper-layer clients are the same one*/
"responseStatusStrg":"",
/*optional, string, searching status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-searching
for more results*/
"numOfMatches": ,
/*optional, integer32, number of returned results this time*/
"totalMatches": ,
/*optional, integer32, total number of matched results*/
"DataCollections":[{
/*optional, array, searched matched data information*/
"lastCaptureNo": ,
/*required, integer, last collection No., it is used to check whether there is data lost*/
"captureNo": ,
/*required, integer, current collection No.*/
"name":"",
/*optional, string, name*/
"employeeNo":"",
/*optional, string, employee No.*/
"IDCardNo":"",
/*optional, string, ID card No.*/
"CardNoList":["", ""],
/*optional, string, card No. list*/
"FingerprintList":[{
"fingerprintID": ,
/*optional, integer, fingerprint No.*/
"fingerprint":""
/*optional, string, fingerprint information which is encoded using base64*/
}],
"FaceFeature":{
/*optional, feature information of face picture matting*/
"Region":{
/*required, area coordinates of face picture matting, it is a rectangle*/
"height": ,
/*required, float, height*/
"width": ,
/*required, float, width*/
"x": ,
/*required, float, X-coordinate of the left corner*/
"y":
/*required, float, Y-coordinate of the left corner*/
},
"LeftEyePoint":{
/*optional, coordinates of the left eye*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"RightEyePoint":{
/*optional, coordiantes of the right eye*/
"x": ,
352
Device Network SDK (Access Control on Person) Developer Guide
6.96 JSON_SectionEncryption
JSON message about section encryption parameters
{
"SectionEncryption": {
"sectionNo": ,
/*required, integer, section No.*/
"keyType": "",
/*required, string, key types: "private"-private key, "normal"-other valid keys*/
"password": ""
/*depend, string, a hexadecimal verification key, this field is valid only when the keyType is "normal"*/
"newKeyType": "",
/*required, string, new key types: "private"-private key, "normal"-other valid keys*/
"KeyA": "",
353
Device Network SDK (Access Control on Person) Developer Guide
/*depend, string, a hexadecimal password of key A, this field is valid only when the keyType is "normal"*/
"KeyB": "",
/*depend, string, a hexadecimal password of key B, this field is valid only when the keyType is "normal"*/
"controlBits":
/*depend, a hexadecimal control bit, this field is valid only when the keyType is "normal"*/
}
}
6.97 JSON_SetFaceRecord
Message about the setting information of face record, and it is in JSON format.
{
"faceURL":"",
/*optional, string type, picture storage URL inputted when uploading the face picture by URL, the maximum length is
256 bytes*/
"faceLibType":"",
/*required, string type, face picture library type: "blackFD"-list library, "staticFD"-static library, the maximum length is
32 bytes*/
"FDID":"",
/*required, string type, face picture library ID, the maximum length is 63 bytes*/
"FPID":"",
/*optional, string type, face record ID, it can be generated by the device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"deleteFP": ,
/*optional, boolean type, whether to delete the face record: "true"-yes. This node is required when the face record
needs to be deleted; for adding or editing the face record, this node should be set to NULL*/
"name":"",
/*required, string type, name of the person in the face picture, the maximum length is 96 bytes*/
"gender":"",
/*optional, string type, gender of the person in the face picture: "male", "female", "unknown", the maximum length is
32 bytes*/
"bornTime":"",
/*required, string type, date of birth of the person in the face picture in ISO8601 time format, the maximum length is
20 bytes*/
"city":"",
/*optional, string type, code of the city of birth for the person in the face picture, the maximum length is 32 bytes*/
"certificateType ":"",
/*optional, string type, ID type: "officerID"-officer ID, "ID"-ID card. The maximum length is 10 bytes*/
"certificateNumber":"",
/*optional, string type, ID No., the maximum length is 32 bytes*/
"caseInfo":"",
/*optional, string type, case information, the maximum length is 192 bytes, it is valid when faceLibType is "blackFD"*/
"tag":"",
/*optional, string type, custom tag, up to 4 tags can be added and they should be separated by commas, the
maximum length of each tag is 48 bytes, and the maximum length of this node is 195 bytes. It is valid when
faceLibType is "blackFD"*/
"address":"",
/*optional, string type, person address, the maximum length is 192 bytes, it is valid when faceLibType is "staticFD"*/
354
Device Network SDK (Access Control on Person) Developer Guide
"customInfo":"",
/*optional, string type, custom information, the maximum length is 192 bytes, it is valid when faceLibType is
"staticFD"*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
}
6.98 JSON_SingleFPLibInfo
Message about the information of a face picture library, and it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the max. string length is
32 bytes*/
"name": "",
/*optional, face picture library name, string type, the max. string length is 48 bytes*/
"customInfo": ""
/*optional, custom information, string type, the max. string length is 192 bytes*/
}
See Also
JSON_ResponseStatus
6.99 JSON_UserInfo
UserInfo message in JSON format
{
"UserInfo":{
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"deleteUser": ,
/*optional, boolean, whether to delete the person: "true"-yes. This node is required only when the person needs to
be deleted; for adding or editing person information, this node can be set to NULL*/
"name":"",
/*optional, string, person name*/
"userType":"",
/*required, string, person type: "normal"-normal person (household), "visitor", "blackList"-person in blacklist*/
"closeDelayEnabled": ,
355
Device Network SDK (Access Control on Person) Developer Guide
356
Device Network SDK (Access Control on Person) Developer Guide
password. The priority of the person authentication mode is higher than that of the card reader authentication
mode*/
"checkUser": ,
/*optional, boolean, whether to verify the duplicated person information: "false"-no, "true"-yes. If checkUser is not
configured, the device will verify the duplicated person information by default. When there is no person information,
you can set checkUser to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"addUser":
/*optional, boolean type, whether to add the person if the person information being edited does not exist: "false"-no
(if the device has checked that the person information being edited does not exist, the failure response message will
be returned along with the error code), "true"-yes (if the device has checked that the person information being edited
does not exist, the success response message will be returned, and the person will be added). If this node is not
configured, the person will not be added by default*/
"callNumbers": ["","",""],
/*optional, string type, room No. list to be called, by default, its format is X-X-X-X (e.g., 1-1-1-401), which is extended
from roomNumber; for standard SIP, it can be the SIP number*/
"floorNumbers": [ , ]
/*optional, integer type, floor No. list, which is extended from floorNumber*/
}
}
6.100 JSON_UserInfoCount
UserInfoCount message in JSON format
{
"UserInfoCount":{
"userNumber":
/*required, integer, number of persons*/
}
}
6.101 JSON_UserInfoDelCond
UserInfoDelCond message in JSON format
{
"UserInfoDelCond":{
"EmployeeNoList":[{
/*optional, person ID list (if this node does not exist or is set to NULL, it indicates deleting all person information)*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}]
}
}
357
Device Network SDK (Access Control on Person) Developer Guide
6.102 JSON_UserInfoDetail
UserInfoDetail message in JSON format
{
"UserInfoDetail":{
"mode":"",
/*required, string type, deleting mode: "all"-delete all, "byEmployeeNo"-delete by employee No. (person ID)*/
"EmployeeNoList":[{
/*optional, person ID list, if this node does not exist or is null, it indicates deleting all person information (including
linked cards and fingerprints) and permissions*/
"employeeNo":""
/*optional, string type, employee No. (person ID), it is valid when mode is "byEmployeeNo"*/
}]
}
}
6.103 JSON_UserInfoDetailDeleteProcess
UserInfoDetailDeleteProcess message in JSON format
{
"UserInfoDetailDeleteProcess":{
"status":""
/*required, string type, status: "processing", "success", "failed"*/
}
}
6.104 JSON_UserInfoSearch
UserInfoSearch message in JSON format
{
"UserInfoSearch":{
"searchID":"",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"responseStatusStrg":"",
/*required, string, search status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-searching for
more results*/
"numOfMatches": ,
/*required, integer32, number of returned results this time*/
"totalMatches": ,
/*required, integer32, total number of matched results*/
"UserInfo":[{
/*optional, person information*/
358
Device Network SDK (Access Control on Person) Developer Guide
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"name":"",
/*optional, string, person name*/
"userType":"",
/*required, string, person type: "normal"-normal person (household), "visitor", "blackList"-person in blacklist*/
"closeDelayEnabled": ,
/*optional, boolean, whether to enable door close delay: "true"-yes, "false"-no*/
"Valid":{
/*required, parameters of the effective period*/
"enable":"",
/*required, boolean, whether to enable the effective period: "false"-disable, "true"-enable. If this node is set to
"false", the effective period is permanent*/
"beginTime":"",
/*required, start time of the effective period (if timeType does not exist or is "local", the beginTime is the device local
time, e.g., 2017-08-01T17:30:08; if timeType is "UTC", the beginTime is UTC time, e.g., 2017-08-01T17:30:08+08:00)*/
"endTime":"",
/*required, end time of the effective period (if timeType does not exist or is "local", the endTime is the device local
time, e.g., 2017-08-01T17:30:08; if timeType is "UTC", the endTime is UTC time, e.g., 2017-08-01T17:30:08+08:00)*/
"timeType":""
/*optional, string, time type: "local"- device local time, "UTC"- UTC time*/
},
"belongGroup":"",
/*optional, string, group*/
"password":"",
/*optional, string, password*/
"doorRight":"",
/*optional, string, No. of door or lock that has access permission, e.g., "1,3" indicates having permission to access
door (lock) No. 1 and No. 3*/
"RightPlan":[{
/*optional, access permission schedule of the door or lock*/
"doorNo": ,
/*optional, integer, door No. (lock ID)*/
"planTemplateNo":""
/*optional, string, schedule template No.*/
}],
"maxOpenDoorTime": ,
/*optional, integer, the maximum authentication attempts, 0-unlimited*/
"openDoorTime": ,
/*optional, integer, read-only, authenticated attempts*/
"roomNumber": ,
/*optional, integer, room No.*/
"floorNumber": ,
/*optional, integer, floor No.*/
"doubleLockRight": ,
/*optional, boolean, whether to have the permission to open the double-locked door: "true"-yes, "false"-no*/
"localUIRight": ,
/*optional, boolean, whether to have the permission to access the device local UI: "true"-yes, "false"-no*/
"userVerifyMode":""
/*optional, string, person authentication mode: "cardAndPw"-card+password, "card"-card, "cardOrPw"-card or
password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint
+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or
359
Device Network SDK (Access Control on Person) Developer Guide
6.105 JSON_UserInfoSearchCond
UserInfoSearchCond message in JSON format
{
"UserInfoSearchCond":{
"searchID":"",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"searchResultPosition": ,
/*required, integer32 type, 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, integer32 type, maximum number of search results. If maxResults exceeds the range returned by the
device capability, the device will return the maximum number of search results according to the device capability and
will not return error message*/
"EmployeeNoList":[{
/*optional, person ID list (if this node does not exist or is set to NULL, it indicates searching for all person
information)*/
"employeeNo":""
/*optional, string type, employee No. (person ID)*/
}]
}
}
6.106 JSON_Verification
JSON message about verification parameters of section password.
{
"Verification": {
"sectionNo": ,
/*requried, integer, section No.*/
"passwordType": "",
/*optional, string, password types: "KeyA" (default), "KeyB"*/
"password": ""
360
Device Network SDK (Access Control on Person) Developer Guide
6.107 XML_AcsAbility
AcsAbility capability message in XML format
<AcsAbility version="2.0">
<channelControllerNo min="" max=""/>
<!--req, lane controller range-->
<doorNo min="" max=""/>
<!--req , door No. rang or floor No. range-->
<cardReaderNo min="" max=""/>
<!--req, card reader No. range-->
<maxCardNum></maxCardNum>
<!--req, supported card number-->
<caseSensorNo min="" max=""/>
<!--req, event trigger No.-->
<gateOpenDirectionNum opt="1,2"/>
<!--req, the number of door opening directions (e.g., for the flap barrier which has only one direction, the attribute
"opt" should be set to 1; for the swing barrier and the tripod turnstile which have two directions, the attribute "opt"
should be set to 2)-->
<DoorRelateCardReaderList>
<!--opt, card reader No., which is linked with the door No. (it will be returned only when the card reader has linked
with card reader, otherwise it will not be returned)-->
<Action>
<doorNo>1</doorNo>
<cardReaderNo>1,2</cardReaderNo>
</Action>
</DoorRelateCardReaderList>
<DoorStatusPlan>
<!--req, door status schedule capability -->
<WeekPlan>
<!--req, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--req, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--req, status value range -->
<verifyType
opt="invalid,sleep,swipecard,swipecardandpassword,swipecardorpasswd,fingerPrint,fingerPrintAndPasswd,fingerPrint
orCard,fingerPrintAndCard,fingerPrintAndCardAndPasswd,faceOrFpOrCardOrPw,faceAndFingerPrint,faceAndPassword,
faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeNoAndFp,employeeNoAndFpAndPw,fac
eAndFpAndCard,faceAndPwAndFp,employeeNoAndface,cardOrFace,cardOrFaceOrFp,cardOrFpOrPw"/>
<!--req, authentication method range -->
<TimeAccuracy>
<!--req, time accuracy -->
<hour>enable</hour>
361
Device Network SDK (Access Control on Person) Developer Guide
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan>
<!--req, holiday schedule -->
<holidayPlanNo min="" max=""/>
<!--req, holiday schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<TimeAccuracy>
<!--req, time accuracy-->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</HolidayPlan>
<HolidayGroup>
<!--req, holiday group capability-->
<holidayGroupNo min="" max=""/>
<!--req, holiday group No. range -->
<holidayGroupName min="" max=""/>
<!--req, holiday group name length -->
<maxHolidayPlanNum></maxHolidayPlanNum>
<!--req, max. holiday schedule number for the holiday group -->
</HolidayGroup>
<PlanTemplate>
<!--req, schedule template capability -->
<templateNo min="" max=""/>
<!--opt, range of schedule template No.-->
<templateName min="" max=""/>
<!--req, schedule template name length -->
<maxHolidayGroupNum></maxHolidayGroupNum>
<!--req, max. holiday group number for the schedule template -->
</PlanTemplate>
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
</DoorStatusPlan>
<CardReaderVerifyTypePlan>
<!--req, card reader authentication schedule capability -->
<WeekPlan>
<!--req, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--req, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--req, status value range -->
<verifyType
opt="invalid,sleep,swipecard,swipecardandpassword,swipecardorpasswd,fingerPrint,fingerPrintAndPasswd,fingerPrint
OrCard,fingerPrintAndCard,fingerPrintAndCardAndPasswd,fingerPrintorCard,fingerPrintAndCard,fingerPrintAndCardAn
dPasswd,faceOrFpOrCardOrPw,faceAndFingerPrint,
362
Device Network SDK (Access Control on Person) Developer Guide
faceAndPassword,faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeNoAndFp,employeeN
oAndFpAndPw,faceAndFpAndCard,faceAndPwAndFp,employeeNoAndface,employeeNoAndFpAndPw,faceAndFpAndCa
rd,faceAndPwAndFp,employeeNoAndface,faceOrFaceAndCard,fingerPrintOrFace,swipecardOrFaceOrPw,cardOrFace,ca
rdOrFaceOrFp,cardOrFpOrPw"/>
<!--req,verification mode range: invalid, sleep, card, card and password, card or password, fingerprint, fingerprint
and password, fingerprint or card, fingerprint and card, fingerprint and card and password (no order), face or
fingerprint or card or password, face and fingerprint, face and password, face and card, face, employee No. and
password, fingerprint or password, employee No.and fingerprint, employee No. and fingerprint and password, face
and fingerprint and card, face and password and fingerprint, employee No. and face, employee No. and fingerprint
and password, face and fingerprint and card, face and password and fingerprint, employee No. and face, face or face
and card, fingerprint or face, card or face or password, card or face, card or face or fingerprint-->
<TimeAccuracy>
<!--req, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan>
<!--req, holiday schedule -->
<holidayPlanNo min="" max=""/>
<!--req, holiday schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<TimeAccuracy>
<!--req, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</HolidayPlan>
<HolidayGroup>
<!--req, holiday group capability -->
<holidayGroupNo min="" max=""/>
<!--req, holiday group No. range -->
<holidayGroupName min="" max=""/>
<!--req, holiday group name length -->
<maxHolidayPlanNum></maxHolidayPlanNum>
<!--req, max. holiday schedule number for holiday group -->
</HolidayGroup>
<PlanTemplate>
<!--req, schedule template capability -->
<templateNo min="" max=""/>
<!--opt, range of schedule template No.-->
<templateName min="" max=""/>
<!--req, schedule template name lenghth -->
<maxHolidayGroupNum></maxHolidayGroupNum>
<!--req, max. holiday group number for schedule template -->
</PlanTemplate>
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
</CardReaderVerifyTypePlan>
363
Device Network SDK (Access Control on Person) Developer Guide
<CardRightPlan>
<!--req, card permission schedule capability -->
<WeekPlan>
<!--req, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--req, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--req, status value range -->
<verifyType opt="invalid,sleep,swipecard,swipecardandpassword"/>
<!--req, authentication method range -->
<TimeAccuracy>
<!--req, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan><!--req, holiday schedule -->
<holidayPlanNo min="" max=""/><!--req, holiday schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<TimeAccuracy>
<!--req, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</HolidayPlan>
<HolidayGroup>
<!--req, holiday group capability-->
<holidayGroupNo min="" max=""/>
<!--req, holiday group No. range -->
<holidayGroupName min="" max=""/>
<!--req, holiday group name length -->
<maxHolidayPlanNum></maxHolidayPlanNum>
<!--req, max. holiday schedule number for holiday group -->
</HolidayGroup>
<PlanTemplate>
<!--req, schedule template capability -->
<templateNo min="" max=""/>
<!--opt, range of schedule template No.-->
<templateName min="" max=""/>
<!--req, schedule template name length -->
<maxHolidayGroupNum></maxHolidayGroupNum>
<!--req, max. holiday group number for schedule template -->
</PlanTemplate>
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
</CardRightPlan>
<Door>
364
Device Network SDK (Access Control on Person) Developer Guide
365
Device Network SDK (Access Control on Person) Developer Guide
366
Device Network SDK (Access Control on Person) Developer Guide
<cardValidUnit opt="day,hour,minute,second">
<!--req, accuracy of card expiry date (if device supports correcting to minute, opt="minute"), if this node is not
returned, the default accuracy is day (opt="day")>
</cardValidUnit>
<!--req, whether the card is valid-->
<!--req, card type-->
<cardType opt="normalcard,disabledcard,blacklistcard,nightwatchcard,
stresscard,supercard,guestcard,mastercard,staffcard,normalopencard,cleancard,standbycard, unlockcard"/>
<doorRight>enable</doorRight>
<!--req, door permission-->
<leaderCard>enable</leaderCard>
<!--req, whether to enable the first card? -->
<swipeNum min="" max=""/>
<!--req, max. card swiping number, o indicates no limit-->
<maxBelongGroup></maxBelongGroup>
<!--req, max. group number belonged to -->
<cardPassword min="" max=""/>
<!--req, card password-->
<doorRightPlanNum></doorRightPlanNum>
<!--req, max. schedule template number for a single door -->
<swipeTime>enabled</swipeTime>
<!--req, swiping times -->
<onlyPasswdOpen opt="true,false"/>
<!--opt, whether to support password opening door, invalid currently -->
<roomNumber min="" max=""/>
<!--opt, Room No.-->
<floorNumber min="" max=""/>
<!--opt,Floor number-->
<employeeNo min="" max=""/>
<!--opt, employee No.-->
<name min="" max=""></name>
<!--req, name (if device returns this node, you can get and set the linked user name of the card by calling card
parameter API directly, so there is no need to API NET_DVR_SET_CARD_USERINFO_CFG and
NET_DVR_GET_CARD_USERINFO_CFG)-->
<departmentNo min="" max=""/>
<!--opt, department No.-->
<schedulePlanNo min="" max=""/>
<!--opt, shift schedule-->
<schedulePlanType opt="personal,department"/>
<!--opt, shift schedule type-->
<lockID min="" max=""/>
<!--req, lock ID-->
<roomCode min="" max=""/>
<!--req, room code-->
<cardRight opt="lowPowerAlarm,openDoorSound,customCardLimit,normalOpen,openLockedDoor,keepWatch"/>
<!--req, card permission-->
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
<roomNumber min="" max=""></roomNumber><!--req, room No.>
<floorNumber min="" max=""></floorNumber><!--req, floor No.>
<SIMNum min="" max=""></SIMNum><!--req, mobile phone number>
<isSupportCardModify>true</isSupportCardModify>
367
Device Network SDK (Access Control on Person) Developer Guide
<!--req, support downloading when card parameters changed (for video intercom device only, by default, this
function is supported by all access control devices)>
</Card>
<AntiSneak>
<!--req, anti-passback capability-->
<startCardReaderNo>enable</startCardReaderNo>
<!--req, anti-passback card reader No. configuration -->
<maxSneakPath></maxSneakPath>
<!--req, max. anti-passback follow-up card reader number-->
</AntiSneak>
<MultiDoorInterlock>
<!--req, multi-door interlocking parameters -->
<maxMultiDoorInterlockGroup></maxMultiDoorInterlockGroup>
<!--req, max. multi-door interlocking group number -->
<maxInterlockDoorNum></maxInterlockDoorNum>
<!--req, max. interlocked door number for one multi-door interlocking group -->
</MultiDoorInterlock>
<AcsWorkStatus>
<!--req, access controller working status parameters -->
<doorLogicalStatus>enable</doorLogicalStatus>
<!--req, door logic status -->
<doorStatus opt="alwaysopen,alwaysclose,normal"/>
<!--req, door status parameters -->
<magneticStatus>enable</magneticStatus>
<!--req, door magnetic status parameters -->
<relayStatus>enable</relayStatus>
<!--req, relay status-->
<caseSensorStatus>enable</caseSensorStatus>
<!--req, case trigger status-->
<BatteryVoltage>enable</BatteryVoltage>
<!--req, battery voltage value -->
<BatteryLowVoltage>enable</BatteryLowVoltage>
<!--req, battery low voltage detection -->
<PowerSupplyStatus>enable</PowerSupplyStatus>
<!--req, device power supply status-->
<multiDoorInterlockStatus>enable</multiDoorInterlockStatus>
<!--req, multi-door interlocking status parameters-->
<antiSneakStatus>enable</antiSneakStatus>
<!--req, anti-passback status parameters-->
<hostAntiDismantleStatus>enable</hostAntiDismantleStatus>
<!--req, control ler tamper ?proof status-->
<indicatorLightStatus>enable</indicatorLightStatus>
<!--req, Supports indicator status-->
<cardReaderOnlineStatus>enable</cardReaderOnlineStatus>
<!--req, card reader connection status -->
<cardReaderAntiDismantleStatus>enable</cardReaderAntiDismantleStatus>
<!--req, card reader tamper-proof status -->
<cardReaderVerifyMode opt="invalid,sleep,swipecard,swipecardandpassword, swipecardorpasswd,
fingerPrint,fingerPrintAndPasswd,fingerPrintor
Card,fingerPrintAndCard,fingerPrintAndCardAndPasswd,faceOrFpOrCardOrPw,
faceAndFingerPrint,faceAndPassword,faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeN
oAndFp,
368
Device Network SDK (Access Control on Person) Developer Guide
employeeNoAndFpAndPw,faceAndFpAndCard,faceAndPwAndFp,employeeNoAndface,faceOrfaceAndCard,fingerPrintO
rFace,swipecardOrFaceOrPw,"/>
<!--req, supported card reader authentication modes: 0-invalid, 1-card, 2-card+password, 3-card, 4-card/password,
5-fingerprint, 6-fingerprint+password, 7-fingerprint/card, 8-fingerprint_card, 9-fingerprint_card+password, 10-face/
fingerprint/card/password, 11-face+fingerprint, 12-face+password, 13-face+card, 14-face, 15-employee No.
+password, 16-fingerprint/password, 17-employee No.+fingerprint, 18-employee No.+fingerprint+password, 19-face
+fingerprint+card, 20-face+password+fingerprint, 21-employee No.+face, 22-face/face+card, 23-fingerprint/face, 24-
card/face/password-->
<setupAlarmStatus>enable</setupAlarmStatus>
<!--req, zone arming status -->
<alarmInStatus>enable</alarmInStatus>
<!--req, alarm input status -->
<alarmOutStatus>enable</alarmOutStatus>
<!--req, alarm output status -->
<cardNum>enable</cardNum>
<!--req, added card number -->
<fireAlarmStatus opt="normal,shortCircuit,break"/>
<!--req, support fire alarm status-->
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
<batteryChargeStatus opt="InCharge,NotCharge"/>
<!--req, battery status: InCharge-Charging, NotCharge-Uncharged>
<masterChannelControllerStatus>enable</masterChannelControllerStatus>
<!--req, supports online status of main lane controller-->
<slaveChannelControllerStatus>enable</slaveChannelControllerStatus>
<!--req, supports online status of slave lane controller-->
<antiSneakServerStatus opt="disable,normal,disconnect"/>
<!--opt, anti-passing back server status: "disable"-disabled, "normal"-normal, "disconnect"-disconnected-->
<whiteFaceNum>enable</whitefaceNum>
<!--req, supports the parameters of face picture quantity in whitelist-->
<blackFaceNum>enable</blackfaceNum>
<!--req, supports the parameters of face picture quantity in blacklist-->
</AcsWorkStatus>
<CaseSensor>
<!--req, event trigger parameters capability -->
<triggerHostBuzzer>enable</triggerHostBuzzer>
<!--req, trigger controller buzzer -->
<triggerCardReaderBuzzer>enable</triggerCardReaderBuzzer>
<!--req, trigger card reader buzzer -->
<triggerAlarmOut>enable</triggerAlarmOut>
<!--req, trigger alarm output -->
<triggerDoorOpen>enable</triggerDoorOpen>
<!--req, support triggered open door by ID-->
<triggerAlarmOutClose>enable</triggerAlarmOutClose>
<!--req, support disable triggered alarm input-->
<triggerAlarmInSetup>enable</triggerAlarmInSetup>
<!--req, support triggered arming region arming-->
<triggerAlarmInClose>enable</triggerAlarmInClose>
<!--req, support triggered arming region disarming-->
</CaseSensor>
<CardReaderCfg>
<!--req, reader parameters capability-->
369
Device Network SDK (Access Control on Person) Developer Guide
370
Device Network SDK (Access Control on Person) Developer Guide
371
Device Network SDK (Access Control on Person) Developer Guide
372
Device Network SDK (Access Control on Person) Developer Guide
opt="doorstatusweekplan,cardreaderverifyweek,cardrightweekplan,doorstatusholidayplan,cardreaderverifyholidaypla
n,cardrightholidayplan,doorstatusholidayplan,doorstatusholidaygroup,cardreaderverifyholidaygroup,cardrightplantem
plate,doorstatusplantemolate,cardreaderverifyplantemplate,card,group,antisneak,eventandCardLinkage,cardPasswdO
pendoor,personStatistics, blackListPicture, IDBlackList"/>
<!--req, supported parameters clearing option -->
<ACSClearParam>
<!--req, extend clear access control host parameter node-->
<localControllerID min="" max=""/>
<!--opt, distributed access controller No.-->
</ACSClearParam>
<MultiHostAntiSneak>
<!--req, over-controllers anti-passback -->
<startAntiSnealHost opt="true,false"/>
<!--opt, whether to enable anti-passback controller -->
<antiSnealHostNum min="" max=""/>
<!--req, controller number for anti-passback controller group -->
<ReadersCfg>
<!--req, over-controllers anti-passback card reader parameters -->
<maxRouteGroupNum></maxRouteGroupNum>
<!--req, max. path number -->
<oneRouteReadersNum min="" max=""/>
<!--req, follow-up card reader number for each path -->
</ReadersCfg>
</MultiHostAntiSneak>
<AcsHostCfg>
<!--opt, access control settings capability -->
<enableRS485Backup opt="true,false"/>
<!--req, whether to support downstream RS485 communication backup -->
<showCapPic opt="true,false"/>
<!--opt,whether to support displaying captured picture on LCD screen-->
<showCardNo opt="true,false"/>
<!--opt,whether to support displaying card No. on LCD screen-->
<showUserInfo opt="true,false"/>
<!--opt,whether to support displaying user information on LCD screen-->
<overlayUserInfo opt="true,false"/>
<!--opt,Whether to overlay user information on the captured picture-->
<voicePrompt opt="true,false"/>
<!--opt,Whether to support sound prompt-->
<uploadCapPic opt="true,false"/>
<!--opt, Whether to support uploading picture after capturing-->
<saveCapPic opt="true,false"/>
<!--opt,Whether to support saving captured picture-->
<inputCardNo opt="true,false"/>
<!--opt, whether supports inputting card No. by button-->
<wifiDetect opt="true,false"/>
<!--opt, whether supports enabling Wi-Fi probe-->
<enable3G4G opt="true,false"/>
<!--opt, enable 3G/4G-->
<protocol opt="Private,OSDP"/>
<!--opt, card reader communication protocol type: "Private"-private protocol (default), "OSDP"-OSDP protocol-->
</AcsHostCfg>
373
Device Network SDK (Access Control on Person) Developer Guide
<EventLinkage>
<!--req, event card linkage-->
<maxEventNum></maxEventNum>
<!--req, max. event linkage number supported by the device -->
<supportMode opt="Event,CardNo,MAC,EmployeeNo"/>
<!--req, supported linkage method, "Event"-event linkage, "CardNo"-Card No. linkage, "MAC"-MAC address linkage,
"EmployeeNo"-Employee No. (person ID)-->
<isSupportRecordVideo opt="true,false"/>
<!--req, whether supports recording linkage-->
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
<isSupportAlarmOutClose opt="true,false"/>
<!--req, whether supports disabling linked alarm output-->
<isSupportAlarmInSetup opt="true,false"/>
<!--req, whether supports arming linked zone-->
<isSupportAlarmInClose opt="true,false"/>
<!--req, whether supports disarming linked zone-->
<isSupportMainDevStopBuzzer opt="true,false"/>
<!--req, whether supports stopping buzzing by access controller-->
<isSupportReaderStopBuzzer opt="true,false"/>
<!--req, whether supports stopping buzzing by linked card reader-->
<audioDisplayMode opt="Close,SinglePlay,CyclePlay"/>
<!--required, linked audio prompt mode: "Close"-disable, "SinglePlay"-play once, "CyclePlay"-loop playing-->
<audioDisplayID min="1" max="32"/>
<!--required, linked audio prompt mode: "Close"-disable, "SinglePlay"-play once, "CyclePlay"-loop playing-->
<isNotSupportOpenDoor>
<!--opt, whether the opening door linkage is not supported-->
</isNotSupportOpenDoor>
<isNotSupportCloseDoor>
<!--opt, whether the closing door linkage is not supported-->
</isNotSupportCloseDoor>
<isNotSupportNormalOpen>
<!--opt, whether the remaining door open is not supported-->
</isNotSupportNormalOpen>
<isNotSupportNormalClose>
<!--opt, whether the remaining door closed is not supported-->
</isNotSupportNormalClose>
<isNotSupportAlarmout>
<!--opt, whether the alarm output linkage is not supported-->
</isNotSupportAlarmout>
<isNotSupportCapturePic>
<!--opt, whether the capture linkage is not supported-->
</isNotSupportCapturePic>
<isNotSupportMainDevBuzzer>
<!--opt, whether not supports buzzing linkage of access controller, if supports, this node will not return-->
</isNotSupportMainDevBuzzer>
<isNotSupportReaderBuzzer>
<!--opt, whether not supports buzzing linkage of card reader, if supports, this node will not returned-->
</isNotSupportReaderBuzzer>
<EventList>
<EventEntry>
374
Device Network SDK (Access Control on Person) Developer Guide
<Index>0</Index>
<mainEventName>DevEvent</mainEventName>
<SubEventNameList>
<subEventName>hostAntiDismantle</subEventName>
<!--req, controller tampering alarm -->
<subEventName>OfflineEcentNearlyFull</subEventName>
<!--req, alarm for offline event exceeding 90% -->
<subEventName>NetBroken</subEventName>
<!--req, network disconnected -->
<subEventName>NetRume</subEventName>
<!--req, network recovery -->
<subEventName>LowBattery</subEventName>
<!--req, battery low voltage -->
<subEventName>BatteryReume</subEventName>
<!--req, battery voltage recovered -->
<subEventName>ACOff</subEventName>
<!--req, AC power off -->
<subEventName>ACResume</subEventName>
<!--req, AC power recovery-->
<subEventName>SDCardFull</subEventName>
<!--req,SD card full alarm-->
<subEventName>LinkageCapturePic</subEventName>
<!--req,Linked capture event alarm-->
<subEventName>ImageQualityLow</subEventName>
<!--req,low face picture quality-->
<subEventName>FingerPrintQualityLow</subEventName>
<!--req,low fingerprint picture quality-->
<subEventName>BatteryElectricLow</subEventName>
<!--req,low battery voltage (for face device only)-->
<subEventName>BatteryElectricResume</subEventName>
<!--req,battery voltage recovery (for face device only)-->
<subEventName>FireImportShortCircuit</subEventName>
<!--req fire input short-circuit alarm-->
<subEventName>FireImportBrokenCircuit</subEventName>
<!--req fire input broken-circuit alarm-->
<subEventName>FireImportResume</subEventName>
<!--req fire input recovery-->
<subEventName>MasterRS485LoopnodeBroken</subEventName>
<!--req master controller RS485 loop node disconnection-->
<subEventName>MasterRS485LoopnodeResume</subEventName>
<!--req master controller RS485 loop node connection recovery-->
<subEventName>DistractControllerOnLine</subEventName>
<!--req,Distributed controller online-->
<subEventName>DistractControllerOffLine</subEventName>
<!--req,Distributed controller offline-->
<subEventName>FireButtonTrigger</subEventName>
<!--req,Fire button triggered-->
<subEventName>FireButtonResume</subEventName>
<!--req,Fire button recovered-->
<subEventName>MaintenanceButtonTrigger</subEventName>
<!--req,Maintenance button triggered-->
<subEventName>MaintenanceButtonResume</subEventName>
375
Device Network SDK (Access Control on Person) Developer Guide
376
Device Network SDK (Access Control on Person) Developer Guide
377
Device Network SDK (Access Control on Person) Developer Guide
378
Device Network SDK (Access Control on Person) Developer Guide
379
Device Network SDK (Access Control on Person) Developer Guide
380
Device Network SDK (Access Control on Person) Developer Guide
381
Device Network SDK (Access Control on Person) Developer Guide
382
Device Network SDK (Access Control on Person) Developer Guide
<FingerPrint>
<!--req, fingerprint parameters -->
<enable opt="true,false"/>
<!--req, whether to support fingerprint settings -->
<cardNo min="" max=""/>
<!--req, card No. length -->
<fingerPrintLen min="" max=""/>
<!--req, fingerprint data length-->
<EnableCardReader min="" max=""/>
<!--req, supported card reader No.-->
<fingerType opt="Normal,Stress,patrolFP,superFP,dismissingFP"/>
<!--req, "Normal"-normal fingerprint, "Stress"-duress fingerprint, "patrolFP"-patrol fingerprint, "superFP"-super
fingerprint, "dismissingFP"-dismiss fingerprint-->
<fingerPrintID min="" max=""/>
<!--req, finger ID-->
<callbackMode opt="allRetrun,partReturn"/>
<!--req, callback mode, allRetrun-block (return after all the card readers are offline), partReturn-non-block (return
after a part of card readers are offline)-->
<isSupportFingerNo/>
<!--opt, boolean, whether the device supports setting finger ID: "true"-yes-->
<recvStatus opt="0,1,2,3,4,5,6,7,8,9,10"/>
<!--opt, error status: 0-success, 1-incorrect finger ID, 2-incorrect fingerprint type, 3-invalid card No. (the card No.
does not meet the device requirements), 4-the fingerprint is not linked with employee No. or card No. (the employee
No. or the card No. is NULL), 5-the employee No. does not exist, 6-the fingerprint data length is 0, 7-invalid card
reader No., 8-invalid employee No., 9-invalid first-time authentication value, 10-other parameters error-->
<employeeNo min="" max=""/>
<!--opt, employee No. (person ID)-->
<leaderFP opt="true"/>
<!--opt, whether the fingerprint supports first-time authentication: "true"-yes, "false" or this node is not returned-
no-->
<isSupportFingerCover>
<!--opt, xs:boolean, whether to overwrite the old fingerprint information when applying a new fingerprint
information linked to the same employee No. (person ID): "true"-yes, this node is not returned-no-->
</isSupportFingerCover>
</FingerPrint>
<DelFingerPrint>
<!--req, delete fingerprint parameter, which corresponds to the command NET_DVR_DEL_FINGERPRINT_CFG_V50.
This node will not be returned if device does not support this function. After calling the API
383
Device Network SDK (Access Control on Person) Developer Guide
<SMS>
<enable opt="true,false"/>
<!--req, whether to support SMS funtion -->
<PhoneLinkageDoor>
<!--req, mobile phone links with door -->
<openRight opt="true,false"/>
<!--req, door opening permission -->
<closeRight opt="true,false"/>
<!--req, door closing permission -->
<NormalOpenRight opt="true,false"/>
<!--req, door remained opening permission -->
<NormalCloseRight opt="true,false"/>
<!--req, door remained closing permission -->
<armRight opt="true,false"/>
<!--req, arming permission -->
<DisarmRight opt="true,false"/>
<!--req, disarming permission -->
</PhoneLinkageDoor>
<whiteListNum min="1" max="32"/>
<!--req, whitelist number-->
</SMS>
<RealteUserInfo>
<!--req, NET_DVR_CARD_CFG_SEND_DATA and NET_DVR_CARD_USER_INFO_CFG-->
<enabled opt="true,false"/>
<!--req, whether to support card No. being linked to user information-->
<userNameLen min="" max=""/>
<!--req, user name length-->
</RealteUserInfo>
<ContinuousShootCfg>
<!--req,NET_DVR_SNAPCFG-->
<enabled opt="true,false"/>
<!--req,whether to support triggering capture parameters configuration-->
<relatedDriveWay min="" max=""/>
<!--req, IO related vehicle lane No.-->
<snapTimes min="" max=""/>
<!--req, coil capture times:, 0-5-->
384
Device Network SDK (Access Control on Person) Developer Guide
2048*768,160*120,336*256,384*256,384*216,320*256,320*192,512*384,480*272,512*272,288*320,144*176,
480*640,240*320,120*160,576*720,720*1280,576*960, 180*240, 360*480, 540*720, 720*960, 960*1280,
1080*1440, Auto"/>
<!-- opt,image size-->
<picQuality opt="best,good,general" />
<!-- opt,image quality: 0-Best, 1- Better, 2- Good-->
</JpegParam>
</ContinuousShootCfg>
<PictureCfg>
<!--req,reuse some fields of NET_DVR_PICTURECFG-->
<enableUp opt="true,false"/>
<!--req, whether to support background picture uploading-->
<enableDel opt="true,false"/>
<!--req, whether to support deleting background picture-->
<useType min="" max=""/>
<!--req,picture type, 1- background picture, 2-GIF picture, 3-CAD picture-->
<sequence min="" max=""/>
<!--req, sequence No.-->
<BasemapCfg>
<sourWidth min="" max=""/>
<!--req, initial picture width-->
<sourHeight min="" max=""/>
<!--req, initial picture height-->
</BasemapCfg>
</PictureCfg>
<ExternalDevCfg>
<!--req,NET_DVR_ACS_EXTERNAL_DEV_CFG-->
<IDCardUpMode opt="number,all"/>
<!--req, ID information report, number: upload 18-digit ID number; all: upload all information-->
<cardVerifyMode opt="remoteCenter,clientPlatform"/>
<!--req, card verification mode, remoteCenter: remote center verification; clientPlatform: client platform
verification-->
<ACSDevType
opt="IDCardReader,ICReader,QRCodeReader,fingerPrintReader,QRCodeReaderandScreen,recycleCard,screen,fingerPrin
tModule,voiceModule,peopleAndIdCard"/>
<!--req, device model: 1- ID card reader, 2- IC card reader, 3- QR code reader, 4- Fingerprint reader, 5- Screen + QR
code reader, 6- Card collector, 7- Screen, 8- Fingerprint scanner, 9- Voice module, 10-person and ID card device-->
<doorMode opt="inDoor,outDoor"/>
385
Device Network SDK (Access Control on Person) Developer Guide
386
Device Network SDK (Access Control on Person) Developer Guide
<FaceParam>
<!--req,Face parameter-->
<enable opt="true"/>
<!--req,whether to support face parameter configuration-->
<cardNo min="" max=""/>
<!--req,Card No. length-->
<faceLen min="" max=""/>
<!--req,Face data length-->
<enableCardReader min="" max=""/>
<!--req,Supported card reader No.-->
<faceID min="" max=""/>
<!--req,Face No.-->
<faceDataType opt="module,picture"/>
<!--req,Face data type (the default type is template if there is no this node)-->
<isSupportFaceCover>
<!--opt, whether supports covering existed data when applying face picture data-->
</isSupportFaceCover>
</FaceParam>
<isSupportGetDeviceEvent opt="true,false"/>
<!--opt, whether to support getting device event: "true"-yes, "false" or this node is not returned-no-->
<isSupportDeployType min="0" max="1"/>
<!--opt, supported arming type: 0-arm via client software, 1-real-time arming>
<UploadRightControllerAudio>
<!--req, uploading audio file of main controller-->
<audioID min="2" max="32"/>
<!--req, audio file ID. 0xffffffff indicates uploading all audio files, and currently the device only supports uploading
all audio files instead of uploading a single audio file by ID-->
</UploadRightControllerAudio>
<DownloadRightControllerAudio>
<!--req, downloading audio file of main controller-->
<audioID min="2" max="32"/>
387
Device Network SDK (Access Control on Person) Developer Guide
<!--req, audio file ID. 0xffffffff indicates downloading all audio files, and currently the device only supports
downloading all audio files instead of downloading a single audio file by ID-->
</DownloadRightControllerAudio>
<BlackListPictureParam>
<!--req, parameter of picture in blacklist (NET_DVR_BULK_UPLOAD_BLACK_LIST_PICTURE)-->
<BlackListPictureCond>
<!--req, blacklist picture condition-->
<pictureNum min="" max=""/>
<!--req, picture quantity-->
</BlackListPictureCond>
<cardNo min="" max=""/>
<!--req, card No.-->
<name min="" max=""/>
<!--req, name-->
<sex opt="male,female"/>
<!--req, gender: male- Male, female- Female-->
<pictureValid opt="invalid,valid"/>
<!--req, whether blacklist picture is valid: invalid- Invalid,valid? Valid-->
<pictureLen min="" max=""/>
<!--req, blacklist picture size-->
<BlackListPictureStatus>
<!--req, blacklist picture status-->
<cardNo min="" max=""/>
<!--req, card No.-->
<status opt=" processing,failed,success"/>
<!--req, status: processing- Processing, failed- Failed,success- Succeeded-->
</BlackListPictureStatus>
</BlackListPictureParam>
<IDBlackListParam>
<!--ID blacklist parameter (NET_DVR_BULK_UPLOAD_ID_BLACK_LIST)-->
<IDBlackListCond>
<!--req, ID blacklist condition-->
<blackListNum min="" max=""/>
<!--req, blacklist quantity-->
</IDBlackListCond>
<blackListValid opt="invalid,valid"/>
<!--req, whether ID card blacklist is valid or not-->
<IDBlackListStatus>
<!--req, ID card blacklist status-->
<IDNum min="" max=""/>
<!--req, ID number-->
<status opt=" processing,failed,success"/>
<!--req, status: processing- Processing, failed- Failed, success- Succeeded-->
</IDBlackListStatus>
</IDBlackListParam>
<CaptureFingerPrint>
<!--opt, xs:boolean, collect fingerprint information-->
<pictureType opt="full,quarter">
<!--req, xs:string, fingerprint picture type-->
</pictureType>
<fingerNo min="1" max="10">
<!--req, xs:integer, fingerprint No.-->
388
Device Network SDK (Access Control on Person) Developer Guide
</fingerNo>
<isSupportFingerData opt="true,false">
<!--req, xs:boolen, fingerprint data-->
</isSupportFingerData>
<isSupportFingerPicture opt="true,false">
<!--req, xs:boolen, fingerprint picture-->
</isSupportFingerPicture>
<fingerPrintQuality min="1" max="100">
<!--req, xs:integer, fingerprint quality-->
</fingerPrintQuality>
</CaptureFingerPrint>
<CaptureFace>
<!--opt, xs:boolean, collect face information-->
<isSupportFaceTemplate1 opt="true,false">
<!--req, xs:boolen, face template data 1-->
</isSupportFaceTemplate1>
<isSupportFaceTemplate2 opt="true,false">
<!--req, xs:boolen, face template data 2-->
</isSupportFaceTemplate2>
<isSupportFacePic opt="true,false">
<!--req, xs:boolen, face picture data-->
</isSupportFacePic>
<faceQuality min="1" max="100">
<!--req, xs:integer, face quality-->
</faceQuality>
<captureProgress opt="0,100">
<!--req, xs:integer, collection progress-->
</captureProgress>
<isSupportInfraredFacePic opt="true,false"><!--req, xs:boolen, whether to support infrared face picture data></
isSupportInfraredFacePic>
</CaptureFace>
<isSupportUploadCertificateBlackList>
<!--opt, xs:boolean, Whether to support uploading ID Card blacklist-->
</isSupportUploadCertificateBlackList>
<isSupportGetRegisterInfo>
<!--opt, xs:boolean, Whether supports getting registered information-->
</isSupportGetRegisterInfo>
<isSupportDownloadCertificateBlackListTemplet>
<!--opt, xs:boolean, Whether to support downloading template of ID card blacklist-->
</isSupportDownloadCertificateBlackListTemplet>
<ScheduleInfo>
<!-- opt, xs:boolean, shift schedule information-->
<command opt="personal,everyone">
<!--req, xs:string, Search condition-->
</command>
<employeeNo min="" max="">
<!--req, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--req, xs:string, Name-->
</name>
<departmentName min="1" max="32">
389
Device Network SDK (Access Control on Person) Developer Guide
390
Device Network SDK (Access Control on Person) Developer Guide
</lateMinutes>
<leaveEarlyTimes min="" max="">
<!--req, xs:integer, Early Leave Times-->
</leaveEarlyTimes>
<leaveEarlyMinutes min="" max="">
<!--req, xs:integer, Total eearly leave time (minutes)-->
</leaveEarlyMinutes>
<overtimeStandard min="" max="">
<!--req, xs:integer, Standard Overtime (minutes)-->
</overtimeStandard>
<overtimeActual min="" max="">
<!--req, xs:integer, Actual Overtime (minutes)-->
</overtimeActual>
<attendanceStandard min="" max="">
<!--req, xs:integer, Standard Attendance (day)-->
</attendanceStandard>
<attendanceActual min="" max="">
<!--req, xs:integer, Actual Attendance (Day)-->
</attendanceActual>
<absentDays min="" max="">
<!--req, xs:integer, Absent (Day)-->
</absentDays>
</AttendanceSummaryInfo>
<AttendanceRecordInfo>
<!--opt, xs:boolean, Time and Attendance Records-->
<command opt="personal,everyone">
<!--req, xs:string, Search Condition-->
</command>
<employeeNo min="" max="">
<!--req, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--req, xs:string, Name-->
</name>
<departmentName min="1" max="32">
<!--req, xs:string, Department Name-->
</departmentName>
<attendanceTime>
<!--req, xs:time, ISO8601 time, "2016-02-17T17:30:08+08:00", Attendance Time-->
</attendanceTime>
</AttendanceRecordInfo>
<AbnormalInfo>
<!-- opt, xs:boolean, Exception Statistics Information-->
<command opt="personal,everyone">
<!--req, xs:string, Search Condition-->
</command>
<employeeNo min="" max="">
<!--req, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--req, xs:string, Name-->
</name>
391
Device Network SDK (Access Control on Person) Developer Guide
392
Device Network SDK (Access Control on Person) Developer Guide
6.108 XML_CaptureFingerPrint
CaptureFingerPrint message in XML format
<CaptureFingerPrint version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<fingerData><!--dep, xs:string, fingerprint data, which is between 1 and 768, and it should be encoded by Base64--></
fingerData>
<fingerNo><!--req, xs:integer, finger No., which is between 1 and 10--></fingerNo>
<fingerPrintQuality><!--req, xs:integer, fingerprint quality, which is between 1 and 100--></fingerPrintQuality>
</CaptureFingerPrint>
6.109 XML_CaptureFingerPrintCond
CaptureFingerPrintCond message in XML format
<CaptureFingerPrintCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<fingerNo><!--req, xs: integer, finger No., which is between 1 and 10--></fingerNo>
</CaptureFingerPrintCond>
6.110 XML_Cap_AccessControl
AccessControl capability message in XML format
<AccessControl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportWiegandCfg>
<!--opt, xs:boolean, whether it supports Wiegand configuration-->
</isSupportWiegandCfg>
<isSupportModuleStatus>
393
Device Network SDK (Access Control on Person) Developer Guide
<!--opt, xs:boolean, whether it supports getting the status of secure door control unit-->
</isSupportModuleStatus>
<isSupportSNAPConfig>
<!--opt, xs:boolean, whether it supports getting capture linkage parameters-->
</isSupportSNAPConfig>
<LocalController><!--opt-->
<isSupportLocalControllerManage>
<!--opt, xs:boolean, whether it supports distributed access controller management-->
</isSupportLocalControllerManage>
<isSupportLocalControllerControl>
<!--opt, xs:boolean, whether it supports distributed access controller control-->
</isSupportLocalControllerControl>
</LocalController>
<isSupportUSBManage>
<!--opt, xs:boolean, whether it supports USB management of access control device-->
</isSupportUSBManage>
<isSupportIdentityTerminal>
<!--opt, xs:boolean, whether it supports face recognition terminal configuration-->
</isSupportIdentityTerminal>
<isSupportDepartmentParam>
<!--opt, xs:boolean, whether it supports setting department parameters-->
</isSupportDepartmentParam>
<isSupportSchedulePlan>
<!--opt, xs:boolean, whether it supports setting shift schedule-->
</isSupportSchedulePlan>
<isSupportAttendanceRule>
<!--opt, xs:boolean, whether it supports setting time and attendance rule-->
</isSupportAttendanceRule>
<isSupportOrdinaryClass>
<!--opt, xs:boolean, whether it supports setting normal shift parameters-->
</isSupportOrdinaryClass>
<isSupportWorkingClass>
<!--opt, xs:boolean, whether it supports setting man-hour shift parameters-->
</isSupportWorkingClass>
<isSupportAttendanceHolidayGroup>
<!--opt, xs:boolean, whether it supports setting holiday group for time and attendance-->
</isSupportAttendanceHolidayGroup>
<isSupportAttendanceHolidayPlan>
<!--opt, xs:boolean, whether it supports setting holiday schedule for time and attendance-->
</isSupportAttendanceHolidayPlan>
<isSupportLadderControlRelay>
<!--opt, xs:boolean, whether it supports setting elevator controller relay-->
</isSupportLadderControlRelay>
<isSupportWiegandRuleCfg>
<!--opt, xs:boolean, whether it supports setting Wiegand rule-->
</isSupportWiegandRuleCfg>
<isSupportM1CardEncryptCfg>
<!--opt, xs:boolean, whether it supports M1 card encryption authentication-->
</isSupportM1CardEncryptCfg>
<isSupportDeployInfo>
<!--opt, xs:boolean, whether it supports getting arming information-->
</isSupportDeployInfo>
394
Device Network SDK (Access Control on Person) Developer Guide
<isSupportSubmarineBack>
<!--opt, xs:boolean, whether it supports specifying anti-passing back server-->
</isSupportSubmarineBack>
<isSupportSubmarineBackHostInfo>
<!--opt, xs:boolean, whether it supports setting access controllers with anti-passing back enabled-->
</isSupportSubmarineBackHostInfo>
<isSupportStartReaderInfo>
<!--opt, xs:boolean, whether it supports setting first card reader-->
</isSupportStartReaderInfo>
<isSupportSubmarineBackReader>
<!--opt, xs:boolean, whether it supports setting anti-passing back card reader-->
</isSupportSubmarineBackReader>
<isSupportServerDevice>
<!--opt, xs:boolean, whether it supports setting anti-passing back server information-->
</isSupportServerDevice>
<isSupportReaderAcrossHost>
<!--opt, xs:boolean, whether it supports enabling cross-controller anti-passing back function of card reader-->
</isSupportReaderAcrossHost>
<isSupportClearCardRecord>
<!--opt, xs:boolean, whether it supports clearing card swiping records in anti-passing back server-->
</isSupportClearCardRecord>
<isSupportSubmarineBackMode>
<!--opt, xs:boolean, whether it supports setting anti-passing back mode-->
</isSupportSubmarineBackMode>
<isSupportClearSubmarineBack>
<!--opt, xs:boolean, whether it supports clearing cross-controller anti-passing back information-->
</isSupportClearSubmarineBack>
<isSupportRemoteControlDoor>
<!--opt, xs:boolean, whether it supports remote door, elevator, and lock control: "true"-yes, this node is not
returned-no-->
</isSupportRemoteControlDoor>
<isSupportUserInfo><!--opt, xs:boolean, whether it supports person management based on person--></
isSupportUserInfo>
<EmployeeNoInfo><!--dep, employee No. (person ID) information, this node is valid only when the
isSupportUserInfo is "true"-->
<employeeNo min="" max=""><!--opt, employee No. (person ID)--></employeeNo>
<characterType opt="any,number">
<!--opt, employee No. (person) ID type: "any"-any characters (default), "number"-digits (from 0 to 9), only one
value can be returned-->
</characterType>
<isSupportCompress>
<!--opt, xs:boolean, whether it supports compressing employee No. (person) ID for storage: "true"-yes, this node is
not returned-no-->
</isSupportCompress>
</EmployeeNoInfo>
<isSupportCardInfo><!--opt, xs:boolean, whether it supports card management based on person: "true"-yes, this
node is not returned-no--></isSupportCardInfo>
<isSupportUserInfoDetailDelete><!--opt, xs:boolean, whether it supports deleting person information and
permission: "true"-yes, this node is not returned-no--></isSupportUserInfoDetailDelete>
<isSupportAuthCodeInfo>
<!--opt, xs:boolean, whether it supports authentication password management: "true"-yes, this node is not
returned-no-->
395
Device Network SDK (Access Control on Person) Developer Guide
</isSupportAuthCodeInfo>
<isSupportFingerPrintCfg>
<!--opt, xs:boolean, whether it supports configuring fingerprint parameters: "true"-yes, this node is not returned-
no-->
</isSupportFingerPrintCfg>
<isSupportFingerPrintDelete>
<!--opt, xs:boolean, whether it supports deleting fingerprint: "true"-yes, this node is not returned-no-->
</isSupportFingerPrintDelete>
<isSupportCaptureFingerPrint>
<!--opt, xs:boolean, whether it supports collecting fingerprint information: "true"-yes, this node is not returned-no--
>
</isSupportCaptureFingerPrint>
<isSupportDoorStatusWeekPlanCfg>
<!--opt, xs:boolean, whether it supports configuring door control week schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusWeekPlanCfg>
<isSupportVerifyWeekPlanCfg>
<!--opt, xs:boolean, whether it supports configuring week schedule of the card reader authentication mode: "true"-
yes, this node is not returned-no-->
</isSupportVerifyWeekPlanCfg>
<isSupportCardRightWeekPlanCfg>
<!--opt, xs:boolean, whether it supports configuring week schedule of the access permission control: "true"-yes, this
node is not returned-no-->
</isSupportCardRightWeekPlanCfg>
<isSupportDoorStatusHolidayPlanCfg>
<!--opt, xs:boolean, whether it supports configuring door control holiday schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusHolidayPlanCfg>
<isSupportVerifyHolidayPlanCfg>
<!--opt, xs:boolean, whether it supports configuring holiday schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayPlanCfg>
<isSupportCardRightHolidayPlanCfg>
<!--opt, xs:boolean, whether it supports configuring holiday schedule of the access permission control: "true"-yes,
this node is not returned-no-->
</isSupportCardRightHolidayPlanCfg>
<isSupportDoorStatusHolidayGroupCfg>
<!--opt, xs:boolean, whether it supports configuring holiday group of the door control schedule: "true"-yes, this
node is not returned-no-->
</isSupportDoorStatusHolidayGroupCfg>
<isSupportVerifyHolidayGroupCfg>
<!--opt, xs:boolean, whether it supports configuring holiday group of the control schedule of the card reader
authentication mode: "true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayGroupCfg>
<isSupportUserRightHolidayGroupCfg>
<!--opt, xs:boolean, whether it supports configuring holiday group of the access permission control schedule: "true"-
yes, this node is not returned-no-->
</isSupportUserRightHolidayGroupCfg>
<isSupportDoorStatusPlanTemplate>
<!--opt, xs:boolean, whether it supports configuring door control schedule template: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusPlanTemplate>
396
Device Network SDK (Access Control on Person) Developer Guide
<isSupportVerifyPlanTemplate>
<!--opt, xs:boolean, whether it supports configuring schedule template of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyPlanTemplate>
<isSupportUserRightPlanTemplate>
<!--opt, xs:boolean, whether it supports configuring schedule template of the access permission control: "true"-yes,
this node is not returned-no-->
</isSupportUserRightPlanTemplate>
<isSupportDoorStatusPlan>
<!--opt, xs:boolean, whether it supports configuring door control schedule: "true"-yes, this node is not returned-no--
>
</isSupportDoorStatusPlan>
<isSupportCardReaderPlan>
<!--opt, xs:boolean, whether it supports configuring control schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportCardReaderPlan>
<isSupportClearPlansCfg>
<!--opt, xs:boolean, whether it supports clearing the access control schedule parameters: "true"-yes, this node is
not returned-no-->
</isSupportClearPlansCfg>
<isSupportRemoteControlBuzzer>
<!--opt, xs:boolean, whether it supports remotely controlling the buzzer of the card reader: "true"-yes, this node is
not returned-no-->
</isSupportRemoteControlBuzzer>
<isSupportEventCardNoList>
<!--opt, xs:boolean, whether it supports getting the list of event and card linkage ID: "true"-yes, this node is not
returned-no-->
</isSupportEventCardNoList>
<isSupportEventCardLinkageCfg>
<!--opt, xs:boolean, whether it supports configuring event and card linkage parameters: "true"-yes, this node is not
returned-no-->
</isSupportEventCardLinkageCfg>
<isSupportClearEventCardLinkageCfg>
<!--opt, xs:boolean, whether it supports clearing event and card linkage parameters: "true"-yes, this node is not
returned-no-->
</isSupportClearEventCardLinkageCfg>
<isSupportAcsEvent>
<!--opt, xs:boolean, whether it supports searching for access control events: "true"-yes, this node is not returned-
no-->
</isSupportAcsEvent>
<isSupportAcsEventTotalNum>
<!--opt, xs:boolean, whether it supports getting total number of access control events by specific conditions: "true"-
yes, this node is not returned-no-->
</isSupportAcsEventTotalNum>
<isSupportDeployInfo>
<!--opt, xs:boolean, whether it supports getting the arming information: "true"-yes, this node is not returned-no-->
</isSupportDeployInfo>
<isSupportEventOptimizationCfg>
<!--opt, xs:boolean, whether it supports configuring event optimization: "true"-yes, this node is not returned-no-->
</isSupportEventOptimizationCfg>
<isSupportAcsWorkStatus>
<!--opt, xs:boolean, whether it supports getting working status of the access control device: "true"-yes, this node is
397
Device Network SDK (Access Control on Person) Developer Guide
not returned-no-->
</isSupportAcsWorkStatus>
<isSupportDoorCfg>
<!--opt, xs:boolean, whether it supports configuring door parameters: "true"-yes, this node is not returned-no-->
</isSupportDoorCfg>
<isSupportCardReaderCfg>
<!--opt, xs:boolean, whether it supports configuring card reader parameters: "true"-yes, this node is not returned-
no-->
</isSupportCardReaderCfg>
<isSupportAcsCfg>
<!--opt, xs:boolean, whether it supports configuring parameters of access control device: "true"-yes, this node is not
returned-no-->
</isSupportAcsCfg>
<isSupportGroupCfg>
<!--opt, xs:boolean, whether it supports configuring group parameters: "true"-yes, this node is not returned-no-->
</isSupportGroupCfg>
<isSupportClearGroupCfg>
<!--opt, xs:boolean, whether it supports clearing group parameters: "true"-yes, this node is not returned-no-->
</isSupportClearGroupCfg>
<isSupportMultiCardCfg>
<!--opt, xs:boolean, whether it supports configuring multiple authentication mode: "true"-yes, this node is not
returned-no-->
</isSupportMultiCardCfg>
<isSupportMultiDoorInterLockCfg>
<!--opt, xs:boolean, whether it supports configuring multi-door interlocking parameters: "true"-yes, this node is not
returned-no-->
</isSupportMultiDoorInterLockCfg>
<isSupportAntiSneakCfg>
<!--opt, xs:boolean, whether it supports configuring anti-passing back parameters in the device: "true"-yes, this
node is not returned-no-->
</isSupportAntiSneakCfg>
<isSupportCardReaderAntiSneakCfg>
<!--opt, xs:boolean, whether it supports configuring anti-passing back parameters for the card reader in the device:
"true"-yes, this node is not returned-no-->
</isSupportCardReaderAntiSneakCfg>
<isSupportClearAntiSneakCfg>
<!--opt, xs:boolean, whether it supports clearing anti-passing back parameters: "true"-yes, this node is not returned-
no-->
</isSupportClearAntiSneakCfg>
<isSupportClearAntiSneak>
<!--opt, xs:boolean, whether it supports clearing anti-passing back records in the device: "true"-yes, this node is not
returned-no-->
</isSupportClearAntiSneak>
<isSupportSmsRelativeParam>
<!--opt, xs:boolean, whether it supports configuring message function: "true"-yes, this node is not returned-no-->
</isSupportSmsRelativeParam>
<isSupportPhoneDoorRightCfg>
<!--opt, xs:boolean, whether it supports configuring the door permission linked to the mobile phone number:
"true"-yes, this node is not returned-no-->
</isSupportPhoneDoorRightCfg>
<isSupportOSDPStatus>
<!--opt, xs:boolean, whether it supports searching for OSDP card reader status: "true"-yes, this node is not returned-
398
Device Network SDK (Access Control on Person) Developer Guide
no-->
</isSupportOSDPStatus>
<isSupportOSDPModify>
<!--opt, xs:boolean, whether it supports editing OSDP card reader ID: "true"-yes, this node is not returned-no-->
</isSupportOSDPModify>
<isSupportLogModeCfg>
<!--opt, xs:boolean, whether it supports configuring log mode: "true"-yes, this node is not returned-no-->
</isSupportLogModeCfg>
<FactoryReset>
<isSupportFactoryReset><!--opt, xs: boolean, whether it supports restoring to default settings by condition--></
isSupportFactoryReset>
<mode opt="full,basic,part"><!--opt, xs: string, conditions for restoring to default settings--></mode>
</FactoryReset>
<isSupportNFCCfg><!--opt, xs:boolean,whether it supports enabling or disabling NFC function: "true"-yes, this node
is not returned-no--></isSupportNFCCfg>
<isSupportRFCardCfg><!--opt, xs:boolean,whether it supports enabling or disabling RF card recognition: "true"-yes,
this node is not returned-no--></isSupportRFCardCfg>
<isSupportCaptureFace>
<!--opt, xs:boolean, whether it supports collecting face pictures: "true"-yes, this node is not returned-no-->
</isSupportCaptureFace>
<isSupportCaptureInfraredFace>
<!--opt, xs:boolean, whether it supports collecting infrared face pictures: "true"-yes, this node is not returned-no-->
</isSupportCaptureInfraredFace>
<isSupportFaceRecognizeMode>
<!--opt, xs:boolean, whether it supports configuring facial recognition mode: "true"-yes, this node is not returned-
no-->
</isSupportFaceRecognizeMode>
<isSupportRemoteControlPWChcek>
<!--opt, xs:boolean, whether it supports verifying the password for remote door control: "true"-yes, this node is not
returned-no-->
</isSupportRemoteControlPWChcek>
<isSupportRemoteControlPWCfg>
<!--opt, xs:boolean, whether it supports configuring the password for remote door control: "true"-yes, this node is
not returned-no-->
</isSupportRemoteControlPWCfg>
<isSupportAttendanceStatusModeCfg>
<!--opt, xs:boolean, whether it supports configuring attendance mode: "true"-yes, this node is not returned-no-->
</isSupportAttendanceStatusModeCfg>
<isSupportAttendanceStatusRuleCfg>
<!--opt, xs:boolean, whether it supports configuring attendance status and rule: "true"-yes, this node is not
returned-no-->
</isSupportAttendanceStatusRuleCfg>
<isSupportCaptureCardInfo>
<!--opt, xs:boolean, whether it supports collecting card information: "true"-yes, this node is not returned-no-->
</isSupportCaptureCardInfo>
<isSupportCaptureIDInfo>
<!--opt, xs:boolean, whether it supports collecting ID card information: "true"-yes, this node is not returned-no-->
</isSupportCaptureIDInfo>
<isSupportCaptureRule>
<!--opt, xs:boolean, whether it supports configuring online collection rules: "true"-yes, this node is not returned-no--
>
</isSupportCaptureRule>
399
Device Network SDK (Access Control on Person) Developer Guide
<isSupportCapturePresetParam>
<!--opt, xs:boolean, whether it supports configuring preset parameters of online collection: "true"-yes, this node is
not returned-no-->
</isSupportCapturePresetParam>
<isSupportOfflineCapture>
<!--opt, xs:boolean, whether it supports offline collection: "true"-yes, this node is not returned-no-->
</isSupportOfflineCapture>
<isSupportCardOperations>
<!--opt, xs:boolean, whether it supports card operation: "true"-yes, this node is not returned-no-->
</isSupportCardOperations>
<isSupportRightControllerAudio>
<!--optional, xs:boolean, whether it supports configuring audio file parameters of the main controller-->
</isSupportRightControllerAudio>
<isSupportChannelControllerCfg>
<!--optional, xs:boolean, whether it supports configuring lane controller-->
</isSupportChannelControllerCfg>
<isSupportGateDialAndInfo>
<!--optional, xs:boolean, whether it supports getting local DIP and information of the turnstile-->
</isSupportGateDialAndInfo>
<isSupportGateStatus>
<!--optional, xs:boolean, whether it supports getting turnstile status-->
</isSupportGateStatus>
<isSupportGateIRStatus>
<!--optional, xs:boolean, whether it supports getting the status of the active infrared intrusion detector of the
turnstile-->
</isSupportGateIRStatus>
<isSupportGateRelatedPartsStatus>
<!--optional, xs:boolean, whether it supports getting related components' status of the turnstile-->
</isSupportGateRelatedPartsStatus>
<isSupportChannelControllerAlarmLinkage>
<!--optional, xs:boolean, whether it supports configuring alarm linkage of the lane controller-->
</isSupportChannelControllerAlarmLinkage>
<isSupportChannelControllerAlarmOut>
<!--optional, xs:boolean, whether it supports configuring alarm output of the lane controller-->
</isSupportChannelControllerAlarmOut>
<isSupportChannelControllerAlarmOutControl>
<!--optional, xs:boolean, whether it supports controlling alarm output of the lane controller-->
</isSupportChannelControllerAlarmOutControl>
<isSupportChannelControllerTypeCfg>
<!--optional, xs:boolean, whether it supports configuring device type of the lane controller-->
</isSupportChannelControllerTypeCfg>
</AccessControl>
6.111 XML_Cap_CaptureFingerPrint
CaptureFingerPrint capability message in XML format
<CaptureFingerPrint version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<CaptureFingerPrintCond><!--req, xs: integer, finger No.-->
<fingerNo min="1" max="10"></fingerNo>
400
Device Network SDK (Access Control on Person) Developer Guide
</CaptureFingerPrintCond>
<fingerData min="1" max="768"><!--dep, xs:string, fingerprint data--></fingerData>
<fingerNo min="1" max="10"><!--req, xs:integer, finger No.--></fingerNo>
<fingerPrintQuality min="1" max="100"><!--req, xs:integer, fingerprint quality--></fingerPrintQuality>
</CaptureFingerPrint>
6.112 XML_Cap_ClearCardRecord
ClearCardRecord capability message in XML format
<ClearCardRecord version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearAllCard opt="true,false">
<!--req, xs: boolean, whether to clear all card swiping records in the cross-controller anti-passing back server-->
</clearAllCard>
<CardList size="32">
<cardNo min="1" max="32"><!--opt, xs: string, card No.--></cardNo>
</CardList>
<EmployeeNoList size="32">
<employeeNo min="" max=""><!--opt, xs:string, employee No. (person ID)--></employeeNo>
</EmployeeNoList>
</ClearCardRecord>
6.113 XML_Cap_ClearSubmarineBack
ClearSubmarineBack capability message in XML format
<ClearSubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearHostInfo opt="true,false"><!--opt, xs: boolean, whether to clear access controller information--></
clearHostInfo>
<clearReaderInfo opt="true,false"><!--opt, xs: boolean, whether to clear card reader information--></
clearReaderInfo>
<clearSubmarineBack opt="true,false"><!--opt, xs: boolean, whether to clear anti-passing back server parameters--
></clearSubmarineBack>
<clearSubmarineBackHostInfo opt="true,false">
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of access controllers-->
</clearSubmarineBackHostInfo>
<clearStartReaderInfo opt="true,false"><!--opt, xs: boolean, whether to clear first card reader parameters--></
clearStartReaderInfo>
<clearSubmarineBackReader opt="true,false">
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of card readers-->
</clearSubmarineBackReader>
<clearSubmarineBackMode opt="true,false">
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back mode parameters-->
</clearSubmarineBackMode>
<clearServerDevice opt="true,false"><!--opt, xs: boolean, whether to clear the parameters of cross-controller anti-
passing back server--></clearServerDevice>
<clearReaderAcrossHost opt="true,false">
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back status of card readers-->
401
Device Network SDK (Access Control on Person) Developer Guide
</clearReaderAcrossHost>
</ClearSubmarineBack>
6.114 XML_Cap_GetAcsEvent
GetAcsEvent capability message in XML format
<GetAcsEvent version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<EventCond><!--req, event search conditions-->
<majorType></majorType><!--req, event major type, see details in Access Control Event Types-->
<minorType></minorType><!--req, event minor type, see details in Access Control Event Types-->
<startTime></startTime><!--req, start time-->
<endTime></endTime><!--req, end time-->
<localOrUTC></localOrUTC><!--opt, time type: "Local"-device local time (default), "UTC"-UTC time. If this node is
not returned, the startTime and endTime will be used as the local time by default-->
<cardNo min="" max=""></cardNo><!--req, card No.-->
<name min="" max=""></name><!--req, cardholder name-->
<picEnable opt="true,false"></picEnable><!--req, whether contains picture-->
<beginSerialNo min="" max=""></beginSerialNo><!--req, start serial No.-->
<endSerialNo min="" max=""></endSerialNo><!--req, end serial No.-->
<employeeNo min="" max=""></employeeNo><!--opt, employee No. (person ID)-->
</EventCond>
<EventLog>
<majorType>0x1</majorType><!--req, alarm event-->
<MinorTypeList>
<minorType>0x400</minorType><!--req, Zone short circuit attempts alarm-->
<minorType>0x401</minorType><!--req, Zone open circuit attempts alarm-->
<!--See more minor types of alarm event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
<EventLog>
<majorType>0x2</majorType><!--req, exception alarm-->
<MinorTypeList>
<minorType>0x27</minorType><!--req, Network disconnected-->
<minorType>0x3a</minorType><!--req, Connection exception-->
<!--See more minor types of exception event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
<EventLog>
<majorType>0x3</majorType><!--req, operation event-->
<MinorTypeList>
<minorType>0x400</minorType><!--req, Remotely opened door-->
<minorType>0x401</minorType><!--req, remotely closed door-->
<!--See more minor types of operation event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
<EventLog>
<majorType>0x5</majorType><!--req, other event-->
<MinorTypeList>
<minorType>0x01</minorType><!--req, Authenticated by valid card-->
402
Device Network SDK (Access Control on Person) Developer Guide
See Also
Access Control Event Types
6.115 XML_Cap_DeployInfo
DeployInfo capability message in XML format
<DeployInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DeployList size="5">
<Content>
<deployNo min="" max=""><!--req, xs: integer, arming No.--></deployNo>
<deployType opt="0,1,2"><!--req, xs: integer, arming type: 0-client arming to receive real-time or offline events via
platform or system (based on Hikvision private protocol), 1-real-time arming to receive real-time events (based on
Hikvision private protocol), 2-arm based on ISAPI protocol--></deployType>
<ipAddr min="" max=""><!--req, xs: string, IP address--></ipAddr>
</Content>
</DeployList>
</DeployInfo>
6.116 XML_Cap_FaceCompareCond
XML message about condition configuration capability of face picture comparison
<FaceCompareCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<faceWidthLowerLimit min="" max="">
<!--optional, xs:integer, face width threshold with highest priority, value range: [0, 100], when the detected face
width is larger than this threshold, the following conditions will be ignored and the face comparison will be executed--
>
</faceWidthLowerLimit>
<pitch min="" max=""><!--optional, xs:integer, face raising or bowing angle, value range: [0, 90], unit: degree, the
smaller the better--></pitch>
<yaw min="" max=""><!--optional, xs:integer, face siding left or right angle, value range: [0, 90], unit: degree, the
smaller the better--></yaw>
<width min="" max=""><!--optional, xs:integer, face width, value range: [0, 100]--></width>
<height min="" max=""><!--optional, xs:integer, face height, value range: [0, 100]--></height>
<leftBorder min="" max=""><!--optional, xs:integer, left border of face, value range: [0, 100]--></leftBorder>
<rightBorder min="" max=""><!--optional, xs:integer, right border of face, value range: [0, 100]--></rightBorder>
<upBorder min="" max=""><!--optional, xs:integer, top border of face, value range: [0, 100]--></upBorder>
<bottomBorder min="" max=""><!--optional, xs:integer, bottom border of face, value range: [0, 100]--></
bottomBorder>
<interorbitalDistance min="" max=""><!--optional, xs:integer, pupil distance, value range: [0, 100]--></
interorbitalDistance>
403
Device Network SDK (Access Control on Person) Developer Guide
<faceScore min="" max=""><!--optional, xs:integer, face score, value range: [0, 100], the valid face score must be
larger than this score--></faceScore>
</FaceCompareCond>
6.117 XML_Cap_IdentityTerminal
IdentityTerminal capability message in XML format
<IdentityTerminal version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<terminalMode opt="authMode,registerMode">
<!--req, xs: string, terminal mode: "authMode"-authentication mode, "registerMode"-registration mode-->
</terminalMode>
<idCardReader opt="iDR210,DS-K1F110-I,DS-K1F1110-B,DS-K1F1110-AB, none">
<!--req, xs: string,ID card reader model-->
</idCardReader>
<camera opt="C270,DS-2CS5432B-S"><!--req, xs: string, camera--></camera>
<fingerPrintModule opt="ALIWARD,HikModule"><!--req, xs: string, fingerprint module--></fingerPrintModule>
<videoStorageTime min="0" max="10"><!--req, xs: integer, time for saving video (unit: second)--></
videoStorageTime>
<faceContrastThreshold min="0" max="100"><!--req, xs: integer, face picture comparison threshold--></
faceContrastThreshold>
<twoDimensionCode opt="enable,disable"><!--req, xs: string, whether to enable QR code recognition--></
twoDimensionCod>
<blackListCheck opt="enable,disable"><!--req, xs: string, whether to enable blacklist verification--></blackListCheck>
<idCardCheckCenter opt="local,server">
<!--req, xs: string, ID card comparison mode: local-compare with ID card of local storage, server-compare with ID
card of remote server storage-->
</idCardCheckCenter>
<faceAlgorithm opt="HIK-Z,HIK-H">
<!--req, xs: string, face picture algorithm: HIK-Z-Hikviison algorithm, HIK-H-third-party algorithm-->
</faceAlgorithm>
<comNo min="1" max="9"><!--req, xs: integer, COM No.--></comNo>
<memoryLearning opt="enable,disable"><!--req, xs: string, whether to enable learning and memory function--></
memoryLearning>
<saveCertifiedImage opt="enable,disable"><!--req, xs: string, whether to enable saving authenticated picture--></
saveCertifiedImage>
<MCUVersion min="" max=""><!--opt, xs: string, MCU version information--></MCUVersion>
<usbOutput opt="enable,disable"><!--req, xs: string, whether to enable USB output of ID card reader--></
usbOutput>
<serialOutput opt="enable,disable"><!--req, xs: string, whether to enable serial port output of ID card reader--></
serialOutput>
<readInfoOfCard opt="serialNo,file"><!--opt, xs: string, set content to be read from CPU card--></readInfoOfCard>
<workMode opt="passMode,accessControlMode"><!--opt, xs: string, authentication mode--></workMode>
<ecoMode>
<eco opt="enable,disable"><!--opt, xs: string, whether to enable ECO mode--></eco>
<faceMatchThreshold1 min="" max=""><!--req, xs: integer, 1V1 face picture comparison threshold of ECO mode,
which is between 0 and 100--></faceMatchThreshold1>
<faceMatchThresholdN min="" max=""><!--req, xs: integer, 1:N face picture comparison threshold of ECO mode,
which is between 0 and 100--></faceMatchThresholdN>
<changeThreshold min="" max=""><!--opt, xs: string, switching threshold of ECO mode, which is between 0 and 8--
404
Device Network SDK (Access Control on Person) Developer Guide
></changeThreshold>
</ecoMode>
<readCardRule opt="wiegand26,wiegand34"><!--opt, xs: string, card No. setting rule: "wiegand26", "wiegand34"--></
readCardRule>
</IdentityTerminal>
6.118 XML_Cap_ReaderAcrossHost
ReaderAcrossHost capability message in XML format
<ReaderAcrossHost version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AcrossHostList size="8">
<AcrossHostAction>
<readerNo min="1" max="8"><!--req, xs: integer, card reader No.--></readerNo>
<submarineBackEnabled opt="true,false">
<!--req, xs: boolean, whether to enable the cross-controller anti-passing back function of the card reader-->
</submarineBackEnabled>
</AcrossHostAction>
</AcrossHostList>
</ReaderAcrossHost>
6.119 XML_Cap_ServerDevice
ServerDevice capability message in XML format
<ServerDevice version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddr min="" max=""><!--req, xs: string, IP address of the cross-controller anti-passing back server--></ipAddr>
<port min="" max=""><!--req, xs: string, port No. of the cross-controller anti-passing back server--></port>
</ServerDevice>
6.120 XML_Cap_StartReaderInfo
StartReaderInfo capability message in XML format
<StartReaderInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNo min="1" max="64"><!--req, xs: integer, access controller No.--></hostNo>
<readerNo min="1" max="8"><!--req, xs: integer, card reader No.--></readerNo>
</StartReaderInfo>
6.121 XML_Cap_SubmarineBack
SubmarineBack capability message in XML format
<SubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--req, xs: boolean, whether to specify this access controller as the cross-controller anti-
405
Device Network SDK (Access Control on Person) Developer Guide
6.122 XML_Cap_SubmarineBackHostInfo
SubmarineBackHostInfo capability message in XML format
<SubmarineBackHostInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ID min="1" max="4"><!--req, xs: integer, configuration No.--></ID>
<HostInfoList size="16">
<Action>
<deviceNo min="1" max="64"><!--req, xs: integer, device No.--></deviceNo>
<serial min="9" max="9"><!--req, xs: string, device serial No.--></serial>
</Action>
</HostInfoList>
</SubmarineBackHostInfo>
6.123 XML_Cap_SubmarineBackMode
SubmarineBackMode capability message in XML format
<SubmarineBackMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode opt="disable,internetCommunicate,cardReadAndWrite"><!--req, xs:string, anti-passing back mode--></mode>
<rule opt="line,inOrOut">
<!--req, xs:string, anti-passing back rule, this node is invalid when the mode is set to "disable"-->
</rule>
<sectionID min="1" max="100">
<!--req, xs:integer, section ID, this node is valid when mode is "cardReadAndWrite", and only one section ID can be
configured for one configuration-->
</sectionID>
</SubmarineBackMode>
6.124 XML_Cap_SubmarineBackReader
SubmarineBackReader capability message in XML format
<SubmarineBackReader version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ID min="1" max="128"><!--req, xs:integer, configuration No.--></ID>
<selfHostNo min="1" max="64"><!--req, xs:integer, access control No. of the configuration object--></selfHostNo>
<selfReaderNo min="1" max="8"><!--req, xs:integer, card reader No. of the configuration object--></selfReaderNo>
<FollowReaderList size="16">
<Action>
<followHostNo min="1" max="64"><!--req, xs:integer, following access controller No.--></followHostNo>
<followReaderNo min="1" max="8"><!--req, xs:integer, following card reader No.--></followReaderNo>
</Action>
406
Device Network SDK (Access Control on Person) Developer Guide
</FollowReaderList>
</SubmarineBackReader>
6.125 XML_ClearCardRecord
ClearCardRecord message in XML format
<ClearCardRecord version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearAllCard>
<!--req, xs: boolean, whether to clear all card swiping records in the cross-controller anti-passing back server: "true"-
yes, "false"-no. If this node is set to "false", either CardList or EmployeeNoList is required. If CardList is configured, it
indicates clearing card swiping records by card No.; if EmployeeNoList is configured, it indicates clearing card swiping
records by employee No.-->
</clearAllCard>
<CardList size="32">
<cardNo><!--opt, xs: string, card No., min="1" max="32"--></cardNo>
</CardList>
<EmployeeNoList size="32">
<employeeNo><!--opt, xs:string, employee No. (person ID)--></employeeNo>
</EmployeeNoList>
</ClearCardRecord>
6.126 XML_ClearSubmarineBack
ClearSubmarineBack message in XML format
<ClearSubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearHostInfo><!--opt, xs: boolean, whether to clear access controller information: "true,false"--></clearHostInfo>
<clearReaderInfo><!--opt, xs: boolean, whether to clear card reader information: "true,false"--></clearReaderInfo>
<clearSubmarineBack><!--opt, xs: boolean, whether to clear anti-passing back server parameters: "true,false"--></
clearSubmarineBack>
<clearSubmarineBackHostInfo>
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of access controllers:
"true,false"-->
</clearSubmarineBackHostInfo>
<clearStartReaderInfo><!--opt, xs: boolean, whether to clear first card reader parameters: "true,false"--></
clearStartReaderInfo>
<clearSubmarineBackReader>
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of card readers: "true,false"-->
</clearSubmarineBackReader>
<clearSubmarineBackMode>
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back mode parameters: "true,false"-->
</clearSubmarineBackMode>
<clearServerDevice>
<!--opt, xs: boolean, whether to clear the parameters of cross-controller anti-passing back server: "true,false"-->
</clearServerDevice>
<clearReaderAcrossHost>
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back status of card readers: "true,false"-->
407
Device Network SDK (Access Control on Person) Developer Guide
</clearReaderAcrossHost>
</ClearSubmarineBack>
6.127 XML_DeployInfo
DeployInfo message in XML format
<DeployInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DeployList size="5">
<Content>
<deployNo><!--req, xs: integer, arming No.--></deployNo>
<deployType><!--req, xs: integer, arming type: 0-client arming to receive real-time or offline events via platform or
system (based on Hikvision private protocol), 1-real-time arming to receive real-time events (based on Hikvision
private protocol), 2-arm based on ISAPI protocol, opt="0,1,2"--></deployType>
<ipAddr><!--req, xs: string, IP address--></ipAddr>
</Content>
</DeployList>
</DeployInfo>
6.128 XML_Desc_AcsAbility
Input description message for getting access control capability.
<AcsAbility version="2.0">
<!--opt, specify child nodes about access control capabilities to be returned-->
</AcsAbility>
.
6.129 XML_FaceCompareCond
XML message about condition parameters of face picture comparison
<FaceCompareCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<faceWidthLowerLimit>
<!--optional, xs:integer, face width threshold with highest priority, value range: [0, 100], when the detected face
width is larger than this threshold, the following conditions will be ignored and the face comparison will be executed--
>
</faceWidthLowerLimit>
<pitch>
<!--optional, xs:integer, face raising or bowing angle, value range: [0, 90], unit: degree, the smaller the better-->
</pitch>
<yaw><!--optional, xs:integer, face siding left or right angle, value range: [0, 90], unit: degree, the smaller the better--
></yaw>
<width><!--optional, xs:integer, face width, value range: [0, 100]--></width>
<height><!--optional, xs:integer, face height, value range: [0, 100]--></height>
<leftBorder><!--optional, xs:integer, left border of face, value range: [0, 100]--></leftBorder>
408
Device Network SDK (Access Control on Person) Developer Guide
6.130 XML_IdentityTerminal
IdentityTerminal message in XML format
<IdentityTerminal version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<terminalMode>
<!--req, xs: string, terminal mode: "authMode"-authentication mode, "registerMode"-registration mode-->
</terminalMode>
<idCardReader>
<!--req, xs: string, ID card reader model: iDR210, DS-K1F110-I, DS-K1F1110-B, DS-K1F1110-AB, none, DS-K1F1001-
I(USB), DS-K1F1002-I(USB), none-->
</idCardReader>
<camera><!--req, xs: string, camera model: C270, DS-2CS5432B-S--></camera>
<fingerPrintModule><!--req, xs: string, fingerprint module type: ALIWARD, HikModule--></fingerPrintModule>
<videoStorageTime><!--req, xs: integer, time for saving video (unit: second), which is between 0 and 10--></
videoStorageTime>
<faceContrastThreshold><!--req, xs: integer, face picture comparison threshold, which is between 0 and 100--></
faceContrastThreshold>
<twoDimensionCode><!--req, xs: string, whether to enable QR code recognition: enable, disable--></
twoDimensionCod>
<blackListCheck><!--req, xs: string, whether to enable blacklist verification: enable, disable--></blackListCheck>
<idCardCheckCenter>
<!--req, xs: string, ID card comparison mode: local-compare with ID card of local storage, server-compare with ID
card of remote server storage-->
</idCardCheckCenter>
<faceAlgorithm>
<!--req, xs: string, face picture algorithm: HIK-Z-Hikviison algorithm, HIK-H-third-party algorithm-->
</faceAlgorithm>
<comNo><!--req, xs: integer, COM No., which is between 1 and 9--></comNo>
<memoryLearning><!--req, xs: string, whether to enable learning and memory function: enable, disable--></
memoryLearning>
<saveCertifiedImage><!--req, xs: string, whether to enable saving authenticated picture: enable, disable--></
saveCertifiedImage>
<MCUVersion><!--opt, xs: string, MCU version information, read-only--></MCUVersion>
<usbOutput><!--opt, xs: string, whether to enable USB output of ID card reader: enable, disable--></usbOutput>
<serialOutput><!--opt, xs: string, whether to enable serial port output of ID card reader: enable, disable--></
serialOutput>
<readInfoOfCard><!--opt, xs: string, set content to be read from CPU card: serialNo-read serial No., file-read file--></
readInfoOfCard>
<workMode><!--opt, xs: string, authentication mode: passMode, accessControlMode--></workMode>
<ecoMode>
<eco><!--opt, xs: string, whether to enable ECO mode: enable, disable--></eco>
409
Device Network SDK (Access Control on Person) Developer Guide
<faceMatchThreshold1><!--req, xs: integer, 1V1 face picture comparison threshold of ECO mode, which is between
0 and 100--></faceMatchThreshold1>
<faceMatchThresholdN><!--req, xs: integer, 1:N face picture comparison threshold of ECO mode, which is between
0 and 100--></faceMatchThresholdN>
<changeThreshold><!--opt, xs: string, switching threshold of ECO mode, which is between 0 and 8--></
changeThreshold>
</ecoMode>
<readCardRule><!--opt, xs: string, card No. setting rule: "wiegand26", "wiegand34"--></readCardRule>
</IdentityTerminal>
6.131 XML_ReaderAcrossHost
ReaderAcrossHost message in XML format
<ReaderAcrossHost version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AcrossHostList size="8">
<AcrossHostAction>
<readerNo><!--req, xs: integer, card reader No., which is between 1 and 8--></readerNo>
<submarineBackEnabled>
<!--req, xs: boolean, whether to enable the cross-controller anti-passing back function of the card reader-->
</submarineBackEnabled>
</AcrossHostAction>
</AcrossHostList>
</ReaderAcrossHost>
6.132 XML_ResponseStatus
ResponseStatus message in XML format
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--req, ro, xs:string, request URL-->
</requestURL>
<statusCode>
<!--req, ro, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid XML Format,
6-Invalid XML Content, 7-Reboot Required-->
</statusCode>
<statusString>
<!--req, ro, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML Format, Invalid
XML Content, Reboot-->
</statusString>
<subStatusCode>
<!--req, ro, xs:string, describe the error reason in detail-->
</subStatusCode>
</ResponseStatus>
410
Device Network SDK (Access Control on Person) Developer Guide
Note
See Error Codes in ResponseStatus for details about sub status codes and corresponding error
codes.
6.133 XML_ServerDevice
ServerDevice message in XML format
<ServerDevice version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddr><!--req, xs: string, IP address of the cross-controller anti-passing back server--></ipAddr>
<port><!--req, xs: string, port No. of the cross-controller anti-passing back server--></port>
</ServerDevice>
6.134 XML_StartReaderInfo
StartReaderInfo message in XML format
<StartReaderInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNo><!--req, xs: integer, access controller No., min="1" max="64"--></hostNo>
<readerNo><!--req, xs: integer, card reader No., min="1" max="8"--></readerNo>
</StartReaderInfo>
6.135 XML_SubmarineBack
SubmarineBack message in XML format
<SubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs: boolean, whether to specify this access controller as the cross-controller anti-passing back
server--></enabled>
</SubmarineBack>
6.136 XML_SubmarineBackHostInfo
SubmarineBackHostInfo message in XML format
<SubmarineBackHostInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HostInfoList size="16">
<Action>
<deviceNo><!--req, xs: integer, device No., which is between 1 and 64--></deviceNo>
<serial><!--req, xs: string, device serial No., min="9" max="9"--></serial>
</Action>
</HostInfoList>
</SubmarineBackHostInfo>
411
Device Network SDK (Access Control on Person) Developer Guide
6.137 XML_SubmarineBackMode
SubmarineBackMode message in XML format
<SubmarineBackMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode>
<!--req, xs:string, anti-passing back mode: "disable"-anti-passing back is disabled, "internetCommunicate"-based on
network, "cardReadAndWrite"-based on card-->
</mode>
<rule>
<!--req, xs:string, anti-passing back rule: "line"-route anti-passing back, "inOrOut"-entrance/exit anti-passing back.
This node is invalid when the mode is set to "disable"-->
</rule>
<sectionID>
<!--req, xs:integer, section ID, which is between 1 and 100. This node is valid when mode is "cardReadAndWrite",
and only one section ID can be configured for one configuration-->
</sectionID>
</SubmarineBackMode>
6.138 XML_SubmarineBackReader
SubmarineBackReader message in XML format
<SubmarineBackReader version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<selfHostNo><!--req, xs:integer, access controller No. of the configuration object, which is between 1 and 64--></
selfHostNo>
<selfReaderNo><!--req, xs:integer, card reader No. of the configuration object, which is between 1 and 8--></
selfReaderNo>
<FollowReaderList size="16">
<Action>
<followHostNo><!--req, xs:integer, following access controller No., which is between 1 and 64--></followHostNo>
<followReaderNo><!--req, xs:integer, following card reader No., which is between 1 and 8--></followReaderNo>
</Action>
</FollowReaderList>
</SubmarineBackReader>
6.139 XML_SubscribeEvent
SubscribeEvent message in XML format
<SubscribeEvent version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema" >
<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>
412
Device Network SDK (Access Control on Person) Developer Guide
<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-->
</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>
413
Device Network SDK (Access Control on Person) Developer Guide
Appendix A. Appendixes
MAJOR_ALARM
414
Device Network SDK (Access Control on Person) Developer Guide
415
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_EXCEPTION
416
Device Network SDK (Access Control on Person) Developer Guide
417
Device Network SDK (Access Control on Person) Developer Guide
418
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_OPERATION
419
Device Network SDK (Access Control on Person) Developer Guide
420
Device Network SDK (Access Control on Person) Developer Guide
421
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_EVENT
422
Device Network SDK (Access Control on Person) Developer Guide
423
Device Network SDK (Access Control on Person) Developer Guide
424
Device Network SDK (Access Control on Person) Developer Guide
425
Device Network SDK (Access Control on Person) Developer Guide
426
Device Network SDK (Access Control on Person) Developer Guide
427
Device Network SDK (Access Control on Person) Developer Guide
428
Device Network SDK (Access Control on Person) Developer Guide
429
Device Network SDK (Access Control on Person) Developer Guide
etc.) event linkage, and 3-authentication unit (e.g., card reader, fingerprint module, etc.) event
linkage. Each major event linkage type corresponds multiple minor types of event linkage, see
details in the following content.
430
Device Network SDK (Access Control on Person) Developer Guide
431
Device Network SDK (Access Control on Person) Developer Guide
432
Device Network SDK (Access Control on Person) Developer Guide
433
Device Network SDK (Access Control on Person) Developer Guide
434
Device Network SDK (Access Control on Person) Developer Guide
435
Device Network SDK (Access Control on Person) Developer Guide
436
Device Network SDK (Access Control on Person) Developer Guide
437
Device Network SDK (Access Control on Person) Developer Guide
438
Device Network SDK (Access Control on Person) Developer Guide
439
Device Network SDK (Access Control on Person) Developer Guide
440
Device Network SDK (Access Control on Person) Developer Guide
General Errors
441
Device Network SDK (Access Control on Person) Developer Guide
442
Device Network SDK (Access Control on Person) Developer Guide
443
Device Network SDK (Access Control on Person) Developer Guide
444
Device Network SDK (Access Control on Person) Developer Guide
445
Device Network SDK (Access Control on Person) Developer Guide
446
Device Network SDK (Access Control on Person) Developer Guide
447
Device Network SDK (Access Control on Person) Developer Guide
448
Device Network SDK (Access Control on Person) Developer Guide
449
Device Network SDK (Access Control on Person) Developer Guide
450
Device Network SDK (Access Control on Person) Developer Guide
451
Device Network SDK (Access Control on Person) Developer Guide
452
Device Network SDK (Access Control on Person) Developer Guide
453
Device Network SDK (Access Control on Person) Developer Guide
454
Device Network SDK (Access Control on Person) Developer Guide
455
Device Network SDK (Access Control on Person) Developer Guide
456
Device Network SDK (Access Control on Person) Developer Guide
457
Device Network SDK (Access Control on Person) Developer Guide
458
Device Network SDK (Access Control on Person) Developer Guide
459
Device Network SDK (Access Control on Person) Developer Guide
460
Device Network SDK (Access Control on Person) Developer Guide
461
Device Network SDK (Access Control on Person) Developer Guide
462
Device Network SDK (Access Control on Person) Developer Guide
463
Device Network SDK (Access Control on Person) Developer Guide
464
Device Network SDK (Access Control on Person) Developer Guide
465
Device Network SDK (Access Control on Person) Developer Guide
466
Device Network SDK (Access Control on Person) Developer Guide
467
Device Network SDK (Access Control on Person) Developer Guide
468
Device Network SDK (Access Control on Person) Developer Guide
469
Device Network SDK (Access Control on Person) Developer Guide
470
Device Network SDK (Access Control on Person) Developer Guide
471
Device Network SDK (Access Control on Person) Developer Guide
472
Device Network SDK (Access Control on Person) Developer Guide
473
Device Network SDK (Access Control on Person) Developer Guide
474
Device Network SDK (Access Control on Person) Developer Guide
475
Device Network SDK (Access Control on Person) Developer Guide
476
Device Network SDK (Access Control on Person) Developer Guide
477
Device Network SDK (Access Control on Person) Developer Guide
478
Device Network SDK (Access Control on Person) Developer Guide
479
Device Network SDK (Access Control on Person) Developer Guide
480
Device Network SDK (Access Control on Person) Developer Guide
481
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_ALARM
Table A-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
482
Device Network SDK (Access Control on Person) Developer Guide
483
Device Network SDK (Access Control on Person) Developer Guide
484
Device Network SDK (Access Control on Person) Developer Guide
485
Device Network SDK (Access Control on Person) Developer Guide
486
Device Network SDK (Access Control on Person) Developer Guide
487
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_EXCEPTION
Table A-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
488
Device Network SDK (Access Control on Person) Developer Guide
489
Device Network SDK (Access Control on Person) Developer Guide
490
Device Network SDK (Access Control on Person) Developer Guide
491
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_OPERATION
Table A-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
492
Device Network SDK (Access Control on Person) Developer Guide
493
Device Network SDK (Access Control on Person) Developer Guide
494
Device Network SDK (Access Control on Person) Developer Guide
495
Device Network SDK (Access Control on Person) Developer Guide
496
Device Network SDK (Access Control on Person) Developer Guide
497
Device Network SDK (Access Control on Person) Developer Guide
498
Device Network SDK (Access Control on Person) Developer Guide
499
Device Network SDK (Access Control on Person) Developer Guide
500
Device Network SDK (Access Control on Person) Developer Guide
501
Device Network SDK (Access Control on Person) Developer Guide
502
Device Network SDK (Access Control on Person) Developer Guide
503
Device Network SDK (Access Control on Person) Developer Guide
504
Device Network SDK (Access Control on Person) Developer Guide
505
Device Network SDK (Access Control on Person) Developer Guide
506
Device Network SDK (Access Control on Person) Developer Guide
507
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_INFORMATION
Table A-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
MINOR_REC_STOP 0xa4 Stop recording
MINOR_REC_OVERDUE 0xa5 Delete expired video files
MINOR_LINK_START 0xa6 Connect front-end device
MINOR_LINK_STOP 0xa7 Disconnect front-end device
MINOR_NET_DISK_INFO 0xa8 Network HDD information
MINOR_RAID_INFO 0xa9 raid related information
MINOR_RUN_STATUS_INFO 0xaa System running status information
MINOR_SPARE_START_BACKUP 0xab Hot spare system starts backing up
working device
MINOR_SPARE_STOP_BACKUP 0xac Hot spare system stops backing up
working device
MINOR_SPARE_CLIENT_INFO 0xad Hot spare customer device
information
MINOR_ANR_RECORD_START 0xae Start ANR recording
MINOR_ANR_RECORD_END 0xaf Stop ANR recording
508
Device Network SDK (Access Control on Person) Developer Guide
509
Device Network SDK (Access Control on Person) Developer Guide
MAJOR_EVENT
Table A-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
510
Device Network SDK (Access Control on Person) Developer Guide
511
Device Network SDK (Access Control on Person) Developer Guide
StatusCode=1
512
Device Network SDK (Access Control on Person) Developer Guide
StatusCode=2
StatusCode=3
513
Device Network SDK (Access Control on Person) Developer Guide
514
Device Network SDK (Access Control on Person) Developer Guide
StatusCode=4
515
Device Network SDK (Access Control on Person) Developer Guide
516
Device Network SDK (Access Control on Person) Developer Guide
517
Device Network SDK (Access Control on Person) Developer Guide
518
Device Network SDK (Access Control on Person) Developer Guide
519
Device Network SDK (Access Control on Person) Developer Guide
520
Device Network SDK (Access Control on Person) Developer Guide
521
Device Network SDK (Access Control on Person) Developer Guide
522
Device Network SDK (Access Control on Person) Developer Guide
523
Device Network SDK (Access Control on Person) Developer Guide
524
Device Network SDK (Access Control on Person) Developer Guide
525
Device Network SDK (Access Control on Person) Developer Guide
526
Device Network SDK (Access Control on Person) Developer Guide
527
Device Network SDK (Access Control on Person) Developer Guide
528
Device Network SDK (Access Control on Person) Developer Guide
529
Device Network SDK (Access Control on Person) Developer Guide
530
Device Network SDK (Access Control on Person) Developer Guide
531
Device Network SDK (Access Control on Person) Developer Guide
532
Device Network SDK (Access Control on Person) Developer Guide
533
Device Network SDK (Access Control on Person) Developer Guide
534
Device Network SDK (Access Control on Person) Developer Guide
535
Device Network SDK (Access Control on Person) Developer Guide
536
Device Network SDK (Access Control on Person) Developer Guide
StatusCode=5
StatusCode=6
537
Device Network SDK (Access Control on Person) Developer Guide
538
Device Network SDK (Access Control on Person) Developer Guide
539
Device Network SDK (Access Control on Person) Developer Guide
540
Device Network SDK (Access Control on Person) Developer Guide
541
Device Network SDK (Access Control on Person) Developer Guide
StatusCode=7
542