Device Network SDK (Card-Based Access Control) - Developer Guide - V6.1.5.X - 20230330
Device Network SDK (Card-Based Access Control) - Developer Guide - V6.1.5.X - 20230330
Control)
Developer Guide
Device Network SDK (Card-Based Access Control) 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 (Card-Based Access Control) Developer Guide
Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 1
Chapter 2 Typical Applications .................................................................................................... 8
2.1 Data Collection ....................................................................................................................... 8
2.1.1 Online Collect Data ....................................................................................................... 8
2.1.2 Offline Collect Data ..................................................................................................... 12
2.1.3 Collect Fingerprint ....................................................................................................... 16
2.2 Manage Card Information .................................................................................................... 16
2.2.1 Card Operation ............................................................................................................ 23
2.3 Manage Face Information .................................................................................................... 25
2.4 Manage Fingerprint Information ......................................................................................... 27
2.5 Schedule Settings ................................................................................................................. 29
2.5.1 Configure Authentication Mode Control Schedule ..................................................... 29
2.5.2 Configure Access Permission Control Schedule .......................................................... 35
2.5.3 Configure Door Control Schedule ............................................................................... 41
2.6 Alarm and Event Receiving ................................................................................................... 47
2.6.1 Configure Access Control Event .................................................................................. 47
2.6.2 Receive Alarm/Event in Arming Mode ........................................................................ 54
2.6.3 Receive Alarm/Event in Listening Mode ..................................................................... 57
2.6.4 Search for Access Control Events ................................................................................ 60
2.7 Remotely Control Door ........................................................................................................ 64
2.8 Status Monitoring ................................................................................................................ 67
2.8.1 Configure Attendance Status ...................................................................................... 69
2.9 Turnstile Settings .................................................................................................................. 71
2.9.1 Lane Controller Settings .............................................................................................. 72
ii
Device Network SDK (Card-Based Access Control) Developer Guide
iii
Device Network SDK (Card-Based Access Control) Developer Guide
iv
Device Network SDK (Card-Based Access Control) Developer Guide
v
Device Network SDK (Card-Based Access Control) Developer Guide
vi
Device Network SDK (Card-Based Access Control) Developer Guide
vii
Device Network SDK (Card-Based Access Control) Developer Guide
viii
Device Network SDK (Card-Based Access Control) Developer Guide
ix
Device Network SDK (Card-Based Access Control) Developer Guide
x
Device Network SDK (Card-Based Access Control) Developer Guide
xi
Device Network SDK (Card-Based Access Control) Developer Guide
xii
Device Network SDK (Card-Based Access Control) Developer Guide
xiii
Device Network SDK (Card-Based Access Control) Developer Guide
Chapter 1 Overview
Access Control is the selective restriction of access to a place or other resources. The access control
applications integrated via Device Network SDK (hereafter referred to as "HCNetSDK") in this
manual take the card as the management and control unit, which indicates that all applications are
integrated around the basic unit. That is, the fingerprints, faces, and other attributes will be linked
to a card for management and control.
1.1 Introduction
This manual mainly provides the integration flows and related APIs for access controller, access
control terminal, fingerprint access control terminal, face recognition terminal, elevator controller,
swing barrier, and so on, to implement the following functions : schedule configuration, card/
fingerprint/face information management, alarm/event configuration, and door control.
1
Device Network SDK (Card-Based Access Control) Developer Guide
added two sub nodes cardNo (card No.) and cardType (card type) to the node CardNoList of
DataCollections;
added two sub nodes IdentityInfo (identity information) and CardIssueStatus (issuing status list
of cards containing face pictures and fingerprints) to the node DataCollections.
7. Extended parameter message of offline collection rules JSON_RuleInfo (related URI: /ISAPI/
AccessControl/OfflineCapture/ruleInfo?format=json ; related API: NET_DVR_STDXMLConfig ):
added two nodes enableLocalIssueCard (whether to enable issuing smart cards locally) and
isLocalStorage (whether to store face picture and fingerprint information in the device locally).
8. Extended parameter message of offline collection progress JSON_CaptureProgress (related
URI: /ISAPI/AccessControl/OfflineCapture/progress?format=json ; related API:
NET_DVR_STDXMLConfig ):
added two nodes reqIssueNum (number of persons to be issued with smart cards) and
IssuedNum (number of persons that have been issued with smart cards).
9. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/OfflineCapture/dataOutput?
format=json (related API: NET_DVR_STDXMLConfig ).
10. Extended parameter message for exporting offline collected data JSON_DataOutputCfg
(related URI: /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json ; related API:
NET_DVR_STDXMLConfig ):
added a node type (exporting type).
11. Extended the offline collection capability message JSON_OfflineCaptureCap (related URI: /
ISAPI/AccessControl/OfflineCapture/capabilities?format=json ; related API:
NET_DVR_STDXMLConfig ):
added three sub nodes maxSize (size of the card No. list), cardNo (card No.), and cardType
(card type) to the node CardNoList of DataCollections of SearchTask;
added two sub nodes IdentityInfo (identity information) and CardIssueStatus (issuing status
list of cards containing face pictures and fingerprints) to the node DataCollections of
SearchTask;
added two nodes enableLocalIssueCard (whether to enable issuing smart cards locally) and
isLocalStorage (whether to store face picture and fingerprint information in the device locally)
to the node RuleInfo;
added two nodes reqIssueNum (number of persons to be issued with smart cards) and
IssuedNum (number of persons that have been issued with smart cards) to the node
CaptureProgress.
12. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CardOperations/
sectionEncryption?format=json (related API: NET_DVR_STDXMLConfig ).
13. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CardOperations/verification?
format=json (related API: NET_DVR_STDXMLConfig ).
14. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CardOperations/controlBlock?
format=json (related API: NET_DVR_STDXMLConfig ).
2
Device Network SDK (Card-Based Access Control) Developer Guide
15. Added a URI of deleting data from the card: PUT /ISAPI/AccessControl/CardOperations/
clearData?format=json (related API: NET_DVR_STDXMLConfig ).
16. Added a URI of setting custom card information: PUT /ISAPI/AccessControl/CardOperations/
customData?format=json (related API: NET_DVR_STDXMLConfig ).
17. Added a URI of searching for custom card information: POST /ISAPI/AccessControl/
CardOperations/customData/searchTask?format=json (related API:
NET_DVR_STDXMLConfig ).
18. Extended card operation capability message JSON_CardOperationsCap (related URI: /ISAPI/
AccessControl/CardOperations/capabilities?format=json ; related API:
NET_DVR_STDXMLConfig ):
added seven nodes: Issue (capability of sending a request for card issuing and getting the
current card issuing status and real-time card issuing results), localIssueCfg (capability of
configuring rule parameters for issuing smart cards), ClearData (capability of deleting data
from the card), CustomData (capability of setting custom card information),
CustomDataSearchCond (condition configuration capability of searching for custom card
information), CustomDataResult (result capability of searching for custom card information),
and CardIssueStatus (capability of getting the smart card issuing status).
19. Added 10 additional information logs to HCNetSDK Log Types :
0x423-"MINOR_USB_LOGIN" (Log in via USB), 0x424-"MINOR_USB_LOGOUT" (Log out via
USB), 0x425-"MINOR_ISAPI_HTTP_LOGIN" (Log in via ISAPI (HTTP)),
0x426-"MINOR_ISAPI_HTTP_LOGOUT" (Log out via ISAPI (HTTP)),
0x427-"MINOR_ISAPI_HTTPS_LOGIN" (Log in via ISAPI (HTTPS)),
0x428-"MINOR_ISAPI_HTTPS_LOGOUT" (Log out via ISAPI (HTTPS)),
0x429-"MINOR_ISUP_ONLINE" (ISUP online), 0x42a-"MINOR_ISUP_OFFLINE" (ISUP offline),
0x42b-"MINOR_FP_ISSUE_REC" (Issuing record of card containing fingerprint information), and
0x42c-"MINOR_FACE_ISSUE_REC" (Issuing record of card containing face picture information).
3
Device Network SDK (Card-Based Access Control) Developer Guide
4
Device Network SDK (Card-Based Access Control) Developer Guide
5
Device Network SDK (Card-Based Access Control) Developer Guide
added two nodes: <isSupportNFCCfg> (whether the device supports enabling or disabling NFC
function) and <isSupportRFCardCfg> (whether the device supports enabling or disabling RF card
recognition).
4. Extended access control capability message XML_AcsAbility (related API:
NET_DVR_GetDeviceAbility ; capability type: "0x801-ACS_ABILITY"):
added seven event types to the sub node <EventEntry> (index: 3) of the node <EventLinkage>
(event card linkage): "CPUCardEncryptVerifyFail" (verifying CPU card encryption failed),
"NFCDisableVerifyFail" (disabling NFC verification failed), "EMCardRecognizeNotEnabled" (EM
card recognition is disabled), "M1CardRecognizeNotEnabled" (M1 card recognition is disabled),
"CPUCardRecognizeNotEnabled" (CPU card recognition is disabled),
"IDCardRecognizeNotEnabled" (ID card recognition is disabled), and "CardSetSecretKeyFail"
(importing key to the card failed).
5. Extended the access control event types in Access Control Event Types :
added four operation event types to MAJOR_OPERATION:
"MINOR_M1_CARD_ENCRYPT_VERIFY_OPEN" (M1 Card Encryption Verification Enabled),
"MINOR_M1_CARD_ENCRYPT_VERIFY_CLOSE" (M1 Card Encryption Verification Disabled),
"MINOR_NFC_FUNCTION_OPEN" (Opening Door with NFC Card Enabled), and
"MINOR_NFC_FUNCTION_CLOSE" (Opening Door with NFC Card Disabled);
added eight event types to MAJOR_EVENT: "MINOR_INFORMAL_M1_CARD_VERIFY_FAIL"
(Authentication Failed: Invalid M1 Card), "MINOR_CPU_CARD_ENCRYPT_VERIFY_FAIL"
(Verifying CPU Card Encryption Failed), "MINOR_NFC_DISABLE_VERIFY_FAIL" (Disabling NFC
Verification Failed), "MINOR_EM_CARD_RECOGNIZE_NOT_ENABLED" (EM Card Recognition
Disabled), "MINOR_M1_CARD_RECOGNIZE_NOT_ENABLED" (M1 Card Recognition Disabled),
"MINOR_CPU_CARD_RECOGNIZE_NOT_ENABLED" (CPU Card Recognition Disabled),
"MINOR_ID_CARD_RECOGNIZE_NOT_ENABLED" (ID Card Recognition Disabled), and
"MINOR_CARD_SET_SECRET_KEY_FAIL" (Importing Key to Card Failed).
6. Extended the event linkage types in Event Linkage Types :
added eight event linkage types of the authentication unit:
"EVENT_ACS_INFORMAL_M1_CARD_VERIFY_FAIL" (Authentication Failed: Invalid M1 Card),
"EVENT_ACS_CPU_CARD_ENCRYPT_VERIFY_FAIL" (Verifying CPU Card Encryption Failed),
"EVENT_ACS_NFC_DISABLE_VERIFY_FAIL" (Disabling NFC Verification Failed),
"EVENT_ACS_EM_CARD_RECOGNIZE_NOT_ENABLED" (EM Card Recognition Disabled),
"EVENT_ACS_M1_CARD_RECOGNIZE_NOT_ENABLED" (M1 Card Recognition Disabled),
"EVENT_ACS_CPU_CARD_RECOGNIZE_NOT_ENABLED" (CPU Card Recognition Disabled),
"EVENT_ACS_ID_CARD_RECOGNIZE_NOT_ENABLED" (ID Card Recognition Disabled), and
"EVENT_ACS_CARD_SET_SECRET_KEY_FAIL" (Importing Key to Card Failed).
6
Device Network SDK (Card-Based Access Control) Developer Guide
added a node <ecoMode> (ECO mode); added a value "none" to the node <idCardReader>.
2. Extended parameter structure of intelligent identity detection terminal XML_IdentityTerminal
(related API: NET_DVR_STDXMLConfig , related URL: /ISAPI/AccessControl/IdentityTerminal ):
added a node <ecoMode> (ECO mode); added a value "none" to the node <idCardReader>.
3. Extended reader configuration structure NET_DVR_CARD_READER_CFG_V50 (related API:
NET_DVR_GetDVRConfig and NET_DVR_SetDVRConfig , commands: 2505-
NET_DVR_GET_CARD_READER_CFG_V50 and 2506-NET_DVR_SET_CARD_READER_CFG_V50):
added a parameter byFaceRecogizeEnable (whether to enable face recognition) via 1 reserved
byte.
4. Extended schedule parameter structure NET_DVR_SINGLE_PLAN_SEGMENT :
added two values to the parameter byVerifyMode (authentication mode), i.e., 25 (card or face),
26 (card or face or fingerprint).
5. Extended access control capability (related API: NET_DVR_GetDeviceAbility ; capability type:
"0x801-ACS_ABILITY"):
added two values to the sub node <verifyType> (authentication mode) of node
<CardReaderVerifyTypePlan>, i.e., "cardOrFace" (card or face) and "cardOrFaceOrFp" (card or
face or fingerprint);
added three values to the sub node <modifyParamType> (parameter types supported to be
edited) of node <Card> (card parameter capability), i.e., "roomNo", "simNo", and "floorNo".
added two sub nodes <nightFaceMatchThresholdN> (1:N face picture comparison threshold at
night) and <faceRecogizeEnable> (whether to enable face recognition) to the node
<CardReaderCfg>;
added two event names "PeopleAndIdCardComparePass" (face and ID card authenticated) and
"PeopleAndIdCardCompareFail" (face and ID card authentication failed) to the sub node
<SubEventNameList> of <node <EventList>
6. Extended the total capability of access control XML_Cap_AccessControl (related API:
NET_DVR_STDXMLConfig , related URL: /ISAPI/AccessControl/capabilities ):
added a node <FactoryReset> (restore to factory settings by condition).
7
Device Network SDK (Card-Based Access Control) Developer Guide
8
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
9
Device Network SDK (Card-Based Access Control) Developer Guide
10
Device Network SDK (Card-Based Access Control) 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 a. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
Card ISAPI/AccessControl/capabilities for getting the access control capability
Information to check whether the device supports online collecting ID card
information.
The capability is returned in the message XML_Cap_AccessControl by
lpOutputParam. If the device supports, the node
<isSupportCaptureCardInfo> will be returned and its value is "true", and
then you can perform the following steps.
Otherwise, online collecting ID card information is not supported by the
device, please end this task.
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 a. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
Information ISAPI/AccessControl/capabilities for getting the access control capability
to check whether the device supports online collecting card information.
The capability is returned in the message XML_Cap_AccessControl by
lpOutputParam. If the device supports, the node
<isSupportCaptureIDInfo> will be returned and its value is "true", and
then you can perform the following steps.
Otherwise, online collecting card information is not supported by the
device, please end this task.
b. Call NET_DVR_STDXMLConfig to pass through the request URL: GET /
ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json for
getting the capability of online collecting card information.
11
Device Network SDK (Card-Based Access Control) Developer Guide
12
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
13
Device Network SDK (Card-Based Access Control) Developer Guide
Note
If importing failed, you can call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?format=json for getting the details of
failing to upload the user list of offline data collection.
The uploading failure details are returned in the message JSON_UploadFailedDetails by
lpOutputParam.
5. Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/AccessControl/
OfflineCapture/ruleInfo?format=json and set lpInBuffer of lpInputParam to the message
JSON_RuleInfo for setting rule parameters of offline data collection.
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.
14
Device Network SDK (Card-Based Access Control) Developer Guide
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 of
Data lpInputParam to the message JSON_DataOutputCfg .
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.
15
Device Network SDK (Card-Based Access Control) Developer Guide
16
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
17
Device Network SDK (Card-Based Access Control) Developer Guide
Note
Before applying card information, you can configure the access permission schedule template,
refer to Configure Access Permission Control Schedule for details, and link the template to the
card. Otherwise, the default template will be linked.
Note
The card information is returned in the structure
NET_DVR_CARD_CFG_V50 by the output buffer (lpBuffer) of callback
function.
b. Call NET_DVR_SendRemoteConfig , specify data type (dwDataType) to
"ENUM_ACS_SEND_DATA", and set sending buffer (pSendBuf) to
NET_DVR_CARD_CFG_SEND_DATA for getting a specific card information.
Apply Card a. Call NET_DVR_StartRemoteConfig with
Information NET_DVR_SET_CARD_CFG_V50
(command No.: 2179) and set input buffer (lpInBuffer) to
NET_DVR_CARD_CFG_COND for setting up persistent connection and
setting callback function ( fRemoteConfigCallback ).
b. Call NET_DVR_SendRemoteConfig , specify data type (dwDataType) to
"ENUM_ACS_SEND_DATA", and set sending buffer (pSendBuf) to
NET_DVR_CARD_CFG_V50 for applying the card information.
Note
The applying status is returned by the output buffer (lpBuffer) of callback
function.
3. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection.
Example
Sample Code for Getting and Applying Card Information
#include <stdio.h>
#include <iostream>
#include <afx.h>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
LONG m_lSetCardCfgHandle;
18
Device Network SDK (Card-Based Access Control) Developer Guide
LONG m_lGetCardCfgHandle;
CString m_csCardNo;
CString m_csCardPassword;
BOOL bGetCardCfgFinish = FALSE;
BOOL bSetCardCfgFinish = FALSE;
void CALLBACK g_fGetGatewayCardCallback(DWORD dwType, void* lpBuffer, DWORD dwBufLen, void* pUserData)
{
//As the operations with long time comsumption are not allowed in the callback function,
//do not call the API of HCNetSDK.DLL in the callback function.
//The following code is for reference only, actually, processing data in the callback function is not suggested.
//for example, process in the message response function as PostMessage
char *pCardNo;
BYTE byCardType;
pCardNo = (char *)lpCardCfg->byCardNo;
byCardType = lpCardCfg->byCardType;
//Other processes...
}
else if (dwType == NET_SDK_CALLBACK_TYPE_STATUS)//Status value
{
DWORD dwStatus = *(DWORD*)lpBuffer;
if (dwStatus == NET_SDK_CALLBACK_STATUS_SUCCESS)
{
bGetCardCfgFinish = TRUE;//Getting card information complated.
//PostMessage(WM_MSG_GETCARD_FINISH,0,0);
//Other processes...
}
else if ( dwStatus == NET_SDK_CALLBACK_STATUS_FAILED )
{
char szCardNumber[ACS_CARD_NO_LEN + 1] = "\0";
DWORD dwErrCode = *(DWORD*)((char *)lpBuffer + 4); //Error code
strncpy(szCardNumber,(char*)(lpBuffer) + 8,ACS_CARD_NO_LEN);//Card No.
printf("GetCard STATUS_FAILED, Error code %d, Card Number %s\n", dwErrCode, szCardNumber);
//Other processes...
}
}
}
void CALLBACK g_fSetGatewayCardCallback(DWORD dwType, void* lpBuffer, DWORD dwBufLen, void* pUserData)
{
if (dwType != NET_SDK_CALLBACK_TYPE_STATUS)//Only status will be returned when applying card
{
return;
}
19
Device Network SDK (Card-Based Access Control) Developer Guide
if (dwStatus == NET_SDK_CALLBACK_STATUS_PROCESSING)//Sending
{
char szCardNumber[ACS_CARD_NO_LEN + 1] = "\0";
strncpy(szCardNumber,(char*)(lpBuffer) + 4,ACS_CARD_NO_LEN);
printf("SetCard PROCESSING,CardNo: %s\n", szCardNumber);
//Other processes...
}
else if (dwStatus == NET_SDK_CALLBACK_STATUS_FAILED)//Sending failed.
{
char szCardNumber[ACS_CARD_NO_LEN + 1] = "\0";
DWORD dwErrCode = *((DWORD*)lpBuffer + 1);//Error code
strncpy(szCardNumber,(char*)(lpBuffer) + 8,ACS_CARD_NO_LEN);//Card No.
printf("SetCard Err:%d,CardNo:%s\n", dwErrCode, szCardNumber);
//Other processes...
}
//The following contents should perfrom stopping remote configuration for twice.
else if (dwStatus == NET_SDK_CALLBACK_STATUS_SUCCESS)//Sent
{
printf("SetCard SUCCESS!");
bSetCardCfgFinish = TRUE;
//Other processes...
//PostMessage(WM_MSG_SETCARD_FINISH,0,0);
}
else if (dwStatus == NET_SDK_CALLBACK_STATUS_EXCEPTION)//Exception
{
bSetCardCfgFinish = TRUE;
//Other processes...
//PostMessage(WM_MSG_SETCARD_FINISH,0,0);
}
}
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
//---------------------------------------
//Log in to device
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
lUserID = NET_DVR_Login_V30("192.0.0.64", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
20
Device Network SDK (Card-Based Access Control) Developer Guide
return;
}
21
Device Network SDK (Card-Based Access Control) Developer Guide
if (m_lSetCardCfgHandle==-1)
{
printf("NET_DVR_StartRemoteConfig fail, error:%d.\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
22
Device Network SDK (Card-Based Access Control) Developer Guide
//---------------------------------------
//Exit
Sleep(5000);
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resources
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
23
Device Network SDK (Card-Based Access Control) Developer Guide
24
Device Network SDK (Card-Based Access Control) Developer Guide
● Make sure the card information linked with the face picture is applied, refer to Manage Card
25
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
26
Device Network SDK (Card-Based Access Control) Developer Guide
Note
The face information is returned in the structure
NET_DVR_FACE_PARAM_CFG by the output buffer (lpBuffer) of callback
function.
Note
The applying status is returned by the output buffer (lpBuffer) of callback
function.
3. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
● Make sure the card information linked with the face picture is applied, refer to Manage Card
27
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
Note
To collect the fingerprint, refer to Collect Fingerprint for details.
1. Call NET_DVR_GetDeviceAbility , specify the capability type (dwAbilityType) to "ACS_ABILITY"
(macro definition value: 0x801), and set the condition buffer (pCondBuffer) to the message
XML_Desc_AcsAbility for getting access control capability to check if managing fingerprint
information is supported by device.
The access control capability is returned in the message XML_AcsAbility by the output buffer
(pOutBuffer).
28
Device Network SDK (Card-Based Access Control) Developer Guide
If the node <FingerPrint> is returned in the message, it indicates that managing fingerprint
information is supported by device, and you can perform the following steps.
Otherwise, managing fingerprint information is not supported, please end this task.
2. Perform the following operation(s) to get or apply fingerprint information.
Get Call NET_DVR_StartRemoteConfig with
Fingerprint NET_DVR_GET_FINGERPRINT_CFG
Information (command No.: 2150) and set the input buffer (lpInBuffer) to
NET_DVR_FINGER_PRINT_INFO_COND_V50 for setting up persistent
connection and setting callback function ( fRemoteConfigCallback ).
Note
The fingerprint information is returned in the structure
NET_DVR_FINGER_PRINT_CFG_V50 by the output buffer (lpBuffer) of
callback function.
Note
The applying status is returned by the output buffer (lpBuffer) of callback
function.
3. Call NET_DVR_StopRemoteConfig to disconnect the persistent connection.
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
29
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
30
Device Network SDK (Card-Based Access Control) 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.
31
Device Network SDK (Card-Based Access Control) 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};
struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
strcpy(struLoginInfo.sDeviceAddress, "192.168.1.64"); //Device IP address
32
Device Network SDK (Card-Based Access Control) 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
33
Device Network SDK (Card-Based Access Control) 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*/
34
Device Network SDK (Card-Based Access Control) Developer Guide
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.
35
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
36
Device Network SDK (Card-Based Access Control) Developer Guide
Otherwise, configuring access permission control schedule is not supported, please end this
task.
2. Perform one of the following operations to set week or holiday schedule for access permission
control.
- a. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_WEEK_PLAN" (command
No.: 2126) to get default or configured week schedule configurations for reference.
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.
37
Device Network SDK (Card-Based Access Control) Developer Guide
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
#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
38
Device Network SDK (Card-Based Access Control) Developer Guide
/*Up to 8 time periods can be set for each day. Here only takes setting one period for each day*/
39
Device Network SDK (Card-Based Access Control) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
40
Device Network SDK (Card-Based Access Control) Developer Guide
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
41
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
42
Device Network SDK (Card-Based Access Control) 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).
43
Device Network SDK (Card-Based Access Control) 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
44
Device Network SDK (Card-Based Access Control) 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*/
45
Device Network SDK (Card-Based Access Control) Developer Guide
{
memcpy(&struWeekPlan.struPlanCfg[iDate][0], lpPlanSegment, sizeof(struSinglePlanSegment));
}
46
Device Network SDK (Card-Based Access Control) 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.
47
Device Network SDK (Card-Based Access Control) Developer Guide
48
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
49
Device Network SDK (Card-Based Access Control) Developer Guide
Note
The parameter dwCount should be set to 1.
The event card linkage parameters are returned in the structure
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51 by output buffer (lpOutBuffer).
3. Call NET_DVR_SetDeviceConfig with "NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V51"
(command No.: 2519), set the condition buffer (lpInBuffer) to
NET_DVR_EVENT_CARD_LINKAGE_COND , and set the input parameter (lpInParamBuffer) to
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51 for setting the event card linkage parameters.
Note
The parameter dwCount should be set to 1.
4. 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
(command No.: 0x5002) in the alarm callback function ( MSGCallBack ), and refer to the data
structure NET_DVR_ACS_ALARM_INFO for the alarm/event details.
Example
Sample Code for Enabling Capture Linkage
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
50
Device Network SDK (Card-Based Access Control) Developer Guide
//The following code is for reference only, actually, processing data in the callback function is not suggested.
//for example, process in the message response function as PostMessage
switch (lCommand)
{
case COMM_ALARM_ACS://Alarm information of access controller
{
NET_DVR_ACS_ALARM_INFO struAcsAlarmInfo = {0};
memcpy(&struAcsAlarmInfo, pAlarmInfo, sizeof(struAcsAlarmInfo));
SYSTEMTIME t;
GetLocalTime(&t);
char chTime[128];
sprintf(filename,"%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d%3.3d",t.wYear,t.wMonth,t.wDay,
t.wHour,t.wMinute,t.wSecond,t.wMilliseconds);
//Save picture
fSnapPic=fopen(filename,"wb");
fwrite(struAcsAlarmInfo.pPicData,struAcsAlarmInfo.dwPicDataLen,1,fSnapPic);
fclose(fSnapPic);
}
//Handle other information in the alarm structure as desired...
break;
}
default:
break;
}
return true;
}
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
51
Device Network SDK (Card-Based Access Control) Developer Guide
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.168.1.64"); //Device IP address
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
//Device information, output parameter
NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};
if (!NET_DVR_ContinuousShoot(lUserID, &struSnapCfg))
{
printf("NET_DVR_ContinuousShoot error: %d\n", NET_DVR_GetLastError());
return;
}
//---------------------------------------
52
Device Network SDK (Card-Based Access Control) Developer Guide
//Event source ID, 0xffffffff-all, other values: invalid, when the major type is device event;
//door No., when the major type is door event; card reader ID, when the major type is card reader event;
//zone alarm input ID or event alarm input ID, when the major type is alarm input event.
struEventCardLinkageCfgV50.dwEventSourceID = 0xffffffff;
//Event major type: 0-device event, 1-alarm input event, 2-door event, 3-card reader event
struEventCardLinkageCfgV50.uLinkageInfo.struEventLinkage.wMainEventType = 2;
//Event minor type: 10-open door by magnetic switch, here takes capturing triggered by door open as an example.
struEventCardLinkageCfgV50.uLinkageInfo.struEventLinkage.wSubEventType = 10;
DWORD dwStatus = 0;
if (!NET_DVR_SetDeviceConfig(lUserID,NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50,
1,&struEventCardLinkageCond,sizeof(struEventCardLinkageCond),
&dwStatus,&struEventCardLinkageCfgV50,sizeof(struEventCardLinkageCfgV50)))
{
printf("NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50, error: %d\n", NET_DVR_GetLastError());
return;
}
//---------------------------------------
//Set access controller parameters
NET_DVR_ACS_CFG struAcsCfg = {0};
struAcsCfg.dwSize = sizeof(NET_DVR_ACS_CFG);
struAcsCfg.byUploadCapPic = 1;//Upload picture or not when capture is triggered: 0-No, 1-Yes
53
Device Network SDK (Card-Based Access Control) Developer Guide
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.
● Make sure you have configured the alarm/event parameters, refer to the typical alarm/event
54
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
Note
● If the configured alarm is triggered or event occurred, the alarm/event information will be
uploaded by device and returned in the callback function. You can view the alarm/event and
do some processing operations.
● For the integration via device network SDK (HCNetSDK), to receive different types of alarm/
event information, the parameter lCommand (data type to be uploaded) in the configured
callback function should be different (refer to the typical alarm/event configurations). For the
integration via text protocol, the lCommand should be set to "COMM_ISAPI_ALARM"
(command No.: 0x6009) and the input parameter pAlarmInfo in the callback function
MSGCallBack should be set to NET_DVR_ALARM_ISAPI_INFO .
2. Call NET_DVR_SetupAlarmChan_V50 to set up uploading channel.
3. Call NET_DVR_CloseAlarmChan_V30 to close uploading channel and stop receiving alarm or
event information.
Example
Sample Code of Receiving Alarm or Event in Arming Mode
55
Device Network SDK (Card-Based Access Control) Developer Guide
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main() {
//---------------------------------------
// Initialize
NET_DVR_Init();
//Set connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
// Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on.
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
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;
}
//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;
56
Device Network SDK (Card-Based Access Control) Developer Guide
//Arm
lHandle = NET_DVR_SetupAlarmChan_V50(lUserID, &struSetupParamV50, NULL, strlen(szSubscribe));
}
else
{
//Subscribe
LlHandle = NET_DVR_SetupAlarmChan_V50(lUserID, &struSetupParamV50, szSubscribe, strlen(szSubscribe));
}
if (lHandle < 0)
{
printf("NET_DVR_SetupAlarmChan_V50 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
Sleep(20000);
//Disarm the uploading channel
if (!NET_DVR_CloseAlarmChan_V30(lHandle))
{
printf("NET_DVR_CloseAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//Log out
NET_DVR_Logout(lUserID);
//Release resources
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
● Make sure you have configured the alarm/event parameters, refer to the typical alarm/event
57
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
58
Device Network SDK (Card-Based Access Control) Developer Guide
Note
For the integration via device network SDK (HCNetSDK), to receive different types of alarm/
event information, the parameter lCommand (data type to be uploaded) in the configured
callback function should be different (refer to the typical alarm/event configurations). For the
integration via text protocol, the lCommand should be set to "COMM_ISAPI_ALARM" and the
input parameter pAlarmInfo in the callback function MSGCallBack should be set to
NET_DVR_ALARM_ISAPI_INFO .
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);
if (lHandle < 0)
{
printf("NET_DVR_StartListen_V30 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
Sleep(5000);
59
Device Network SDK (Card-Based Access Control) Developer Guide
//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.
60
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
Note
To check whether the device supports searching for access control events, you can call
NET_DVR_GetDeviceAbility , set the capability type dwAbilityType to "ACS_ABILITY" (macro
definition value: 0x801), and set the input parameter pointer pInBuf to the message
XML_Desc_AcsAbility for getting the access control capability.
61
Device Network SDK (Card-Based Access Control) Developer Guide
The capaility is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related node is <isSupportGetDeviceEvent>.
The capability message XML_Cap_GetAcsEvent is returned.
2. Call NET_DVR_StartRemoteConfig with "NET_DVR_GET_ACS_EVENT" (command No: 2514) and
set IpInBuffer to NET_DVR_ACS_EVENT_COND for setting up persistent connection and set
callback function ( fRemoteConfigCallback ).
The access control event details are returned in the structure NET_DVR_ACS_EVENT_CFG by the
output buffer (lpBuffer) of callback function.
3. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/AcsEventTotalNum/capabilities?format=json to get the capability of getting total
number of access control events by specific conditions.
4. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: POST /ISAPI/
AccessControl/AcsEventTotalNum?format=json and set IpInBuffer to the 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;
62
Device Network SDK (Card-Based Access Control) Developer Guide
default:
break;
}
return true;
}
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
63
Device Network SDK (Card-Based Access Control) Developer Guide
Sleep(60000);
//Close alarm 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 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.
Note
● If the device is configured with multi-factor authentication mode, this API is available only when
the parameter dwGroupNo in the structure NET_DVR_GROUP_COMBINATION_INFO_V50 is set
to "0xffffffff".
● Before controlling door by calling the above API, you should call NET_DVR_Init and
NET_DVR_Login_V40 to initialize the resources and log in to device.
● After controlling door, you should call NET_DVR_Logout and NET_DVR_Cleanup to log out and
release the resource.
64
Device Network SDK (Card-Based Access Control) Developer Guide
Example
Sample Code for Remotely Controlling Door
#include <stdio.h>
#include <iostream>
#include <afx.h>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
//---------------------------------------
//Initialize
NET_DVR_Init();
65
Device Network SDK (Card-Based Access Control) Developer Guide
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.168.1.64"); //Device IP address
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
bRet = NET_DVR_ControlGateway(lUserID,lGatewayIndex,dwStaic);
if (!bRet)
{
printf("NET_DVR_ControlGateway failed, error:%d\n",NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//---------------------------------------
//Exit
Sleep(5000);
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
66
Device Network SDK (Card-Based Access Control) Developer Guide
Note
To check whether getting working status of the access controller is supported, you can call
NET_DVR_GetDeviceAbility , set the capability type dwAbilityType to "ACS_ABILITY" (macro
definition value: 0x801), and set the input parameter pointer pInBuf to the message
XML_Desc_AcsAbility for getting the access control capability.
The capability is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related node is <AcsWorkStatus>.
Function Description
Get Capability of Getting Call NET_DVR_STDXMLConfig to transmit the request URL:
General Turnstile Status GET /ISAPI/AccessControl/GateStatus/capabilities .
The capability is returned in the message XML_Cap_GateStatus
by lpOutBuffer.
Get General Turnstile Status Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/GateStatus .
The status is returned in the message XML_GateStatus by
lpOutBuffer.
Note
To check whether the device supports getting general turnstile status, you can call
NET_DVR_STDXMLConfig to transmit the request URL: GET x /ISAPI/AccessControl/capabilities to
get the access control capability.
The capability is returned in the message XML_Cap_AccessControl by lpOutBuffer. If this function
is supported by the device, the node <isSupportGateStatus> will be returned in the message and
its value is "true".
67
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
Get Capability of Getting Status Call NET_DVR_STDXMLConfig to transmit the request URL:
of Active Infrared Intrusion GET /ISAPI/AccessControl/GateIRStatus/capabilities .
Detector of Turnstile The capability is returned in the message
XML_Cap_GateIRStatus by lpOutBuffer.
Get Status of Active Infrared Call NET_DVR_STDXMLConfig to transmit the request URL:
Intrusion Detector of Turnstile GET /ISAPI/AccessControl/GateIRStatus .
The status is returned in the message XML_GateIRStatus by
lpOutBuffer.
Note
To check whether the device supports getting the status of the active infrared intrusion detector of
the turnstile, you can call NET_DVR_STDXMLConfig to transmit the request URL: GET /ISAPI/
AccessControl/capabilities to get the access control capability.
The capability is returned in the message XML_Cap_AccessControl by lpOutBuffer. If this function
is supported by the device, the node <isSupportGateIRStatus> will be returned in the message and
its value is "true".
Function Description
Get Capability of Getting Call NET_DVR_STDXMLConfig to transmit the request URL:
Related Components' Status of GET /ISAPI/AccessControl/GateRelatedPartsStatus/
Turnstile capabilities .
The capability is returned in the message
XML_Cap_GateRelatedPartsStatus by lpOutBuffer.
Get Related Components' Call NET_DVR_STDXMLConfig to transmit the request URL:
Status of Turnstile GET /ISAPI/AccessControl/GateRelatedPartsStatus .
The status is returned in the message
XML_GateRelatedPartsStatus by lpOutBuffer.
Note
To check whether the device supports getting related components' status of the turnstile, you can
call NET_DVR_STDXMLConfig to transmit the request URL: GET /ISAPI/AccessControl/capabilities
to get the access control capability.
68
Device Network SDK (Card-Based Access Control) Developer Guide
● Make sure you have added at least one card, refer to Manage Card Information for details.
69
Device Network SDK (Card-Based Access Control) Developer Guide
Steps
70
Device Network SDK (Card-Based Access Control) 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.
71
Device Network SDK (Card-Based Access Control) Developer Guide
Basic Configuration
Function Description
Get Configuration Capability Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/ChannelControllerCfg/capabilities .
The configuration capability is returned in the message
XML_Cap_ChannelControllerCfg by lpOutputParam.
Get Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/ChannelControllerCfg .
The parameters are returned in the message
XML_ChannelControllerCfg by lpOutputParam.
Set Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/AccessControl/ChannelControllerCfg and set
lpInputParam to the message XML_ChannelControllerCfg .
Note
To check whether configuring lane controller is supported, you can call NET_DVR_STDXMLConfig
to transmit the request URI: GET /ISAPI/AccessControl/capabilities to get the access control
capability.
The access control capability is returned in the message XML_Cap_AccessControl by
lpOutputParam. If configuring lane controller is supported, the node
<isSupportChannelControllerCfg> will be returned and its value is "true".
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
Device Type ISAPI/AccessControl/channelControllerTypeCfg/capabilities?
format=json .
The configuration capability is returned in the message
JSON_ChannelControllerTypeCfgCap by lpOutputParam.
Get Device Type Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/channelControllerTypeCfg?format=json .
72
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
The device type parameters are returned in the message
JSON_ChannelControllerTypeCfg by lpOutputParam.
Set Device Type Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/AccessControl/channelControllerTypeCfg?format=json
and set lpInputParam to the message
JSON_ChannelControllerTypeCfg .
Note
To check whether configuring device type of the lane controller is supported, you can call
NET_DVR_STDXMLConfig to transmit the request URI: GET /ISAPI/AccessControl/capabilities to
get the access control capability.
The access control capability is returned in the message XML_Cap_AccessControl by
lpOutputParam. If configuring device type of the lane controller is supported, the node
<isSupportChannelControllerTypeCfg> will be returned and its value is "true".
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
Alarm Linkage ISAPI/AccessControl/ChannelControllerAlarmLinkage/
capabilities .
The configuration capability is returned in the message
XML_Cap_ChannelControllerAlarmLinkage by lpOutputParam.
Get Alarm Linkage Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/ChannelControllerAlarmLinkage .
The parameters are returned in the message
XML_ChannelControllerAlarmLinkage by lpOutputParam.
Set Alarm Linkage Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/AccessControl/ChannelControllerAlarmLinkage and set
lpInputParam to the message
XML_ChannelControllerAlarmLinkage .
Note
To check whether the device supports configuring alarm linkage of the lane controller, you can call
NET_DVR_STDXMLConfig to transmit the request URI: GET /ISAPI/AccessControl/capabilities to
get the access control capability.
73
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
Alarm Output ISAPI/AccessControl/ChannelControllerAlarmOut/capabilities .
The configuration capability is returned in the message
XML_Cap_ChannelControllerAlarmOut by lpOutputParam.
Get Alarm Output Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/ChannelControllerAlarmOut?
controllerType=&alarmOutNo= .
The parameters are returned in the message
XML_ChannelControllerAlarmOut by lpOutputParam.
Set Alarm Output Parameters Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/AccessControl/ChannelControllerAlarmOut?
controllerType=&alarmOutNo= and set lpInputParam to the
message XML_ChannelControllerAlarmOut .
Note
To check whether the device supports configuring alarm output of the lane controller, you can call
NET_DVR_STDXMLConfig to transmit the request URI: GET /ISAPI/AccessControl/capabilities to
get the access control capability.
The capability is returned in the message XML_Cap_AccessControl by lpOutputParam. If this
function is supported by the device, the node <isSupportChannelControllerAlarmOut> will be
returned in the message and its value is "true".
Function Description
Get Capability of Controlling Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
Alarm Output ISAPI/AccessControl/ChannelControllerAlarmOutControl/
capabilities .
74
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
The capability is returned in the message
XML_Cap_ChannelControllerAlarmOutControl by
lpOutputParam.
Control Alarm Output Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
ISAPI/AccessControl/ChannelControllerAlarmOutControl and
set lpInputParam to the message
XML_ChannelControllerAlarmOutControl .
Note
To check whether the device supports controlling alarm output of the lane controller, you can call
NET_DVR_STDXMLConfig to transmit the request URI: GET /ISAPI/AccessControl/capabilities for
getting the access control capability.
The capability is returned in the message XML_Cap_AccessControl by lpOutputParam. If this
function is supported, the node <isSupportChannelControllerAlarmOutControl> will be returned
in the message and its value is "true".
Function Description
Upload Audio File of Main 1. Call NET_DVR_GetDeviceAbility , set the capability type
Controller dwAbilityType to "ACS_ABILITY" (macro definition value:
0x801), and set the input parameter pointer pInBuf to the
message XML_Desc_AcsAbility for getting the access control
capability to check whether the device supports uploading
the audio file of the main controller.
The capability is returned in the message XML_AcsAbility by
the output parameter pointer pOutBuf. The related node is
<UploadRightControllerAudio>.
2. Call NET_DVR_UploadFile_V40 , set dwUploadType to
"UPLOAD_RIGHT_CONTROLLER_AUDIO" (macro definition
value: 42), and set lpInBuffer to the structure
NET_DVR_RIGHT_CONTROLLER_AUDIO_PARAM for
uploading the audio file of the main controller.
3. Call NET_DVR_GetUploadState to get file uploading progress.
75
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
Note
If the progress is "4" (network disconnected), you should
stop uploading first and perform step 2 again when the
network is restored.
4. Call NET_DVR_UploadClose to stop uploading the audio file.
Download Audio File of Main 1. Call NET_DVR_GetDeviceAbility , set the capability type
Controller dwAbilityType to "ACS_ABILITY" (macro definition value:
0x801), and set the input parameter pointer pInBuf to the
message XML_Desc_AcsAbility for getting the access control
capability to check whether the device supports downloading
the audio file of the main controller.
The capability is returned in the message XML_AcsAbility by
the output parameter pointer pOutBuf. The related node is
<DownloadRightControllerAudio>.
2. Call NET_DVR_StartDownload , set dwDownloadType to
"NET_SDK_DOWNLOAD_RIGHT_CONTROLLER_AUDIO"
(macro definition value: 24), and set lpInBuffer to the
structure NET_DVR_RIGHT_CONTROLLER_AUDIO_PARAM
for downloading the audio file of the main controller.
3. Call NET_DVR_GetDownloadState to get file downloading
progress.
Note
If the progress is "4" (network disconnected), you should
stop downloading first and perform step 2 again when the
network is restored.
4. Call NET_DVR_StopDownload to stop downloading the audio
file.
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URL:
Audio File of Main Controller GET /ISAPI/AccessControl/RightControllerAudio/capabilities .
The configuration capability is returned in the message
XML_Cap_RightControllerAudio by lpOutBuffer.
Get Audio File Parameters of Call NET_DVR_STDXMLConfig to transmit the request URL:
Main Controller GET /ISAPI/AccessControl/RightControllerAudio/<ID> .
The parameters are returned in the message
XML_RightControllerAudio by lpOutBuffer.
76
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
Set Audio File Parameters of Call NET_DVR_STDXMLConfig to transmit the request URL:
Main Controller PUT /ISAPI/AccessControl/RightControllerAudio/<ID> and set
lpInBuffer to the message XML_RightControllerAudio .
Delete Audio File of Main Call NET_DVR_STDXMLConfig to transmit the request URL:
Controller DELETE /ISAPI/AccessControl/RightControllerAudio/<ID> .
Note
To check whether the device supports configuring audio file
parameters of the main controller, you can call
NET_DVR_STDXMLConfig to transmit the request URL: GET /
ISAPI/AccessControl/capabilities for getting the access control
capability.
The capability is returned in the message
XML_Cap_AccessControl by lpOutBuffer. If this function is
supported by the device, the node
<isSupportRightControllerAudio> will be returned in the
message and its value is "true".
Function Description
Get Capability of Getting Local Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
DIP and Information ISAPI/AccessControl/GateDialAndInfo/capabilities .
The capability is returned in the message
XML_Cap_GateDialAndInfo by lpOutputParam.
Get Local DIP and Information Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
ISAPI/AccessControl/GateDialAndInfo .
The information is returned in the message
XML_GateDialAndInfo by lpOutputParam.
Note
To check whether the device supports getting local DIP and information of the turnstile, you can
call NET_DVR_STDXMLConfig to transmit the request URI: GET /ISAPI/AccessControl/capabilities
to get the access control capability.
77
Device Network SDK (Card-Based Access Control) Developer Guide
People Counting
Function Description
Get People Counting Call NET_DVR_GetDVRConfig with the command "NET_DVR_
Parameters GET_PERSON_STATISTICS_CFG" (command No.: 2170).
The parameters are returned in the structure
NET_DVR_PERSON_STATISTICS_CFG by the output buffer
lpOutBuffer.
Set People Counting Call NET_DVR_SetDVRConfig with the command "NET_DVR_
Parameters SET_PERSON_STATISTICS_CFG" (command No.: 2171) and set
the input buffer lpInBuffer to the structure
NET_DVR_PERSON_STATISTICS_CFG .
Note
To check whether the device supports configuring people counting parameters, you can call
NET_DVR_GetDeviceAbility , set the capability type dwAbilityType to "ACE_ABILITY" (macro
definition value: 0x801), and set the input parameter pointer pInBuf to the message
XML_Desc_AcsAbility for getting the access control capability.
The capability is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related node is <PersonStatisticsCfg>.
Function Description
Get Barrier Time Parameters of Call NET_DVR_GetDVRConfig with the command "NET_DVR_
Turnstile GET_GATE_TIME_CFG" (command No.: 2174).
The parameters are returned in the structure
NET_DVR_GATE_TIME_CFG by the output buffer lpOutBuffer.
Set Barrier Time Parameters of Call NET_DVR_SetDVRConfig with the command "NET_DVR_
Turnstile SET_GATE_TIME_CFG" (command No.: 2175) and set the input
buffer lpInBuffer to the structure NET_DVR_GATE_TIME_CFG .
78
Device Network SDK (Card-Based Access Control) Developer Guide
Note
To check whether the device supports configuring barrier time parameters of the turnstile, you can
call NET_DVR_GetDeviceAbility , set the capability type dwAbilityType to "ACE_ABILITY" (macro
definition value: 0x801), and set the input parameter pointer pInBuf to the message
XML_Desc_AcsAbility for getting the access control capability.
The capability is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related node is <GateTimeCfg>.
Function Description
Get configuration capability of Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
keyfob control mode ISAPI/AccessControl/remoteCtrllerModeCfg/capabilities?
format=json .
The capability is returned in the message
JSON_RemoteCtrllerModeCfgCap by lpOutputParam.
Get parameters of keyfob Call NET_DVR_STDXMLConfig to transmit the request URI: GET /
control mode ISAPI/AccessControl/remoteCtrllerModeCfg?format=json .
The parameters are returned in the message
JSON_RemoteCtrllerModeCfg by lpOutputParam.
Set parameters of keyfob Call NET_DVR_STDXMLConfig to transmit the request URI: PUT /
control mode ISAPI/AccessControl/remoteCtrllerModeCfg?format=json and
set lpInputParam to the message
JSON_RemoteCtrllerModeCfg .
Note
To check whether the device supports configuring parameters of the keyfob control mode, you can
call NET_DVR_STDXMLConfig to transmit the request URI: GET /ISAPI/AccessControl/capabilities
to get the access control capability.
The capability is returned in the message XML_Cap_AccessControl by lpOutputParam. If this
function is supported by the device, the node <isSupportRemoteCtrllerModeCfg> will be returned
in the message and its value is "true".
79
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
Get Configuration Capability Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/IdentityTerminal/capabilities .
And the configuration capability is returned in the message
XML_Cap_IdentityTerminal by output parameter
(lpOutputParam).
Get Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/IdentityTerminal .
And the parameters are returned in the message
XML_IdentityTerminal by the output buffer (lpOutBuffer) of
output parameter (lpOutputParam).
Set Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
PUT /ISAPI/AccessControl/IdentityTerminal and set the input
buffer (lpInBuffer) of input parameter (lpInputParam) to the
message XML_IdentityTerminal .
Function Description
Get Device No. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_VIDEO_
INTERCOM_DEVICEID_CFG" (command No.: 16001).
And the access control device No. will be returned in the
structure NET_DVR_VIDEO_INTERCOM_DEVICEID_CFG by the
output buffer (lpOutBuffer).
Set Device No. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_VIDEO_
INTERCOM_DEVICEID_CFG" (command No.: 16002) and set the
input buffer (lpInBuffer) to the structure
NET_DVR_VIDEO_INTERCOM_DEVICEID_CFG .
Function Description
Get Parameters of Linked Call NET_DVR_GetDVRConfig with "NET_DVR_GET_VIDEO_
Network Device INTERCOM_RELATEDEV_CFG" (command No.: 16006).
80
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
And the parameters of linked network device are returned in the
structure NET_DVR_VIDEO_INTERCOM_RELATEDEV_CFG by the
output buffer (lpOutBuffer).
Set Parameters of Linked Call NET_DVR_SetDVRConfig with "NET_DVR_SET_VIDEO_
Network Device INTERCOM_RELATEDEV_CFG" (command No.: 16007) and set
the input buffer (lpInBuffer) to the structure
NET_DVR_VIDEO_INTERCOM_RELATEDEV_CFG .
Reader
Function Description
Get Reader Parameters Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_
READER_CFG_V50" (command No.: 2505).
And the reader parameters are returned in the structure
NET_DVR_CARD_READER_CFG_V50 by the output buffer
(lpOutBuffer).
Set Reader Parameters Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_
READER_CFG_V50" (command No.: 2506) and set the input
buffer (lpInBuffer) to the structure
NET_DVR_CARD_READER_CFG_V50 .
81
Device Network SDK (Card-Based Access Control) Developer Guide
82
Device Network SDK (Card-Based Access Control) Developer Guide
Function Description
Get Peripheral Parameters Call NET_DVR_GetDVRConfig with the command "NET_DVR_
GET_ACS_EXTERNAL_DEV_CFG" (command No.: 2165) and set
the lChannel to 4-byte RS-485 serial port No.
The parameters are returned in the structure
NET_DVR_ACS_EXTERNAL_DEV_CFG by the output buffer
lpOutBuffer.
Set Peripheral Parameters Call NET_DVR_SetDVRConfig with the command "NET_DVR_
SET_ACS_EXTERNAL_DEV_CFG" (command No.: 2166), set the
lChannel to 4-byte RS-485 serial port No., and set the input
buffer lpInBuffer to the structure
NET_DVR_ACS_EXTERNAL_DEV_CFG .
Note
● The 4-byte RS-485 serial port No. starts from 1.
● To check whether the device supports configuring peripheral parameters connected to the
access controller via serial port, you can call NET_DVR_GetDeviceAbility , set the capability type
dwAbilityType to "ACE_ABILITY" (macro definition value: 0x801), and set the input parameter
pointer pInBuf to the message XML_Desc_AcsAbility for getting the access control capability.
The capability is returned in the message XML_AcsAbility by the output parameter pointer
pOutBuf. The related node is <ExternalDevCfg>.
83
Device Network SDK (Card-Based Access Control) 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_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.
84
Device Network SDK (Card-Based Access Control) Developer Guide
3.3 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.4 NET_DVR_Init
Initialize the programming environment before calling other APIs.
API Definition
BOOL NET_DVR_Init(
);
Return Values
Returns TURE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The available error codes of this API are 0, 41, and 53. See details in Device Network SDK Errors .
Remarks
Before initializing, you can call NET_DVR_SetSDKInitCfg to set the initialization parameters, such as
supported capabilities, loading path of component libraries (only supported by Linux system), and
so on.
See Also
NET_DVR_Cleanup
3.5 NET_DVR_Login_V40
Log in to the device (supports asynchronous login).
85
Device Network SDK (Card-Based Access Control) Developer Guide
API Definition
LONG NET_DVR_Login_V40(
NET_DVR_USER_LOGIN_INFO pLoginInfo,
NET_DVR_DEVICEINFO_V40 lpDeviceInfo
);
Parameters
pLoginInfo
[IN] Login parameters, including device address, user name, password, and so on. See details in
the structure NET_DVR_USER_LOGIN_INFO .
lpDeviceInfo
[OUT] Device information. See details in the structure NET_DVR_DEVICEINFO_V40 .
Return Values
● For asynchronous login, the callback function ( fLoginResultCallBack ) configured in the
structure ( NET_DVR_USER_LOGIN_INFO ) returns the asynchronous login status, user ID and
device information.
● For synchronous login, this API returns -1 for logging failed, and returns other values for the
returned user IDs. The user ID is unique, and it helps to realize the further device operations.
● If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
● When bUseAsynLogin in pLoginInfo is 0, it indicates that login is in synchronous mode; when
bUseAsynLogin in pLoginInfo is 1, it indicates that login is in asynchronous mode.
● Up to 2048 users are allowed to log in to HCNetSDK at same time, and the values of returned
UserID are ranging from 0 to 2047.
See Also
NET_DVR_Logout
3.5.1 fLoginResultCallBack
86
Device Network SDK (Card-Based Access Control) Developer Guide
3.6 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.7 NET_DVR_SetSDKInitCfg
Set initialization parameters.
API Parameters
BOOL NET_DVR_SetSDKInitCfg(
NET_SDK_INIT_CFG_TYPE enumType,
87
Device Network SDK (Card-Based Access Control) Developer Guide
Parameters
enumType
[IN] Initialization parameter type. Different type values correspond to different parameters, see
details in the table below.
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.
88
Device Network SDK (Card-Based Access Control) Developer Guide
Remarks
This API should be called before calling NET_DVR_Init to initialize and check the dependent
libraries or capabilities.
3.8 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
[IN] Value returned by NET_DVR_Login_V40 .
dwAbilityType
[IN] Capability types, which are different according to different devices and functions.
pInBuf
[IN] Input parameter buffer pointer, which are different according to different devices and
functions, and they are returned in the structure or messages.
dwInLength
[IN] Size of input buffer.
pOutBuf
[OUT] Output parameter buffer pointer, which are different according to different devices and
functions, and they are returned in the structure or messages.
dwOutLength
[OUT] Size of buffer for receiving data.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
89
Device Network SDK (Card-Based Access Control) Developer Guide
3.9 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.
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
90
Device Network SDK (Card-Based Access Control) Developer Guide
[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.10 NET_DVR_GetDownloadState
Get the file downloading progress and status.
API Definition
LONG NET_DVR_GetDownloadState(
LONG lDownloadHandle,
DWORD *pProgress
);
Parameters
lDownloadHandle
[IN] Handle for downloading files, which is returned by NET_DVR_StartDownload .
pProgress
[OUT] Returned progress value, which is ranging from 1 to 100.
Return Values
Returns -1 for calling failed, and returns other values as the downloading status codes: 1-
Downloaded, 2-Downloading, 3-Downloading Failed, 4-Network Disconnected, Unknown Status.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
3.11 NET_DVR_GetNextRemoteConfig
Get the next search result.
91
Device Network SDK (Card-Based Access Control) Developer Guide
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.
92
Device Network SDK (Card-Based Access Control) Developer Guide
3.12 NET_DVR_GetUploadState
Get the file uploading progress and status.
API Definition
LONG NET_DVR_GetUploadState(
LONG lUploadHandle,
DWORD *pProgress
);
Parameters
lUploadHandle
[IN] Handling for uploading files, which is returned by NET_DVR_UploadFile_V40 .
pProgress
[OUT] Returned progress value.
Return Values
Return -1 for failure, and return other values as the uploading status codes, see details in the
following table.
93
Device Network SDK (Card-Based Access Control) Developer Guide
3.13 NET_DVR_ControlGateway
Call this API to remotely control the door or elevator.
94
Device Network SDK (Card-Based Access Control) Developer Guide
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.14 NET_DVR_SendRemoteConfig
Send data via the persistent connection.
API Definition
BOOL NET_DVR_SendRemoteConfig(
LONG lHandle,
DWORD dwDataType,
char *pSendBuf,
DWORD dwBufSize
);
Parameters
lHandle
Persistent configuration handle, which is returned by NET_DVR_StartRemoteConfig .
dwDataType
[IN] Data type, which relates to the commands of NET_DVR_StartRemoteConfig .
pSendBuf
95
Device Network SDK (Card-Based Access Control) Developer Guide
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
Before calling this API, you must call NET_DVR_StartRemoteConfig to get the persistent
connection handle.
3.15 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
[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
96
Device Network SDK (Card-Based Access Control) Developer Guide
[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.16 NET_DVR_StartDownload
Start downloading 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 .
97
Device Network SDK (Card-Based Access Control) Developer Guide
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.17 NET_DVR_StartRemoteConfig
Enable remote configuration.
API Definition
LONG NET_DVR_StartRemoteConfig(
LONG lUserID,
DWORD dwCommand,
LPVOID lpInBuffer,
DWORD dwInBufferLen,
fRemoteConfigCallback cbStateCallback,
LPVOID pUserData
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Configuration commands. For different functions, the commands and lpInBuffer are
different, see the detailed relation in the table below:
98
Device Network SDK (Card-Based Access Control) Developer Guide
Return Values
Returns -1 for failure, and returns other values for the handles of NET_DVR_GetNextRemoteConfig
and NET_DVR_StopRemoteConfig .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API specifies the information to search. After calling this API, you can call
NET_DVR_GetNextRemoteConfig to get the information one by one.
3.17.1 fRemoteConfigCallback
Function for calling back the persistent connection status and data to be transmitted.
99
Device Network SDK (Card-Based Access Control) Developer Guide
Parameters
dwType
[OUT] Connection statuses, see the macro definitions below:
enum _NET_SDK_CALLBACK_TYPE_{
NET_SDK_CALLBACK_TYPE_STATUS = 0,
NET_SDK_CALLBACK_TYPE_PROGRESS = 1,
NET_SDK_CALLBACK_TYPE_DATA = 2
}NET_SDK_CALLBACK_TYPE
NET_SDK_CALLBACK_TYPE_STATUS
Connection status.
NET_SDK_CALLBACK_TYPE_PROGRESS
Connection progress.
NET_SDK_CALLBACK_TYPE_DATA
Related data to be called back.
lpBuffer
[OUT] Pointer of buffer for saving progress, status, and related data to be called back, which
relates to dwType, see details in the following table.
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.
100
Device Network SDK (Card-Based Access Control) Developer Guide
3.18 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
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lpInputParam
[IN] Input parameters, refer to the structure NET_DVR_XML_CONFIG_INPUT for details.
lpOutputParam
[IN][OUT] Output parameters, refer to the structure NET_DVR_XML_CONFIG_OUTPUT for
details.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
The input parameter lpInputParam and output parameter lpOutputParam are different when
transmitting text protocol for implementing different functions, and each parameter corresponds
to a component of text protocol, see the relations below:
101
Device Network SDK (Card-Based Access Control) Developer Guide
3.19 NET_DVR_StopDownload
Stop downloading files.
API Definition
BOOL NET_DVR_StopDownload(
LONG lHandle
);
Parameters
lHandle
[IN] Handle for downloading files, which is returned by NET_DVR_StartDownload .
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
3.20 NET_DVR_StopRemoteConfig
Disconnect the persistent connection to stop remote configuration, and release resources.
API Definition
BOOL NET_DVR_StopRemoteConfig(
LONG lHandle
);
Parameters
lHandle
[IN] Handle, which is returned by NET_DVR_StartRemoteConfig .
102
Device Network SDK (Card-Based Access Control) 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.21 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.22 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
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwUploadType
103
Device Network SDK (Card-Based Access Control) Developer Guide
[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.
3.23 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 .
104
Device Network SDK (Card-Based Access Control) Developer Guide
3.24 NET_DVR_GetDVRConfig
Get the device configuration information.
API Definition
BOOL NET_DVR_GetDVRConfig(
LONG lUserID,
DWORD dwCommand,
LONG lRuleID,
LONG lChannel,
LPVOID lpOutBuffer,
DWORD dwOutBufferSize,
LPDWORD lpBytesReturned
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwCommand
[IN] Device getting commands, which are different according to different getting functions.
lRuleID
[IN] Rule ID.
lChannel
[IN] Channel No. (NIC No.), which varies with different commands. 0xffffffff-invalid or all
channels, 1-main NIC, 2-extended NIC.
lpOutBuffer
[OUT] Pointer of buffer to receive data. For different getting functions, the structures of this
parameter are different.
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 .
105
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
NET_DVR_SetDVRConfig
3.25 NET_DVR_SetDVRConfig
Set the device parameters.
API Definition
BOOL NET_DVR_SetDVRConfig(
LONG lUserID,
DWORD dwCommand,
LONG lChannel,
LPVOID lpInBuffer,
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
106
Device Network SDK (Card-Based Access Control) Developer Guide
3.26 NET_DVR_SetDVRMessageCallBack_V50
Set callback functions for getting the video data.
API Definition
BOOL NET_DVR_SetDVRMessageCallBack_V50(
int iIndex,
MSGCallBack fMessageCallBack,
void *pUser
);
Parameters
iIndex
[IN] Callback function index No., which ranges from 0 to 15.
fMessageCallBack
[IN] Callback function, see details in MSGCallBack .
pUser
[IN] User data.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE returned, call NET_DVR_GetLastError to get the error code.
Remarks
● This API supports setting multiple callback functions for different channels (up to 16 channels are
supported) at same time, and the configured callback functions are distinguished by the index
No.
● All alarm/event information will be returned in each configured callback function, and you can
distinguish the devices via the pAlarmInfo in the callback function ( MSGCallBack ).
Example
Sample Code of Setting Multiple Callback Functions to Receive Different Alarms/Events in Arming
Mode
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
int iNum=0;
void CALLBACK MessageCallbackNo1(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD
dwBufLen, void* pUser)
{
107
Device Network SDK (Card-Based Access Control) Developer Guide
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)
{
case 3: //Motion detection alarm
for (i=0; i<16; i++) //#define MAX_CHANNUM 16 //The maximum number of channels
{
if (struAlarmInfo.dwChannel[i] == 1)
{
printf("Channel Number with Motion Detection Alarm %d\n", i+1);
}
}
break;
default:
break;
}
break;
}
case COMM_UPLOAD_PLATE_RESULT:
{
NET_DVR_PLATE_RESULT struPlateResult={0};
memcpy(&struPlateResult, pAlarmInfo, sizeof(struPlateResult));
printf("License Plate Number: %s\n", struPlateResult.struPlateInfo.sLicense);//License plate number
108
Device Network SDK (Card-Based Access Control) Developer Guide
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");
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))
{
109
Device Network SDK (Card-Based Access Control) Developer Guide
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;
}
}
//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);
}
110
Device Network SDK (Card-Based Access Control) Developer Guide
}
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
111
Device Network SDK (Card-Based Access Control) Developer Guide
{
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...
}
break;
}
default:
break;
}
}
112
Device Network SDK (Card-Based Access Control) Developer Guide
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)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}
//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();
113
Device Network SDK (Card-Based Access Control) Developer Guide
return;
}
//User logout
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
See Also
NET_DVR_SetupAlarmChan_V50
3.26.1 MSGCallBack
Alarm/event information callback function.
Parameters
lCommand
[OUT] Uploaded message type. You can distinguish the alarm/event information via the type.
pAlarmer
[OUT] Alarm device information, including serial No., IP address, login handle, and so on, see
details in NET_DVR_ALARMER .
pAlarmInfo
[OUT] Alarm/event information, the details are returned in different structures according to
lCommand.
dwBufLen
[OUT] Size of alarm/event information buffer.
pUser
[OUT] User data.
114
Device Network SDK (Card-Based Access Control) Developer Guide
3.27 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.
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.28 NET_DVR_StartListen_V30
Register callback function for receiving alarm/event information and start listening (supports
multiple threads).
API Definition
LONG NET_DVR_StartListen_V30(
char *sLocalIP,
115
Device Network SDK (Card-Based Access Control) Developer Guide
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.29 NET_DVR_StopListen_V30
Stop listening (supports multiple threads).
API Definition
BOOL NET_DVR_StopListen_V30(
LONG lListenHandle
);
116
Device Network SDK (Card-Based Access Control) Developer Guide
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 .
117
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.1 NET_ALARM_CVR_SUBINFO_UNION
4.1.2 NET_ALARM_RECORD_EXCEPTION
118
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.3 NET_ALARM_RECORDFILE_LOSS
4.1.4 NET_ALARM_RESOURCE_USAGE
119
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.5 NET_ALARM_STREAM_EXCEPTION
4.1.6 NET_DVR_ALARMER
120
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.7 NET_DVR_ALARMINFO_DEV
121
Device Network SDK (Card-Based Access Control) 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.1.8 NET_DVR_ALARMINFO_DEV_V40
122
Device Network SDK (Card-Based Access Control) 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.1.9 NET_DVR_ALARMINFO_V30
123
Device Network SDK (Card-Based Access Control) 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.1.10 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:
124
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.11 NET_DVR_ALRAM_FIXED_HEADER
125
Device Network SDK (Card-Based Access Control) Developer Guide
126
Device Network SDK (Card-Based Access Control) Developer Guide
127
Device Network SDK (Card-Based Access Control) Developer Guide
Table 4-6 Structure about Alarm Parameters of Education Sharing System (struRecordingHost)
Member Data Type Description
bySubAlarmType BYTE Alarm minor type: 1-one-touch post-record
byRes1 Array of BYTE Reserved, set to 0. The maximum size is 3 bytes.
struRecordEndTime NET_DVR_TIME_EX Recording end time.
Table 4-7 Structure about Alarm Parameters of Supply Voltage Exception (struVoltageInstable)
Member Data Type Description
fVoltageValue float Supply voltage, unit: V, corrects to one decimal
place.
byVoltageAlarmType BYTE Supply voltage exception type: 0-high supply
voltage, 1-low supply voltage
byRes1 Array of BYTE Reserved, set to 0. The maximum size is 3 bytes.
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==
128
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.12 NET_DVR_ALARM_ISAPI_INFO
Remarks
When enabling the listening mode, you should call the network configuration API based on text
protocol to set the IP address for the listening service.
129
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.13 NET_DVR_ALARM_ISAPI_PICDATA
4.1.14 NET_DVR_ACS_ALARM_INFO
130
Device Network SDK (Card-Based Access Control) Developer Guide
131
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.15 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 byRes1;
DWORD dwQRCodeInfoLen;
DWORD dwVisibleLightDataLen;
DWORD dwThermalDataLen;
char *pQRCodeInfo;
char *pVisibleLightData;
char *pThermalData;
BYTE byRes[36];
}NET_DVR_ACS_EVENT_CFG, *LPNET_DVR_ACS_EVENT_CFG;
Members
dwSize
Structure size.
dwMajor
Event major types, see details in Access Control Event Types .
132
Device Network SDK (Card-Based Access Control) Developer Guide
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_UNION for details.
struAcsEventInfo
Access control event details, see NET_DVR_ACS_EVENT_DETAIL for details.
dwPicDataLen
Picture size, non-0: picture data exists.
pPicData
Picture data.
byTimeType
Time type: 0-device local time (default), 1-UTC time (which is same as struTime).
byRes1
Reserved.
dwQRCodeInfoLen
Length of the QR code information. If this member is not 0, it indicates that there is QR code
information data following after.
dwVisibleLightDataLen
Length of the visible light picture captured by the thermal camera. If this member is not 0, it
indicates that there is visible light picture data following after.
dwThermalDataLen
Length of the thermal picture. If this member is not 0, it indicates that there is thermal picture
data following after.
pQRCodeInfo
Pointer of the QR code information.
pVisibleLightData
Pointer of the visible light picture captured by the thermal camera.
pThermalData
Pointer of the thermal picture.
byRes
Reserved, set to 0.
133
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.16 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;
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.
134
Device Network SDK (Card-Based Access Control) Developer Guide
byPicEnable
Whether contain pictures: 0-no, 1-yes. If this member is set to 0, all events that meet the
requirements will be uploaded without pictures. If this member is set to 1, for all events that
meet the requirements, the event information will be uploaded if there is no linkage picture,
and the event information along with the linkage pictures will be uploaded if there are any.
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
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.1.17 NET_DVR_ACS_EVENT_DETAIL
Access control event details structure.
135
Device Network SDK (Card-Based Access Control) Developer Guide
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardType;
BYTE byAllowListNo;
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;
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 byRes1;
BYTE byMask;
BYTE byThermometryUnit;
BYTE byIsAbnomalTemperature;
float fCurrTemperature;
NET_VCA_POINT struRegionCoordinates;
BYTE byHealthCode;
BYTE byRes[47];
}NET_DVR_ACS_EVENT_DETAIL, *LPNET_DVR_ACS_EVENT_DETAIL;
136
Device Network SDK (Card-Based Access Control) Developer Guide
Members
dwSize
Structure size.
byCardNo
Card No.: 0-invalid.
byCardType
Card types: 0-invalid, 1-normal card, 2-disabled card, 3-blocklist card, 4-patrol card, 5-duress
card, 6-super card, 7-visitor card.
byAllowListNo
Allowlist 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
Authentication 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
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.
137
Device Network SDK (Card-Based Access Control) Developer Guide
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
Event serial No.: 0-invalid, which is used to judge whether the event loss occurred.
byChannelControllerID
Lane controller No.: 0-invalid, 1-main lane controller, 2-sub-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
138
Device Network SDK (Card-Based Access Control) Developer Guide
139
Device Network SDK (Card-Based Access Control) Developer Guide
Health code status: 0 (no request), 1 (no health code), 2 (green QR code), 3 (yellow QR code), 4
(red QR code), 5 (no such person), 6 (other error, e.g., searching failed due to API exception), 7
(searching for the health code timed out).
byRes
Reserved, set to 0.
4.1.18 NET_DVR_ACS_EVENT_INFO
140
Device Network SDK (Card-Based Access Control) Developer Guide
141
Device Network SDK (Card-Based Access Control) Developer Guide
142
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.19 NET_DVR_ACS_EVENT_INFO_EXTEND
143
Device Network SDK (Card-Based Access Control) Developer Guide
144
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
NET_DVR_ACS_ALARM_INFO
4.1.20 NET_DVR_ACS_EVENT_INFO_EXTEND_V20
145
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.21 NET_DVR_ACS_EXTERNAL_DEV_CFG
Structure about the peripheral parameters of access controller.
Structure Definition
struct{
DWORD dwSize;
BYTE byIDCardUpMode;
BYTE byRes1;
BYTE byCardVerifyMode;
BYTE byACSDevType;
BYTE byDoorMode;
146
Device Network SDK (Card-Based Access Control) Developer Guide
BYTE byRes2;
BYTE wDevDetailType;
BYTE byRes[300];
}NET_DVR_ACS_EXTERNAL_DEV_CFG, *LPNET_DVR_ACS_EXTERNAL_DEV_CFG;
Members
dwSize
Structure Size.
byIDCardUpMode
Mode of uploading ID card information: 0-upload 18-digit ID card No., 1-upload all information.
byRes1
Reserved, set to 0.
byCardVerifyMode
Card authentication mode: 0-authenticate by remote center, 1-authenticate by client or
platform.
byACSDevType
Device type: 1-ID card reader, 2-IC card reader, 3-QR code reader, 4-fingerprint reader, 5-
character screen + QR code reader, 6-card collector, 7-character screen, 8-fingerprint scanner, 9-
voice module, 10-person and ID card device.
byDoorMode
Door entrance or exit mode: 0-entrance, 1-exit.
byRes2
Reserved, set to 0.
wDevDetailType
External device model:
when byACSDevType=1: 0-iDR210, 1-IDM10, 2-ID card reader;
when byACSDevType=7: 0-DC48270RS043_01T, 1-DC80480B070_03T.
byRes
Reserved, set to 0.
4.1.22 NET_DVR_ACS_WORK_STATUS_V50
Access controller working status structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byDoorLockStatus[MAX_DOOR_NUM/*256*/];
147
Device Network SDK (Card-Based Access Control) Developer Guide
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 dwAllowFaceNum;
DWORD dwBlockFaceNum;
BYTE byRes2[108];
}NET_DVR_ACS_WORK_STATUS_V50,*LPNET_DVR_ACS_WORK_STATUS_V50;
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.
148
Device Network SDK (Card-Based Access Control) Developer Guide
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
Authentication types: 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+fingerprint+card+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
+fingerprint+password, 21-employee ID+face, 22-face/face+card, 23-fingerprint/face, 24-card/
face/password.
bySetupAlarmStatus
Alarm input arming status: 0-disarmed, 1-armed
byAlarmInStatus
Alarm input status: 0-no alarm, 1-in alarm.
byAlarmOutStatus
Alarm output status: 0-no alarm, 1-in alarm.
dwCardNum
Number of added cards.
byFireAlarmStatus
Fire alarm status: 0-normal, 1-short circuit alarm, 2-open circuit alarm.
byBatteryChargeStatus
Battery charging status: 0-invalid, 1-charging, 2-unchanged.
149
Device Network SDK (Card-Based Access Control) Developer Guide
byMasterChannelControllerStatus
Online status of main lane controller online status: 0-invalid, 1-offline, 2-online.
bySlaveChannelControllerStatus
Online status of sub-lane controller online status: 0-invalid, 1-offline, 2-online.
byAntiSneakServerStatus
Anti-passing back server status: 0-invalid, 1-disabled, 2-normal, 3-disconnected.
byRes3
Reserved, set to 0.
dwAllowFaceNum
The number of face pictures in allowlist.
wBlockFaceNum
The number of face pictures in blocklist.
byRes2
Reserved, set to 0
4.1.23 NET_DVR_AGAIN_RELATEDEV
Parameter structure of linked network device of doorphone
Structure Definition
struct{
NET_DVR_IPADDR struSIPServer;
NET_DVR_IPADDR struCenterAddr;
WORD wCenterPort;
BYTE byRes1[2];
NET_DVR_IPADDR struIndoorUnit;
NET_DVR_IPADDR struAgainAddr;
BYTE byRes[444];
}NET_DVR_AGAIN_RELATEDEV,*LPNET_DVR_AGAIN_RELATEDEV;
Members
struSIPServer
IP address of SIP server, refer to the structure NET_DVR_IPADDR_UNION for details.
struCenterAddr
IP address of platform or system, refer to the structure NET_DVR_IPADDR_UNION for details.
byRes
Reserved, set to 0.
struIndoorUnit
150
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
4.1.24 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;
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
151
Device Network SDK (Card-Based Access Control) Developer Guide
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.
byRes1
Reserved.
struFeature
Feature information in the matted face picture, see details in the structure
NET_DVR_FACE_FEATURE .
byRes
Reserved.
4.1.25 NET_DVR_CAPTURE_FACE_COND
Condition structure for collecting face data.
152
Device Network SDK (Card-Based Access Control) Developer Guide
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.1.26 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;
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.
153
Device Network SDK (Card-Based Access Control) Developer Guide
byFingerNo
Finger No., which is between 1 and 10.
byFingerPrintQuality
Fingerprint quality, which is between 1 and 100.
byRes
Reserved, set to 0.
4.1.27 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.
byRes
Reserved, set to 0.
4.1.28 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;
154
Device Network SDK (Card-Based Access Control) Developer Guide
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;
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 byBlockFaceMatchThreshold;
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;
155
Device Network SDK (Card-Based Access Control) Developer Guide
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.
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
156
Device Network SDK (Card-Based Access Control) Developer Guide
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
Fingerprint picture comparison timeout: 0-invalid, 1 to 20-1 to 20 second, 0xff-unlimited.
byFingerPrintRecogizeInterval
Fingerprint picture comparison interval: 0-invalid, 1 to 10-1 to 10 second, 0xff-no delay.
byFingerPrintMatchFastMode
Fingerprint matching mode: 0-invalid, 1 to 5-fast mode 1 to fast mode 5, 0xff-auto.
byFingerPrintModuleSensitive
Fingerprint module sensitive: 0-invalid, 1 to 8-sensitive level 1 to level 8.
byFingerPrintModuleLightCondition
Fingerprint module light condition: 0-invalid, 1-outdoor, 2-indoor.
byFaceMatchThresholdN
Face picture comparison threshold. which is ranging from 0 to 100.
byFaceQuality
Face picture quality, which is ranging from 0 to 100.
byFaceRecogizeTimeOut
Face recognition timeout: 1 to 20-1s to 20s, 0xff-unlimited.
byFaceRecogizeInterval
Face recognition interval: 0-invalid, 1 to 10-1s to 10s, 0xff-no delay.
wCardReaderFunction
157
Device Network SDK (Card-Based Access Control) Developer Guide
Read-only, fingerprint and card reader types, which is represented by bit: bit1-fingerprint, bit2-
face, bit3-pulse; bit value: 0-no, 1-yes
byCardReaderDescription
Fingerprint and card reader description.
wFaceImageSensitometry
Read-only, face picture exposure, which is ranging from 0 to 65535.
byLivingBodyDetect
Live face detection: 0-invalid, 1-disable, 2-disable.
byFaceMatchThreshold1
Face picture 1:1 threshold, which is ranging from 0 to 100.
wBuzzerTime
Buzzing time, which is ranging from 0 to 5999s (0-long buzzing).
byFaceMatch1SecurityLevel
Face picture 1:1 security level: 0-invalid, 1-normal, 2-high, 3-higher
byFaceMatchNSecurityLevel
Face picture 1:N security level: 0-Invalid, 1-normal, 2-high, 3-higher
byEnvirMode
Face recognition environment mode: 0-invalid, 1-indoor, 2-other
byLiveDetLevelSet
Set threshold level of live face detection: 0-invalid, 1-low, 2-medium, 3-high
byLiveDetAntiAttackCntLimit
Anti-attacking times of live face detection: 0-invalid, ranging from 1 to 255.
byEnableLiveDetAntiAttack
Whether to enable the anti-attacking of live dace detection: 0-invalid, 1-no, 1-yes.
bySupportDelFPByID
Read-only, whether the fingerprint and card reader supports deleting fingerprint by finger ID: 0-
invalid, 1-no, 2-yes.
byRes1
Reserved.
byFaceContrastMotionDetLevel
Motion detection level during face picture comparison: 0-invalid, 1-low, 2-medium, 3-high.
byDayFaceMatchThresholdN
1:N face picture comparison threshold in day, which is between 0 and 100.
byNightFaceMatchThresholdN
1:N face picture comparison threshold at night, which is between 0 and 100.
158
Device Network SDK (Card-Based Access Control) Developer Guide
byFaceRecogizeEnable
Whether to enable facial recognition: 0-invalid, 1-yes (one face), 2-no, 3-yes (multiple faces).
byBlockFaceMatchThreshold
Face picture comparison threshold in blocklist, which is between 0 and 100.
byRes3
Reserved.
byDefaultVerifyMode
Default authentication mode of the fingerprint and card reader (factory settings), read-only: 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.
dwFingerPrintCapacity
Read-only, fingerprint capability, it is valid only when byEnableFingerPrintNum is 1.
dwFingerPrintNum
Read-only, number of existing fingerprint pictures, it is valid only when
byEnableFingerPrintNum is 1.
byEnableFingerPrintNum
Read-only, whether to enable fingerprint capability: 0-no, 1-yes.
byRes
Reserved, set to 0.
4.1.29 NET_DVR_CARD_CFG_SEND_DATA
Data structure to be sent for getting card information.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
DWORD dwCardUserId;
BYTE byRes[12];
}NET_DVR_CARD_CFG_SEND_DATA,*LPNET_DVR_CARD_CFG_SEND_DATA;
Members
dwSize
159
Device Network SDK (Card-Based Access Control) Developer Guide
Structure size.
byCardNo
Card number.
dwCardUserId
Card holder ID.
byRes2
Reserved, set to 0.
4.1.30 NET_DVR_CARD_CFG_V50
Card parameter structure
Structure Definition
struct{
DWORD dwSize;
DWORD dwModifyParamType;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardValid;
BYTE byCardType;
BYTE byLeaderCard;
BYTE byUserType;
BYTE byDoorRight[MAX_DOOR_NUM/*256*/];
NET_DVR_VALID_PERIOD_CFG struValid;
BYTE byBelongGroup[MAX_GROUP_NUM/*128*/];
BYTE byCardPassword[CARD_PASSWORD_LEN/*8*/];
WORD wCardRightPlan[MAX_DOOR_NUM/*256*/][MAX_CARD_RIGHT_PLAN_NUM/*4*/];
DWORD dwMaxSwipeTime;
DWORD dwSwipeTime;
WORD wRoomNumber;
SHORT wFloorNumber;
DWORD dwEmployeeNo;
BYTE byName[NAME_LEN/*32*/];
WORD wDepartmentNo;
WORD wSchedulePlanNo;
BYTE bySchedulePlanType;
BYTE byRes2[3];
DWORD dwLockID;
BYTE byLockCode[MAX_LOCK_CODE_LEN/*8*/];
BYTE byRoomCode[MAX_DOOR_CODE_LEN/*8*/];
DWORD dwCardRight;
DWORD dwPlanTemplate;
DWORD dwCardUserId;
BYTE byCardModelType;
BYTE bySIMNum[NAME_LEN/*32*/];
BYTE byRes3[51];
}NET_DVR_CARD_CFG_V50,*LPNET_DVR_CARD_CFG_V50;
160
Device Network SDK (Card-Based Access Control) Developer Guide
Members
dwSize
Structure size.
dwModifyParamType
Card parameters to be edited, it is valid when applying card information. Each bit represents a
kind of parameters, bit value: 0-not edit. -1-edit.
161
Device Network SDK (Card-Based Access Control) Developer Guide
162
Device Network SDK (Card-Based Access Control) Developer Guide
byName
Name
wDepartmentNo
Department No.
wSchedulePlanNo
Shift schedule No.
bySchedulePlanType
Shift schedule type: 0-reserved, 1-person, 2-department
byRes2
Reserved, set to 0.
dwLockID
Lock ID
byLockCode
Lock No.
byRoomCode
Room No., which is represented by bit, bit value: 0-no permission, 1-with permission
Bit 0: weak current alarm
Bit 1: audio prompt for open door
Bit 2: restricted guest card
Bit 3: channel
Bit 4: open double locked door
Bit 5: patrol
dwCardRight
Access permission.
dwPlanTemplate
Whether to enable the schedule: 0-no, 1-yes
dwCardUserId
Card holder ID
byCardModelType
0-reserved, 1-M1 S50, 2-M1 S70, 3- FM1208 CPU card, 4-FM1216 CPU card, 5-reserved, 6-
identity card, 7-NFC
byRes2
Reserved, set to 0.
163
Device Network SDK (Card-Based Access Control) Developer Guide
Remarks
For fingerprint access control terminal (DS-K1T803F) and fingerprint time attendance terminal (DS-
K1A801F), the following members dwEmployeeNo, byName, wDepartmentNo, wSchedulePlanNo,
and bySchedulePlanType in the structure is required. For other access control device, they are
optional.
4.1.31 NET_DVR_CARD_CFG_COND
Condition structure of card configuration.
Structure Definition
struct{
DWORD dwSize;
DWORD dwCardNum;
BYTE byCheckCardNo;
BYTE byRes1[3];
WORD wLocalControllerID;
BYTE byRes2[2];
DWORD dwLockID;
BYTE byRes3[20];
}NET_DVR_CARD_CFG_COND,*LPNET_DVR_CARD_CFG_COND;
Members
dwSize
Structure size.
dwCardNum
Number of cards to get or apply, 0xffffffff-all cards.
byCheckCardNo
Whether to enable card number verification: 0-no; 1-yes.
byRes1
Reserved, set to 0.
wLocalControllerID
Distributed access controller No., 0-access controller.
byRes2
Reserved, set to 0.
dwLockID
Lock ID.
byRes3
164
Device Network SDK (Card-Based Access Control) Developer Guide
Reserved, set to 0.
Remarks
When applying card information, if the member byCheckCardNo is set to "0", the device will not
verify the card number applied by application layer, and the card number will be directly written to
the local storage, which can improve the applying speed. But the application layer should make
sure the card number is unique.
4.1.32 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.1.33 NET_DVR_DATE
Date information structure.
Structure Definition
struct{
WORD wYear;
BYTE byMonth;
BYTE byDay;
}NET_DVR_DATE,*LPNET_DVR_DATE;
165
Device Network SDK (Card-Based Access Control) Developer Guide
Members
wYear
Year
byMonth
Month
byDay
Day
4.1.34 NET_DVR_DEVICEINFO_V30
Device parameter structure (V30).
166
Device Network SDK (Card-Based Access Control) Developer Guide
search.
● bySupport&0x2: whether supports backup.
encoding parameters.
● bySupport&0x8: whether supports dual-NIC.
SADP.
● bySupport&0x20: whether supports RAID
card.
● bySupport&0x40: whether supports
RTSP.
bySupport1 BYTE Extended capabilities, if the result of bitwise
operation is 0, it refers that the capability is not
supported, if the result is 1, it indicates that the
capability is supported.
● bySupport1&0x1: whether supports SNMP
over RTSP.
● bySupport1&0x80: whether supports license
167
Device Network SDK (Card-Based Access Control) Developer Guide
stream.
● bySupport3&0x4: whether supports
third-stream.
● byMultiStreamProto&0x2: whether supports
fourth-stream.
● byMultiStreamProto&0x40: whether
supports sub-stream.
byStartDChan BYTE Start No. of digital channel, 0-no digital channel
(e.g., DVR, network camera).
168
Device Network SDK (Card-Based Access Control) Developer Guide
supported by device.
● byLanguageType&0x1: whether supports
Chinese.
● byLanguageType&0x2: whether supports
English.
byVoiceInChanNum BYTE Number of audio input channels
byStartVoiceInChanNo BYTE Start No. of audio input channel, 0-invalid.
byRes3 Array of BYTE Reserved, set to 0.
byMirrorChanNum BYTE Number of mirror channels
wStartMirrorChanNo WORD Start No. of mirror channel
byRes2 Array of BYTE Reserved, set to 0.
Remarks
● The maximum number of digital channels equal to byIPChanNum+byHighDChanNum*256.
● For login via text protocol, the following parameters are not supported: byMainProto,
bySubProto, bySupport, bySupport1, bySupport2, bySupport3, bySupport4, bySupport5,
bySupport6, bySupport7, byMultiStreamProto, byStartDTalkChan, byVoiceInChanNum,
byStartVoiceInChanNo, byMirrorChanNum, and wStartMirrorChanNo.
169
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
NET_DVR_DEVICEINFO_V40
4.1.35 NET_DVR_DEVICEINFO_V40
170
Device Network SDK (Card-Based Access Control) Developer Guide
171
Device Network SDK (Card-Based Access Control) Developer Guide
Remarks
● Four character types are allowed in the password, including digits, lowercase letters, uppercase
letters and symbols. The maximum password length is 16 bits, and there are four password
strength levels, see details below:
○ Level 0 (Risky Password): The password length is less than 8 bits, or only contains one kind of
the character types. Or the password is the same with the user name, or is the mirror writing
of the user name.
○ Level 1 (Weak Password): The password length is more than or equal to 8 bits, and contains
two kinds of the character types. Meanwhile, the combination should be (digits + lowercase
letters) or (digits + uppercase letters).
○ Level 2 (Medium Password): The password length is more than or equal to 8 bits, and contains
two kinds of the character types. Meanwhile, the combination cannot be (digits + lowercase
letters) and (digits + uppercase letters).
○ Level 3 (Strong Password): The password length is more than or equal to 8 bits, and at least
172
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.36 NET_DVR_DOOR_FILE_UPLOAD_PARAM
Structure about the parameters of the access control file to be uploaded.
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.1.37 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.
173
Device Network SDK (Card-Based Access Control) Developer Guide
byRes
Reserved, set to 0.
4.1.38 NET_DVR_ETHERNET_V30
4.1.39 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*/];
174
Device Network SDK (Card-Based Access Control) Developer Guide
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;
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
175
Device Network SDK (Card-Based Access Control) Developer Guide
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.
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.
176
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.40 NET_DVR_EVENT_CARD_LINKAGE_COND
Condition structure about the event card linkage configuration.
Structure Definition
struct{
DWORD dwSize;
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.1.41 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 .
177
Device Network SDK (Card-Based Access Control) Developer Guide
byMACAddr
Physical MAC address.
byEmployeeNo
Employee No. (person ID)
See Also
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51
4.1.42 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
4.1.43 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;
178
Device Network SDK (Card-Based Access Control) Developer Guide
NET_VCA_POINT struRightMouth;
NET_VCA_POINT struNoseTip;
}NET_DVR_FACE_FEATURE, *LPNET_DVR_FACE_FEATURE;
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.1.44 NET_DVR_FACE_PARAM_CFG
Face parameter structure
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
DWORD dwFaceLen;
char *pFaceBuffer;
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
BYTE byFaceID;
BYTE byFaceDataType;
BYTE byRes[126];
}NET_DVR_FACE_PARAM_CFG, *LPNET_DVR_FACE_PARAM_CFG;
Members
dwSize
Structure size.
byCardNo
Card number linked with the face.
179
Device Network SDK (Card-Based Access Control) Developer Guide
dwFaceLen
Face data size.
pFaceBuffer
Pointer that points to the buffer for saving face data, it is valid when dwFaceLen is not 0. The
data is encrypted.
byEnableCardReader
Face collector to be applied to, which is represented by array, each bit of array refers to one
collector. Array value: 0-not apply, 1-apply.
byFaceID
Face picture ID, which is between 1 and 2.
byFaceDataType
Face data type: 0-template (default), 1-picture
byRes
Reserved, set to 0.
4.1.45 NET_DVR_FACE_PARAM_COND
Condition structure of face information configuration.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
DWORD dwFaceNum;
BYTE byFaceID;
BYTE byFaceDataType;
BYTE byRes[126];
}NET_DVR_FACE_PARAM_COND, *LPNET_DVR_FACE_PARAM_COND;
Members
dwSize
Structure size.
byCardNo
Card number that linked with face information.
byEnableCardReader
Face collector status, which is represented by array, each bit of array refers to one collector.
Array value: 0-invalid, 1-valid.
dwFaceNum
180
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.46 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
181
Device Network SDK (Card-Based Access Control) Developer Guide
byFingerType
Fingerprint type: 0-normal fingerprint, 1-duress fingerprint, 2-patrol fingerprint, 3-super
fingerprint, 4-dismiss fingerprint
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.1.47 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.
182
Device Network SDK (Card-Based Access Control) Developer Guide
dwFingerPrintNum
Number of obtained or configured fingerprints, 0xffffffff-get all fingerprints' information.
byFingerPrintID
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
multiple times after applying each fingerprint. And the next fingerprint can be applied until the
previous fingerprint information is applied.
4.1.48 NET_DVR_GATE_TIME_CFG
Structure about the barrier time parameters of the turnstile.
Structure Definition
struct{
DWORD dwSize;
DWORD dwHoldOnALarmTime;
DWORD dwHoldOnGateOpenTime;
DWORD dwPostponeIntrusionAlarmTime;
DWORD dwNoLaneAccessTimeLimitTime;
DWORD dwSafetyZoneStayTime;
DWORD byIRTriggerTimeoutTime;
BYTE byRes[299];
}NET_DVR_GATE_TIME_CFG, *LPNET_DVR_GATE_TIME_CFG;
Members
dwSize
Structure Size.
183
Device Network SDK (Card-Based Access Control) Developer Guide
dwHoldOnALarmTime
Extend alarm device buzzing time, unit: ms.
dwHoldOnGateOpenTime
Remaining open time before the barrier receives closing order, unit: ms
dwPostponeIntrusionAlarmTime
Delay time of triggering intrusion alarm, unit: ms.
dwNoLaneAccessTimeLimitTime
Timeout alarm time for no person passing when the lane receives valid passing signal, unit: s.
dwSafetyZoneStayTime
Timeout alarm time for persons staying in the lane after arriving at the safe area when the lane
receives valid passing signal, unit: s.
byIRTriggerTimeoutTime
Maximum IR obstructed duration, it is between 0 and 255, unit: s.
byRes
Reserved, set to 0.
4.1.49 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*/];
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.
184
Device Network SDK (Card-Based Access Control) Developer Guide
struValidPeriodCfg
Group expiry date.
byGroupName
Group name
byRes2
Reserved, set to 0.
4.1.50 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
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.1.51 NET_DVR_HOLIDAY_GROUP_CFG
Holiday group configuration structure.
185
Device Network SDK (Card-Based Access Control) Developer Guide
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.1.52 NET_DVR_HOLIDAY_PLAN_CFG
Holiday schedule configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
NET_DVR_DATE
struBeginDate;
NET_DVR_DATE
struEndDate;
NET_DVR_SINGLE_PLAN_SEGMENT
186
Device Network SDK (Card-Based Access Control) Developer Guide
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.1.53 NET_DVR_INDOOR_UNIT_DEVICEID
Parameter structure of indoor station No.
Structure Definition
struct{
SHORT wFloorNumber;
WORD wRoomNumber;
WORD wDevIndex;
BYTE byRes[122];
}NET_DVR_INDOOR_UNIT_DEVICEID, *LPNET_DVR_INDOOR_UNIT_DEVICEID;
Members
wFloorNumber
Floor No.
wRoomNumber
Room No.
187
Device Network SDK (Card-Based Access Control) Developer Guide
wDevIndex
Indoor station No., which is between 0 and 10.
byRes
Reserved, set to 0.
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
4.1.54 NET_DVR_INDOOR_UNIT_RELATEDEV
Parameter structure of linked network device of indoor station.
Structure Definition
struct{
NET_DVR_IPADDR struOutdoorUnit;
NET_DVR_IPADDR struManageUnit;
NET_DVR_IPADDR struSIPServer;
NET_DVR_IPADDR struAgainUnit;
BYTE byOutDoorType;
BYTE byOutInConnectMode;
BYTE byIndoorConnectMode;
BYTE byRes1;
NET_DVR_IPADDR struIndoorUnit;
BYTE byRes[300];
}NET_DVR_INDOOR_UNIT_RELATEDEV,*LPNET_DVR_INDOOR_UNIT_RELATEDEV;
Members
struOutdoorUnit
IP address of main door station, refer to the structure NET_DVR_IPADDR_UNION for details.
struManageUnit
IP address of main station, refer to the structure NET_DVR_IPADDR_UNION for details.
struSIPServer
IP address of SIP server, refer to the structure NET_DVR_IPADDR_UNION for details.
struAgainUnit
Doorphone IP address, refer to the structure NET_DVR_IPADDR_UNION for details.
byOutDoorType
Main door station type: 0-reserved, 1-main door station, 2-villa door station
byOutInConnectMode
Network connection mode of door station and indoor station: 1-in same LAN, 2-in different LAN.
188
Device Network SDK (Card-Based Access Control) Developer Guide
byIndoorConnectMode
Network connection mode of indoor station and sub indoor station: 1-by wireless NIC, 2-by
wired NIC
byRes1
Reserved, set to 0.
struIndoorUnit
IP address of indoor station, refer to the structure NET_DVR_IPADDR_UNION for details.
byRes
Reserved, set to 0.
See Also
4.1.55 NET_DVR_INIT_CFG_ABILITY
189
Device Network SDK (Card-Based Access Control) 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.1.56 NET_DVR_IPADDR_UNION
IP Address Union
4.1.57 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.
190
Device Network SDK (Card-Based Access Control) Developer Guide
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.
4.1.58 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.1.59 NET_DVR_MANAGE_UNIT_DEVICEID
Parameter structure of main station No.
Structure Definition
struct{
DWORD wPeriod;
DWORD wDevIndex;
191
Device Network SDK (Card-Based Access Control) Developer Guide
BYTE byRes[124];
}NET_DVR_MANAGE_UNIT_DEVICEID, *LPNET_DVR_MANAGE_UNIT_DEVICEID;
Members
wPeriod
Community No., range: [0,9].
wDevIndex
Outer door station No., which is unique in each floor, and it starts from 0.
byRes
Reserved, set to 0.
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
4.1.60 NET_DVR_MANAGE_UNIT_RELATEDEV
Parameter structure of linked network device of main station.
Structure Definition
struct{
NET_DVR_IPADDR struSIPServer;
BYTE byRes[880];
}NET_DVR_MANAGE_UNIT_RELATEDEV,*LPNET_DVR_MANAGE_UNIT_RELATEDEV;
Members
struSIPServer
IP address of SIP server, refer to the structure NET_DVR_IPADDR_UNION for details.
byRes
Reserved, set to 0.
See Also
4.1.61 NET_DVR_MIME_UNIT
192
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
NET_DVR_XML_CONFIG_INPUT
4.1.62 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
193
Device Network SDK (Card-Based Access Control) Developer Guide
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.1.63 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;
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
194
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
NET_DVR_MULTI_CARD_CFG_V50
4.1.64 NET_DVR_NETCFG_V50
195
Device Network SDK (Card-Based Access Control) 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.
4.1.65 NET_DVR_OUTDOOR_FENCE_DEVICEID
Parameter structure of outer door station No.
Structure Definition
struct{
DWORD wPeriod;
DWORD wDevIndex;
BYTE byRes[124];
}NET_DVR_OUTDOOR_FENCE_DEVICEID, *LPNET_DVR_OUTDOOR_FENCE_DEVICEID;
Members
wPeriod
196
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
4.1.66 NET_DVR_OUTDOOR_UNIT_DEVICEID
Parameter structure of door station (or intelligent access control device) No.
Structure Definition
struct{
DWORD wPeriod;
DWORD wBuildingNumber;
DWORD wUnitNumber
DWORD wFloorNumber
DWORD wDevIndex
DWORD byRes[118];
}NET_DVR_OUTDOOR_UNIT_DEVICEID, *LPNET_DVR_OUTDOOR_UNIT_DEVICEID;
Members
wPeriod
Project No., range: [0,9].
wBuildingNumber
Building No.
wUnitNumber
Unit No.
wFloorNumber
Floor No.
wDevIndex
Door station No., which is unique in each floor, and it starts from 0.
byRes
Reserved, set to 0.
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
197
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.67 NET_DVR_OUTDOOR_UNIT_RELATEDEV
Parameter structure of linked network device of door station, villa door station, or intelligent
access control device.
Structure Definition
struct{
NET_DVR_IPADDR struMainOutdoorUnit;
NET_DVR_IPADDR struManageUnit;
NET_DVR_IPADDR struSIPServer;
BYTE byManageCenterID[32];
BYTE byRes[560];
}NET_DVR_OUTDOOR_UNIT_RELATEDEV,*LPNET_DVR_OUTDOOR_UNIT_RELATEDEV;
Members
struMainOutdoorUnit
IP address of door station, it is valid when sub door station exists, refer to the structure
NET_DVR_IPADDR_UNION for details.
struManageUnit
IP address of master station, refer to the structure NET_DVR_IPADDR_UNION for details.
struSIPServer
IP address of SIP server, it is valid when the sub door station exits, refer to the structure
NET_DVR_IPADDR_UNION for details.
byManageCenterID
Management center ID, which is valid in SIP mode, and it should contains digits, letters, @, and
dots.
byRes
Reserved, set to 0.
See Also
4.1.68 NET_DVR_PERSON_STATISTICS_CFG
People counting parameters structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnableStatistics;
198
Device Network SDK (Card-Based Access Control) Developer Guide
BYTE byEnableOfflineStatistics;
BYTE byCountSignalStatisticalStandard;
BYTE byRes[605];
}NET_DVR_PERSON_STATISTICS_CFG, *LPNET_DVR_PERSON_STATISTICS_CFG;
Members
dwSize
Structure size.
byEnableStatistics
Whether to enable people counting: 0-disable, 1-enable.
byEnableOfflineStatistics
Whether to enable offline people counting: 0-disable, 1-enable.
byCountSignalStatisticalStandard
People counting type: 0-invalid, 1-IR detection, 2-authentication number.
byRes
Reserved, set to 0.
4.1.69 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.
199
Device Network SDK (Card-Based Access Control) Developer Guide
byGroupName
Schedule template name.
byGroupName
Week schedule No.: 0-invalid.
dwHolidayGroupNo
Holiday group No.: 0-invalid.
byRes2
Reserved, set to 0.
4.1.70 NET_DVR_PPPOECFG
4.1.71 NET_DVR_RECORD_PASSBACK_MANUAL_COND
200
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.72 NET_DVR_RECORD_PASSBACK_MANUAL_TASK_RET
201
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.73 NET_DVR_RIGHT_CONTROLLER_AUDIO_PARAM
Structure about audio file parameters of main controller.
Structure Definition
struct{
DWORD dwSize;
DWORD dwFileSize;
DWORD dwAudioID;
BYTE byRes[256];
}NET_DVR_RIGHT_CONTROLLER_AUDIO_PARAM,*LPNET_DVR_RIGHT_CONTROLLER_AUDIO_PARAM;
Members
dwSize
Structure size.
dwFileSize
File size, unit: byte. This member is valid only when uploading audio file, and it is invalid when
downloading audio file.
dwAudioID
Audio file ID. 0xffffffff indicates uploading all audio files. Currently, only uploading all audio files
is supported, and uploading a single file by ID is not supported.
byRes
Reserved.
Remarks
The audio file is uploaded from the client to the device.
4.1.74 NET_DVR_SETUPALARM_PARAM_V50
202
Device Network SDK (Card-Based Access Control) Developer Guide
203
Device Network SDK (Card-Based Access Control) Developer Guide
1-yes.
● bit1-whether to enable ANR for people
no, 1-yes.
● bit3-whether to enable ANR for face capture:
0-no, 1-yes.
● bit4-whether to enable ANR for face picture
204
Device Network SDK (Card-Based Access Control) Developer Guide
data, 1-URL
● bit1-type of picture uploaded in message: 0-
binary, 1-URL
● bit2-type of picture uploaded for face picture
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.1.75 NET_DVR_SIMPLE_DAYTIME
Time parameter structure.
Structure Definition
struct{
BYTE byHour;
BYTE byMinute;
BYTE bySecond;
BYTE byRes;
}NET_DVR_SIMPLE_DAYTIME,*LPNET_DVR_SIMPLE_DAYTIME;
205
Device Network SDK (Card-Based Access Control) Developer Guide
Members
byHour
Hour
byMinute
Minute
bySecond
Second
byRes
Reserved, set to 0.
4.1.76 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,
24-card or face or password, 25-card or face, 26-card or face or fingerprint, 27-card or
fingerprint or password.
206
Device Network SDK (Card-Based Access Control) Developer Guide
byRes
Reserved, set to 0.
struTimeSegment
Time period parameters, see NET_DVR_TIME_SEGMENT for details.
4.1.77 NET_DVR_STREAM_INFO
Stream information structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byID[STREAM_ID_LEN/*32*/];
DWORD dwChannel;
BYTE byRes[32];
}NET_DVR_STREAM_INFO,*LPNET_DVR_STREAM_INFO;
Members
dwSize
Structure size.
byID
Stream ID, which consists of letters, digits, and dashes, 0-invalid.
dwChannel
Linked device channel. When it is 0xffffffff, if setting the stream source, this parameter indicates
that no device channel is linked; if setting configuration condition, this parameter is invalid.
byRes
Reserved, set to 0.
Remarks
● If the device does not support marking stream ID, e.g., DVR, the parameter byID should be set to
0.
● For transcoder, when setting the stream source, only one of byID and dwChannel can be valid;
when transcoding, both the byID and dwChannel can be invalid, the transcoding channel or
stream ID is automatically allocated by device.
● For other devices (e.g., CVR), when this structure is inputted as configuration condition, if both
the byID and dwChannel are invalid, error code (17) will be returned, if they are valid, but
mismatched, error may also be returned, so only setting one of these two parameters is
suggested.
207
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.78 NET_DVR_TIME
4.1.79 NET_DVR_TIME_EX
4.1.80 NET_DVR_TIME_SEGMENT
Time period parameter structure.
Structure Definition
struct{
NET_DVR_SIMPLE_DAYTIME struBeginTime;
208
Device Network SDK (Card-Based Access Control) Developer Guide
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.1.81 NET_DVR_USER_LOGIN_INFO
209
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.82 NET_DVR_VALID_PERIOD_CFG
Expiry date configuration structure.
Structure Definition
struct{
BYTE byEnable;
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.
210
Device Network SDK (Card-Based Access Control) Developer Guide
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.1.83 NET_DVR_VIDEO_INTERCOM_DEVICEID_CFG
Parameter structure for configuring video intercom device No.
Structure Definition
struct{
DWORD bySize;
BYTE byUnitType;;
BYTE byIsAutoReg;
BYTE byRes1[2];
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION uVideoIntercomUnit;
BYTE byRes2[128];
}NET_DVR_VIDEO_INTERCOM_DEVICEID_CFG, *LPNET_DVR_VIDEO_INTERCOM_DEVICEID_CFG;
Members
dwSize
Structure size.
byUnitType
Device type: 1-door station, 2-master station, 4-outer station, 5-villa door station, 6-doorphone,
7-intelligent access control device.
byIsAutoReg
Whether to enable auto registration: 0-no, 1-yes.
211
Device Network SDK (Card-Based Access Control) Developer Guide
byRes1
Reserved, set to 0.
uVideoIntercomUnit
Device No., refer to the data union NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION for
details.
byRes2
Reserved, set to 0.
Remarks
Configuring No. for doorphone is not required.
4.1.84 NET_DVR_VIDEO_INTERCOM_RELATEDEV_CFG
Configuration structure for linked network devices of video intercom.
Structure Definition
struct{
DWORD dwSize;
BYTE byUnitType;
BYTE byRes1[3];
NET_DVR_VIDEO_INTERCOM_UNIT_RELATEDEV_UNION uVideoIntercomUnit;
BYTE byRes2[128];
}NET_DVR_VIDEO_INTERCOM_RELATEDEV_CFG, *LPNET_DVR_VIDEO_INTERCOM_RELATEDEV_CFG;
Members
dwSize
Structure size.
byUnitType
Device type: 1-door station, 2-master station, 4-outer station, 5-villa door station, 6-doorphone,
7-intelligent access control device.
byRes1
Reserved, set to 0.
uVideoIntercomUnit
Parameter union of linked network device, refer to the union
NET_DVR_VIDEO_INTERCOM_UNIT_RELATEDEV_UNION for details.
byRes2
Reserved, set to 0.
212
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.85 NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
Parameter union of video intercom device No.
Structure Definition
union{
BYTE byLen[128];
NET_DVR_INDOOR_UNIT_DEVICEID struIndoorUnit;
NET_DVR_OUTDOOR_UNIT_DEVICEID struOutdoorUnit;
NET_DVR_MANAGE_UNIT_DEVICEID struManageUnit;
NET_DVR_OUTDOOR_FENCE_DEVICEID struFenceUnit;
NET_DVR_OUTDOOR_UNIT_DEVICEID struVillaOutdoorUnit;
NET_DVR_OUTDOOR_UNIT_DEVICEID struAgainConfirmUnit;
}NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION, *LPNET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION;
Members
byLen
Union size, which is 128 bytes.
struIndoorUnit
Indoor station No., refer to the structure NET_DVR_INDOOR_UNIT_DEVICEID for details.
struOutdoorUnit
Door station (or intelligent access control device) No., refer to the structure
NET_DVR_OUTDOOR_UNIT_DEVICEID for details.
struManageUnit
Main station No., refer to the structure NET_DVR_MANAGE_UNIT_DEVICEID for details.
struFenceUnit
Outer door station No., refer to the structure NET_DVR_OUTDOOR_FENCE_DEVICEID for
details.
struVillaOutdoorUnit
Villa door station No., refer to the structure NET_DVR_OUTDOOR_UNIT_DEVICEID for details.
struAgainConfirmUnit
Doorphone No., refer to the structure NET_DVR_OUTDOOR_UNIT_DEVICEID for details.
Remarks
● The rules to generate device No. are as the follows:
213
Device Network SDK (Card-Based Access Control) Developer Guide
○ The long No. of main station is "*00000001XX": "*"-project No., "001"-main station, "XX"-
main station No. (01, 02, …, increased by 1).
○ The long No. of door station, villa door station, or doorphone is "*XXXXX000$$": "*"-project
No.; "XXX"-building No.; "XX"-unit No.; "000"-door station; "$$"-door station No. ("00"-main
door station, other values-sub door station).
○ The long No. of indoor station is "*XXXXX$$$$$": "*"-project No.; "XXX"-building No.; "XX"-
4.1.86 NET_DVR_VIDEO_INTERCOM_UNIT_RELATEDEV_UNION
Configuration union of the network device linked with video intercom.
Structure Definition
union{
DWORD dwRes[256];
NET_DVR_INDOOR_UNIT_RELATEDEV struIndoorUnit;
NET_DVR_OUTDOOR_UNIT_RELATEDEV struOutdoorUnit;
NET_DVR_MANAGE_UNIT_RELATEDEV struManageUnit;
NET_DVR_OUTDOOR_UNIT_RELATEDEV struVillaUnit;
NET_DVR_AGAIN_RELATEDEV struAgainUnit;
}NET_DVR_VIDEO_INTERCOM_UNIT_RELATEDEV_UNION,*LPNET_DVR_VIDEO_INTERCOM_UNIT_RELATEDEV_UNION;
Members
dwRes
Union size, which is 1024 bytes (256 × 4).
struIndoorUnit
Linked network device parameters of indoor station, refer to the structure
NET_DVR_INDOOR_UNIT_RELATEDEV for details.
struOutdoorUnit
Linked network device parameters of door station, outer door station, or intelligent access
control device, refer to the structure NET_DVR_OUTDOOR_UNIT_RELATEDEV for details.
struManageUnit
Linked network device parameters of master station, refer to the structure
NET_DVR_MANAGE_UNIT_RELATEDEV for details.
struVillaUnit
214
Device Network SDK (Card-Based Access Control) Developer Guide
Linked network device parameters of villa door station, refer to the structure
NET_DVR_OUTDOOR_UNIT_RELATEDEV for details.
struAgainUnit
Linked network device parameters of doorphone, refer to the structure
NET_DVR_AGAIN_RELATEDEV for details.
See Also
NET_DVR_VIDEO_INTERCOM_RELATEDEV_CFG
4.1.87 NET_DVR_WEEK_PLAN_CFG
Week schedule parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
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.1.88 NET_DVR_XML_CONFIG_INPUT
215
Device Network SDK (Card-Based Access Control) Developer Guide
Related API
NET_DVR_STDXMLConfig
4.1.89 NET_DVR_XML_CONFIG_OUTPUT
216
Device Network SDK (Card-Based Access Control) Developer Guide
Related API
NET_DVR_STDXMLConfig
4.1.90 NET_SDK_CALLBACK_STATUS_NORMAL
4.1.91 NET_VCA_POINT
217
Device Network SDK (Card-Based Access Control) Developer Guide
4.1.92 NET_VCA_RECT
4.2 Enumeration
4.2.1 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,
218
Device Network SDK (Card-Based Access Control) Developer Guide
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_BLOCKALLOWLIST_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_BLOCKLIST_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,
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_HD_CAMERA_CORRECT_TABLE_FILE = 42,
NET_SDK_DOWNLOAD_CLIENT_CALIBFILE_FILE = 43,
NET_SDK_DOWNLOAD_FOUR_CAMERAS_PICTURES_FILE = 44,
NET_SDK_DOWNLOAD_SCENE_FILE = 45,
NET_SDK_DOWNLOAD_OPEN_SOURCE_CERT = 46,
NET_SDK_DOWNLOAD_RATIOSTITCHING_FILE = 47,
NET_SDK_DOWNLOAD_LENS_PARAM_FILE = 48,
NET_SDK_DOWNLOAD_SELECT_DEVTYPE_CALIBFILE = 49
} NET_SDK_DOWNLOAD_TYPE;
Enumeration Type
NET_SDK_DOWNLOAD_CERT
219
Device Network SDK (Card-Based Access Control) Developer Guide
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_BLOCKALLOWLIST_FILE
Blocklist and allowlist configuration file.
NET_SDK_DOWNLOAD_GUID_FILE
GUID file.
NET_SDK_DOWNLOAD_FILE_FORM_CLOUD
Picture in the cloud storage.
NET_SDK_DOWNLOAD_PICTURE
Picture.
NET_SDK_DOWNLOAD_VIDEO
Video.
NET_DVR_DOWNLOAD_SCREEN_FILE
Screen server file.
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL
Local material file of information release.
NET_SDK_DOWNLOAD_THERMOMETRIC_FILE
Thermometry calibration file.
NET_SDK_DOWNLOAD_LED_CHECK_FILE
LED correction file.
NET_SDK_DOWNLOAD_VEHICLE_INFORMATION
220
Device Network SDK (Card-Based Access Control) Developer Guide
221
Device Network SDK (Card-Based Access Control) Developer Guide
4.2.2 NET_SDK_UPLOAD_TYPE
222
Device Network SDK (Card-Based Access Control) Developer Guide
223
Device Network SDK (Card-Based Access Control) Developer Guide
224
Device Network SDK (Card-Based Access Control) Developer Guide
225
Device Network SDK (Card-Based Access Control) Developer Guide
226
Device Network SDK (Card-Based Access Control) Developer Guide
227
Device Network SDK (Card-Based Access Control) Developer Guide
A.1 /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json
Get the capability of getting total number of access control events by specific conditions.
A.2 /ISAPI/AccessControl/AcsEventTotalNum?format=json
Get the total number of access control events by specific conditions.
228
Device Network SDK (Card-Based Access Control) Developer Guide
Remarks
● The recommended timeout is 30s.
● This URI is not supported by integration of information release system.
A.3 /ISAPI/AccessControl/attendanceStatusModeCfg/capabilities?
format=json
Get the configuration capability of the attendance mode.
229
Device Network SDK (Card-Based Access Control) Developer Guide
A.4 /ISAPI/AccessControl/attendanceStatusModeCfg?format=json
Operations about the attendance mode configuration.
A.5 /ISAPI/AccessControl/attendanceStatusRuleCfg/capabilities?
format=json
Get the configuration capability of the attendance status and rule.
230
Device Network SDK (Card-Based Access Control) Developer Guide
Request None.
Response Succeeded: JSON_Cap_AttendanceStatusRuleCfg
Failed: JSON_ResponseStatus
A.6 /ISAPI/AccessControl/attendanceStatusRuleCfg?
attendanceStatus=&format=json
Operations about the configuration of the attendance status and rule.
231
Device Network SDK (Card-Based Access Control) Developer Guide
Request JSON_AttendanceStatusRuleCfg
Response JSON_ResponseStatus
A.7 /ISAPI/AccessControl/capabilities
Get the functional capability of access control.
A.8 /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json
Get the capability of collecting card information.
232
Device Network SDK (Card-Based Access Control) Developer Guide
A.9 /ISAPI/AccessControl/CaptureCardInfo?format=json
Collect card information.
A.10 /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json
Get the capability of collecting ID card information.
233
Device Network SDK (Card-Based Access Control) Developer Guide
A.11 /ISAPI/AccessControl/CaptureIDInfo?format=json
Collect ID card information.
A.12 /ISAPI/AccessControl/CapturePresetParam/capabilities?
format=json
Get the configuration capability of online collection preset parameters.
234
Device Network SDK (Card-Based Access Control) Developer Guide
Failed: JSON_ResponseStatus
A.13 /ISAPI/AccessControl/CapturePresetParam?format=json
Get or set the online collection preset parameters.
235
Device Network SDK (Card-Based Access Control) Developer Guide
Request JSON_CapturePreset
Response JSON_ResponseStatus
A.14 /ISAPI/AccessControl/CaptureRule/capabilities?format=json
Get the configuration capability of online collection rules.
A.15 /ISAPI/AccessControl/CaptureRule?format=json
Get or set the parameters of online collection rules.
236
Device Network SDK (Card-Based Access Control) Developer Guide
A.16 /ISAPI/AccessControl/CardOperations/capabilities?format=json
Get card operation capability.
A.17 /ISAPI/AccessControl/CardOperations/cardParam?format=json
Set card parameters (only available for CPU card).
237
Device Network SDK (Card-Based Access Control) Developer Guide
Request JSON_CardParam
Response JSON_ResponseStatus
A.18 /ISAPI/AccessControl/CardOperations/clearData?format=json
Delete data from the card.
A.19 /ISAPI/AccessControl/CardOperations/controlBlock?format=json
Change the control block of a specific section (only available for M1 card).
238
Device Network SDK (Card-Based Access Control) Developer Guide
A.20 /ISAPI/AccessControl/CardOperations/customData/searchTask?
format=json
Search for custom card information.
A.21 /ISAPI/AccessControl/CardOperations/customData?format=json
Set custom card information.
239
Device Network SDK (Card-Based Access Control) Developer Guide
A.22 /ISAPI/AccessControl/CardOperations/dataBlock/control?
format=json
Do operations (i.e., plus, minus, copy, and paste) on the data block.
A.23 /ISAPI/AccessControl/CardOperations/dataBlock/<address>?
format=json
Read or write data block (only available for M1 card).
240
Device Network SDK (Card-Based Access Control) Developer Guide
Request JSON_DataBlock
Response JSON_ResponseStatus
Remarks
The <address> in the request URI refers to the block address, which is same as that in
JSON_DataBlock .
A.24 /ISAPI/AccessControl/CardOperations/dataTrans?format=json
Pass through the data package (only available for CPU card).
A.25 /ISAPI/AccessControl/CardOperations/encryption?format=json
Set card encryption parameters (only available for CPU card).
241
Device Network SDK (Card-Based Access Control) Developer Guide
A.26 /ISAPI/AccessControl/CardOperations/protocol?format=json
Set operation protocol type for the card (only available when applying card).
A.27 /ISAPI/AccessControl/CardOperations/reset?format=json
Reset card parameters (only available for CPU card).
A.28 /ISAPI/AccessControl/CardOperations/sectionEncryption?
format=json
Set the encryption parameters of a specific section (only available for M1 card).
242
Device Network SDK (Card-Based Access Control) Developer Guide
A.29 /ISAPI/AccessControl/CardOperations/verification?format=json
Verify the password of the encrypted section (only available for M1 card).
243
Device Network SDK (Card-Based Access Control) Developer Guide
A.30 /ISAPI/AccessControl/ChannelControllerAlarmLinkage
Get or set the alarm linkage parameters of the lane controller.
A.31 /ISAPI/AccessControl/ChannelControllerAlarmLinkage/capabilities
Get the configuration capability of the alarm linkage of the lane controller.
244
Device Network SDK (Card-Based Access Control) Developer Guide
A.32 /ISAPI/AccessControl/ChannelControllerAlarmOut/capabilities
Get the configuration capability of the alarm output of the lane controller.
A.33 /ISAPI/AccessControl/ChannelControllerAlarmOut?
controllerType=&alarmOutNo=
Get or set the alarm output parameters of the lane controller.
245
Device Network SDK (Card-Based Access Control) Developer Guide
A.34 /ISAPI/AccessControl/ChannelControllerAlarmOutControl
Control the alarm output of the lane controller.
246
Device Network SDK (Card-Based Access Control) Developer Guide
Request XML_ChannelControllerAlarmOutControl
Response XML_ResponseStatus
A.35 /ISAPI/AccessControl/ChannelControllerAlarmOutControl/
capabilities
Get the capability of controlling the alarm output of the lane controller.
A.36 /ISAPI/AccessControl/ChannelControllerCfg
Get or set the lane controller parameters.
247
Device Network SDK (Card-Based Access Control) Developer Guide
A.37 /ISAPI/AccessControl/ChannelControllerCfg/capabilities
Get the lane controller configuration capability.
A.38 /ISAPI/AccessControl/channelControllerTypeCfg/capabilities?
format=json
Get the configuration capability of the lane controller's device type.
248
Device Network SDK (Card-Based Access Control) Developer Guide
Request None.
Response Succeeded: JSON_ChannelControllerTypeCfgCap
Failed: JSON_ResponseStatus
A.39 /ISAPI/AccessControl/channelControllerTypeCfg?format=json
Get or set the device type parameters of the lane controller.
A.40 /ISAPI/AccessControl/Configuration/IRCfg/capabilities?
format=json
Get active infrared intrusion capability.
249
Device Network SDK (Card-Based Access Control) Developer Guide
A.41 /ISAPI/AccessControl/Configuration/IRCfg?format=json
Get or set active infrared intrusion parameters.
250
Device Network SDK (Card-Based Access Control) Developer Guide
A.42 /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?
format=json
Get the configuration capability of enabling NFC (Near-Field Communication) function.
A.43 /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Operations about the configuration of enabling NFC (Near-Field Communication) function.
251
Device Network SDK (Card-Based Access Control) Developer Guide
A.44 /ISAPI/AccessControl/Configuration/RFCardCfg/capabilities?
format=json
Get the configuration capability of enabling RF (Radio Frequency) card recognition.
A.45 /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Operations about the configuration of enabling RF (Radio Frequency) card recognition.
252
Device Network SDK (Card-Based Access Control) Developer Guide
A.46 /ISAPI/AccessControl/FaceCompareCond
Get or set the condition parameters of face picture comparison.
253
Device Network SDK (Card-Based Access Control) Developer Guide
A.47 /ISAPI/AccessControl/FaceCompareCond/capabilities
Get condition configuration capability of face picture comparison.
A.48 /ISAPI/AccessControl/GateDialAndInfo
Get the local DIP (Dual In-line Package) and information of the turnstile.
254
Device Network SDK (Card-Based Access Control) Developer Guide
Request None.
Response Succeeded: XML_GateDialAndInfo
Failed: XML_ResponseStatus
A.49 /ISAPI/AccessControl/GateDialAndInfo/capabilities
Get the capability of getting the local DIP (Dual In-line Package) and information of the turnstile.
A.50 /ISAPI/AccessControl/GateIRStatus
Get the status of the active infrared intrusion detector of the turnstile.
255
Device Network SDK (Card-Based Access Control) Developer Guide
A.51 /ISAPI/AccessControl/GateIRStatus/capabilities
Get the capability of getting the status of the active infrared intrusion detector of the turnstile.
A.52 /ISAPI/AccessControl/GateRelatedPartsStatus
Get the related components' status of the turnstile.
A.53 /ISAPI/AccessControl/GateRelatedPartsStatus/capabilities
Get the capability of getting the related components' status of the turnstile.
256
Device Network SDK (Card-Based Access Control) Developer Guide
A.54 /ISAPI/AccessControl/GateStatus
Get the general turnstile status.
A.55 /ISAPI/AccessControl/GateStatus/capabilities
Get the capability of getting the general turnstile status.
257
Device Network SDK (Card-Based Access Control) Developer Guide
Query None.
Request None.
Response Succeeded: XML_Cap_GateStatus
Failed: XML_ResponseStatus
A.56 /ISAPI/AccessControl/GetAcsEvent/capabilities
Get capability of getting access control event.
A.57 /ISAPI/AccessControl/IdentityTerminal/capabilities
Get configuration capability of intelligent identity recognition terminal.
258
Device Network SDK (Card-Based Access Control) Developer Guide
A.58 /ISAPI/AccessControl/IdentityTerminal
Operations about configuration of intelligent identity recognition terminal.
A.59 /ISAPI/AccessControl/OfflineCapture/capabilities?format=json
Get the offline collection capability.
259
Device Network SDK (Card-Based Access Control) Developer Guide
Request None.
Response Succeeded: JSON_OfflineCaptureCap
Failed: JSON_ResponseStatus
A.60 /ISAPI/AccessControl/OfflineCapture/DataCollections/
<captureNo>?format=json
Deleted a specific piece of offline collected data.
Remarks
The <captureNo> in the request URI refers to the collection No.
A.61 /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?
format=json
Search for the collected data.
260
Device Network SDK (Card-Based Access Control) Developer Guide
Request JSON_SearchTaskCond
Response Succeeded: JSON_SearchTaskResponse
Failed: JSON_ResponseStatus
A.62 /ISAPI/AccessControl/OfflineCapture/DataCollections?format=json
Delete all offline collected data.
A.63 /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?
format=json
Get the progress of exporting the offline collected data.
261
Device Network SDK (Card-Based Access Control) Developer Guide
A.64 /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json
Export the offline collected data.
A.65 /ISAPI/AccessControl/OfflineCapture/progress?format=json
Get the offline collection progress.
262
Device Network SDK (Card-Based Access Control) Developer Guide
A.66 /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Get or set the parameters of offline collection rules.
A.67 /ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?
format=json
Get the details of failing to upload the user list of offline collection.
263
Device Network SDK (Card-Based Access Control) Developer Guide
Request None.
Response Succeeded: JSON_UploadFailedDetails
Failed: JSON_ResponseStatus
A.68 /ISAPI/AccessControl/remoteCtrllerModeCfg/capabilities?
format=json
Get the configuration capability of the keyfob control mode.
A.69 /ISAPI/AccessControl/remoteCtrllerModeCfg?format=json
Get or set the parameters of the keyfob control mode.
264
Device Network SDK (Card-Based Access Control) Developer Guide
A.70 /ISAPI/AccessControl/RightControllerAudio/capabilities
Get the configuration capability of the audio file of the main controller.
A.71 /ISAPI/AccessControl/RightControllerAudio/<ID>
Get or set the audio file parameters of the main controller, or delete the audio file of the main
controller.
265
Device Network SDK (Card-Based Access Control) Developer Guide
Request None.
Response Succeeded: XML_RightControllerAudio
Failed: XML_ResponseStatus
Remarks
● The <ID> in the request URI refers to the audio ID, and its range depends on the device
capability.
● The timeout of deleting the audio file should be set to 20s.
266
Device Network SDK (Card-Based Access Control) Developer Guide
B.1 JSON_AcsEventTotalNum
AcsEventTotalNum message in JSON format
{
"AcsEventTotalNum":{
"totalNum":
/*required, integer, total number of events that match the search conditions*/
}
}
B.2 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 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: "true"-yes, "false"-no*/
"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"*/
}
}
267
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
Access Control Event Types
B.3 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)*/
}
}
B.4 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*/
}]
}
}
268
Device Network SDK (Card-Based Access Control) Developer Guide
B.5 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*/
"@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":{
269
Device Network SDK (Card-Based Access Control) Developer Guide
See Also
Access Control Event Types
B.6 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
270
Device Network SDK (Card-Based Access Control) Developer Guide
"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)*/
}
}
B.7 JSON_Cap_AttendanceStatusRuleCfg
AttendanceStatusRuleCfg capability 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*/
"@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"*/
}
}
}
271
Device Network SDK (Card-Based Access Control) Developer Guide
B.8 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*/
}
}
B.9 JSON_CapturePresetCap
CapturePresetCap capability message in JSON format
{
"CapturePresetCap":{
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
}
}
}
B.10 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": ,
/*optional, integer, number of collected fingerprints*/
"reqCardNum": ,
/*optional, integer, number of cards to be collected*/
272
Device Network SDK (Card-Based Access Control) Developer Guide
"cardNum": ,
/*optional, integer, number of collected cards*/
"reqIDCardNum": ,
/*optional, integer, number of ID cards to be collected*/
"IDCardNum": ,
/*optional, integer, number of collected ID cards*/
"reqIssueNum": ,
/*optional, int, number of persons to be issued with smart cards*/
"IssuedNum":
/*optional, int, number of persons that have been issued with smart cards*/
}
}
B.11 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*/
}
}
B.12 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
}
}
}
273
Device Network SDK (Card-Based Access Control) Developer Guide
B.13 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*/
}
}
B.14 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", "FelicaCard"-FeliCa card, "DesfireCard"-
DESFire card*/
}
}
B.15 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","FelicaCard","DesfireCard"]
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard"-FeliCa card, "DesfireCard"-
DESFire card*/
}
}
274
Device Network SDK (Card-Based Access Control) Developer Guide
B.16 JSON_CardOperationsCap
JSON message about card operation capability
{
"CardOperationsCap":{
"SectionEncryption":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"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":{
275
Device Network SDK (Card-Based Access Control) Developer Guide
276
Device Network SDK (Card-Based Access Control) Developer Guide
277
Device Network SDK (Card-Based Access Control) Developer Guide
}
},
"CardParam":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"type":{
/*required, string, card types*/
"@opt": ["CPU1356", "PSAM1", "PSAM2","PSAM3","PSAM4"]
},
"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
}
},
"Issue":{
/*capability of sending a request for card issuing and getting the current card issuing status and real-time card issuing
results, related URIs: /ISAPI/AccessControl/CardOperations/localIssueRequest?format=json and /ISAPI/AccessControl/
CardOperations/localIssueStatus?format=json*/
"supportFunction":{
/*required, string, supported methods. The actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"LocalIssueRequest":{
"operation":{
/*required, string, operation type: "face"-issue card to be enrolled with face picture, "fingerprint"-issue card to be
enrolled with fingerprint*/
"@opt":["face", "fingerprint"]
278
Device Network SDK (Card-Based Access Control) Developer Guide
},
"FPIndex":{
/*optional, int, fingerprint storage index (card storage area). This field is valid when operation is "fingerprint"*/
"@min":0,
"@max":0
},
"facePic":{
/*optional, string, face picture type: "visible"-visible light picture, "infrared"-IR light picture. This field is valid when
operation is "face"*/
"@opt":["visible", "infrared"]
}
},
"LocalIssueRes":{
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-card operation failed, "timeout"-timed out,
"verifiyFailure"-authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardNo":{
/*optional, string, issued card No.*/
"@min":0
},
"cardErrorCode":{
/*dependent, string, internal error code of card operation returned by the device*/
"@opt":
}
}
},
"localIssueCfg":{
/*capability of configuring rule parameters for issuing smart cards, related URI: /ISAPI/AccessControl/CardOperations/
localIssueCfg?format=json*/
"validFP":{
/*optional, array of int, valid fingerprint ID. This field is valid for applying fingerprint to the card*/
"@size":2,
"@min":1,
"@max":10
},
"validFacePicture":{
/*optional, string, valid face picture type: "visible"-visible light picture, "infrared"-IR light picture. This field is valid for
applying face picture to the card*/
"@opt":["visible", "infrared"]
}
},
"ClearData":{
/*capability of deleting data from the card, related URI: /ISAPI/AccessControl/CardOperations/clearData?
format=json*/
"supportFunction":{
/*required, string, supported methods. The actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"checkAll":{
/*optional, boolean, whether to delete all data*/
279
Device Network SDK (Card-Based Access Control) Developer Guide
"@opt":[true, false]
},
"checkFingerprint":{
/*optional, boolean, whether to delete fingerprint data. This field is valid when checkAll is false or does not exist*/
"@opt":[true, false]
},
"fingerprints":{
/*optional, array of int, list of addresses whether the fingerprints to be deleted are stored. This field is valid when
checkFingerprint exists. If this field does not exist, it indicates deleting all fingerprints*/
"@size":2,
"@min":0,
"@max":0
},
"checkFacePicture":{
/*optional, boolean, whether to delete face data. This field is valid when checkAll is false or does not exist*/
"@opt":[true, false]
},
"checkCustom":{
/*optional, boolean, whether to delete custom data. This field is valid when checkAll is false or does not exist*/
"@opt":[true, false]
},
"ClearDataRes":{
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardErrorCode":{
/*dependent, int, internal error code of card operation*/
"@opt":
}
}
},
"CustomData":{
/*capability of setting custom card information, related URI: /ISAPI/AccessControl/CardOperations/customData?
format=json*/
"supportFunction":{
/*required, string, supported methods. The actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"address":{
/*optional, int, start address for writing. By default the data will be written from the start address*/
"@min":0,
"@max":0
},
"length":{
/*optional, int, length of source data to be written, it is 0 by default, unit: byte*/
"@min":0,
"@max":0
},
"data":{
/*required, string, custom information encoded by Base64*/
280
Device Network SDK (Card-Based Access Control) Developer Guide
"@min":0,
"@max":0
},
"CustomDataRes":{
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardErrorCode":{
/*dependent, int, internal error code of card operation*/
"@opt":
}
}
},
"CustomDataSearchCond":{
/*condition configuration capability of searching for custom card information, related URI: /ISAPI/AccessControl/
CardOperations/customData/searchTask?format=json*/
"address":{
/*optional, int, start address for reading. By default the data will be read from the start address*/
"@min":0,
"@max":0
},
"length":{
/*optional, int, length of data to be read, it is 0 by default, unit: byte*/
"@min":0,
"@max":0
}
},
"CustomDataResult":{
/*result capability of searching for custom card information, related URI: /ISAPI/AccessControl/CardOperations/
customData/searchTask?format=json*/
"length":{
/*required, int, length of data that has been read, unit: byte*/
"@min":0,
"@max":0
},
"data":{
/*required, string, card information encoded by Base64*/
"@min":0,
"@max":0
},
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardErrorCode":{
/*required, int, internal error code of card operation*/
"@opt":
}
},
281
Device Network SDK (Card-Based Access Control) Developer Guide
"CardIssueStatus":{
/*capability of getting the smart card issuing status, related URI: /ISAPI/AccessControl/CardOperations/
cardIssueStatus?format=json*/
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardNo":{
/*optional, string, issued card No.*/
"@min":0,
"@max":0
},
"cardErrorCode":{
/*dependent, int, internal error code of card operation*/
"@opt":
},
"face":{
/*optional, boolean, issuing status of the card containing the face picture: true-issued, false-not issued*/
"@opt":[true, false]
},
"fingprint1":{
/*optional, boolean, issuing status of the card containing fingerprint 1: true-issued, false-not issued*/
"@opt":[true, false]
},
"fingprint2":{
/*optional, boolean, issuing status of the card containing fingerprint 2: true-issued, false-not issued*/
"@opt":[true, false]
},
"customData":{
/*optional, boolean, issuing status of the card containing custom information: true-issued, false-not issued*/
"@opt":[true, false]
}
}
}
}
B.17 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"*/
}
}
282
Device Network SDK (Card-Based Access Control) Developer Guide
B.18 JSON_CardProto
JSON message about operation protocol types of card
{
"CardProto": {
"protocol": "TypeA"
/*required, string, operation protocol types: "TypeA,TypeB,TypeAB,125K,all"*/
}
}
B.19 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*/
}
}
B.20 JSON_ChannelControllerTypeCfg
JSON message about the device type parameters of the lane controller
{
"ChannelControllerTypeCfg":{
"deviceModel":""
/*required, string, device type: "K3Y501-A"-DS-K3Y501 series flap barrier, "K3B501S-A"-DS-K3B501S series swing
barrier, "K3B601S-A"-DS-K3B601S series swing barrier, "K3G501"-DS-K3G501 series tripod turnstile*/
}
}
B.21 JSON_ChannelControllerTypeCfgCap
JSON message about the configuration capability of the lane controller's device type
{
"ChannelControllerTypeCfgCap":{
"deviceModel":{
/*required, device type: "K3Y501-A"-DS-K3Y501 series flap barrier, "K3B501S-A"-DS-K3B501S series swing barrier,
"K3B601S-A"-DS-K3B601S series swing barrier, "K3G501"-DS-K3G501 series tripod turnstile*/
"@opt":["K3Y501-A","K3B501S-A","K3B601S-A","K3G501"]
283
Device Network SDK (Card-Based Access Control) Developer Guide
}
}
}
B.22 JSON_ClearData
JSON message about the conditions of deleting data from the card
{
"ClearData":{
"checkAll":true,
/*optional, boolean, whether to delete all data*/
"checkFingerprint":true,
/*optional, boolean, whether to delete fingerprint data. This node is valid when the value of checkAll is false or the
node checkAll does not exist*/
"fingerprints":[1, 2],
/*optional, array of int, address list of storage areas where the fingerprints to be deleted are stored. This node is valid
when the node checkFingerprint exists. If this node does not exist, it indicates deleting all fingerprints*/
"checkFacePicture":true,
/*optional, boolean, whether to delete face data. This node is valid when the value of checkAll is false or the node
checkAll does not exist*/
"checkCustom":true
/*optional, boolean, whether to delete custom data. This node is valid when the value of checkAll is false or the node
checkAll does not exist*/
}
}
B.23 JSON_ClearDataRes
JSON message about the result parameters of deleting data from the card
{
"ClearDataRes":{
"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"cardErrorCode":
/*dependent, int, internal error code of card operation*/
}
}
B.24 JSON_ControlBlock
JSON message about the control block parameters of a specific section.
{
"ControlBlock": {
284
Device Network SDK (Card-Based Access Control) Developer Guide
"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*/
}
}
B.25 JSON_CustomData
JSON message about the conditions of setting custom card information
{
"CustomData":{
"address":1,
/*optional, int, start address for writing. By default the data will be written from the start address*/
"length":1,
/*optional, int, length of the source data to be written, it is 0 by default, unit: byte*/
"data":""
/*required, string, custom information encoded by Base64*/
}
}
B.26 JSON_CustomDataRes
JSON message about the result parameters of setting custom card information
{
"CustomDataRes":{
"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"cardErrorCode":
/*dependent, int, internal error code of card operation*/
}
}
B.27 JSON_CustomDataResult
JSON message about the results of searching for custom card information
{
"CustomDataResult":{
"status":"ok",
285
Device Network SDK (Card-Based Access Control) Developer Guide
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"cardErrorCode":0,
/*dependent, int, internal error code of card operation. This node is valid when the value of status is "failed"*/
"length":1,
/*dependent, int, length of the source data that has been read, unit: byte. This node is valid when the value of status
is "ok"*/
"data":""
/*dependent, string, card information encoded by Base64. This node is valid when the value of status is "ok"*/
}
}
B.28 JSON_CustomDataSearchCond
JSON message about condition parameters of searching for custom card information
{
"CustomDataSearchCond":{
"address":1,
/*optional, int, start address for reading data. By default the data will be read from the start address*/
"length":1
/*optional, int, length of the data that can be read, it is 0 by default, unit: byte*/
}
}
B.29 JSON_DataBlock
JSON message about data block details
{
"DataBlock": {
"addressOfBlock": ,
/*optional, integer, block address*/
"data": "",
/*required, string, a hexBinary character string, i.e., "f2345678abf2345678abf2345678abf2"*/
}
}
B.30 JSON_DataBlockCtrl
JSON message about operation parameters of data block
{
"DataBlockCtrl": {
"addressOfBlock": ,
/*required, integer, block address*/
"command":"",
286
Device Network SDK (Card-Based Access Control) Developer Guide
B.31 JSON_DataOutputCfg
DataOutputCfg message in JSON format
{
"DataOutputCfg":{
"password":"",
/*required, string, password for exporting*/
"type":""
/*optional, string, exporting type: "UsbDisk"-exporting via USB flash drive, "UsbPrivate"-exporting via private USB,
"ISAPI"-exporting via ISAPI*/
}
}
B.32 JSON_DataOutputProgress
DataOutputProgress message in JSON format
{
"DataOutputProgress":{
"progress":
/*required, integer, exporting progress*/
}
}
B.33 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*/
}
}
287
Device Network SDK (Card-Based Access Control) Developer Guide
B.34 JSON_EventNotificationAlert_Alarm/EventInfo
EventNotificationAlert message with alarm or event information in JSON format.
{
"ipAddress": "",
/*required, device IPv4 address , string, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, device IPv6 address, string, the maximum size is 128 bytes*/
"portNo": ,
/*optional, device port No., integer32*/
"protocol": "",
/*optional, protocol type, "HTTP, HTTPS", string, the maximum size is 32 bytes*/
"macAddress": "",
/*optional, MAC address, string, the maximum size is 32 bytes, e.g., 01:17:24:45:D9:F4*/
"channelID": "",
/*optional, device channel No., integer32*/
"dateTime": "",
/*optional, string, alarm/event triggered or occurred time based on ISO8601, the maximum size is 32 bytes, e.g.,
2009-11-14T15:27Z*/
"activePostCount": "",
/*required, alarm/event frequency, integer32*/
"eventType": "",
/*required, alarm/event type, "captureResult, faceCapture,...", string, the maximum size is 128 bytes*/
"eventState": "",
/*required, string, the maximum size is 32 bytes, durative alarm/event status: "active"-valid, "inactive"-invalid*/
"eventDescription": "",
/*required, event description, string, the maximum size is 128 bytes*/
"deviceID":"",
/*string type, device ID*/
"uuid":"",
/*string type, event UUID, which is used to uniquely identify an event, the standard UUID format is xxxxxxxx-xxxx-xxxx-
xxxx-xxxxxxxxxxxx*/
...
/*optional, for different alarm/event types, the nodes are different, see the message examples in different
applications*/
}
B.35 JSON_IdentityInfo
IdentityInfo message in JSON format
{
"IdentityInfo":{
"chnName":"",
/*optional, string, reserved*/
"enName":"",
/*optional, string, English name*/
"sex":"",
288
Device Network SDK (Card-Based Access Control) Developer Guide
B.36 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
},
289
Device Network SDK (Card-Based Access Control) 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
},
"passNo":{
/*optional, string, entry-exit permit No.*/
"@min":0,
"@max":0
},
"issueNumber":{
/*optional, string, issuing times*/
"@min":0,
"@max":0
},
"certificateType":{
/*optional, string, certificate type*/
"@min":0,
290
Device Network SDK (Card-Based Access Control) Developer Guide
"@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
}
}
}
B.37 JSON_IdentityInfoCond
IdentityInfoCond message in JSON format
{
"IdentityInfoCond":{ }
/*currently there are no condition parameters, so this field can be set to NULL*/
}
291
Device Network SDK (Card-Based Access Control) Developer Guide
B.38 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*/
}
}
B.39 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]
}
}
}
B.40 JSON_NFCCfg
NFCCfg message in JSON format
{
"NFCCfg":{
"enable":
/*required, boolean, whether to enable NFC function: "true"-yes, "false"-no*/
}
}
B.41 JSON_NFCCfgCap
NFCCfgCap capability message in JSON format
{
"NFCCfgCap":{
"enable":"true, false"
292
Device Network SDK (Card-Based Access Control) Developer Guide
B.42 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
},
"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
},
293
Device Network SDK (Card-Based Access Control) Developer Guide
"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,
"cardNo":{
"@min": 0,
"@max": 0
},
"cardType": {
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard", "DesfireCard"*/
"@opt":["TypeA_M1","TypeA_CPU","TypeB","ID_125K","FelicaCard","DesfireCard"]
}
},
"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
}
},
"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"]
},
294
Device Network SDK (Card-Based Access Control) Developer Guide
"IdentityInfo":{
/*identity information*/
"chnName":{
/*optional, string, Chinese name*/
"@min":0,
"@max":0
},
"enName":{
/*optional, string, English name*/
"@min":0,
"@max":0
},
"sex":{
/*optional, string, gender: "male", "female"*/
"@opt":["male", "female"]
},
"birth":{
/*optional, string, data 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, issuing authority*/
"@min":0,
"@max":0
},
"startDate":{
/*optional, string, start date of validity period*/
"@min":0,
"@max":0
},
"endDate":{
/*optional, string, end date of validity period*/
"@min":0,
"@max":0
},
"passNo":{
/*optional, string, entry-exit permit No.*/
"@min":0,
"@max":0
},
"issueNumber":{
295
Device Network SDK (Card-Based Access Control) Developer Guide
296
Device Network SDK (Card-Based Access Control) Developer Guide
"fingprint1":{
/*optional, boolean, card issuing status of the fingerprint 1: true-with card issued, false-without card issued*/
"@opt":[true, false]
},
"fingprint2":{
/*optional, boolean, card issuing status of the fingerprint 2: true-with card issued, false-without card issued*/
"@opt":[true, false]
}
}
}
},
"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,
"@max":0
}],
"fingerprintIDs":{
/*dependency, integer, No. list of collected fingerprints, this field is valid when dataType is "fingerprint"*/
"maxSize":0,
"@min":0,
297
Device Network SDK (Card-Based Access Control) Developer Guide
"@max":0
},
"enableLocalIssueCard": {
/*optional, boolean, whether to enable issuing smart cards locally*/
"@opt": [true,false]
},
"isLocalStorage": {
/*optional, boolean, whether to store face picture and fingerprint information in the device locally*/
"@opt": [true,false]
}
},
"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":{
298
Device Network SDK (Card-Based Access Control) Developer Guide
299
Device Network SDK (Card-Based Access Control) Developer Guide
B.43 JSON_RemoteCtrllerModeCfg
JSON message about the parameters of the keyfob control mode.
{
"RemoteCtrllerModeCfg":{
"mode": ""
/*required, string, keyfob control mode: "oneToOne"-one-to-one mode (default, the keyfob can only control one
device), "oneToMany"-one-to-many mode (the keyfob can control multiple devices)*/
}
}
B.44 JSON_RemoteCtrllerModeCfgCap
JSON message about the configuration capability of the keyfob control mode
{
"RemoteCtrllerModeCfgCap":{
"mode": {
/*required, keyfob control mode: "oneToOne"-one-to-one mode (default, the keyfob can only control one device),
"oneToMany"-one-to-many mode (the keyfob can control multiple devices)*/
"@opt": ["oneToOne","oneToMany"]
}
}
}
B.45 JSON_ResponseStatus
JSON message about response status
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode": ,
/*optional, int, status code*/
"statusString":"",
/*optional, string, status description*/
"subStatusCode":"",
/*optional, string, sub status code*/
"errorCode": ,
/*required, int, error code, which corresponds to subStatusCode, this field is required when statusCode is not 1. The
returned value is the transformed decimal number*/
"errorMsg":"",
/*required, string, error details, this field is required when statusCode is not 1*/
"MErrCode": "0xFFFFFFFF",
/*optional, string, error code categorized by functional modules*/
"MErrDevSelfEx": "0xFFFFFFFF"
300
Device Network SDK (Card-Based Access Control) Developer Guide
/*optional, string, extension of MErrCode. It is used to define the custom error code, which is categorized by
functional modules*/
}
B.46 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,
"DesfireCard"-DESFire card, "FelicaCard"-FeliCa card*/
"enabled":
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
}]
}
B.47 JSON_RFCardCfgCap
RFCardCfgCap capability message in JSON format
{
"RFCardCfgCap":{
"cardType":{
/*required, string, card type: "EMCard"-EM card, "M1Card"-M1 card, "CPUCard"-CPU card, "IDCard"-ID card,
"DesfireCard"-DESFire card, "FelicaCard"-FeliCa card*/
"@opt":["EMCard","M1Card","CPUCard","IDCard"]
},
"enabled":{
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
"@opt":[true,false]
}
}
}
B.48 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*/
301
Device Network SDK (Card-Based Access Control) Developer Guide
"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"*/
}],
"enableLocalIssueCard": true,
/*optional, boolean, whether to enable issuing smart cards locally*/
"isLocalStorage": false
/*optional, boolean, whether to store face picture and fingerprint information in the device locally*/
}
}
B.49 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*/
302
Device Network SDK (Card-Based Access Control) Developer Guide
}
}
B.50 JSON_SearchTaskResponse
SearchTaskResponse message in JSON format
{
"SearchTaskResponse":{
"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*/
"cardNo":"",
"cardType": "TypeA_M1"
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard", "DesfireCard"*/
}],
"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*/
303
Device Network SDK (Card-Based Access Control) Developer Guide
"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": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"LeftMouthPoint":{
/*optional, coordinates of the left mouth corner*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"RightMouthPoint":{
/*optional, coordinates of the right mouth corner*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"NoseTipPoint":{
/*optional, coordinates of the nose*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
}
},
"riskDataMark": ,
/*optional, boolean, whether to mark risk data: "true"-mark the data as the risk data and person and ID comparison
failed, "false" or this field is not returned-the data is normal*/
"dataType":"",
/*optional, string, data type and status: "new"-newly added data, "modified"-edited data, "normal"-unchanged data*/
"IdentityInfo":{
/*identity information*/
"chnName":"",
/*optional, string, Chinese name*/
"enName":"",
/*optional, string, English name*/
304
Device Network SDK (Card-Based Access Control) Developer Guide
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
/*optional, string, data of birth, e.g., "1990-02-24"*/
"addr":"",
/*optional, string, address*/
"IDCardNo":"",
/*optional, string, ID card No.*/
"issuingAuthority":"",
/*optional, string, issuing authority*/
"startDate":"",
/*optional, string, start date of validity period*/
"endDate":"",
/*optional, string, end date of validity period*/
"passNo":"",
/*optional, string, entry-exit permit No.*/
"issueNumber":"",
/*optional, string, issued times*/
"certificateType":"",
/*optional, string, certificate type*/
"permanentResidenceCardNo":"",
/*optional, string, permanent resident visa No.*/
"nationalityOrAreaCode":"",
/*optional, string, country/region code*/
"version":"",
/*optional, string, certificate version No.*/
"receivingAuthorityCode":"",
/*optional, string, acceptance authority code*/
"FingerprintList":[{
"fingerprint":""
/*optional, string, fingerprint information, which should be encoded by Base64*/
}],
"pic":""
/*optional, string, certificate picture information, which should be encoded by Base64, encrypted and decrypted by a
specific decryption library*/
},
"CardIssueStatus":[{
/*optional, issuing status list of cards containing face pictures and fingerprints*/
"cardNo":"",
/*optional, string, card information*/
"face":true,
/*optional, boolean, card issuing status of the face picture: true-with card issued, false-without card issued*/
"fingprint1":true,
/*optional, boolean, card issuing status of the fingerprint 1: true-with card issued, false-without card issued*/
"fingprint2":true
/*optional, boolean, card issuing status of the fingerprint 2: true-with card issued, false-without card issued*/
}]
}]
}
}
305
Device Network SDK (Card-Based Access Control) Developer Guide
B.51 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": "",
/*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"*/
}
}
B.52 JSON_UploadFailedDetails
JSON message about the details of failing to upload the user list of offline collection
{
"UploadFailedDetails ":{
"description":""
/*required, string, details of failing to uploading the user list of offline collection, including detailed error descriptions
and reports*/
}
}
B.53 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": ""
/*optional, string, a hexadecimal key, which depends on the password type*/
306
Device Network SDK (Card-Based Access Control) Developer Guide
}
}
B.54 XML_AcsAbility
AcsAbility capability message in XML format
<AcsAbility version="2.0">
<channelControllerNo min="" max=""/>
<!--required, lane controller range-->
<doorNo min="" max=""/>
<!--req , door No. rang or floor No. range-->
<cardReaderNo min="" max=""/>
<!--required, card reader No. range-->
<maxCardNum></maxCardNum>
<!--required, supported card number-->
<caseSensorNo min="" max=""/>
<!--required, event trigger No.-->
<gateOpenDirectionNum opt="1,2"/>
<!--required, 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>
<!--optional, 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>
<!--required, door status schedule capability -->
<WeekPlan>
<!--required, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--required, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--required, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--required, 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"/>
<!--required, authentication method range -->
<TimeAccuracy>
<!--required, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
307
Device Network SDK (Card-Based Access Control) Developer Guide
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan>
<!--required, holiday schedule -->
<holidayPlanNo min="" max=""/>
<!--required, holiday schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--required, supported daily time segment number -->
<TimeAccuracy>
<!--required, time accuracy-->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</HolidayPlan>
<HolidayGroup>
<!--required, holiday group capability-->
<holidayGroupNo min="" max=""/>
<!--required, holiday group No. range -->
<holidayGroupName min="" max=""/>
<!--required, holiday group name length -->
<maxHolidayPlanNum></maxHolidayPlanNum>
<!--required, max. holiday schedule number for the holiday group -->
</HolidayGroup>
<PlanTemplate>
<!--required, schedule template capability -->
<templateNo min="" max=""/>
<!--optional, range of schedule template No.-->
<templateName min="" max=""/>
<!--required, schedule template name length -->
<maxHolidayGroupNum></maxHolidayGroupNum>
<!--required, max. holiday group number for the schedule template -->
</PlanTemplate>
<supportLocalController>enable</supportLocalController>
<!--required, support distributed access controller-->
</DoorStatusPlan>
<CardReaderVerifyTypePlan>
<!--required, card reader authentication schedule capability -->
<WeekPlan>
<!--required, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--required, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--required, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--required, status value range -->
<verifyType
opt="invalid,sleep,swipecard,swipecardandpassword,swipecardorpasswd,fingerPrint,fingerPrintAndPasswd,fingerPrint
OrCard,fingerPrintAndCard,fingerPrintAndCardAndPasswd,fingerPrintorCard,fingerPrintAndCard,fingerPrintAndCardAn
dPasswd,faceOrFpOrCardOrPw,faceAndFingerPrint,
faceAndPassword,faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeNoAndFp,employeeN
308
Device Network SDK (Card-Based Access Control) Developer Guide
oAndFpAndPw,faceAndFpAndCard,faceAndPwAndFp,employeeNoAndface,employeeNoAndFpAndPw,faceAndFpAndCa
rd,faceAndPwAndFp,employeeNoAndface,faceOrFaceAndCard,fingerPrintOrFace,swipecardOrFaceOrPw,cardOrFace,ca
rdOrFaceOrFp,cardOrFpOrPw"/>
<!--required,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-->
<purePwdVerifyEnable><!--optional, boolean, whether the device supports opening the door only by password:
true-yes, this node is not returned-no--></purePwdVerifyEnable>
<!--For opening the door only by password: 1. The password in "XXX or password" in the authentication mode
refers to the person's password (the value of the node password in JSON_UserInfo); 2. The device will not check the
duplication of the password, and the upper platform should ensure that the password is unique; 3. The password
cannot be added, deleted, edited, or searched for on the device locally-->
<TimeAccuracy>
<!--required, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan>
<!--required, holiday schedule -->
<holidayPlanNo min="" max=""/>
<!--required, holiday schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--required, supported daily time segment number -->
<TimeAccuracy>
<!--required, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</HolidayPlan>
<HolidayGroup>
<!--required, holiday group capability -->
<holidayGroupNo min="" max=""/>
<!--required, holiday group No. range -->
<holidayGroupName min="" max=""/>
<!--required, holiday group name length -->
<maxHolidayPlanNum></maxHolidayPlanNum>
<!--required, max. holiday schedule number for holiday group -->
</HolidayGroup>
<PlanTemplate>
<!--required, schedule template capability -->
<templateNo min="" max=""/>
<!--optional, range of schedule template No.-->
<templateName min="" max=""/>
<!--required, schedule template name lenghth -->
<maxHolidayGroupNum></maxHolidayGroupNum>
309
Device Network SDK (Card-Based Access Control) Developer Guide
310
Device Network SDK (Card-Based Access Control) Developer Guide
</PlanTemplate>
<supportLocalController>enable</supportLocalController>
<!--required, support distributed access controller-->
</CardRightPlan>
<Door>
<!--required, door parameters capaility -->
<doorName min="" max=""/>
<!--required, door name length -->
<magneticMode opt="alwaysclose,alwaysopen"/>
<!--required, door magnetic type -->
<openButtonMode opt="alwaysclose,alwaysopen"/>
<!--required, exit button type-->
<openDuration min="" max=""/>
<!--required, door opening duration range, unit: second -->
<disabledOpenDuration min="" max=""/>
<!--required, disabled card opening door duration range, unit: second)-->
<magneticAlarmTimeout min="" max=""/>
<!--required, magnetic detection overtime alarm time, unit: second, 0 indicates not to alarm. -->
<doorLock>enable</doorLock>
<!--required,whether support locking door when door closed. -->
<leaderCard>enable</leaderCard>
<!--required, whether to enable first card opening door -->
<stressPassword min="" max=""/>
<!--required, duress password length -->
<superPassword min="" max=""/>
<!--required, super password length -->
<unlockPassword min="" max=""/>
<!--optional, unlocking password length -->
<leaderCardMode opt="close,alwaysopen,authorized"/>
<!--required, first card mode-->
<useLocalController>enable</useLocalController>
<!--required, whether the door is connected to distributed access controller-->
<localControllerID min="" max=""/>
<!--required, distributed access controller No.-->
<localControllerDoorNumber min="" max=""/>
<!--required, distributed access controller door No.-->
<localControllerStatus opt="offline,netOnline,authorized"/>
<!--required, distributed access controller online status-->
<lockInputCheck>enable</lockInputCheck>
<!--required, whether to enable door lock input check (1 byte, 0- disbale, 1- enable, default to disable)-->
<lockInputType opt="NormallyClose,NormallyOpen"/>
<!--required, door lock input type (1 byte, 0- normally closed, 1- normally open, default to normally closed)-->
<doorTerminalMode opt="PreventCutShort,Normal"/>
<!--required, door related terminal operating mode (1 byte, 0- anti-cut & short-circuit, 1- normal, default to anti-cut
& short-circuit)-->
<openButton>enable</openButton>
<!--required, whether to enable door button (1 byte, 0- yes, 1- no, default to yes)-->
</Door>
<DoorStatusPlan>
<!--required, door status schedule parameters -->
<enable>true</enable>
</DoorStatusPlan>
311
Device Network SDK (Card-Based Access Control) Developer Guide
<Group>
<!--required, group parameters capability -->
<ValidCfg>
<!--required, validate capability -->
<TimeAccuracy>
<!--required, time accuracy -->
<year>enable</year>
<month>enable</month>
<day>enable</day>
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
<timeType opt="local,UTC"/>
<!--optional, time type: "local"-device local time (default), "UTC"-UTC time>
</ValidCfg>
<groupName min="" max=""/>
<!--required, group name length -->
<groupNo min="" max=""/><!--required, group No. range. If this node cannot be parsed or is not returned, it will be
set to the default value-->
</Group>
<MultiCard>
<!--required, multi-card capability -->
<swipeIntervalTimeout min="" max=""/>
<!--required, multi-card swiping interval overtime, unit: second -->
<maxMultiCardGroupNum, min="1", max="20"></maxMultiCardGroupNum>
<!--required, max. multi-card group number >
<maxGroupCombinationNum></maxGroupCombinationNum>
<!--required, max. group number for a multi-card group -->
<remoteOpenDoor>enable</remoteOpenDoor>
<!--required, supports remote door opening authentication method -->
<offlineVerifyMode>enable</offlineVerifyMode>
<!--required, supported offline control panel authentication mode (super password replaces remote door opening
control) -->
</MultiCard>
<Card>
<!--required, card parameters capability -->
<cardNo min="" max=""/>
<!--required, card No. length -->
<modifyParamType opt="cardvalid,validtime,cardtype,doorright,leadercard,swipenum,group,password, rightplan,
swipednum, employeeno, name, departmentNo, schedulePlanNo,
schedulePlanType,roomNo,simNo,floorNo,userType"/>
<!--required,edit separately --> opt="cardvalid- card valid or not, validtime- expiry date, cardtype- card type,
doorright- door permission,
leadercard- first card, swipenum- max. card swiping times, group- group, password- card password,,rightplan- card
permission schedule,
swipednum- card swiped times, employeeno- employee No., name-Name, departmentNo-Apartment No.,
schedulePlanNo-Schedule No., schedulePlanType-Schedule Type-->
<cardValid>enable</cardValid>
<timeRangeBegin>
<!--optional, start time that can be configured by beginTime and endTime. If this node is not returned by the
capability, the start time that can be configured is 1970-01-01T00:00:00 by default-->
312
Device Network SDK (Card-Based Access Control) Developer Guide
</timeRangeBegin>
<timeRangeEnd>
<!--optional, end time that can be configured by beginTime and endTime. If this node is not returned by the
capability, the end time that can be configured is 2037-12-31T23:59:59 by default-->
</timeRangeEnd>
<cardValidUnit opt="day,hour,minute,second">
<!--required, 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>
<!--required, whether the card is valid-->
<!--required, card type-->
<cardType opt="normalcard,disabledcard,blacklistcard,nightwatchcard,
stresscard,supercard,guestcard,mastercard,staffcard,normalopencard,cleancard,standbycard, unlockcard"/>
<doorRight>enable</doorRight>
<!--required, door permission-->
<leaderCard>enable</leaderCard>
<!--required, whether to enable the first card? -->
<swipeNum min="" max=""/>
<!--required, max. card swiping number, o indicates no limit-->
<maxBelongGroup></maxBelongGroup>
<!--required, max. group number belonged to -->
<cardPassword min="" max=""/>
<!--required, card password-->
<doorRightPlanNum></doorRightPlanNum>
<!--required, max. schedule template number for a single door -->
<swipeTime>enabled</swipeTime>
<!--required, swiping times -->
<onlyPasswdOpen opt="true,false"/>
<!--optional, whether to support password opening door, invalid currently -->
<roomNumber min="" max=""/>
<!--optional, Room No.-->
<floorNumber min="" max=""/>
<!--optional,Floor number-->
<employeeNo min="" max=""/>
<!--optional, employee No.-->
<name min="" max=""></name>
<!--required, 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=""/>
<!--optional, department No.-->
<schedulePlanNo min="" max=""/>
<!--optional, shift schedule-->
<schedulePlanType opt="personal,department"/>
<!--optional, shift schedule type-->
<lockID min="" max=""/>
<!--required, lock ID-->
<roomCode min="" max=""/>
<!--required, room code-->
<cardRight opt="lowPowerAlarm,openDoorSound,customCardLimit,normalOpen,openLockedDoor,keepWatch"/>
<!--required, card permission-->
<supportLocalController>enable</supportLocalController>
313
Device Network SDK (Card-Based Access Control) Developer Guide
314
Device Network SDK (Card-Based Access Control) Developer Guide
315
Device Network SDK (Card-Based Access Control) Developer Guide
<triggerAlarmInClose>enable</triggerAlarmInClose>
<!--required, support triggered arming region disarming-->
</CaseSensor>
<CardReaderCfg>
<!--required, reader parameters capability-->
<!--required, supported reader type-->
<cardReaderType opt="DS-K110XM/MK/C/CK,DS-K192AM/AMP,DS-K192BM/BMP,DS-K182AM/AMP,DS-K182BM/
BMP,DS-K182AMF/ACF,
Wiegand or RS485 offline,DS-K1101M/MK,DS-K1101C/CK,DS-K1102M/MK/M-A,DS-K1102C/CK,DS-K1103M/
MK,
DS-K1103C/CK,DS-K1104M/MK,DS-K1104C/CK,DS-K1102S/SK/S-A,DS-K1102G/GK,DS-K1100S-B,DS-
K1102EM/EMK,
DS-K1102E/EK,DS-K1200EF,DS-K1200MF,DS-K1200CF,DS-K1300EF,DS-K1300MF,DS-K1300CF,DS-K1105E,
DS-K1105M,DS-K1105C,DS-K182AMF,DS-K196AMF,DS-K194AMP, DS-K1T200EF/EF-C/MF-MF-C/CF/CF-C,
DS-K1T300EF/EF-C/MF-MF-C/CF/CF-C"/>
<okLedPolarity op="cathode,anode"/>
<!--required,OK LED polarity-->
<errorLedPolarity op="cathode,anode"/>
<!--required,ERROR LED polarity-->
<buzzerLedPolarity op="cathode,anode"/>
<!--required, buzzer polarity -->
<swipeInterval min="" max=""/>
<!--required, time interval of duplicated authentication, unit: second -->
<pressTimeout min="" max=""/>
<!--required, key pressing overtime, unit: second -->
<enableFailAlarm>enable</enableFailAlarm>
<!--required, whether to enable authentication failure over times alarm configuration-->
<maxReadCardFailNum min="" max=""/>
<!--required, max. times of authentication failure -->
<enableTamperCheck>enable</enableTamperCheck>
<!--optional, whether to support anti-tamper check-->
<offlineCheckTime min="" max=""/>
<!--optional, offline check time, unit:s-->
<fingerPrintCheckLevel
opt="1/10,1/100,1/1000,1/10000,1/100000,1/1000000,1/10000000,1/100000000,3/100,3/1000,
3/10000,3/100000,3/1000000,3/10000000,3/100000000,Automatic Normal,Automatic
Secure,Automatic More Secure"/>
<!--optional, fingerprint recognition level-->
<useLocalController>enable</useLocalController>
<!--required, whether door is connected to distributed access controller-->
<localControllerID min="" max=""/>
<!--optional, distributed access controller No.-->
<localControllerReaderID min="" max=""/>
<!--optional, ID of distributed access controller card reader-->
<cardReaderChannel opt="Wiegand/Offline,RS485A,RS485B"/>
<!--opt card reader communication channel No.-->
<fingerPrintImageQuality min="1" max="8"/>
<!--optional,fingerprint picture quality-->
<fingerPrintContrastTimeOut min="0" max="20"/>
<!--optional,fingerprint comparison overtime, 0 - infinite, that is 0xff-->
<fingerPrintRecogizeInterval min="0" max="10"/>
<!--optional,time interval of fingerprint continuous recognition, 0- no delay, that is 0xff-->
316
Device Network SDK (Card-Based Access Control) Developer Guide
317
Device Network SDK (Card-Based Access Control) Developer Guide
318
Device Network SDK (Card-Based Access Control) Developer Guide
</outdoorModules>
<modules opt="keybord,display,button,card,signal"/>
<!--opt,supported module type, “keybord”-keypad module, “display”-display module,”button”-nametag module.
“card”-card reader, “signal”-indicator module, if not support, this node will not be returned-->
</AcsUpgrade>
<clearAcsParam
opt="doorstatusweekplan,cardreaderverifyweek,cardrightweekplan,doorstatusholidayplan,cardreaderverifyholidaypla
n,cardrightholidayplan,doorstatusholidayplan,doorstatusholidaygroup,cardreaderverifyholidaygroup,cardrightplantem
plate,doorstatusplantemolate,cardreaderverifyplantemplate,card,group,antisneak,eventandCardLinkage,cardPasswdO
pendoor,personStatistics, blackListPicture, IDBlackList"/>
<!--required, supported parameters clearing option -->
<ACSClearParam>
<!--required, extend clear access control host parameter node-->
<localControllerID min="" max=""/>
<!--optional, distributed access controller No.-->
</ACSClearParam>
<MultiHostAntiSneak>
<!--required, over-controllers anti-passback -->
<startAntiSnealHost opt="true,false"/>
<!--optional, whether to enable anti-passback controller -->
<antiSnealHostNum min="" max=""/>
<!--required, controller number for anti-passback controller group -->
<ReadersCfg>
<!--required, over-controllers anti-passback card reader parameters -->
<maxRouteGroupNum></maxRouteGroupNum>
<!--required, max. path number -->
<oneRouteReadersNum min="" max=""/>
<!--required, follow-up card reader number for each path -->
</ReadersCfg>
</MultiHostAntiSneak>
<AcsHostCfg>
<!--optional, access control settings capability -->
<enableRS485Backup opt="true,false"/>
<!--required, whether to support downstream RS485 communication backup -->
<showCapPic opt="true,false"/>
<!--optional,whether to support displaying captured picture on LCD screen-->
<showCardNo opt="true,false"/>
<!--optional,whether to support displaying card No. on LCD screen-->
<showUserInfo opt="true,false"/>
<!--optional,whether to support displaying user information on LCD screen-->
<overlayUserInfo opt="true,false"/>
<!--optional,Whether to overlay user information on the captured picture-->
<voicePrompt opt="true,false"/>
<!--optional,Whether to support sound prompt-->
<uploadCapPic opt="true,false"/>
<!--optional, Whether to support uploading picture after capturing-->
<saveCapPic opt="true,false"/>
<!--optional,Whether to support saving captured picture-->
<inputCardNo opt="true,false"/>
<!--optional, whether supports inputting card No. by button-->
<wifiDetect opt="true,false"/>
319
Device Network SDK (Card-Based Access Control) Developer Guide
<EventLinkage>
<!--required, event card linkage-->
<maxEventNum></maxEventNum>
<!--required, max. event linkage number supported by the device -->
<supportMode opt="Event,CardNo,MAC,EmployeeNo"/>
<!--required, supported linkage method, "Event"-event linkage, "CardNo"-Card No. linkage, "MAC"-MAC address
linkage, "EmployeeNo"-Employee No. (person ID)-->
<isSupportRecordVideo opt="true,false"/>
<!--required, whether supports recording linkage-->
<supportLocalController>enable</supportLocalController>
<!--required, support distributed access controller-->
<isSupportAlarmOutClose opt="true,false"/>
<!--required, whether supports disabling linked alarm output-->
<isSupportAlarmInSetup opt="true,false"/>
<!--required, whether supports arming linked zone-->
<isSupportAlarmInClose opt="true,false"/>
<!--required, whether supports disarming linked zone-->
<isSupportMainDevStopBuzzer opt="true,false"/>
<!--required, whether supports stopping buzzing by access controller-->
<isSupportReaderStopBuzzer opt="true,false"/>
<!--required, 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>
<!--optional, whether the opening door linkage is not supported-->
</isNotSupportOpenDoor>
<isNotSupportCloseDoor>
<!--optional, whether the closing door linkage is not supported-->
</isNotSupportCloseDoor>
<isNotSupportNormalOpen>
<!--optional, whether the remaining door open is not supported-->
</isNotSupportNormalOpen>
<isNotSupportNormalClose>
<!--optional, whether the remaining door closed is not supported-->
</isNotSupportNormalClose>
<isNotSupportAlarmout>
<!--optional, whether the alarm output linkage is not supported-->
</isNotSupportAlarmout>
<isNotSupportCapturePic>
<!--optional, whether the capture linkage is not supported-->
</isNotSupportCapturePic>
<isNotSupportMainDevBuzzer>
320
Device Network SDK (Card-Based Access Control) Developer Guide
<!--optional, whether not supports buzzing linkage of access controller, if supports, this node will not return-->
</isNotSupportMainDevBuzzer>
<isNotSupportReaderBuzzer>
<!--optional, whether not supports buzzing linkage of card reader, if supports, this node will not returned-->
</isNotSupportReaderBuzzer>
<purePwdVerifyEnable><!--optional, boolean, whether the device supports opening the door only by password:
true-yes, this node is not returned-no--></purePwdVerifyEnable>
<!--For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers
to the person's password (the value of the node password in JSON_UserInfo); 2. The device will not check the
duplication of the password, and the upper platform should ensure that the password is unique; 3. The password
cannot be added, deleted, edited, or searched for on the device locally-->
<EventList>
<EventEntry>
<Index>0</Index>
<mainEventName>DevEvent</mainEventName>
<SubEventNameList>
<subEventName>hostAntiDismantle</subEventName>
<!--required, controller tampering alarm -->
<subEventName>OfflineEcentNearlyFull</subEventName>
<!--required, alarm for offline event exceeding 90% -->
<subEventName>NetBroken</subEventName>
<!--required, network disconnected -->
<subEventName>NetRume</subEventName>
<!--required, network recovery -->
<subEventName>LowBattery</subEventName>
<!--required, battery low voltage -->
<subEventName>BatteryReume</subEventName>
<!--required, battery voltage recovered -->
<subEventName>ACOff</subEventName>
<!--required, AC power off -->
<subEventName>ACResume</subEventName>
<!--required, AC power recovery-->
<subEventName>SDCardFull</subEventName>
<!--required,SD card full alarm-->
<subEventName>LinkageCapturePic</subEventName>
<!--required,Linked capture event alarm-->
<subEventName>ImageQualityLow</subEventName>
<!--required,low face picture quality-->
<subEventName>FingerPrintQualityLow</subEventName>
<!--required,low fingerprint picture quality-->
<subEventName>BatteryElectricLow</subEventName>
<!--required,low battery voltage (for face device only)-->
<subEventName>BatteryElectricResume</subEventName>
<!--required,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 main controller RS485 loop node disconnection-->
321
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>MasterRS485LoopnodeResume</subEventName>
<!--req main controller RS485 loop node connection recovery-->
<subEventName>DistractControllerOnLine</subEventName>
<!--required,Distributed controller online-->
<subEventName>DistractControllerOffLine</subEventName>
<!--required,Distributed controller offline-->
<subEventName>FireButtonTrigger</subEventName>
<!--required,Fire button triggered-->
<subEventName>FireButtonResume</subEventName>
<!--required,Fire button recovered-->
<subEventName>MaintenanceButtonTrigger</subEventName>
<!--required,Maintenance button triggered-->
<subEventName>MaintenanceButtonResume</subEventName>
<!--required,Maintenance button recovered-->
<subEventName>EmergencyButtonTrigger</subEventName>
<!--required,Emergency button triggered-->
<subEventName>EmergencyButtonResume</subEventName>
<!--required,Emergency button recovered-->
<subEventName>LocalControlOffline</subEventName>
<!--req distributed access controller offline-->
<subEventName>LocalControlResume</subEventName>
<!--required, distributed access controller connection recovered-->
<subEventName>LocalDownsideRS485LoopNodeBroken</subEventName>
<!--required, distributed access controller downlink RS485 loop disconnection-->
<subEventName>LocalDownsideRS485LoopNodeResume</subEventName>
<!--required, distributed access controller downlink RS485 loop connection recovered-->
<subEventName>SubmarinebackCommBreak</subEventName>
<!--required, disconnected with anti-passing back server-->
<subEventName>SubmarinebackCommResume</subEventName>
<!--required, resume connection with anti-passing back server-->
<subEventName>RemoteActualGuard</subEventName>
<!--required, remote real-time arming-->
<subEventName>RemoteActualUnguard</subEventName>
<!--required, remote real-time disarming-->
<subEventName>MotorSensorException</subEventName>
<!--required, motor or sensor exception-->
<subEventName>CanBusException</subEventName>
<!--required, CAN bus exception-->
<subEventName>CanBusResume</subEventName>
<!--required, CAN bus restored-->
<subEventName>GateTemperatureOverrun</subEventName>
<!--required, too high pedestal temperature-->
<subEventName>IREmitterException</subEventName>
<!--required, active infrared intrusion detector exception-->
<subEventName>IREmitterResume</subEventName>
<!--required, active infrared intrusion detector restorted-->
<subEventName>LampBoardCommException</subEventName>
<!--required, communication with light board failed-->
<subEventName>LampBoardCommResume</subEventName>
<!--required, communication with light board restored-->
<subEventName>IRAdaptorBoardCommException</subEventName>
<!--required, communicated with IR adaptor exception-->
322
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>IRAdaptorBoardCommResume</subEventName>
<!--required, communication with IR adaptor restored-->
<subEventName>ChannelControllerDesmantleAlarm</subEventName>
<!--required, lane controller tampering alarm-->
<subEventName>ChannelControllerDesmantleResume</subEventName>
<!--required, lane controller tampering alarm restored-->
<subEventName>ChannelControllerFireImportAlarm</subEventName>
<!--required, lane controller fire input alarm-->
<subEventName>ChannelControllerFireImportResume</subEventName>
<!--required, lane controller fire input alarm restored-->
<subEventName>StayEvent</subEventName>
<!--optional, loitering event-->
<subEventName>LegalEventNearlyFull</subEventName>
<!--optional, alarm of no memory for legal offline event storage-->
</SubEventNameList>
</EventEntry>
<EventEntry>
<Index>1</Index>
<mainEventName>AlarmEvent</mainEventName>
<SubEventNameList>
<subEventName>AlarminShortCircuit</subEventName>
<!--required, zone short circuit alarm-->
<subEventName>AlarminBrokenCircuit</subEventName>
<!--required, zone open circuit alarm -->
<subEventName>AlarminException</subEventName>
<!--required, zone exception alarm -->
<subEventName>AlarmResume</subEventName>
<!--required, zone alarm recovery -->
<subEventName>CaseSensorAlarm</subEventName>
<!--required, event input alarm -->
<subEventName>CaseSensorResume</subEventName>
<!--required, event input recovery -->
</SubEventNameList>
</EventEntry>
<EventEntry>
<Index>2</Index>
<mainEventName>DoorEvent</mainEventName>
<SubEventNameList>
<subEventName>LeaderCardOpenBegin</subEventName>
<!--required, first card opening door starts -->
<subEventName>LeaderCardOpenStop</subEventName>
<!--required, first card open status door ends -->
<subEventName>AlwaysOpenBegin</subEventName>
<!--required, remained open status starts -->
<subEventName>AlwaysOpenStop</subEventName>
<!--required, remained open status ends -->
<subEventName>AlwaysCloseBegin</subEventName>
<!--required, remained closed status ends -->
<subEventName>AlwaysCloseStop</subEventName>
<!--required, remaining closed status ends-->
<subEventName>LockOpen</subEventName>
<!--required, open the door lock -->
323
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>LockClose</subEventName>
<!--required, close the lock -->
<subEventName>DoorButtonPress</subEventName>
<!--required, exit button pressed -->
<subEventName>DoorButtonRelease</subEventName>
<!--required, exit button released -->
<subEventName>DoorOpenNormal</subEventName>
<!--required, normally open the door (door magnetic) -->
<subEventName>DoorCloseNormal</subEventName>
<!--required, normally close the door (door magnetic) -->
<subEventName>DoorOpenAbnormal</subEventName>
<!--required, door opening exception (door magnetic )-->
<subEventName>DoorOpenTimeout</subEventName>
<!--required, door opening timeout (door magnetic )-->
<subEventName>RemoteOpenDoor</subEventName>
<!--required, remotely open the door-->
<subEventName>RemoteCloseDoor</subEventName>
<!--required, remotely closed the door-->
<subEventName>RemoteAlwaysOpen</subEventName>
<!--required, remotely remain open -->
<subEventName>RemoteAlwaysClose</subEventName>
<!--required, remotely remain closed -->
<subEventName>NotBelongMultiCard</subEventName>
<!--required, the card is not associated to the multi-authentication group-->
<subEventName>InvalidMultiVerifyPeriod</subEventName>
<!--required, the card is not in the multi-authentication time period -->
<subEventName>MultiVerifySuperRightFail</subEventName>
<!--required, super password authentication failed -->
<subEventName>MultiVerifyRemoteRightFail</subEventName>
<!--required, remote authentication failed -->
<subEventName>MultiVerifySuccess</subEventName>
<!--required, successfully multi -authentication -->
<subEventName>MultiVerifyNeedRemoteOpen</subEventName>
<!--required, multi-authentication needs remote opening door -->
<subEventName>MultiVerifySuperRightSuccess</subEventName>
<!--required, successfully super password -->
<subEventName>MultiVerifyRepeatFail</subEventName>
<!--required, repeat authentication failed -->
<subEventName>MultiVerifyTimeout</subEventName>
<!--required, multi-authentication timeout -->
<subEventName>RemoteCapturePic</subEventName>
<!--required,remote capture-->
<subEventName>DoorBellRing</subEventName>
<!--required,door bell ringing-->
<subEventName>CallCenter</subEventName>
<!--required, call center-->
<subEventName>FirstCardAuthorizeBegin</subEventName>
<!--required,first card authorization started-->
<subEventName>FirstCardAuthorizeEnd</subEventName>
<!--required,first card authorization ended-->
<subEventName>FirstCardOpenWithoutAuthorize</subEventName>
<!--required,open door with unauthorized first card failed.-->
324
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>SecurityMoudleDesmantleAlarm</subEventName>
<!--required, door control security module anti-tamper alarm-->
<subEventName>FirstCardAuthorizeBegin</subEventName>
<!--req first card authorization start-->
<subEventName>FirstCardAuthorizeEnd</subEventName>
<!--req first card authorization end-->
<subEventName>DoorLockInputShortCircuit</subEventName>
<!--req door lock input short-circuit alarm-->
<subEventName>DoorLockInputBrokenCircuit</subEventName>
<!--req door lock input broken-circuit alarm-->
<subEventName>DoorLockInputException</subEventName>
<!--req door lock input exception alarm-->
<subEventName>DoorContactInputShortCircuit</subEventName>
<!--req magnet input short-circuit alarm-->
<subEventName>DoorContactInputBrokenCircuit</subEventName>
<!--req magnet input broken-circuit alarm-->
<subEventName>DoorContactInputException</subEventName>
<!--req magnet input exception alarm-->
<subEventName>OpenButtonInputShortCircuit</subEventName>
<!--req door button input short-circuit alarm-->
<subEventName>OpenButtonInputBrokenCircuit</subEventName>
<!--req door button input broken-circuit alarm-->
<subEventName>OpenButtonInputException</subEventName>
<!--req door button input exception alarm-->
<subEventName>DoorLockOpenException</subEventName>
<!--req door lock open exception-->
<subEventName>DoorLockOpenTimeout</subEventName>
<!--req door lock open timeout-->
<subEventName>FirstCardOpenWithoutAuthorize</subEventName>
<!--req first card failed to open door without authorization-->
<subEventName>CallLadderRelayBreak</subEventName>
<!--required,Elevator relay disconnected-->
<subEventName>CallLadderRelayClose</subEventName>
<!--required,Elevator relay connected-->
<subEventName>AutoKeyRelayBreak</subEventName>
<!--required,Auto-button relay disconnected-->
<subEventName>AutoKeyRelayClose</subEventName>
<!--required,Auto-button relay connected-->
<subEventName>KeyControlRelayBreak</subEventName>
<!--required,Button relay disconnected-->
<subEventName>KeyControlRelayClose</subEventName>
<!--required,Button relay connected-->
<subEventName>RemoteVisitorCallLadder</subEventName>
<!--required,Visitor called elevator-->
<subEventName>RemoteHouseholdCallLadder</subEventName>
<!--required,Resident called elevator-->
<subEventName>LegalMessage</subEventName>
<!--required, valid message-->
<subEventName>IllegalMessage</subEventName>
<!--required, invalid message-->
<subEventName>Trailing</subEventName>
<!--required, tailgating-->
325
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>ReverseAccess</subEventName>
<!--required, reserve passing-->
<subEventName>ForceAccess</subEventName>
<!--required, force accessing-->
<subEventName>ClimbingOverGate</subEventName>
<!--required, climbing over barrier-->
<subEventName>PassingTimeout</subEventName>
<!--required, passing timed out-->
<subEventName>IntrusionAlarm</subEventName>
<!--required, intrusion alarm-->
<subEventName>FreeGatePassNotAuth</subEventName>
<!--required, authentication failed when free passing the turnstile-->
<subEventName>DropArmBlock</subEventName>
<!--required, barrier obstructed-->
<subEventName>DropArmBlockResume</subEventName>
<!--required, barrier obstruction restored-->
<subEventName>RemoteControlCloseDoor</subEventName>
<!--required, close door via keyfob-->
<subEventName>RemoteControlOpenDoor</subEventName>
<!--required, open door via keyfob-->
<subEventName>RemoteControlAlwaysOpenDoor</subEventName>
<!--required, remain door open via keyfob-->
</SubEventNameList>
</EventEntry>
<EventEntry>
<Index>3</Index>
<mainEventName>ReaderEvent</mainEventName>
<SubEventNameList>
<subEventName>StressAlarm</subEventName>
<!--required, duress alarm-->
<subEventName>ReaderDesmantleAlarm</subEventName>
<!--required, card reader tamper-proof alarm-->
<subEventName>LegalCardPass</subEventName>
<!--required, valid card successfully authenticated -->
<subEventName>CardAndPasswdPass</subEventName>
<!--required, card and password successfully authenticated -->
<subEventName>CardAndPasswdFail</subEventName>
<!--required, card and password authentication failed -->
<subEventName>CardAndPasswdTimeout</subEventName>
<!--required, card and password authentication timeout -->
<subEventName>CardMaxAuthenticateFail</subEventName>
<!--required, card reader authentication over times -->
<subEventName>CardNoRight</subEventName>
<!--required, no permission for the card -->
<subEventName>CardInvalidPeriod</subEventName>
<!--required, invalid time segment -->
<subEventName>CardOutofDate</subEventName>
<!--required, card exceeds the validate -->
<subEventName>InvalidCard</subEventName>
<!--required, invalid card No. -->
<subEventName>AntiSneakFail</subEventName>
<!--required, anti-passback authentication failed -->
326
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>InterlockDoorNotClose</subEventName>
<!--required, interlocking door not closed -->
<subEventName>FingerprintComparePass</subEventName>
<!--required, Fingerprint Recognition Passed-->
<subEventName>FingerprintCompareFail</subEventName>
<!--required, Fingerprint Recognition Failed-->
<subEventName>CardFingerprintVerifyPass</subEventName>
<!--required, Card + Fingerprint Authentication Passed-->
<subEventName>CardFingerprintVerifyFail</subEventName>
<!--required,Card + Fingerprint Authentication Failed-->
<subEventName>CardFingerprintVerifyTimeout</subEventName>
<!--required,Card + Fingerprint Authentication Timeout-->
<subEventName>CardFingerprintPasswdVerifyPass</subEventName>
<!--required, Card + Fingerprint + Password Authentication Passed-->
<subEventName>CardFingerprintPasswdVerifyFail</subEventName>
<!--required, Card + Fingerprint + Password Authentication Failed-->
<subEventName>CardFingerprintPasswdVerifyTimeout</subEventName>
<!--required, Card + Fingerprint + Password Authentication Timeout-->
<subEventName>FingerprintPasswdVerifyPass</subEventName>
<!--required, Fingerprint + Password Authentication Passed-->
<subEventName>FingerprintPasswdVerifyFail</subEventName>
<!--required, Fingerprint + Password Authentication Failed-->
<subEventName>FingerprintPasswdVerifyTimeout</subEventName>
<!--required, Fingerprint + Password Authentication Timeout-->
<subEventName>FingerprintInexistence</subEventName>
<!--required, No Fingerprint-->
<subEventName>FaceVerifyPass</subEventName>
<!--required, Face Authentication Passed-->
<subEventName>FaceVerifyFail</subEventName>
<!--required, Face Authentication Failed-->
<subEventName>FaceAndFpVerifyPass</subEventName>
<!--required, Face + Fingerprint Authentication Passed-->
<subEventName>FaceAndFpVerifyFail</subEventName>
<!--required,Face + Fingerprint Authentication Failed-->
<subEventName>FaceAndFpVerifyTimeout</subEventName>
<!--required, Face + Fingerprint Authentication Timeout-->
<subEventName>FaceAndPwVerifyPass</subEventName>
<!--required, Face + Password Authentication Passed-->
<subEventName>FaceAndPwVerifyFail</subEventName>
<!--required, Face + Password Authentication Failed-->
<subEventName>FaceAndPwVerifyTimeout</subEventName>
<!--required, Face + Password Authentication Timeout-->
<subEventName>FaceAndCardVerifyPass</subEventName>
<!--required, Face + Card Authentication Passed-->
<subEventName>FaceAndCardVerifyFail</subEventName>
<!--required, Face + Card Authentication Failed-->
<subEventName>FaceAndCardVerifyTimeout</subEventName>
<!--required,Face + Card Authentication Timeout-->
<subEventName>FaceAndPwAndFpVerifyPass</subEventName>
<!--required,Face + Password + Fingerprint Authentication Passed-->
<subEventName>FaceAndPwAndFpVerifyFail</subEventName>
<!--required,Face + Password + Fingerprint Authentication Failed-->
327
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>FaceAndPwAndFpVerifyTimeout</subEventName>
<!--required,Face + Password + Fingerprint Authentication Timeout-->
<subEventName>FaceAndCardAndFpVerifyPass</subEventName>
<!--required,Face + Card + Fingerprint Authentication Passed-->
<subEventName>FaceAndCardAndFpVerifyFail</subEventName>
<!--required,Face + Card + Fingerprint Authentication Failed-->
<subEventName>FaceAndCardAndFpVerifyTimeout</subEventName>
<!--required,Face + Card + Fingerprint Authentication Timeout-->
<subEventName>EmployeeAndFpVerifyPass</subEventName>
<!--required,Employee No. + Fingerprint Authentication Passed-->
<subEventName>EmployeeAndFpVerifyFail</subEventName>
<!--required,Employee No. + Fingerprint Authentication Failed-->
<subEventName>EmployeeAndFpVerifyTimeout</subEventName>
<!--required,Employee No. + Fingerprint Authentication Timeout-->
<subEventName>EmployeeAndFpAndPwVerifyPass</subEventName>
<!--required,Employee No. + Fingerprint + Password Authentication Passed-->
<subEventName>EmployeeAndFpAndPwVerifyFail</subEventName>
<!--required,Employee No. + Fingerprint + Password Authentication Failed-->
<subEventName>EmployeeAndFpAndPwVerifyTimeout</subEventName>
<!--required,Employee No. + Fingerprint + Password Authentication Timeout-->
<subEventName>EmployeeAndFaceVerifyPass</subEventName>
<!--required,Employee No. + Face Authentication Passed-->
<subEventName>EmployeeAndFaceVerifyFail</subEventName>
<!--required,Employee No. + Face Authentication Failed-->
<subEventName>EmployeeAndFaceVerifyTimeout</subEventName>
<!--required,Employee No. + Face Authentication Timeout-->
<subEventName>FaceRecognizeFail</subEventName>
<!--required, Face picture recognization failed-->
<subEventName>EmployeeAndPwVerifyPass</subEventName>
<!--required,Employee No. + Password Authentication Passed-->
<subEventName>EmployeeAndPwVerifyFail</subEventName>
<!--required,Employee No. + Password Authentication Failed-->
<subEventName>EmployeeAndPwVerifyTimeout</subEventName>
<!--required,Employee No. + Password Authentication Timeout-->
<subEventName>DoorOpenOrDormantFail</subEventName>
<!--required,door remains closed or sleepy status authentication failed.-->
<subEventName>AuthPlanDormantFail</subEventName>
<!--required,authentication of sleepy mode in the schedule failed.-->
<subEventName>CardEncryptVerifyFail</subEventName>
<!--required,authentication of card encryption failed.-->
<subEventName>SubmarinebackReplyFail</subEventName>
<!--required,response of anti-passing back server failed.-->
<subEventName>PasswordMismatch</subEventName>
<!--optional, password mismatched.-->
<subEventName>EmployeeNoNotExist</subEventName>
<!--required, the employee ID does not exist.-->
<subEventName>CombinedVerifyPass</subEventName>
<!--required, authenticated .-->
<subEventName>CombinedVerifyTimeout</subEventName>
<!--required, authentication timed out.-->
<subEventName>VerifyModeMismatch</subEventName>
<!--required, authentication mode mismatched.-->
328
Device Network SDK (Card-Based Access Control) Developer Guide
<subEventName>PasswordVerifyPass</subEventName>
<!--optional, password authenticated-->
<subEventName>HumanDetectFail</subEventName>
<!--required,human detection failed.-->
<subEventName>PeopleAndIdCardComparePass</subEventName>
<!--required, face and ID card authenticated-->
<subEventName>PeopleAndIdCardCompareFail</subEventName>
<!--required, face and ID card authentication failed-->
<subEventName>CPUCardEncryptVerifyFail</subEventName>
<!--optional, verifying CPU card encryption failed-->
<subEventName>NFCDisableVerifyFail</subEventName>
<!--optional, disabling NFC verification failed-->
<subEventName>EMCardRecognizeNotEnabled</subEventName>
<!--optional, EM card recognition is disabled-->
<subEventName>M1CardRecognizeNotEnabled</subEventName>
<!--optional, M1 card recognition is disabled-->
<subEventName>CPUCardRecognizeNotEnabled</subEventName>
<!--optional, CPU card recognition is disabled-->
<subEventName>IDCardRecognizeNotEnabled</subEventName>
<!--optional, ID card recognition is disabled-->
<subEventName>CardSetSecretKeyFail</subEventName>
<!--optional, importing key to the card failed-->
</SubEventNameList>
</EventEntry>
</EventList>
</EventLinkage>
<FingerPrint>
<!--required, fingerprint parameters -->
<enable opt="true,false"/>
<!--required, whether to support fingerprint settings -->
<cardNo min="" max=""/>
<!--required, card No. length -->
<fingerPrintLen min="" max=""/>
<!--required, fingerprint data length-->
<EnableCardReader min="" max=""/>
<!--required, supported card reader No.-->
<fingerType opt="Normal,Stress,patrolFP,superFP,dismissingFP"/>
<!--required, "Normal"-normal fingerprint, "Stress"-duress fingerprint, "patrolFP"-patrol fingerprint, "superFP"-
super fingerprint, "dismissingFP"-dismiss fingerprint-->
<fingerPrintID min="" max=""/>
<!--required, finger ID-->
<callbackMode opt="allRetrun,partReturn"/>
<!--required, 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/>
<!--optional, boolean, whether the device supports setting finger ID: "true"-yes-->
<recvStatus opt="0,1,2,3,4,5,6,7,8,9,10"/>
<!--optional, 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-->
329
Device Network SDK (Card-Based Access Control) Developer Guide
<SMS>
<enable opt="true,false"/>
<!--required, whether to support SMS funtion -->
<PhoneLinkageDoor>
<!--required, mobile phone links with door -->
<openRight opt="true,false"/>
<!--required, door opening permission -->
<closeRight opt="true,false"/>
<!--required, door closing permission -->
<NormalOpenRight opt="true,false"/>
<!--required, door remained opening permission -->
<NormalCloseRight opt="true,false"/>
<!--required, door remained closing permission -->
<armRight opt="true,false"/>
<!--required, arming permission -->
<DisarmRight opt="true,false"/>
<!--required, disarming permission -->
</PhoneLinkageDoor>
<whiteListNum min="1" max="32"/>
<!--required, allowlist number-->
</SMS>
<RealteUserInfo>
<!--required, NET_DVR_CARD_CFG_SEND_DATA and NET_DVR_CARD_USER_INFO_CFG-->
330
Device Network SDK (Card-Based Access Control) Developer Guide
<enabled opt="true,false"/>
<!--required, whether to support card No. being linked to user information-->
<userNameLen min="" max=""/>
<!--required, user name length-->
</RealteUserInfo>
<ContinuousShootCfg>
<!--required,NET_DVR_SNAPCFG-->
<enabled opt="true,false"/>
<!--required,whether to support triggering capture parameters configuration-->
<relatedDriveWay min="" max=""/>
<!--required, IO related vehicle lane No.-->
<snapTimes min="" max=""/>
<!--required, coil capture times:, 0-5-->
<snapWaitTime min="" max=""/>
<!--required, capture waiting time, unit:ms, value range[0,60000]-->
<IntervalTimeList size="4">
<intervalTime min="" max=""/>
<!--required,interval of continuous capture, unit:ms-->
</IntervalTimeList>
<JpegParam>
<picSize
opt="CIF,QCIF,D1,UXGA,SVGA,HD720P,VGA,XVGA,HD900p,HD1080,2560*1920,1600*304,2048*1536,2448*2048,2448
*1200,
2448*800,XGA,SXGA,WD1,1080i,
576*576,1536*1536,1920*1920,320*240,720*720,1024*768,1280*1280,1600*600,
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"/>
<!-- optional,image size-->
<picQuality opt="best,good,general" />
<!-- optional,image quality: 0-Best, 1- Better, 2- Good-->
</JpegParam>
</ContinuousShootCfg>
<PictureCfg>
<!--required,reuse some fields of NET_DVR_PICTURECFG-->
<enableUp opt="true,false"/>
<!--required, whether to support background picture uploading-->
<enableDel opt="true,false"/>
<!--required, whether to support deleting background picture-->
<useType min="" max=""/>
<!--required,picture type, 1- background picture, 2-GIF picture, 3-CAD picture-->
<sequence min="" max=""/>
<!--required, sequence No.-->
<BasemapCfg>
<sourWidth min="" max=""/>
<!--required, initial picture width-->
<sourHeight min="" max=""/>
<!--required, initial picture height-->
</BasemapCfg>
</PictureCfg>
<ExternalDevCfg>
331
Device Network SDK (Card-Based Access Control) Developer Guide
<!--required,NET_DVR_ACS_EXTERNAL_DEV_CFG-->
<IDCardUpMode opt="number,all"/>
<!--required, ID information report, number: upload 18-digit ID number; all: upload all information-->
<cardVerifyMode opt="remoteCenter,clientPlatform"/>
<!--required, card verification mode, remoteCenter: remote center verification; clientPlatform: client platform
verification-->
<ACSDevType
opt="IDCardReader,ICReader,QRCodeReader,fingerPrintReader,QRCodeReaderandScreen,recycleCard,screen,fingerPrin
tModule,voiceModule,peopleAndIdCard"/>
<!--required, 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"/>
<!--required, door in/out type, inDoor: enter, outDoor: exit-->
<DevDetailType>
<IDCardReaderType opt="iDR210,IDM10,HikIDCardReader"/>
<!--required, ID card reader model-->
<screenType opt="DC48270RS043_01T,DC80480B070_03T"/>
<!--required,LCD model-->
</DevDetailType>
</ExternalDevCfg>
<PersonnelChannelCfg>
<!--required,NET_DVR_PERSONNEL_CHANNEL_CFG-->
<inMode opt="controlled,forbid,freedom"/>
<!--required, enter mode, 0- controlled; 1- denied; 2- free-->
<outMode opt="controlled,forbid,freedom"/>
<!--required, exit mode, 0- controlled; 1- denied; 2- free-->
<workMode opt="urgent,repair,normalClose,normalOpen"/>
<!--required, operating mode, 0- emergency, 1- maintenance, 2- normally closed, 3- normally open-->
</PersonnelChannelCfg>
<PlatformVerifyCfg>
<!--required,NET_DVR_PLATFORM_VERIFY_CFG-->
<doorNo min="" max=""/>
<!--required, door No.-->
<resultType opt="legal,illegal"/>
<!--required, verification result type, legal: illegal, illegal: legal-->
<screenDisplay min="" max=""/>
<!--required,LED display character length-->
</PlatformVerifyCfg>
<PersonStatisticsCfg>
<!--required,NET_DVR_PERSON_STATISTICS_CFG-->
<enableStatistics opt="true,false"/>
<!--required, whether to enable people counting-->
<enableOfflineStatistics opt="true,false"/>
<!--required, whether to enable offline people counting-->
<countSignalStatisticalStandard opt="IRDetectPass,AuthQuantity"/>
<!--required, people counting type: IRDetectPass- by IR detection, AuthQuantity- by authentication number-->
</PersonStatisticsCfg>
<ScreenDisplayCfg>
<!--required,NET_DVR_SCREEN_DISPLAY_CFG-->
<FontSize min="" max=""/>
<!--required, font size-->
332
Device Network SDK (Card-Based Access Control) Developer Guide
<FaceParam>
<!--required,Face parameter-->
<enable opt="true"/>
<!--required,whether to support face parameter configuration-->
<cardNo min="" max=""/>
<!--required,Card No. length-->
<faceLen min="" max=""/>
<!--required,Face data length-->
<enableCardReader min="" max=""/>
<!--required,Supported card reader No.-->
<faceID min="" max=""/>
<!--required,Face No.-->
<faceDataType opt="module,picture"/>
<!--required,Face data type (the default type is template if there is no this node)-->
<isSupportFaceCover>
<!--optional, whether supports covering existed data when applying face picture data-->
333
Device Network SDK (Card-Based Access Control) Developer Guide
</isSupportFaceCover>
</FaceParam>
<isSupportGetDeviceEvent opt="true,false"/>
<!--optional, whether to support getting device event: "true"-yes, "false" or this node is not returned-no-->
<isSupportDeployType min="0" max="1"/>
<!--optional, supported arming type: 0-arm via client software, 1-real-time arming>
<UploadRightControllerAudio>
<!--required, uploading audio file of main controller-->
<audioID min="2" max="32"/>
<!--required, 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>
<!--required, downloading audio file of main controller-->
<audioID min="2" max="32"/>
<!--required, 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>
<!--required, parameter of picture in blocklist (NET_DVR_BULK_UPLOAD_BLOCKLIST_PICTURE)-->
<BlackListPictureCond>
<!--required, blocklist picture condition-->
<pictureNum min="" max=""/>
<!--required, picture quantity-->
</BlackListPictureCond>
<cardNo min="" max=""/>
<!--required, card No.-->
<name min="" max=""/>
<!--required, name-->
<sex opt="male,female"/>
<!--required, gender: male- Male, female- Female-->
<pictureValid opt="invalid,valid"/>
<!--required, whether blocklist picture is valid: invalid- Invalid,valid? Valid-->
<pictureLen min="" max=""/>
<!--required, blocklist picture size-->
<BlackListPictureStatus>
<!--required, blocklist picture status-->
<cardNo min="" max=""/>
<!--required, card No.-->
<status opt=" processing,failed,success"/>
<!--required, status: processing- Processing, failed- Failed,success- Succeeded-->
</BlackListPictureStatus>
</BlackListPictureParam>
<IDBlackListParam>
<!--ID blocklist parameter (NET_DVR_BULK_UPLOAD_ID_BLOCKLIST)-->
<IDBlackListCond>
<!--required, ID blocklist condition-->
<blackListNum min="" max=""/>
<!--required, blocklist quantity-->
</IDBlackListCond>
<blackListValid opt="invalid,valid"/>
<!--required, whether ID card blocklist is valid or not-->
334
Device Network SDK (Card-Based Access Control) Developer Guide
<IDBlackListStatus>
<!--required, ID card blocklist status-->
<IDNum min="" max=""/>
<!--required, ID number-->
<status opt=" processing,failed,success"/>
<!--required, status: processing- Processing, failed- Failed, success- Succeeded-->
</IDBlackListStatus>
</IDBlackListParam>
<CaptureFingerPrint>
<!--optional, xs:boolean, collect fingerprint information-->
<pictureType opt="full,quarter">
<!--required, xs:string, fingerprint picture type-->
</pictureType>
<fingerNo min="1" max="10">
<!--required, xs:integer, fingerprint No.-->
</fingerNo>
<isSupportFingerData opt="true,false">
<!--required, xs:boolen, fingerprint data-->
</isSupportFingerData>
<isSupportFingerPicture opt="true,false">
<!--required, xs:boolen, fingerprint picture-->
</isSupportFingerPicture>
<fingerPrintQuality min="1" max="100">
<!--required, xs:integer, fingerprint quality-->
</fingerPrintQuality>
</CaptureFingerPrint>
<CaptureFace>
<!--optional, xs:boolean, collect face information-->
<isSupportFaceTemplate1 opt="true,false">
<!--required, xs:boolen, face template data 1-->
</isSupportFaceTemplate1>
<isSupportFaceTemplate2 opt="true,false">
<!--required, xs:boolen, face template data 2-->
</isSupportFaceTemplate2>
<isSupportFacePic opt="true,false">
<!--required, xs:boolen, face picture data-->
</isSupportFacePic>
<faceQuality min="1" max="100">
<!--required, xs:integer, face quality-->
</faceQuality>
<captureProgress opt="0,100">
<!--required, xs:integer, collection progress-->
</captureProgress>
<isSupportInfraredFacePic opt="true,false"><!--required, xs:boolen, whether to support infrared face picture
data></isSupportInfraredFacePic>
</CaptureFace>
<isSupportUploadCertificateBlackList>
<!--optional, xs:boolean, Whether to support uploading ID Card blocklist-->
</isSupportUploadCertificateBlackList>
<isSupportGetRegisterInfo>
<!--optional, xs:boolean, Whether supports getting registered information-->
</isSupportGetRegisterInfo>
335
Device Network SDK (Card-Based Access Control) Developer Guide
<isSupportDownloadCertificateBlackListTemplet>
<!--optional, xs:boolean, Whether to support downloading template of ID card blocklist-->
</isSupportDownloadCertificateBlackListTemplet>
<ScheduleInfo>
<!-- optional, xs:boolean, shift schedule information-->
<command opt="personal,everyone">
<!--required, xs:string, Search condition-->
</command>
<employeeNo min="" max="">
<!--required, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--required, xs:string, Name-->
</name>
<departmentName min="1" max="32">
<!--required, xs:string, Department name-->
</departmentName>
<schedulePlanNo min="" max="">
<!--required, xs:integer, Shift schedule No.-->
</schedulePlanNo>
<schedulePlanType opt="personal,department">
<!--required, xs:string, Shift schedule type-->
</schedulePlanType>
<enabled opt="true,false">
<!--required, xs:boolen, Enable-->
</enabled>
<scheduleType opt="noSchedule,ordinaryClass,workingClass">
<!--required, xs:string, Shift type-->
</scheduleType>
<scheduleNo min="" max="">
<!--required, xs:integer, Shift No.-->
</scheduleNo>
<scheduleStartTime>
<!--required, xs:time, ISO8601 time, "2016-01-01", Start time-->
</scheduleStartTime>
<scheduleEndTime>
<!--required, xs:time, ISO8601 time, "2016-02-17", End time-->
</scheduleEndTime>
<holidayNo min="" max="">
<!--required, xs:integer, Holiday group No.-->
</holidayNo>
</ScheduleInfo>
<AttendanceSummaryInfo>
<!-- optional, xs:boolean, Time and attendance information overview-->
<command opt="personal,everyone">
<!--required, xs:string, Search condition-->
</command>
<employeeNo min="" max="">
<!--required, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--required, xs:string, Name-->
336
Device Network SDK (Card-Based Access Control) Developer Guide
</name>
<departmentName min="1" max="32">
<!--required, xs:string, Department name-->
</departmentName>
<workStandard min="" max="">
<!--required, xs:integer, Standard working time (minutes)-->
</workStandard>
<workActual min="" max="">
<!--required, xs:integer, Actual working time (minutes)-->
</workActual>
<lateTimes min="" max="">
<!--required, xs:integer, Late times-->
</lateTimes>
<lateMinutes min="" max="">
<!--required, xs:integer, Total late time (minutes)-->
</lateMinutes>
<leaveEarlyTimes min="" max="">
<!--required, xs:integer, Early Leave Times-->
</leaveEarlyTimes>
<leaveEarlyMinutes min="" max="">
<!--required, xs:integer, Total eearly leave time (minutes)-->
</leaveEarlyMinutes>
<overtimeStandard min="" max="">
<!--required, xs:integer, Standard Overtime (minutes)-->
</overtimeStandard>
<overtimeActual min="" max="">
<!--required, xs:integer, Actual Overtime (minutes)-->
</overtimeActual>
<attendanceStandard min="" max="">
<!--required, xs:integer, Standard Attendance (day)-->
</attendanceStandard>
<attendanceActual min="" max="">
<!--required, xs:integer, Actual Attendance (Day)-->
</attendanceActual>
<absentDays min="" max="">
<!--required, xs:integer, Absent (Day)-->
</absentDays>
</AttendanceSummaryInfo>
<AttendanceRecordInfo>
<!--optional, xs:boolean, Time and Attendance Records-->
<command opt="personal,everyone">
<!--required, xs:string, Search Condition-->
</command>
<employeeNo min="" max="">
<!--required, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--required, xs:string, Name-->
</name>
<departmentName min="1" max="32">
<!--required, xs:string, Department Name-->
</departmentName>
337
Device Network SDK (Card-Based Access Control) Developer Guide
<attendanceTime>
<!--required, xs:time, ISO8601 time, "2016-02-17T17:30:08+08:00", Attendance Time-->
</attendanceTime>
</AttendanceRecordInfo>
<AbnormalInfo>
<!-- optional, xs:boolean, Exception Statistics Information-->
<command opt="personal,everyone">
<!--required, xs:string, Search Condition-->
</command>
<employeeNo min="" max="">
<!--required, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--required, xs:string, Name-->
</name>
<departmentName min="1" max="32">
<!--required, xs:string, Department Name-->
</departmentName>
<onDutyTime>
<!--required, xs:time, ISO8601 time, "2016-02-17T08:30:08+08:00", Start-Work Time-->
</onDutyTime>
<offDutyTime>
<!--required, xs:time, ISO8601 time, "2016-02-17T17:30:08+08:00", End-Work Time-->
</offDutyTime>
<lateMinutes min="" max="">
<!--required, xs:integer, Late Duration (minutes)-->
</lateMinutes>
<leaveEarlyMinutes min="" max="">
<!--required, xs:integer, Early Leave Duration (minutes)-->
</leaveEarlyMinutes>
<absenceMinutes min="" max="">
<!--required, xs:integer, Absent Duration (minutes)-->
</absenceMinutes>
<totalMinutes min="" max="">
<!--required, xs:integer, Total Duration (minutes)-->
</totalMinutes>
</AbnormalInfo>
<CheckFacePicture>
<!-- optional, xs:boolean, authenticate identity via 1:N face picture matching-->
<pictureNum min="" max="">
<!--required, xs:integer, picture number>
</pictureNum>
<checkStatus opt="1,2,3,4,5,6,7,8,9,10,11">
<!--required, xs:integer, matching result: 1-modeling completed, 2-modeling failed, 3-the communication with the
face picture module failed, 4-no face in the picture, 5-the face is too close to the top picture border, 6-the face is too
close to the bottom picture border, 7-the face is too close to the left picture border, 8-the face is too close to the right
picture border, 9-the face picture is clockwise, 10-the face picture is anticlockwise, 11-the proportion of the pupillary
distance is small, 12-face picture matches the template, 13-face picture mismatches the template>
</checkStatus>
<checkTemplate opt="0,1">
<!--optional, xs:integer, 0-picture verification, 1-picture and modeling data matching verification>
</checkTemplate>
338
Device Network SDK (Card-Based Access Control) Developer Guide
</CheckFacePicture>
<supplementLightNo min="" max=""/>
<!--optional, supplement light No.-->
<maxWhiteFaceNum/>
<!--optional, the maximum number of face picture in allowlist>
<maxBlackFaceNum/>
<!--optional, the maximum number of face picture in blocklist>
<isSupportGetFailedFaceInfo>
<!--optional, xs:boolean, whether supports getting the information of face modeling failure after upgrading-->
</isSupportGetFailedFaceInfo>
<FailedFaceInfoParam>
<!--optional, xs:boolean, get the information of face modeling failure after upgrading-->
<FailedFaceInfoCond/>
<FailedFaceInfo>
<!--required, face modeling failure information-->
<cardNo min="" max=""/>
<!--required, card number-->
<errorCode min="" max=""/>
<!--required, face modeling failure error code-->
</FailedFaceInfo>
<isSupportFaceAndTemplate>
<!--optional, xs:boolean, whether supports configuring face picture and modeling data-->
</isSupportFaceAndTemplate>
<FaceAndTemplateParam>
<!--optional, face picture and modeling data configuration-->
<cardNo min="" max=""/>
<!--required, card number-->
<faceLen min="" max=""/>
<!--required, face picture size-->
<faceTemplateLen min="" max=""/>
<!--required, face picture template data size-->
</FaceAndTemplateParam>
</AcsAbility>
B.55 XML_Cap_AccessControl
AccessControl capability message in XML format
<AccessControl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportWiegandCfg>
<!--optional, xs:boolean, whether it supports Wiegand configuration-->
</isSupportWiegandCfg>
<isSupportModuleStatus>
<!--optional, xs:boolean, whether it supports getting the status of secure door control unit-->
</isSupportModuleStatus>
<isSupportSNAPConfig>
<!--optional, xs:boolean, whether it supports getting capture linkage parameters-->
</isSupportSNAPConfig>
<LocalController><!--opt-->
<isSupportLocalControllerManage>
339
Device Network SDK (Card-Based Access Control) Developer Guide
340
Device Network SDK (Card-Based Access Control) Developer Guide
341
Device Network SDK (Card-Based Access Control) Developer Guide
</isSupportFingerPrintCfg>
<isSupportFingerPrintDelete>
<!--optional, xs:boolean, whether it supports deleting fingerprint: "true"-yes, this node is not returned-no-->
</isSupportFingerPrintDelete>
<isSupportCaptureFingerPrint>
<!--optional, xs:boolean, whether it supports collecting fingerprint information: "true"-yes, this node is not returned-
no-->
</isSupportCaptureFingerPrint>
<isSupportDoorStatusWeekPlanCfg>
<!--optional, xs:boolean, whether it supports configuring door control week schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusWeekPlanCfg>
<isSupportVerifyWeekPlanCfg>
<!--optional, xs:boolean, whether it supports configuring week schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyWeekPlanCfg>
<isSupportCardRightWeekPlanCfg>
<!--optional, xs:boolean, whether it supports configuring week schedule of the access permission control: "true"-
yes, this node is not returned-no-->
</isSupportCardRightWeekPlanCfg>
<isSupportDoorStatusHolidayPlanCfg>
<!--optional, xs:boolean, whether it supports configuring door control holiday schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusHolidayPlanCfg>
<isSupportVerifyHolidayPlanCfg>
<!--optional, xs:boolean, whether it supports configuring holiday schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayPlanCfg>
<isSupportCardRightHolidayPlanCfg>
<!--optional, xs:boolean, whether it supports configuring holiday schedule of the access permission control: "true"-
yes, this node is not returned-no-->
</isSupportCardRightHolidayPlanCfg>
<isSupportDoorStatusHolidayGroupCfg>
<!--optional, xs:boolean, whether it supports configuring holiday group of the door control schedule: "true"-yes, this
node is not returned-no-->
</isSupportDoorStatusHolidayGroupCfg>
<isSupportVerifyHolidayGroupCfg>
<!--optional, 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>
<!--optional, xs:boolean, whether it supports configuring holiday group of the access permission control schedule:
"true"-yes, this node is not returned-no-->
</isSupportUserRightHolidayGroupCfg>
<isSupportDoorStatusPlanTemplate>
<!--optional, xs:boolean, whether it supports configuring door control schedule template: "true"-yes, this node is
not returned-no-->
</isSupportDoorStatusPlanTemplate>
<isSupportVerifyPlanTemplate>
<!--optional, xs:boolean, whether it supports configuring schedule template of the card reader authentication
mode: "true"-yes, this node is not returned-no-->
</isSupportVerifyPlanTemplate>
342
Device Network SDK (Card-Based Access Control) Developer Guide
<isSupportUserRightPlanTemplate>
<!--optional, xs:boolean, whether it supports configuring schedule template of the access permission control: "true"-
yes, this node is not returned-no-->
</isSupportUserRightPlanTemplate>
<isSupportDoorStatusPlan>
<!--optional, xs:boolean, whether it supports configuring door control schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusPlan>
<isSupportCardReaderPlan>
<!--optional, xs:boolean, whether it supports configuring control schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportCardReaderPlan>
<isSupportClearPlansCfg>
<!--optional, xs:boolean, whether it supports clearing the access control schedule parameters: "true"-yes, this node
is not returned-no-->
</isSupportClearPlansCfg>
<isSupportRemoteControlBuzzer>
<!--optional, xs:boolean, whether it supports remotely controlling the buzzer of the card reader: "true"-yes, this
node is not returned-no-->
</isSupportRemoteControlBuzzer>
<isSupportEventCardNoList>
<!--optional, xs:boolean, whether it supports getting the list of event and card linkage ID: "true"-yes, this node is not
returned-no-->
</isSupportEventCardNoList>
<isSupportEventCardLinkageCfg>
<!--optional, xs:boolean, whether it supports configuring event and card linkage parameters: "true"-yes, this node is
not returned-no-->
</isSupportEventCardLinkageCfg>
<isSupportClearEventCardLinkageCfg>
<!--optional, xs:boolean, whether it supports clearing event and card linkage parameters: "true"-yes, this node is
not returned-no-->
</isSupportClearEventCardLinkageCfg>
<isSupportAcsEvent>
<!--optional, xs:boolean, whether it supports searching for access control events: "true"-yes, this node is not
returned-no-->
</isSupportAcsEvent>
<isSupportAcsEventTotalNum>
<!--optional, 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>
<!--optional, xs:boolean, whether it supports getting the arming information: "true"-yes, this node is not returned-
no-->
</isSupportDeployInfo>
<isSupportEventOptimizationCfg>
<!--optional, xs:boolean, whether it supports configuring event optimization: "true"-yes, this node is not returned-
no-->
</isSupportEventOptimizationCfg>
<isSupportAcsWorkStatus>
<!--optional, xs:boolean, whether it supports getting working status of the access control device: "true"-yes, this
node is not returned-no-->
</isSupportAcsWorkStatus>
343
Device Network SDK (Card-Based Access Control) Developer Guide
<isSupportDoorCfg>
<!--optional, xs:boolean, whether it supports configuring door parameters: "true"-yes, this node is not returned-no--
>
</isSupportDoorCfg>
<isSupportCardReaderCfg>
<!--optional, xs:boolean, whether it supports configuring card reader parameters: "true"-yes, this node is not
returned-no-->
</isSupportCardReaderCfg>
<isSupportAcsCfg>
<!--optional, xs:boolean, whether it supports configuring parameters of access control device: "true"-yes, this node
is not returned-no-->
</isSupportAcsCfg>
<isSupportRemoteCheck>
<!--optional, xs:boolean, whether it supports verifying access control events remotely: true-yes, this field is not
returned-no-->
</isSupportRemoteCheck>
<isSupportMaskDetection>
<!--optional, xs:boolean, whether it supports mask detection: true-yes, this field is not returned-no-->
</isSupportMaskDetection>
<isSupportGroupCfg>
<!--optional, xs:boolean, whether it supports configuring group parameters: "true"-yes, this node is not returned-
no-->
</isSupportGroupCfg>
<isSupportClearGroupCfg>
<!--optional, xs:boolean, whether it supports clearing group parameters: "true"-yes, this node is not returned-no-->
</isSupportClearGroupCfg>
<isSupportMultiCardCfg>
<!--optional, xs:boolean, whether it supports configuring multiple authentication mode: "true"-yes, this node is not
returned-no-->
</isSupportMultiCardCfg>
<isSupportMultiDoorInterLockCfg>
<!--optional, xs:boolean, whether it supports configuring multi-door interlocking parameters: "true"-yes, this node
is not returned-no-->
</isSupportMultiDoorInterLockCfg>
<isSupportAntiSneakCfg>
<!--optional, xs:boolean, whether it supports configuring anti-passing back parameters in the device: "true"-yes, this
node is not returned-no-->
</isSupportAntiSneakCfg>
<isSupportCardReaderAntiSneakCfg>
<!--optional, 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>
<!--optional, xs:boolean, whether it supports clearing anti-passing back parameters: "true"-yes, this node is not
returned-no-->
</isSupportClearAntiSneakCfg>
<isSupportClearAntiSneak>
<!--optional, xs:boolean, whether it supports clearing anti-passing back records in the device: "true"-yes, this node
is not returned-no-->
</isSupportClearAntiSneak>
<isSupportSmsRelativeParam>
<!--optional, xs:boolean, whether it supports configuring message function: "true"-yes, this node is not returned-
344
Device Network SDK (Card-Based Access Control) Developer Guide
no-->
</isSupportSmsRelativeParam>
<isSupportPhoneDoorRightCfg>
<!--optional, 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>
<!--optional, xs:boolean, whether it supports searching for OSDP card reader status: "true"-yes, this node is not
returned-no-->
</isSupportOSDPStatus>
<isSupportOSDPModify>
<!--optional, xs:boolean, whether it supports editing OSDP card reader ID: "true"-yes, this node is not returned-no-->
</isSupportOSDPModify>
<isSupportLogModeCfg>
<!--optional, xs:boolean, whether it supports configuring log mode: "true"-yes, this node is not returned-no-->
</isSupportLogModeCfg>
<FactoryReset>
<isSupportFactoryReset><!--optional, xs: boolean, whether it supports restoring to default settings by condition--></
isSupportFactoryReset>
<mode opt="full,basic,part"><!--optional, xs: string, conditions for restoring to default settings--></mode>
</FactoryReset>
<isSupportNFCCfg><!--optional, xs:boolean,whether it supports enabling or disabling NFC function: "true"-yes, this
node is not returned-no--></isSupportNFCCfg>
<isSupportRFCardCfg><!--optional, xs:boolean,whether it supports enabling or disabling RF card recognition: "true"-
yes, this node is not returned-no--></isSupportRFCardCfg>
<isSupportCaptureFace>
<!--optional, xs:boolean, whether it supports collecting face pictures: "true"-yes, this node is not returned-no-->
</isSupportCaptureFace>
<isSupportCaptureInfraredFace>
<!--optional, xs:boolean, whether it supports collecting infrared face pictures: "true"-yes, this node is not returned-
no-->
</isSupportCaptureInfraredFace>
<isSupportFaceRecognizeMode>
<!--optional, xs:boolean, whether it supports configuring facial recognition mode: "true"-yes, this node is not
returned-no-->
</isSupportFaceRecognizeMode>
<isSupportRemoteControlPWChcek>
<!--optional, xs:boolean, whether it supports verifying the password for remote door control: "true"-yes, this node
is not returned-no-->
</isSupportRemoteControlPWChcek>
<isSupportRemoteControlPWCfg>
<!--optional, xs:boolean, whether it supports configuring the password for remote door control: "true"-yes, this
node is not returned-no-->
</isSupportRemoteControlPWCfg>
<isSupportAttendanceStatusModeCfg>
<!--optional, xs:boolean, whether it supports configuring attendance mode: "true"-yes, this node is not returned-
no-->
</isSupportAttendanceStatusModeCfg>
<isSupportAttendanceStatusRuleCfg>
<!--optional, xs:boolean, whether it supports configuring attendance status and rule: "true"-yes, this node is not
returned-no-->
</isSupportAttendanceStatusRuleCfg>
345
Device Network SDK (Card-Based Access Control) Developer Guide
<isSupportCaptureCardInfo>
<!--optional, xs:boolean, whether it supports collecting card information: "true"-yes, this node is not returned-no-->
</isSupportCaptureCardInfo>
<isSupportCaptureIDInfo>
<!--optional, xs:boolean, whether it supports collecting ID card information: "true"-yes, this node is not returned-
no-->
</isSupportCaptureIDInfo>
<isSupportCaptureRule>
<!--optional, xs:boolean, whether it supports configuring online collection rules: "true"-yes, this node is not
returned-no-->
</isSupportCaptureRule>
<isSupportCapturePresetParam>
<!--optional, xs:boolean, whether it supports configuring preset parameters of online collection: "true"-yes, this
node is not returned-no-->
</isSupportCapturePresetParam>
<isSupportOfflineCapture>
<!--optional, xs:boolean, whether it supports offline collection: "true"-yes, this node is not returned-no-->
</isSupportOfflineCapture>
<isSupportCardOperations>
<!--optional, 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>
346
Device Network SDK (Card-Based Access Control) Developer Guide
<isSupportRemoteCtrllerModeCfg>
<!--optional, xs:boolean, whether it supports configuring parameters of the keyfob control mode-->
</isSupportRemoteCtrllerModeCfg>
<isSupportTTSText><!--optional, xs:boolean, whether it supports configuring the text of the audio prompt: true-yes.
If this function is not supported, this node will be not returned--></isSupportTTSText>
<isSupportIDBlackListCfg><!--optional, xs:boolean, whether it supports applying ID card blocklist: true-yes. If this
function is not supported, this node will be not returned--></isSupportIDBlackListCfg>
<isSupportUserDataImport><!--optional, xs:boolean, whether it supports importing person permission data: true-
yes. If this function is not supported, this node will be not returned--></isSupportUserDataImport>
<isSupportUserDataExport><!--optional, xs:boolean, whether it supports exporting person permission data: true-yes.
If this function is not supported, this node will be not returned--></isSupportUserDataExport>
<isSupportMaintenanceDataExport><!--optional, xs:boolean, whether it supports exporting maintenance data: true-
yes. If this function is not supported, this node will be not returned--></isSupportMaintenanceDataExport>
<isSupportLockTypeCfg><!--optional, xs:boolean, whether it supports configuring door lock status when the device is
powered off: true-yes. If this function is not supported, this node will be not returned--></isSupportLockTypeCfg>
<isSupportSafetyHelmetDetection><!--optional, xs:boolean, whether it supports configuring hard hat detection: true-
yes, this node is not returned-no--></isSupportSafetyHelmetDetection>
<isSupportKeyCfgAttendance><!--optional, xs:boolean, whether it supports configuring parameters of attendance
check by pressing the key: true-yes, this node is not returned-no--></isSupportKeyCfgAttendance>
<isSupportIDBlackListTemplate><!--optional, xs:boolean, whether it supports downloading the ID card blocklist
template: true-yes, this node is not returned-no--></isSupportIDBlackListTemplate>
<isSupportAttendanceWeekPlan><!--optional, xs:boolean, whether it supports configuring parameters of the week
attendance schedule: true-yes, this node is not returned-no--></isSupportAttendanceWeekPlan>
<isSupportClearAttendancePlan><!--optional, xs:boolean, whether it supports clearing the week attendance
schedule: true-yes, this node is not returned-no--></isSupportClearAttendancePlan>
<isSupportAttendanceMode><!--optional, xs:boolean, whether it supports configuring the attendance mode: true-
yes, this node is not returned-no--></isSupportAttendanceMode>
<isSupportAttendancePlanTemplate><!--whether it supports configuring the attendance schedule template: true-yes,
this node is not returned-no--></isSupportAttendancePlanTemplate>
<isSupportAttendancePlanTemplateList><!--optional, xs:boolean, whether it supports getting the list of attendance
schedule templates: true-yes, this node is not returned-no--></isSupportAttendancePlanTemplateList>
<isSupportCardVerificationRule><!--optional, xs:boolean, whether it supports configuring card No. authentication
mode: true-yes, this node is not returned-no--></isSupportCardVerificationRule>
<isSupportTemperatureMeasureCfg><!--optional, xs:boolean, whether it supports configuring temperature
measurement parameters: true (support), this node is not returned (not support)--></
isSupportTemperatureMeasureCfg>
<isSupportTemperatureMeasureAreaCfg><!--optional, xs:boolean, whether it supports configuring parameters of the
temperature measurement area: true (support), this node is not returned (not support)--></
isSupportTemperatureMeasureAreaCfg>
<isSupportTemperatureMeasureAreaCalibrationCfg><!--optional, xs:boolean, whether it supports configuring
calibration parameters of the temperature measurement area: true (support), this node is not returned (not support)--
></isSupportTemperatureMeasureAreaCalibrationCfg>
<isSupportBlackObjectCfg><!--optional, xs:boolean, whether it supports configuring black body parameters: true
(support), this node is not returned (not support)--></isSupportBlackObjectCfg>
<isSupportHealthCodeCfg><!--optional, xs:boolean, whether it supports configuring health code parameters: true
(support), this node is not returned (not support)--></isSupportHealthCodeCfg>
<isSupportShowHealthCodeCfg><!--optional, xs:boolean, whether it supports configuring display parameters of the
health code: true (support), this node is not returned (not support)--></isSupportShowHealthCodeCfg>
<isSupportAddCustomAudio><!--optional, boolean, whether it supports importing custom audio, related URI: /ISAPI/
AccessControl/customAudio/addCustomAudio?format=json--></isSupportAddCustomAudio>
<isSupportDeleteCustomAudio><!--optional, boolean, whether it supports deleting custom audio, related URI: /ISAPI/
AccessControl/customAudio/deleteCustomAudio?format=json--></isSupportDeleteCustomAudio>
347
Device Network SDK (Card-Based Access Control) Developer Guide
<isSupportSearchCustomAudio><!--optional, boolean, whether it supports searching for custom audio, related URI: /
ISAPI/AccessControl/customAudio/searchCustomAudioStatus?format=json--></isSupportSearchCustomAudio>
<isSupportBluetoothEncryptionInfo><!--optional, xs:boolean, whether it supports configuring bluetooth encryption
information: true (support). If this function is not supported, this node will not be returned--></
isSupportBluetoothEncryptionInfo>
<isSupportBluetoothEncryptionVersion><!--optional, xs:boolean, whether it supports configuring bluetooth
encryption version: true (support). If this function is not supported, this node will not be returned--></
isSupportBluetoothEncryptionVersion>
<isSupportBluetooth><!--optional, xs:boolean, whether it supports bluetooth configuration--></isSupportBluetooth>
</AccessControl>
B.56 XML_Cap_ChannelControllerAlarmLinkage
ChannelControllerAlarmLinkage capability message in XML format
<ChannelControllerAlarmLinkage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Trailing><!--required, tailgating-->
<masterAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the master lane
controller, it is between 1 and 4--></masterAlarmOut>
<slaveAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the slave lane controller, it
is between 1 and 4--></slaveAlarmOut>
</Trailing>
<ReverseAccess><!--required, reverse passing-->
<masterAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the master lane
controller, it is between 1 and 4--></masterAlarmOut>
<slaveAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the slave lane controller, it
is between 1 and 4--></slaveAlarmOut>
</ReverseAccess>
<ForceAccess><!--required, force accessing-->
<masterAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the master lane
controller, it is between 1 and 4--></masterAlarmOut>
<slaveAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the slave lane controller, it
is between 1 and 4--></slaveAlarmOut>
</ForceAccess>
<ClimbingOverGate><!--required, climbing over barrier-->
<masterAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the master lane
controller, it is between 1 and 4--></masterAlarmOut>
<slaveAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the slave lane controller, it
is between 1 and 4--></slaveAlarmOut>
</ClimbingOverGate>
<PassingTimeout><!--required, passing timeout-->
<masterAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the master lane
controller, it is between 1 and 4--></masterAlarmOut>
<slaveAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the slave lane controller, it
is between 1 and 4--></slaveAlarmOut>
</PassingTimeout>
<IntrusionAlarm><!--required, intrusion alarm-->
<masterAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the master lane
controller, it is between 1 and 4--></masterAlarmOut>
<slaveAlarmOut min="1" max="4" ><!--required, xs:string, local alarm output ID linked to the slave lane controller, it
348
Device Network SDK (Card-Based Access Control) Developer Guide
B.57 XML_Cap_ChannelControllerAlarmOut
ChannelControllerAlarmOut capability message in XML format
<ChannelControllerAlarmOut version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<controllerType opt="Master,Slave"><!--required, xs:string, lane controller type: "Master"-main lane controller,
"Slave"-sub-lane controller--></controllerType>
<alarmOutNo min="1" max="4"><!--required, xs:integer, alarm output No., it is between 1 and 4--></alarmOutNo>
<delay min="0" max="5999"><!--required, xs:integer, alarm output duration, it is between 0 and 5999, and 0 refers
to continuous output, unit: second--></delay>
</ChannelControllerAlarmOut>
B.58 XML_Cap_ChannelControllerAlarmOutControl
ChannelControllerAlarmOutControl capability message in XML format
<ChannelControllerAlarmOutControl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<controllerType opt="Master,Slave" >
<!--required, xs:string, lane controller type: "Master"-master lane controller, "Slave"-slave lane controller-->
</controllerType>
<alarmOutNo min="1" max="4" >
<!--optional, xs:integer, alarm output No., which is between 1 and 4. If this node is not transmitted, it refers to all
alarm outputs-->
</alarmOutNo>
<alarmOutControl opt="Start,Stop" >
<!--optional, xs:string, control alarm output: "Start"-start alarm output, "Stop"-stop alarm output-->
</alarmOutControl>
</ChannelControllerAlarmOutControl>
B.59 XML_Cap_ChannelControllerCfg
XML message about the configuration capability of lane controller
<ChannelControllerCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<gatePassingMode opt="ByChannelController,ByRightController"><!--required, xs:string, turnstile passing mode:
"ByChannelController"-based on the lane controller's local DIP settings, "ByRightController"-based on the main
controller's settings--></gatePassingMode>
<freePassAuthEnabled opt="enable,disable"><!--required, xs:string, whether the authentication is required for free
passing: "enable"-yes, "disable"-no--></freePassAuthEnabled>
<openAndCloseSpeed min="1" max="10"><!--required, xs:integer, barrier's opening and closing speed, it is between
1 and 10, which represents the speed from 10% to 100%--></openAndCloseSpeed>
<alarmSoundTime min="0" max="599"><!--required, xs:integer, alarm prompt sound duration, unit: second. The
value is between 0 and 599, and 0 refers to continuously playing alarm prompt sound--></alarmSoundTime>
349
Device Network SDK (Card-Based Access Control) Developer Guide
B.60 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>
<faceScore min="" max=""><!--optional, xs:integer, face score, value range: [0, 100], the valid face score must be
larger than this score--></faceScore>
<maxDistance opt="0.5,1,1.5,2,auto"><!--optional, xs:string, maximum recognition distance: "0.5,1,1.5,2,auto", unit:
m. This node has higher priority over <interorbitalDistance>--></maxDistance>
<similarity min="0.0" max="1.0"><!--optional, xs:float, face comparison similarity--></similarity>
</FaceCompareCond>
350
Device Network SDK (Card-Based Access Control) Developer Guide
B.61 XML_Cap_GateDialAndInfo
GateDialAndInfo capability message in XML format
<GateDialAndInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<workMode opt="Normal,Origin,Debug" ><!--required, xs:string, working mode: "Normal"-normal mode, "Origin"-
closed position setting mode, "Debug"-test mode--></workMode>
<memoryModeEnabled opt="enable,disable" ><!--required, xs:string, whether to enable memory mode: "enable",
"disable"--></memoryModeEnabled>
<alarmAreaNoAuth opt="true,false" ><!--required, xs:boolean, whether opening barrier is prohibited in the alarm
area--></alarmAreaNoAuth>
<deviceType opt="DropGate,WingGate,ThreeRollerGate" ><!--required, xs:string, device type: "DropGate"-swing
barrier, "WingGate"-flap barrier, "ThreeRollerGate"-tripod turnstile--></deviceType>
<DialMode><!--local DIP communication mode-->
<InDoor opt="Controlled,Forbid,Free" ><!--required, xs:string, entrance: "Controlled"-controlled, "Forbid"-
prohibited, "Free"-free--></InDoor>
<OutDoor opt="Controlled,Forbid,Free" ><!--required, xs:string, exit: "Controlled"-controlled, "Forbid"-prohibited,
"Free"-free--></OutDoor>
</DialMode>
</GateDialAndInfo>
B.62 XML_Cap_GateIRStatus
GateIRStatus capability message in XML format
<GateIRStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IREmitter><!--status of active infrared intrusion detector-->
<triggered min="1" max="48" ><!--required, xs:string, triggering IR ID of the active infrared intrusion detector, it is
between 1 and 48--></triggered>
<triggeredTimeout min="1" max="48" ><!--required, xs:string, triggering timeout IR ID of the active infrared
intrusion detector, it is between 1 and 48--></triggeredTimeout>
<receiveBoardAbnormal min="1" max="48" ><!--required, xs:string, communication exception IR ID of the receiving
board, it is between 1 and 48--></receiveBoardAbnormal>
<sendBoardAbnormal min="1" max="48" ><!--required, xs:string, communication exception IR ID of the sending
board, it is between 1 and 48--></sendBoardAbnormal>
<sendAndReceiveLocateAbnormal min="1" max="48" ><!--required, xs:string, sending and receiving position
exception ID, it is between 1 and 48--></sendAndReceiveLocateAbnormal>
</IREmitter>
<masterIRAdaptorCommFailed min="1" max="2" ><!--required, xs:string, ID of communication with IR adapter of the
main lane controller failed, it can be set to 1 or 2--></masterIRAdaptorCommFailed>
<slaveIRAdaptorCommFailed min="1" max="2" ><!--required, xs:string, ID of communication with IR adapter of the
sub-lane controller failed, it can be set to 1 or 2--></slaveIRAdaptorCommFailed>
</GateIRStatus>
351
Device Network SDK (Card-Based Access Control) Developer Guide
B.63 XML_Cap_GateRelatedPartsStatus
GateRelatedPartsStatus message in XML format
<GateRelatedPartsStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<MasterChannelController><!--related components' status of master lane controller-->
<motorSensor opt="Normal,Abnormal"><!--required, xs:string, whether the motor or the sensor is normal:
"Normal"-normal, "Abnormal"-exception. This is used to detect the consistency between the motor encoder and the
hall sensor--></motorSensor>
<dropArmSensorAbnormal min="1" max="4"><!--required, xs:string, ID of barrier position sensor exception, it is
between 1 and 4. This is used to detect barrier open position switch--></dropArmSensorAbnormal>
<dropArm opt="Normal,Abnormal"><!--required, xs:string, barrier status: "Normal"-normal, "Abnormal"-exception
(obstructed or not rotate)--></dropArm>
<fireInput opt="Normal,Alarm"><!--required, xs:string, fire input status: "Normal"-normal, "Alarm"-alarm--></
fireInput>
<caseTemp min="-2000.0" max="3000.0"><!--required, xs:float, pedestal temperature, it is between -2000.0 and
3000.0 and it is accurate to one decimal place--></caseTemp>
<alarmInTriggered min="1" max="8"><!--required, xs:string, alarm input triggering ID, it is between 1 and 8--></
alarmInTriggered>
<alarmOutTriggered min="1" max="4"><!--required, xs:string, alarm output triggering ID, it is between 1 and 4--></
alarmOutTriggered>
<brakeStatus opt="NotBrake,Brake"><!--required, xs:string, brake status: "NotBrake"-disable, "Brake"-enable--></
brakeStatus>
<fanStatus opt="NotStart,Start"><!--required, xs:string, fan status: "NotStart"-disable, "Start"-enable--></fanStatus>
<lampBoardCommFailed min="1" max="4"><!--required, xs:string, ID of communication with light board failed, it is
between 1 and 4--></lampBoardCommFailed>
</MasterChannelController>
<SlaveChannelController><!--related components' status of slave lane controller-->
<motorSensor opt="Normal,Abnormal"><!--required, xs:string, whether the motor or the sensor is normal:
"Normal"-normal, "Abnormal"-exception. This is used to detect the consistency between the motor encoder and the
hall sensor--></motorSensor>
<dropArmSensorAbnormal min="1" max="4"><!--required, xs:string, ID of barrier position sensor exception, it is
between 1 and 4. This is used to detect barrier open position switch--></dropArmSensorAbnormal>
<dropArm opt="Normal,Abnormal"><!--required, xs:string, barrier status: "Normal"-normal, "Abnormal"-exception
(obstructed or not rotate)--></dropArm>
<fireInput opt="Normal,Alarm"><!--required, xs:string, fire input status: "Normal"-normal, "Alarm"-alarm--></
fireInput>
<caseTemp min="-2000.0" max="3000.0"><!--required, xs:float, pedestal temperature, it is between -2000.0 and
3000.0 and it is accurate to one decimal place--></caseTemp>
<alarmInTriggered min="1" max="8"><!--required, xs:string, alarm input triggering ID, it is between 1 and 8--></
alarmInTriggered>
<alarmOutTriggered min="1" max="4"><!--required, xs:string, alarm output triggering ID, it is between 1 and 4--></
alarmOutTriggered>
<brakeStatus opt="NotBrake,Brake"><!--required, xs:string, brake status: "NotBrake"-disable, "Brake"-enable--></
brakeStatus>
<fanStatus opt="NotStart,Start"><!--required, xs:string, fan status: "NotStart"-disable, "Start"-enable--></fanStatus>
<lampBoardCommFailed min="1" max="4"><!--required, xs:string, ID of communication with light board failed, it is
between 1 and 4--></lampBoardCommFailed>
</SlaveChannelController>
</GateRelatedPartsStatus>
352
Device Network SDK (Card-Based Access Control) Developer Guide
B.64 XML_Cap_GateStatus
GateStatus capability message in XML format
<GateStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<busSync opt="Normal,DropArmPoorSyn,BusCommFailed" ><!--required, xs:string, BUS synchronization status:
"Normal"-normal, "DropArmPoorSyn"-poor barriers synchronization, "BusCommFailed"-BUS communication failed--
></busSync>
<inDoorPassCount min="0" max="0xffffffff" ><!--required, xs:integer, IR people counting (entrance), it is between 0
and 0xffffffff. If reaching 0xffffffff, it will count from 0 again--></inDoorPassCount>
<inDoorAuthCount min="0" max="0xffffffff" ><!--required, xs:integer, people counting by authenticated times
(entrance), it is between 0 and 0xffffffff. If reaching 0xffffffff, it will count from 0 again--></inDoorAuthCount>
<outDoorPassCount min="0" max="0xffffffff" ><!--required, xs:integer, IR people counting (exit), it is between 0 and
0xffffffff. If reaching 0xffffffff, it will count from 0 again--></outDoorPassCount>
<outDoorAuthCount min="0" max="0xffffffff" ><!--required, xs:integer, people counting by authenticated times (exit),
it is between 0 and 0xffffffff. If reaching 0xffffffff, it will count from 0 again--></outDoorAuthCount>
<remoteControlRecvModule opt="Normal,Abnormal" ><!--required, xs:string, keyfob receiving module status:
"Normal"-normal, "Abnormal"-communication failed or the module is not installed--></remoteControlRecvModule>
<caseTempUnit opt="Centigrade,Fahrenheit" ><!--required, xs:string, pedestal temperature unit to be displayed:
"Centigrade"-Centigrade (°C), "Fahrenheit"-Fahrenheit (°F)--></caseTempUnit>
<currentInDoorMode opt="Controlled,Forbid,Free" ><!--required, xs:string, current passing mode (entrance):
"Controlled"-controlled, "Forbid"-prohibited, "Free"-free--></currentInDoorMode>
<currentOutDoorMode opt="Controlled,Forbid,Free" ><!--required, xs:string, current passing mode (exit):
"Controlled"-controlled, "Forbid"-prohibited, "Free"-free--></currentOutDoorMode>
<powerSupplyMode opt="ACPower,Battery" ><!--required, xs:string, device power supply mode: "ACPower"-by AC
power supply, "Battery"-by storage battery power supply--></powerSupplyMode>
</GateStatus>
B.65 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-->
353
Device Network SDK (Card-Based Access Control) Developer Guide
<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-->
<minorType>0x02</minorType><!--req, Authenticated by card and password-->
<!--See more minor types of other event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
</GetAcsEvent>
See Also
Access Control Event Types
B.66 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>
354
Device Network SDK (Card-Based Access Control) Developer Guide
355
Device Network SDK (Card-Based Access Control) Developer Guide
B.67 XML_Cap_RightControllerAudio
RightControllerAudio capability message in XML format
<RightControllerAudio version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id min="2" max="32" ><!--required, xs:string, audio ID--></id>
<audioName min="1" max="32" ><!--required, xs:string, audio name--></audioName>
<playCondition opt="NotPlay,CompleteAuth,AuthFail,Alarm" >
<!--required, xs:string, playing condition: "NotPlay"-not play, "CompleteAuth"-completely authenticated, "AuthFail"-
authentication failed, "Alarm"-alarm-->
</playCondition>
</RightControllerAudio>
B.68 XML_ChannelControllerAlarmLinkage
ChannelControllerAlarmLinkage message in XML format
<ChannelControllerAlarmLinkage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Trailing><!--required, tailgating-->
<masterAlarmOut><!--required, xs:string, local alarm output ID linked to the master lane controller, it is between 1
and 4--></masterAlarmOut>
<slaveAlarmOut><!--required, xs:string, local alarm output ID linked to the slave lane controller, it is between 1 and
4--></slaveAlarmOut>
</Trailing>
<ReverseAccess><!--required, reverse passing-->
<masterAlarmOut><!--required, xs:string, local alarm output ID linked to the master lane controller, it is between 1
and 4--></masterAlarmOut>
<slaveAlarmOut><!--required, xs:string, local alarm output ID linked to the slave lane controller, it is between 1 and
4--></slaveAlarmOut>
</ReverseAccess>
<ForceAccess><!--required, force accessing-->
<masterAlarmOut><!--required, xs:string, local alarm output ID linked to the master lane controller, it is between 1
and 4--></masterAlarmOut>
<slaveAlarmOut><!--required, xs:string, local alarm output ID linked to the slave lane controller, it is between 1 and
4--></slaveAlarmOut>
</ForceAccess>
<ClimbingOverGate><!--required, climbing over barrier-->
<masterAlarmOut><!--required, xs:string, local alarm output ID linked to the master lane controller, it is between 1
and 4--></masterAlarmOut>
<slaveAlarmOut><!--required, xs:string, local alarm output ID linked to the slave lane controller, it is between 1 and
4--></slaveAlarmOut>
</ClimbingOverGate>
<PassingTimeout><!--required, passing timeout-->
<masterAlarmOut><!--required, xs:string, local alarm output ID linked to the master lane controller, it is between 1
and 4--></masterAlarmOut>
<slaveAlarmOut><!--required, xs:string, local alarm output ID linked to the slave lane controller, it is between 1 and
4--></slaveAlarmOut>
</PassingTimeout>
<IntrusionAlarm><!--required, intrusion alarm-->
356
Device Network SDK (Card-Based Access Control) Developer Guide
<masterAlarmOut><!--required, xs:string, local alarm output ID linked to the master lane controller, it is between 1
and 4--></masterAlarmOut>
<slaveAlarmOut><!--required, xs:string, local alarm output ID linked to the slave lane controller, it is between 1 and
4--></slaveAlarmOut>
</IntrusionAlarm>
</ChannelControllerAlarmLinkage>
B.69 XML_ChannelControllerAlarmOut
ChannelControllerAlarmOut message in XML format
<ChannelControllerAlarmOut version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<delay><!--required, xs:integer, alarm output duration, it is between 0 and 5999, and 0 refers to continuous output,
unit: second--></delay>
</ChannelControllerAlarmOut>
B.70 XML_ChannelControllerAlarmOutControl
ChannelControllerAlarmOutControl message in XML format
<ChannelControllerAlarmOutControl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<controllerType>
<!--required, xs:string, lane controller type: "Master"-master lane controller, "Slave"-slave lane controller-->
</controllerType>
<alarmOutNo>
<!--optional, xs:integer, alarm output No., which is between 1 and 4. If this node is not transmitted, it refers to all
alarm outputs-->
</alarmOutNo>
<alarmOutControl>
<!--optional, xs:string, control alarm output: "Start"-start alarm output, "Stop"-stop alarm output-->
</alarmOutControl>
</ChannelControllerAlarmOutControl>
B.71 XML_ChannelControllerCfg
XML message about lane controller parameters
<ChannelControllerCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<gatePassingMode><!--required, xs:string, turnstile passing mode: "ByChannelController"-based on the lane
controller's local DIP settings, "ByRightController"-based on the main controller's settings--></gatePassingMode>
<freePassAuthEnabled><!--required, xs:string, whether the authentication is required for free passing: "enable"-yes,
"disable"-no--></freePassAuthEnabled>
<openAndCloseSpeed><!--required, xs:integer, barrier's opening and closing speed, it is between 1 and 10, which
represents the speed from 10% to 100%--></openAndCloseSpeed>
<alarmSoundTime><!--required, xs:integer, alarm prompt sound duration, unit: second. The value is between 0 and
599, and 0 refers to continuously playing alarm prompt sound--></alarmSoundTime>
<tempUnit><!--required, xs:string, temperature unit to be displayed: "Centigrade"-Celsius (°C), "Fahrenheit"-
357
Device Network SDK (Card-Based Access Control) Developer Guide
Fahrenheit (°F)--></tempUnit>
<alarmAreaNoAuth><!--optional, xs:boolean, whether opening door is prohibited in the alarm area--></
alarmAreaNoAuth>
<gateWingMaterial><!--optional, xs:string, barrier material: "Acrylic"-acrylic, "StellPipe"-steel pipe, "SinglePUGate"-
single PU gate, "DoublePUGate"-two PU gates--></gateWingMaterial>
<channelLength><!--optional, xs:integer, barrier length, unit: mm--></channelLength>
<motorDirection><!--optional, xs:string, motor rotation direction: "Clockwise", "AntiClockwise"--></motorDirection>
<lampBoardLight><!--optional, xs:integer, light board brightness, it is between 0 and 100--></lampBoardLight>
<openSpeed><!--optional, xs:string, barrier's opening speed, it is between 1 and 10 which represents the speed from
10% to 100%, and the default speed is 50%. If openAndCloseSpeed and openSpeed are both configured, the barrier's
opening speed is determined by openSpeed--></openSpeed>
<closeSpeed><!--optional, xs:integer, barrier's closing speed, it is between 1 and 10 which represents the speed from
10% to 100%, and the default speed is 40%. If openAndCloseSpeed and closeSpeed are both configured, the barrier's
closing speed is determined by closeSpeed--></closeSpeed>
<runMode><!--optional, xs:string, running mode: "doubleGateWing"-two barriers mode (default), "singleGateWing"-
single barrier mode--></runMode>
</ChannelControllerCfg>
B.72 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>
.
B.73 XML_EventNotificationAlert_AlarmEventInfo
EventNotificationAlert message with alarm/event information in XML format.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dep, xs:string, device IPv4 address--></ipAddress>
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, alarm/event triggered or occurred time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, alarm/event frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, alarm/event type, "peopleCounting, ANPR,..."--></eventType>
<eventState>
<!--req, xs:string, durative alarm/event status: "active"-valid, "inactive"-invalid, e.g., when a moving target is
detected,
the alarm/event information will be uploaded continuously unit the status is set to "inactive"-->
</eventState>
<eventDescription><!--req, xs:string, alarm/event description--></eventDescription>
<...><!--opt, for different alarm/event types, the nodes are different, see the message examples in different
358
Device Network SDK (Card-Based Access Control) Developer Guide
applications--></...>
</EventNotificationAlert>
B.74 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>
<rightBorder><!--optional, xs:integer, right border of face, value range: [0, 100]--></rightBorder>
<upBorder><!--optional, xs:integer, top border of face, value range: [0, 100]--></upBorder>
<bottomBorder><!--optional, xs:integer, bottom border of face, value range: [0, 100]--></bottomBorder>
<interorbitalDistance><!--optional, xs:integer, pupil distance, value range: [0, 100]--></interorbitalDistance>
<faceScore><!--optional, xs:integer, face score, value range: [0, 100], the valid face score must be larger than this
score--></faceScore>
<maxDistance><!--optional, xs:string, maximum recognition distance: "0.5,1,1.5,2,auto", unit: m. This node has
higher priority over <interorbitalDistance>--></maxDistance>
<similarity><!--optional, xs:float, face comparison similarity, value range: [0.0,1.0]--></similarity>
</FaceCompareCond>
B.75 XML_GateDialAndInfo
GateDialAndInfo message in XML format
<GateDialAndInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<workMode><!--required, xs:string, working mode: "Normal"-normal mode, "Origin"-closed position setting mode,
"Debug"-test mode--></workMode>
<memoryModeEnabled><!--required, xs:string, whether to enable memory mode: "enable", "disable"--></
memoryModeEnabled>
<alarmAreaNoAuth><!--required, xs:boolean, whether opening barrier is prohibited in the alarm area--></
alarmAreaNoAuth>
<deviceType><!--required, xs:string, device type: "DropGate"-swing barrier, "WingGate"-flap barrier,
"ThreeRollerGate"-tripod turnstile--></deviceType>
<DialMode><!--local DIP communication mode-->
<InDoor><!--required, xs:string, entrance: "Controlled"-controlled, "Forbid"-prohibited, "Free"-free--></InDoor>
<OutDoor><!--required, xs:string, exit: "Controlled"-controlled, "Forbid"-prohibited, "Free"-free--></OutDoor>
</DialMode>
</GateDialAndInfo>
359
Device Network SDK (Card-Based Access Control) Developer Guide
B.76 XML_GateIRStatus
GateIRStatus message in XML format
<GateIRStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IREmitter><!--status of active infrared intrusion detector-->
<triggered><!--required, xs:string, triggering IR ID of the active infrared intrusion detector, it is between 1 and 48--
></triggered>
<triggeredTimeout><!--required, xs:string, triggering timeout IR ID of the active infrared intrusion detector, it is
between 1 and 48--></triggeredTimeout>
<receiveBoardAbnormal><!--required, xs:string, communication exception IR ID of the receiving board, it is between
1 and 48--></receiveBoardAbnormal>
<sendBoardAbnormal><!--required, xs:string, communication exception IR ID of the sending board, it is between 1
and 48--></sendBoardAbnormal>
<sendAndReceiveLocateAbnormal><!--required, xs:string, sending and receiving position exception ID, it is between
1 and 48--></sendAndReceiveLocateAbnormal>
</IREmitter>
<masterIRAdaptorCommFailed><!--required, xs:string, ID of communication with IR adapter of the main lane
controller failed, it can be set to 1 or 2--></masterIRAdaptorCommFailed>
<slaveIRAdaptorCommFailed><!--required, xs:string, ID of communication with IR adapter of the sub-lane controller
failed, it can be set to 1 or 2--></slaveIRAdaptorCommFailed>
</GateIRStatus>
B.77 XML_GateRelatedPartsStatus
GateRelatedPartsStatus message in XML format
<GateRelatedPartsStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<MasterChannelController><!--related components' status of main lane controller-->
<motorSensor><!--required, xs:string, whether the motor or the sensor is normal: "Normal"-normal, "Abnormal"-
exception. This is used to detect the consistency between the motor encoder and the hall sensor--></motorSensor>
<dropArmSensorAbnormal><!--required, xs:string, ID of barrier position sensor exception, it is between 1 and 4.
This is used to detect barrier open position switch--></dropArmSensorAbnormal>
<dropArm><!--required, xs:string, barrier status: "Normal"-normal, "Abnormal"-exception (obstructed or not
rotate)--></dropArm>
<fireInput><!--required, xs:string, fire input status: "Normal"-normal, "Alarm"-alarm--></fireInput>
<caseTemp><!--required, xs:float, pedestal temperature, it is between -2000.0 and 3000.0 and it is accurate to one
decimal place--></caseTemp>
<alarmInTriggered><!--required, xs:string, alarm input triggering ID, it is between 1 and 8--></alarmInTriggered>
<alarmOutTriggered><!--required, xs:string, alarm output triggering ID, it is between 1 and 4--></
alarmOutTriggered>
<brakeStatus><!--required, xs:string, brake status: "NotBrake"-disable, "Brake"-enable--></brakeStatus>
<fanStatus><!--required, xs:string, fan status: "NotStart"-disable, "Start"-enable--></fanStatus>
<lampBoardCommFailed><!--required, xs:string, ID of communication with light board failed, it is between 1 and 4--
></lampBoardCommFailed>
</MasterChannelController>
<SlaveChannelController><!--related components' status of sub-lane controller-->
<motorSensor><!--required, xs:string, whether the motor or the sensor is normal: "Normal"-normal, "Abnormal"-
exception. This is used to detect the consistency between the motor encoder and the hall sensor--></motorSensor>
360
Device Network SDK (Card-Based Access Control) Developer Guide
B.78 XML_GateStatus
GateStatus message in XML format
<GateStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<busSync><!--required, xs:string, BUS synchronization status: "Normal"-normal, "DropArmPoorSyn"-poor barriers
synchronization, "BusCommFailed"-BUS communication failed--></busSync>
<inDoorPassCount><!--required, xs:integer, IR people counting (entrance), it is between 0 and 0xffffffff. If reaching
0xffffffff, it will count from 0 again--></inDoorPassCount>
<inDoorAuthCount><!--required, xs:integer, people counting by authenticated times (entrance), it is between 0 and
0xffffffff. If reaching 0xffffffff, it will count from 0 again--></inDoorAuthCount>
<outDoorPassCount><!--required, xs:integer, IR people counting (exit), it is between 0 and 0xffffffff. If reaching
0xffffffff, it will count from 0 again--></outDoorPassCount>
<outDoorAuthCount><!--required, xs:integer, people counting by authenticated times (exit), it is between 0 and
0xffffffff. If reaching 0xffffffff, it will count from 0 again--></outDoorAuthCount>
<remoteControlRecvModule><!--required, xs:string, keyfob receiving module status: "Normal"-normal, "Abnormal"-
communication failed or the module is not installed--></remoteControlRecvModule>
<caseTempUnit><!--required, xs:string, pedestal temperature unit to be displayed: "Centigrade"-Centigrade (°C),
"Fahrenheit"-Fahrenheit (°F)--></caseTempUnit>
<currentInDoorMode><!--required, xs:string, current passing mode (entrance): "Controlled"-controlled, "Forbid"-
prohibited, "Free"-free--></currentInDoorMode>
<currentOutDoorMode><!--required, xs:string, current passing mode (exit): "Controlled"-controlled, "Forbid"-
prohibited, "Free"-free--></currentOutDoorMode>
<powerSupplyMode><!--required, xs:string, device power supply mode: "ACPower"-by AC power supply, "Battery"-
by storage battery power supply--></powerSupplyMode>
</GateStatus>
B.79 XML_IdentityTerminal
IdentityTerminal message in XML format
361
Device Network SDK (Card-Based Access Control) Developer Guide
362
Device Network SDK (Card-Based Access Control) Developer Guide
B.80 XML_ResponseStatus
XML message about response status
<?xml version="1.0" encoding="utf-8"?>
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--required, read-only, xs:string, request URL-->
</requestURL>
<statusCode>
<!--required, read-only, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid
XML Format, 6-Invalid XML Content, 7-Reboot Required, 9-Additional Error-->
</statusCode>
<statusString>
<!--required, read-only, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML
Format, Invalid XML Content, Reboot, Additional Error-->
</statusString>
<subStatusCode>
<!--required, read-only, xs:string, describe the error reason in detail-->
</subStatusCode>
<MErrCode>
<!--optional, xs:string, error code categorized by functional modules, e.g., 0x12345678-->
</MErrCode>
<MErrDevSelfEx>
<!--optional, xs:string, extension field of MErrCode. It is used to define the custom error code, which is categorized
by functional modules-->
</MErrDevSelfEx>
</ResponseStatus>
B.81 XML_RightControllerAudio
RightControllerAudio message in XML format
<RightControllerAudio version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<audioName><!--required, xs:string, audio name--></audioName>
<playCondition>
<!--required, xs:string, playing condition: "NotPlay"-not play, "CompleteAuth"-completely authenticated, "AuthFail"-
authentication failed, "Alarm"-alarm-->
</playCondition>
</RightControllerAudio>
363
Device Network SDK (Card-Based Access Control) Developer Guide
Appendix C. Appendixes
MAJOR_ALARM
364
Device Network SDK (Card-Based Access Control) Developer Guide
365
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_EXCEPTION
366
Device Network SDK (Card-Based Access Control) Developer Guide
367
Device Network SDK (Card-Based Access Control) Developer Guide
368
Device Network SDK (Card-Based Access Control) Developer Guide
369
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_OPERATION
370
Device Network SDK (Card-Based Access Control) Developer Guide
371
Device Network SDK (Card-Based Access Control) Developer Guide
372
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_EVENT
373
Device Network SDK (Card-Based Access Control) Developer Guide
374
Device Network SDK (Card-Based Access Control) Developer Guide
375
Device Network SDK (Card-Based Access Control) Developer Guide
376
Device Network SDK (Card-Based Access Control) Developer Guide
377
Device Network SDK (Card-Based Access Control) Developer Guide
378
Device Network SDK (Card-Based Access Control) Developer Guide
379
Device Network SDK (Card-Based Access Control) Developer Guide
380
Device Network SDK (Card-Based Access Control) Developer Guide
381
Device Network SDK (Card-Based Access Control) Developer Guide
382
Device Network SDK (Card-Based Access Control) Developer Guide
383
Device Network SDK (Card-Based Access Control) Developer Guide
384
Device Network SDK (Card-Based Access Control) Developer Guide
385
Device Network SDK (Card-Based Access Control) Developer Guide
386
Device Network SDK (Card-Based Access Control) Developer Guide
387
Device Network SDK (Card-Based Access Control) Developer Guide
388
Device Network SDK (Card-Based Access Control) Developer Guide
389
Device Network SDK (Card-Based Access Control) Developer Guide
390
Device Network SDK (Card-Based Access Control) Developer Guide
391
Device Network SDK (Card-Based Access Control) Developer Guide
392
Device Network SDK (Card-Based Access Control) Developer Guide
General Errors
393
Device Network SDK (Card-Based Access Control) Developer Guide
394
Device Network SDK (Card-Based Access Control) Developer Guide
395
Device Network SDK (Card-Based Access Control) Developer Guide
396
Device Network SDK (Card-Based Access Control) Developer Guide
397
Device Network SDK (Card-Based Access Control) Developer Guide
398
Device Network SDK (Card-Based Access Control) Developer Guide
399
Device Network SDK (Card-Based Access Control) Developer Guide
400
Device Network SDK (Card-Based Access Control) Developer Guide
401
Device Network SDK (Card-Based Access Control) Developer Guide
402
Device Network SDK (Card-Based Access Control) Developer Guide
403
Device Network SDK (Card-Based Access Control) Developer Guide
404
Device Network SDK (Card-Based Access Control) Developer Guide
405
Device Network SDK (Card-Based Access Control) Developer Guide
406
Device Network SDK (Card-Based Access Control) Developer Guide
407
Device Network SDK (Card-Based Access Control) Developer Guide
408
Device Network SDK (Card-Based Access Control) Developer Guide
409
Device Network SDK (Card-Based Access Control) Developer Guide
410
Device Network SDK (Card-Based Access Control) Developer Guide
411
Device Network SDK (Card-Based Access Control) Developer Guide
412
Device Network SDK (Card-Based Access Control) Developer Guide
413
Device Network SDK (Card-Based Access Control) Developer Guide
414
Device Network SDK (Card-Based Access Control) Developer Guide
415
Device Network SDK (Card-Based Access Control) Developer Guide
416
Device Network SDK (Card-Based Access Control) Developer Guide
417
Device Network SDK (Card-Based Access Control) Developer Guide
418
Device Network SDK (Card-Based Access Control) Developer Guide
419
Device Network SDK (Card-Based Access Control) Developer Guide
420
Device Network SDK (Card-Based Access Control) Developer Guide
421
Device Network SDK (Card-Based Access Control) Developer Guide
422
Device Network SDK (Card-Based Access Control) Developer Guide
423
Device Network SDK (Card-Based Access Control) Developer Guide
424
Device Network SDK (Card-Based Access Control) Developer Guide
425
Device Network SDK (Card-Based Access Control) Developer Guide
426
Device Network SDK (Card-Based Access Control) Developer Guide
427
Device Network SDK (Card-Based Access Control) Developer Guide
428
Device Network SDK (Card-Based Access Control) Developer Guide
429
Device Network SDK (Card-Based Access Control) Developer Guide
430
Device Network SDK (Card-Based Access Control) Developer Guide
431
Device Network SDK (Card-Based Access Control) Developer Guide
432
Device Network SDK (Card-Based Access Control) Developer Guide
433
Device Network SDK (Card-Based Access Control) Developer Guide
434
Device Network SDK (Card-Based Access Control) Developer Guide
435
Device Network SDK (Card-Based Access Control) Developer Guide
436
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_ALARM
437
Device Network SDK (Card-Based Access Control) Developer Guide
438
Device Network SDK (Card-Based Access Control) Developer Guide
439
Device Network SDK (Card-Based Access Control) Developer Guide
440
Device Network SDK (Card-Based Access Control) Developer Guide
441
Device Network SDK (Card-Based Access Control) Developer Guide
442
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_EXCEPTION
443
Device Network SDK (Card-Based Access Control) Developer Guide
444
Device Network SDK (Card-Based Access Control) Developer Guide
445
Device Network SDK (Card-Based Access Control) Developer Guide
446
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_OPERATION
447
Device Network SDK (Card-Based Access Control) Developer Guide
448
Device Network SDK (Card-Based Access Control) Developer Guide
449
Device Network SDK (Card-Based Access Control) Developer Guide
450
Device Network SDK (Card-Based Access Control) Developer Guide
451
Device Network SDK (Card-Based Access Control) Developer Guide
452
Device Network SDK (Card-Based Access Control) Developer Guide
453
Device Network SDK (Card-Based Access Control) Developer Guide
454
Device Network SDK (Card-Based Access Control) Developer Guide
455
Device Network SDK (Card-Based Access Control) Developer Guide
456
Device Network SDK (Card-Based Access Control) Developer Guide
457
Device Network SDK (Card-Based Access Control) Developer Guide
458
Device Network SDK (Card-Based Access Control) Developer Guide
459
Device Network SDK (Card-Based Access Control) Developer Guide
460
Device Network SDK (Card-Based Access Control) Developer Guide
461
Device Network SDK (Card-Based Access Control) Developer Guide
462
Device Network SDK (Card-Based Access Control) Developer Guide
463
Device Network SDK (Card-Based Access Control) Developer Guide
464
Device Network SDK (Card-Based Access Control) Developer Guide
465
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_INFORMATION
466
Device Network SDK (Card-Based Access Control) Developer Guide
467
Device Network SDK (Card-Based Access Control) Developer Guide
468
Device Network SDK (Card-Based Access Control) Developer Guide
469
Device Network SDK (Card-Based Access Control) Developer Guide
470
Device Network SDK (Card-Based Access Control) Developer Guide
MAJOR_EVENT
471
Device Network SDK (Card-Based Access Control) Developer Guide
472
Device Network SDK (Card-Based Access Control) Developer Guide
StatusCode=1
StatusCode=2
StatusCode=3
473
Device Network SDK (Card-Based Access Control) Developer Guide
474
Device Network SDK (Card-Based Access Control) Developer Guide
475
Device Network SDK (Card-Based Access Control) Developer Guide
476
Device Network SDK (Card-Based Access Control) Developer Guide
StatusCode=4
477
Device Network SDK (Card-Based Access Control) Developer Guide
478
Device Network SDK (Card-Based Access Control) Developer Guide
479
Device Network SDK (Card-Based Access Control) Developer Guide
480
Device Network SDK (Card-Based Access Control) Developer Guide
481
Device Network SDK (Card-Based Access Control) Developer Guide
482
Device Network SDK (Card-Based Access Control) Developer Guide
483
Device Network SDK (Card-Based Access Control) Developer Guide
484
Device Network SDK (Card-Based Access Control) Developer Guide
485
Device Network SDK (Card-Based Access Control) Developer Guide
486
Device Network SDK (Card-Based Access Control) Developer Guide
487
Device Network SDK (Card-Based Access Control) Developer Guide
488
Device Network SDK (Card-Based Access Control) Developer Guide
489
Device Network SDK (Card-Based Access Control) Developer Guide
490
Device Network SDK (Card-Based Access Control) Developer Guide
491
Device Network SDK (Card-Based Access Control) Developer Guide
492
Device Network SDK (Card-Based Access Control) Developer Guide
493
Device Network SDK (Card-Based Access Control) Developer Guide
494
Device Network SDK (Card-Based Access Control) Developer Guide
495
Device Network SDK (Card-Based Access Control) Developer Guide
496
Device Network SDK (Card-Based Access Control) Developer Guide
497
Device Network SDK (Card-Based Access Control) Developer Guide
498
Device Network SDK (Card-Based Access Control) Developer Guide
499
Device Network SDK (Card-Based Access Control) Developer Guide
500
Device Network SDK (Card-Based Access Control) Developer Guide
501
Device Network SDK (Card-Based Access Control) Developer Guide
502
Device Network SDK (Card-Based Access Control) Developer Guide
StatusCode=5
503
Device Network SDK (Card-Based Access Control) Developer Guide
StatusCode=6
504
Device Network SDK (Card-Based Access Control) Developer Guide
505
Device Network SDK (Card-Based Access Control) Developer Guide
506
Device Network SDK (Card-Based Access Control) Developer Guide
507
Device Network SDK (Card-Based Access Control) Developer Guide
508
Device Network SDK (Card-Based Access Control) Developer Guide
509
Device Network SDK (Card-Based Access Control) Developer Guide
510
Device Network SDK (Card-Based Access Control) Developer Guide
StatusCode=7
511