Device Network SDK (Access Control On Card)
Device Network SDK (Access Control On Card)
Card)
Developer Guide
Device Network SDK (Access Control on Card) Developer Guide
Legal Information
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE DOCUMENT IS PROVIDED "AS IS"
AND “WITH ALL FAULTS AND ERRORS”. OUR COMPANY MAKES NO REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT
WILL OUR COMPANY BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INCIDENTAL, OR INDIRECT
DAMAGES, INCLUDING, AMONG OTHERS, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INTERRUPTION OR LOSS OF DATA, CORRUPTION OF SYSTEMS, OR LOSS OF DOCUMENTATION,
WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, IN
CONNECTION WITH THE USE OF THE DOCUMENT, EVEN IF OUR COMPANY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES OR LOSS.
i
Device Network SDK (Access Control on Card) Developer Guide
Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 1
Chapter 2 Typical Applications .................................................................................................... 6
2.1 Data Collection ....................................................................................................................... 6
2.1.1 Online Collect Data ....................................................................................................... 6
2.1.2 Offline Collect Data ..................................................................................................... 10
2.1.3 Collect Fingerprint ....................................................................................................... 14
2.2 Manage Card Information .................................................................................................... 14
2.2.1 Card Operation ............................................................................................................ 21
2.3 Manage Face Information .................................................................................................... 22
2.4 Manage Fingerprint Information ......................................................................................... 24
2.5 Schedule Settings ................................................................................................................. 26
2.5.1 Configure Authentication Mode Control Schedule ..................................................... 26
2.5.2 Configure Access Permission Control Schedule .......................................................... 32
2.5.3 Configure Door Control Schedule ............................................................................... 38
2.6 Alarm and Event ................................................................................................................... 43
2.6.1 Configure Access Control Event .................................................................................. 43
2.6.2 Receive Alarm/Event in Arming Mode ........................................................................ 50
2.6.3 Receive Alarm/Event in Listening Mode ..................................................................... 53
2.6.4 Search for Access Control Events ................................................................................ 56
2.7 Remotely Control Door ........................................................................................................ 60
2.8 Status Monitoring ................................................................................................................ 62
2.8.1 Configure Attendance Status ...................................................................................... 64
2.9 Turnstile Settings .................................................................................................................. 66
2.9.1 Lane Controller Settings .............................................................................................. 67
ii
Device Network SDK (Access Control on Card) Developer Guide
iii
Device Network SDK (Access Control on Card) Developer Guide
iv
Device Network SDK (Access Control on Card) Developer Guide
v
Device Network SDK (Access Control on Card) Developer Guide
vi
Device Network SDK (Access Control on Card) Developer Guide
vii
Device Network SDK (Access Control on Card) Developer Guide
viii
Device Network SDK (Access Control on Card) Developer Guide
ix
Device Network SDK (Access Control on Card) Developer Guide
x
Device Network SDK (Access Control on Card) Developer Guide
xi
Device Network SDK (Access Control on Card) Developer Guide
xii
Device Network SDK (Access Control on Card) 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 Hikvision Device Network SDK (hereafter referred as to "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 (Access Control on Card) Developer Guide
2
Device Network SDK (Access Control on Card) Developer Guide
3
Device Network SDK (Access Control on Card) Developer Guide
4
Device Network SDK (Access Control on Card) Developer Guide
5
Device Network SDK (Access Control on Card) Developer Guide
6
Device Network SDK (Access Control on Card) Developer Guide
Steps
7
Device Network SDK (Access Control on Card) Developer Guide
8
Device Network SDK (Access Control on Card) 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.
9
Device Network SDK (Access Control on Card) Developer Guide
10
Device Network SDK (Access Control on Card) Developer Guide
Steps
11
Device Network SDK (Access Control on Card) Developer Guide
Note
Before setting rule parameters of offline data collection, you'd better call
NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/AccessControl/
OfflineCapture/ruleInfo?format=json for getting the existing or configured parameters for
reference. The parameters are returned in the message JSON_RuleInfo by lpOutBuffer of
lpOutputParam.
6. Collect ID card information, card information, face data, or fingerprint on the stand-alone device
offline.
7. Optional: Call NET_DVR_STDXMLConfig to pass through the request URL: GET /ISAPI/
AccessControl/OfflineCapture/progress?format=json for getting the progress of offline data
collection.
The collection progress is returned in the message JSON_CaptureProgress by lpOutBuffer of
lpOutputParam.
8. Optional: Perform the following operation(s) after collecting data offline.
Export Call NET_DVR_STDXMLConfig to pass through the request URL: PUT /ISAPI/
Collected AccessControl/OfflineCapture/dataOutput?format=json and set lpInBuffer
Data of lpInputParam to the message JSON_DataOutputCfg .
12
Device Network SDK (Access Control on Card) Developer Guide
Note
During exporting, you can call NET_DVR_STDXMLConfig to pass through the
request URL: GET /ISAPI/AccessControl/OfflineCapture/dataOutput/
progress?format=json for getting the progress of exporting the offline
collected data.
Note
- The type of data to be sent (dwDataType) should be set to
"ENUM_SEND_JSON_DATA".
- After a search condition message JSON_SearchTaskCond is applied by
calling NET_DVR_SendRemoteConfig , the next piece of data can be
searched only when NET_DVR_JSON_DATA_CFG is returned by the
callback function fRemoteConfigCallback .
c. Call NET_DVR_StopRemoteConfig to disconnect the persistent
connection and finishing searching.
Delete A Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Specific Piece ISAPI/AccessControl/OfflineCapture/DataCollections/<captureNo>?
of Collected format=json .
Data
Delete All Call NET_DVR_STDXMLConfig to pass through the request URL: DELETE /
Collected ISAPI/AccessControl/OfflineCapture/DataCollections?format=json .
Data
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out of the device and release the resources.
13
Device Network SDK (Access Control on Card) Developer Guide
14
Device Network SDK (Access Control on Card) Developer Guide
Steps
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.
15
Device Network SDK (Access Control on Card) Developer Guide
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;
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)
16
Device Network SDK (Access Control on Card) Developer Guide
{
//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;
}
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);
17
Device Network SDK (Access Control on Card) Developer Guide
//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();
return;
}
18
Device Network SDK (Access Control on Card) Developer Guide
struCond.byCheckCardNo = 1;
19
Device Network SDK (Access Control on Card) Developer Guide
20
Device Network SDK (Access Control on Card) Developer Guide
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//Stop remote configuration
Sleep(1000);
if (bSetCardCfgFinish)//Stop remote configuration when applied or callback exception.
{
NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle);
}
//---------------------------------------
//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.
21
Device Network SDK (Access Control on Card) Developer Guide
22
Device Network SDK (Access Control on Card) Developer Guide
Steps
23
Device Network SDK (Access Control on Card) 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.
24
Device Network SDK (Access Control on Card) 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).
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.
25
Device Network SDK (Access Control on Card) Developer Guide
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.
26
Device Network SDK (Access Control on Card) Developer Guide
Steps
27
Device Network SDK (Access Control on Card) 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_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.
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
28
Device Network SDK (Access Control on Card) Developer Guide
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
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
29
Device Network SDK (Access Control on Card) 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
30
Device Network SDK (Access Control on Card) 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*/
31
Device Network SDK (Access Control on Card) Developer Guide
struHolidayPlan2.struBeginDate.byDay = 1;
struHolidayPlan2.struEndDate.wYear = 2017;//Holiday end date
struHolidayPlan2.struEndDate.byMonth = 10;
struHolidayPlan2.struEndDate.byDay = 7;
//Copy the week schedule parameters to holiday schedule of card reader authentication mode
memcpy(struHolidayPlan2.struPlanCfg, struWeekPlan2.struPlanCfg,
sizeof(NET_DVR_SINGLE_PLAN_SEGMENT)*MAX_DAYS*MAX_TIMESEGMENT_V30);
//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.
32
Device Network SDK (Access Control on Card) Developer Guide
Steps
33
Device Network SDK (Access Control on Card) Developer Guide
Note
The week schedule parameters are returned in the structure NET_DVR_WEEK_PLAN_CFG
by lpOutBuffer.
b. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_WEEK_PLAN" (command
No.: 2127) and set lpInBuffer to NET_DVR_WEEK_PLAN_CFG for setting the week
schedule.
- a. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_HOLIDAY_PLAN"
(command No.: 2130) to get default or configured holiday schedule configurations for
reference.
Note
The holiday schedule parameters are returned in the structure
NET_DVR_HOLIDAY_PLAN_CFG by lpOutBuffer.
b. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_HOLIDAY_PLAN"
(command No.: 2131) and set lpInBuffer to NET_DVR_HOLIDAY_PLAN_CFG for setting the
week schedule.
c. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_HOLIDAY_GROUP"
(command No.: 2134) to get default or configured holiday group configurations for
reference.
Note
The holiday group parameters are returned in the structure
NET_DVR_HOLIDAY_GROUP_CFG by lpOutBuffer.
d. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_HOLIDAY_GROUP"
(command No.: 2135) and set lpInBuffer to NET_DVR_HOLIDAY_GROUP_CFG for adding
the configured holiday schedule to a holiday group.
3. Optional: Call NET_DVR_GetDVRConfig with "NET_DVR_GET_CARD_RIGHT_PLAN_TEMPLATE"
(command No.: 2138) to get default or configured schedule template configurations for
reference.
Note
The schedule template parameters are returned in the structure NET_DVR_PLAN_TEMPLATE by
lpOutBuffer.
4. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_CARD_RIGHT_PLAN_TEMPLATE" (command
No.: 2139) and set lpInBuffer to NET_DVR_PLAN_TEMPLATE for setting the schedule template.
Note
The configured schedule template can be directly linked to person ID when applying person
information. And the linked person can get the access permission configured in the template.
Example
Sample Code for Configuring Access Permission Control Schedule
34
Device Network SDK (Access Control on Card) Developer Guide
#include <stdio.h>
#include <iostream>
#include <afx.h>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
void main()
{
//---------------------------------------
//Initialize
NET_DVR_Init();
//---------------------------------------
//Log in to device
LONG lUserID;
//Login parameters, including device IP address, user name, password, and so on
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
strcpy(struLoginInfo.sDeviceAddress, "192.168.1.64"); //Device IP address
struLoginInfo.wPort = 8000; //Device service port number
strcpy(struLoginInfo.sUserName, "admin"); //User name
strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
35
Device Network SDK (Access Control on Card) Developer Guide
&struPlanTem, sizeof(struPlanTem));
if (!bRet1)
{
printf("Setting access permission schedule template failed, error:%d.\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
/*Up to 8 time periods can be set for each day. Here only takes setting one period for each day*/
36
Device Network SDK (Access Control on Card) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
37
Device Network SDK (Access Control on Card) Developer Guide
38
Device Network SDK (Access Control on Card) Developer Guide
Otherwise, configuring door control schedule is not supported, please end this task.
2. Perform one of the following operations to set week or holiday schedule for door control.
- a. Call NET_DVR_GetDVRConfig with "NET_DVR_GET_WEEK_PLAN_CFG" (command No.:
2100) 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_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.
39
Device Network SDK (Access Control on Card) Developer Guide
Note
The door control schedule parameters are returned in the structure
NET_DVR_DOOR_STATUS_PLAN by output buffer (lpOutBuffer).
6. Call NET_DVR_SetDVRConfig with "NET_DVR_SET_DOOR_STATUS_PLAN" (command No.: 2111)
and set the input buffer (lpInBuffer) to NET_DVR_DOOR_STATUS_PLAN for linking the
configured template to the door control schedule and finishing the configuration.
Example
Sample Code for Configuring Door 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
//---------------------------------------
40
Device Network SDK (Access Control on Card) 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
41
Device Network SDK (Access Control on Card) Developer Guide
/*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*/
42
Device Network SDK (Access Control on Card) Developer Guide
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
43
Device Network SDK (Access Control on Card) Developer Guide
linkage, MAC linkage, and person linkage) and linkage actions (e.g., recording, alarm output,
buzzing, capture, etc.) of event card linkage to execute the linked actions when the corresponding
events occurred (e.g., door open or closed, card swiped, etc.). And then you can receive the event
information from event sources in arming or listening mode.
Before You Start
• Make sure you have called NET_DVR_Init to initialize the development environment.
• Make sure you have called NET_DVR_Login_V40 to log in to device.
44
Device Network SDK (Access Control on Card) Developer Guide
Steps
45
Device Network SDK (Access Control on Card) 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_V50 (command No.: 0x5005) in the alarm callback function
( MSGCallBack ), and refer to the data structure NET_DVR_ACS_ALARM_INFO_V50 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;
46
Device Network SDK (Access Control on Card) Developer Guide
{
//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
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
47
Device Network SDK (Access Control on Card) Developer Guide
NET_DVR_Init();
if (!NET_DVR_ContinuousShoot(lUserID, &struSnapCfg))
{
printf("NET_DVR_ContinuousShoot error: %d\n", NET_DVR_GetLastError());
return;
48
Device Network SDK (Access Control on Card) Developer Guide
//---------------------------------------
//Set event and card No. linkage parameters
NET_DVR_EVENT_CARD_LINKAGE_COND struEventCardLinkageCond = {0};
struEventCardLinkageCond.dwSize = sizeof(NET_DVR_EVENT_CARD_LINKAGE_COND);
struEventCardLinkageCond.dwEventID = 1;//Event ID, starts from 1, increase when setting different event/card No.
linkages
//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
49
Device Network SDK (Access Control on Card) Developer Guide
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
50
Device Network SDK (Access Control on Card) Developer Guide
Note
• If the configured alarm is triggered or event occurred, the alarm/event information will be
uploaded by device and returned in the callback function. You can view the alarm/event and
do some processing operations.
• For the integration via device network SDK (HCNetSDK), to receive different types of alarm/
event information, the parameter lCommand (data type to be uploaded) in the configured
callback function should be different (refer to the typical alarm/event configurations). For the
integration via Intelligent Security API (ISAPI), the lCommand should be set to
"COMM_ISAPI_ALARM" (command No.: 0x6009) and the input parameter pAlarmInfo in the
callback function MSGCallBack should be set to NET_DVR_ALARM_ISAPI_INFO .
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());
51
Device Network SDK (Access Control on Card) Developer Guide
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;
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);
52
Device Network SDK (Access Control on Card) Developer Guide
//Release resources
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release resources.
53
Device Network SDK (Access Control on Card) Developer Guide
Steps
Note
For the integration via device network SDK (HCNetSDK), to receive different types of alarm/
event information, the parameter lCommand (data type to be uploaded) in the configured
callback function should be different (refer to the typical alarm/event configurations). For the
integration via Intelligent Security API (ISAPI), the lCommand should be set to
54
Device Network SDK (Access Control on Card) Developer Guide
55
Device Network SDK (Access Control on Card) Developer Guide
}
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout (if logged in) and NET_DVR_Cleanup to log out and release resources.
56
Device Network SDK (Access Control on Card) 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.
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 ).
57
Device Network SDK (Access Control on Card) Developer Guide
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;
58
Device Network SDK (Access Control on Card) Developer Guide
//Initialize
NET_DVR_Init();
59
Device Network SDK (Access Control on Card) Developer Guide
}
//Log out
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
What to do next
Call NET_DVR_Logout and NET_DVR_Cleanup to log out and release the resource.
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.
60
Device Network SDK (Access Control on Card) 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();
61
Device Network SDK (Access Control on Card) Developer Guide
DWORD dwStaic = 1;//Command No.: 0-Close, 1-Open, 2-Remain Open, 3-Remain Closed
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;
}
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>.
62
Device Network SDK (Access Control on Card) Developer Guide
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".
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".
63
Device Network SDK (Access Control on Card) Developer Guide
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.
The capability is returned in the message XML_Cap_AccessControl by lpOutBuffer. If this function
is supported by the device, the node <isSupportGateRelatedPartsStatus> will be returned in the
message and its value is "true".
64
Device Network SDK (Access Control on Card) Developer Guide
Steps
65
Device Network SDK (Access Control on Card) 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.
66
Device Network SDK (Access Control on Card) Developer Guide
Basic Configuration
Function Description
Get Configuration Capability Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/ChannelControllerCfg/capabilities .
The configuration capability is returned in the message
XML_Cap_ChannelControllerCfg by lpOutBuffer.
Get Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/ChannelControllerCfg .
The parameters are returned in the message
XML_ChannelControllerCfg by lpOutBuffer.
Set Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
PUT /ISAPI/AccessControl/ChannelControllerCfg and set
lpInBuffer to the message XML_ChannelControllerCfg .
Note
To check whether configuring lane controller is supported, you can call NET_DVR_STDXMLConfig
to transmit the request URL: GET /ISAPI/AccessControl/capabilities to get the access control
capability.
The access control capability is returned in the message XML_Cap_AccessControl by lpOutBuffer.
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 URL:
Device Type GET /ISAPI/AccessControl/channelControllerTypeCfg/
capabilities?format=json .
The configuration capability is returned in the message
JSON_ChannelControllerTypeCfgCap by lpOutBuffer.
Get Device Type Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/channelControllerTypeCfg?
format=json .
67
Device Network SDK (Access Control on Card) Developer Guide
Function Description
The device type parameters are returned in the message
JSON_ChannelControllerTypeCfg by lpOutBuffer.
Set Device Type Call NET_DVR_STDXMLConfig to transmit the request URL:
PUT /ISAPI/AccessControl/channelControllerTypeCfg?
format=json and set lpInBuffer 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 URL: GET /ISAPI/AccessControl/capabilities to
get the access control capability.
The access control capability is returned in the message XML_Cap_AccessControl by lpOutBuffer.
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 URL:
Alarm Linkage GET /ISAPI/AccessControl/ChannelControllerAlarmLinkage/
capabilities .
The configuration capability is returned in the message
XML_Cap_ChannelControllerAlarmLinkage by lpOutBuffer.
Get Alarm Linkage Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/ChannelControllerAlarmLinkage .
The parameters are returned in the message
XML_ChannelControllerAlarmLinkage by lpOutBuffer.
Set Alarm Linkage Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
PUT /ISAPI/AccessControl/ChannelControllerAlarmLinkage and
set lpInBuffer 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 URL: GET /ISAPI/AccessControl/capabilities to
get the access control capability.
68
Device Network SDK (Access Control on Card) Developer Guide
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URL:
Alarm Output GET /ISAPI/AccessControl/ChannelControllerAlarmOut/
capabilities .
The configuration capability is returned in the message
XML_Cap_ChannelControllerAlarmOut by lpOutBuffer.
Get Alarm Output Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/ChannelControllerAlarmOut?
controllerType=&alarmOutNo= .
The parameters are returned in the message
XML_ChannelControllerAlarmOut by lpOutBuffer.
Set Alarm Output Parameters Call NET_DVR_STDXMLConfig to transmit the request URL:
PUT /ISAPI/AccessControl/ChannelControllerAlarmOut?
controllerType=&alarmOutNo= and set lpInBuffer 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 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 <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 URL:
Alarm Output GET /ISAPI/AccessControl/ChannelControllerAlarmOutControl/
capabilities .
The capability is returned in the message
XML_Cap_ChannelControllerAlarmOutControl by lpOutBuffer.
Control Alarm Output Call NET_DVR_STDXMLConfig to transmit the request URL:
PUT /ISAPI/AccessControl/ChannelControllerAlarmOutControl
69
Device Network SDK (Access Control on Card) Developer Guide
Function Description
and set lpInBuffer 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 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, 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.
70
Device Network SDK (Access Control on Card) 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.
71
Device Network SDK (Access Control on Card) 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 URL:
DIP and Information GET /ISAPI/AccessControl/GateDialAndInfo/capabilities .
The capability is returned in the message
XML_Cap_GateDialAndInfo by lpOutBuffer.
Get Local DIP and Information Call NET_DVR_STDXMLConfig to transmit the request URL:
GET /ISAPI/AccessControl/GateDialAndInfo .
The information is returned in the message
XML_GateDialAndInfo by lpOutBuffer.
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 URL: GET /ISAPI/AccessControl/capabilities
to get the access control capability.
72
Device Network SDK (Access Control on Card) 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 .
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
73
Device Network SDK (Access Control on Card) Developer Guide
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 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 .
74
Device Network SDK (Access Control on Card) Developer Guide
Function Description
Get Parameters of Linked Call NET_DVR_GetDVRConfig with "NET_DVR_GET_VIDEO_
Network Device INTERCOM_RELATEDEV_CFG" (command No.: 16006).
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 .
Table 2-1 NFC (Near-Field Communication) Function
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URL:
Enabling or Disabling NFC GET /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?
Function format=json .
And the configuration capability is returned in the message
JSON_NFCCfgCap by the output parameter (lpOutputParam).
Get Parameters of Enabling or Call NET_DVR_STDXMLConfig to transmit the request URL:
Disabling NFC Function GET /ISAPI/AccessControl/Configuration/NFCCfg?format=json .
And the parameters are returned in the message JSON_NFCCfg
by lpOutBuffer of lpOutputParam.
Set Parameters of Enabling or Call NET_DVR_STDXMLConfig to transmit the request URL:
Disabling NFC Function PUT /ISAPI/AccessControl/Configuration/NFCCfg?format=json
75
Device Network SDK (Access Control on Card) Developer Guide
Function Description
and set lpInBuffer of lpInputParam to the message
JSON_NFCCfg .
Table 2-2 RF (Radio Frequency) Card Recognition
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URL:
Enabling or Disabling RF Card GET /ISAPI/AccessControl/Configuration/RFCardCfg/
Recognition capabilities?format=json .
And the configuration capability is returned in the message
JSON_RFCardCfgCap by the output parameter
(lpOutputParam).
Get Parameters of Enabling or Call NET_DVR_STDXMLConfig to transmit the request URL:
Disabling RF Card Recognition GET /ISAPI/AccessControl/Configuration/RFCardCfg?
format=json
And the parameters are returned in the message
JSON_RFCardCfg by lpOutBuffer of lpOutputParam.
Set Parameters of Enabling or Call NET_DVR_STDXMLConfig to transmit the request URL:
Disabling RF Card Recognition PUT /ISAPI/AccessControl/Configuration/RFCardCfg?
format=json and set lpInBuffer of lpInputParam to the message
JSON_RFCardCfg .
Table 2-3 Active Infrared Intrusion Detection
Function Description
Get Configuration Capability of Call NET_DVR_STDXMLConfig to transmit the request URL:
Active Infrared Intrusion GET /ISAPI/AccessControl/Configuration/IRCfg/capabilities?
Detection format=json .
And the configuration capability is returned in the message
JSON_IRCfgCap by lpOutputParam.
Get Parameters of Active Call NET_DVR_STDXMLConfig to transmit the request URL:
Infrared Intrusion Detection GET /ISAPI/AccessControl/Configuration/IRCfg?format=json .
And the parameters are returned in the message JSON_IRCfg by
lpOutputParam.
Set Parameters of Active Call NET_DVR_STDXMLConfig to transmit the request URL:
Infrared Intrusion Detection PUT /ISAPI/AccessControl/Configuration/IRCfg?format=json
and set the lpInputParam to JSON_IRCfg .
76
Device Network SDK (Access Control on Card) 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>.
77
Device Network SDK (Access Control on Card) 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.
78
Device Network SDK (Access Control on Card) 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).
79
Device Network SDK (Access Control on Card) 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
80
Device Network SDK (Access Control on Card) 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,
void* const lpInBuff
);
Parameters
enumType
[IN] Initialization parameter type. Different type values correspond to different parameters, see
details in the table below.
81
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Returns TURE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API should be called before calling NET_DVR_Init to initialize and check the dependent
libraries or capabilities.
3.8 NET_DVR_GetDeviceAbility
Get the device capabilities.
82
Device Network SDK (Access Control on Card) Developer Guide
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.
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,
83
Device Network SDK (Access Control on Card) Developer Guide
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
[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.
84
Device Network SDK (Access Control on Card) Developer Guide
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
Call this API to get the file downloading progress and status.
API Definition
LONG NET_DVR_GetDownloadState(
LONG lDownloadHandle,
LPDWORD pProgress
);
Parameters
lDownloadHandle
[IN] Handle for downloading files, which is returned by NET_DVR_StartDownload .
pProgress
[OUT] Returned progress value, which is ranging from 1 to 100.
Return Values
Returns -1 for calling failed, and returns other values as the downloading status codes: 1-
Downloaded, 2-Downloading, 3-Downloading Failed, 4-Network Disconnected, Unknown Status.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
3.11 NET_DVR_GetNextRemoteConfig
Get the next search result.
API Definition
LONG NET_DVR_GetNextRemoteConfig(
LONG lHandle,
void *lpOutBuff,
DWORD dwOutBuffSize
);
Parameters
lHandle
[IN] Search handle, which is the value returned by NET_DVR_StartRemoteConfig .
85
Device Network SDK (Access Control on Card) Developer Guide
lpOutBuff
[OUT] Output parameter buffer pointer, which relates to the commands (dwCommand) of
NET_DVR_StartRemoteConfig .
dwOutBuffSize
[IN] Buffer size.
Return Values
Returns -1 for failure, and returns other values for the current statuses, see details in the following
table.
Status Value Description
NET_SDK_GET_NEXT_STATUS_ 1000 The data is obtained. The API NET_DVR_
SUCCESS GetNextRemoteConfig should be called again to
get the next item of data.
NET_SDK_GET_NETX_STATUS_ 1001 Waiting. The API NET_DVR_GetNextRemoteConfig
NEED_WAIT can be called again.
NET_SDK_GET_NEXT_STATUS_ 1002 All data is obtained. The API
FINISH NET_DVR_StopRemoteConfig can be called to end.
NET_SDK_GET_NEXT_STATUS_ 1003 Getting data exception. The API
FAILED NET_DVR_StopRemoteConfig can be called to end.
3.12 NET_DVR_GetUploadState
Get the file uploading progress and status.
API Definition
LONG NET_DVR_GetUploadState(
LONG lUploadHandle,
LPDWORD pProgress
);
Parameters
lUploadHandle
[IN] Handling for uploading files, which is returned by NET_DVR_UploadFile_V40 .
pProgress
86
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Return -1 for failure, and return other values as the uploading status codes, see details in the
following table.
Table 3-2 Uploading Status Code
Return Value Description
1 Uploaded.
2 Uploading.
3 Uploading failed.
4 Network disconnected. Unknown status.
6 HDD error.
7 No HDD for saving inquest files.
8 Insufficient capacity.
9 Insufficient device resource.
10 No more files can be uploaded.
11 Too large file size.
12 File type error.
19 Invalid file format.
20 Incorrect file content.
21 The uploaded audio sampling rate is not
supported.
26 Name error.
27 Invalid picture resolution.
28 Too many targets in the picture.
30 Picture recognition failed.
31 Analysis engine exception.
32 Analyzing picture failed.
34 Incorrect security verification key.
87
Device Network SDK (Access Control on Card) Developer Guide
3.13 NET_DVR_ControlGateway
Call this API to remotely control the door or elevator.
API Definition
BOOL NET_DVR_ControlGateway(
LONG lUserID,
LONG lGatewayIndex,
DWORD dwStaic
);
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
lGatewayIndex
[IN] Door No. or floor No., which starts from 1, -1: Control all doors or elevators of floors.
dwStaic
[IN] Command No.: 0-Close (Under Control), 1-Open, 2-Remain Open (Free), 3-Remain Closed
(Disabled), 4-Recovery (only for elevator), 5-Vistor Call Elevator (only for elevator), 6-Resident
Call Elevator (only for elevator).
Return Values
Returns TRUE for success, and returns FALSE for failure.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
3.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 .
88
Device Network SDK (Access Control on Card) Developer Guide
dwDataType
[IN] Data type, which relates to the commands of NET_DVR_StartRemoteConfig .
pSendBuf
[IN] Buffer for saving data to be sent, which relates to dwDataType.
dwBufSize
[IN] Size of data to be sent.
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
Before calling this API, you must call NET_DVR_StartRemoteConfig to get the persistent
connection handle.
3.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
89
Device Network SDK (Access Control on Card) Developer Guide
[IN] Pointer of configuration condition buffer, e.g., stream ID, which specifies the number
(dwCount) of cameras to set, and relates to the configuration commands.
dwInBufferSize
[IN] Size of configuration condition buffer, which saves the configured information of cameras
with the number of dwCount.
lpStatusList
[OUT] Error information list, and its memory is allocated by user, each error information
contains 4 bytes (a unsigned 32-bit integer).
There is a one-to-one correspondence between the errors in the list and the cameras that need
to be searched, e.g., lpStatusList[2] corresponds to lpInBuffer[2].
If the parameter value is 0, it refers to setting succeeded, otherwise, this parameter value is the
error code.
lpInParamBuffer
[IN] Device parameters to set, which relates to the configuration commands. And there is a one-
to-one correspondence between the parameters and the cameras that need to be searched.
dwInParamBufferSize
[IN] Set the size of content buffer.
Return Values
Returns TRUE for success, and returns FALSE for all failed. If returns TRUE, it does not indicate that
all settings are succeeded, you can get the value of lpStatusList[n] to check which one is
succeeded.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
See Also
NET_DVR_GetDeviceConfig
3.16 NET_DVR_StartDownload
Call this API to download the files.
API Definition
LONG NET_DVR_StartDownload(
LONG lUserID,
DWORD dwDownloadType,
LPVOID lpInBuffer,
DWORD dwInBufferSize,
char const *sFileName
);
90
Device Network SDK (Access Control on Card) Developer Guide
Parameters
lUserID
[IN] Value returned by NET_DVR_Login_V40 .
dwDownloadType
[IN] Downloading commands which specify the file type to download, see details in the
enumeration NET_SDK_DOWNLOAD_TYPE .
lpInBuffer
[IN] Input parameters, which are different according to different downloading commands.
dwInBufferSize
[IN] Input buffer size.
sFileName
[IN] Path for saving downloaded files (absolute path, includes file name).
Return Values
Returns -1 for failure, and returns other values as the parameters of NET_DVR_StopDownload and
NET_DVR_GetDownloadState .
If returning failed, you can call NET_DVR_GetLastError to get the error code.
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.
lpInBuffer
91
Device Network SDK (Access Control on Card) 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.
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.
92
Device Network SDK (Access Control on Card) Developer Guide
NET_SDK_CALLBACK_TYPE_PROGRESS
Connection progress.
NET_SDK_CALLBACK_TYPE_DATA
Related data to be called back.
lpBuffer
[OUT] Pointer of buffer for saving progress, status, and related data to be called back, which
relates to dwType, see details in the following table.
dwType lpBuffer
NET_SDK_CALLBACK_TYPE_STATUS If dwBufLen is 4, lpBuffer is 4-byte connection
status; if dwBufLen is 8, lpBuffer consists of 4-
byte connection status and 4-byte error code.
The connection status is enumerated in
NET_SDK_CALLBACK_STATUS_NORMAL
NET_SDK_CALLBACK_TYPE_PROGRESS Connection progress value.
NET_SDK_CALLBACK_TYPE_DATA Data structures to be returned, which are
different according to different commands
(dwCommand) in
NET_DVR_StartRemoteConfig .
dwBufLen
[OUT] Buffer size.
pUserData
[OUT] User data.
3.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 .
93
Device Network SDK (Access Control on Card) Developer Guide
lpInputParam
[IN] Input parameters, refer to the structure NET_DVR_XML_CONFIG_INPUT for details.
lpOutputParam
[IN][OUT] Output parameters, refer to the structure NET_DVR_XML_CONFIG_OUTPUT for
details.
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
The input parameter lpInputParam and output parameter lpOutputParam are different when
passing through request URLs for implementing different functions, and each parameter
corresponds to a component of ISAPI protocol, see the relations below:
Parameter of NET_DVR_STDXMLConfig Component of ISAPI Protocol
lpInputParam lpRequestUrl (see in structure Method+URL
NET_DVR_XML_CONFIG_INPU E.g., GET /ISAPI/System/
T) capabilities
lpInBuffer (see in structure Request Message
NET_DVR_XML_CONFIG_INPU
T)
lpOutputParam lpOutBuffer (see in structure Response Message
NET_DVR_XML_CONFIG_OUTP
UT )
lpStatusBuffer (see in structure Response Message
NET_DVR_XML_CONFIG_OUTP
UT )
3.19 NET_DVR_StopDownload
Call this API to stop downloading files.
API Definition
BOOL NET_DVR_StopDownload(
LONG lHandle
);
94
Device Network SDK (Access Control on Card) Developer Guide
Parameters
lHandle
[IN] Handle for downloading files, which is returned by NET_DVR_StartDownload .
Return Values
Returns TRUE for success, and returns FALSE for failure.
If returning failed, you can call NET_DVR_GetLastError to get the error code.
3.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 .
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 .
95
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
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
[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.
96
Device Network SDK (Access Control on Card) Developer Guide
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 .
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
97
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API: 0, 3, 6, 7, 8, 9, 10, 12, 17, 41, 43, 44, 47, 72,
73, and 76. See the corresponding error types and descriptions in the Device Network SDK Errors .
See Also
NET_DVR_SetDVRConfig
3.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
98
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Returns TRUE for success, and returns FALSE for failure.
If FALSE is returned, you can call NET_DVR_GetLastError to get the error code.
The following error codes may be returned by this API: 0, 3, 6, 7, 8, 9, 10, 12, 17, 41, 43, 44, 47, 72,
73, and 76. See the corresponding error types and descriptions in the Device Network SDK Errors .
See Also
NET_DVR_GetDVRConfig
3.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
99
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Return TRUE for success, and return FALSE for failure.
If FALSE returned, call NET_DVR_GetLastError to get the error code.
Remarks
• This API supports setting multiple callback functions for different channels (up to 16 channels are
supported) at same time, and the configured callback functions are distinguished by the index
No.
• All alarm/event information will be returned in each configured callback function, and you can
distinguish the devices via the pAlarmInfo in the callback function ( MSGCallBack ).
Example
Sample Code of Setting Multiple Callback Functions to Receive Different Alarms/Events in Arming
Mode
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
using namespace std;
int iNum=0;
void CALLBACK MessageCallbackNo1(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD
dwBufLen, void* pUser)
{
int i=0;
char filename[100];
FILE *fSnapPic=NULL;
FILE *fSnapPicPlate=NULL;
//This sample code is for reference only. Actually, it is not recommended to process the data and save file in the
callback function directly.
//You'd better process the data in the message response funcion via message mode (PostMessage).
switch(lCommand)
{
case COMM_ALARM:
{
NET_DVR_ALARMINFO struAlarmInfo;
memcpy(&struAlarmInfo, pAlarmInfo, sizeof(NET_DVR_ALARMINFO));
switch (struAlarmInfo.dwAlarmType)
{
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);
100
Device Network SDK (Access Control on Card) 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
101
Device Network SDK (Access Control on Card) Developer Guide
case COMM_ITS_PLATE_RESULT:
{
NET_ITS_PLATE_RESULT struITSPlateResult={0};
memcpy(&struITSPlateResult, pAlarmInfo, sizeof(struITSPlateResult));
for (i=0;i<struITSPlateResult.dwPicNum;i++)
{
printf("License Plate Number: %s\n", struITSPlateResult.struPlateInfo.sLicense);//License plate number
switch(struITSPlateResult.struPlateInfo.byColor)//License plate color
{
case VCA_BLUE_PLATE:
printf("Vehicle Color: Blue\n");
break;
case VCA_YELLOW_PLATE:
printf("Vehicle Color: Yellow\n");
break;
case VCA_WHITE_PLATE:
printf("Vehicle Color: White\n");
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
default:
break;
}
//Save scene picture
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType== 1)||
(struITSPlateResult.struPicInfo[i].byType == 2))
{
sprintf(filename,"testITSpic%d_%d.jpg",iNum,i);
fSnapPic=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate thumbnails
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType == 0))
{
sprintf(filename,"testPicPlate%d_%d.jpg",iNum,i);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen, 1, \
fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
}
break;
}
default:
break;
}
102
Device Network SDK (Access Control on Card) Developer Guide
//This sample code is for reference only. Actually, it is not recommended to process the data and save file in the
callback function directly.
//You'd better process the data in the message response funcion via message mode (PostMessage).
switch(lCommand)
{
case COMM_ALARM:
{
NET_DVR_ALARMINFO struAlarmInfo;
memcpy(&struAlarmInfo, pAlarmInfo, sizeof(NET_DVR_ALARMINFO));
switch (struAlarmInfo.dwAlarmType)
{
case 3: //Motion detection alarm
for (i=0; i<16; i++) //#define MAX_CHANNUM 16 //The maximum number of channel
{
if (struAlarmInfo.dwChannel[i] == 1)
{
printf("Channel No. with Motion Detection Alarm %d\n", i+1);
}
}
break;
default:
break;
}
break;
}
case COMM_UPLOAD_PLATE_RESULT:
{
NET_DVR_PLATE_RESULT struPlateResult={0};
memcpy(&struPlateResult, pAlarmInfo, sizeof(struPlateResult));
printf("License Plate Number: %s\n", struPlateResult.struPlateInfo.sLicense);//License plate number
103
Device Network SDK (Access Control on Card) Developer Guide
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
default:
break;
}
//Scene picture
if (struPlateResult.dwPicLen != 0 && struPlateResult.byResultType == 1 )
{
sprintf(filename,"testpic_%d.jpg",iNum);
fSnapPic=fopen(filename,"wb");
fwrite(struPlateResult.pBuffer1,struPlateResult.dwPicLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate picture
if (struPlateResult.dwPicPlateLen != 0 && struPlateResult.byResultType == 1)
{
sprintf(filename,"testPicPlate_%d.jpg",iNum);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struPlateResult.pBuffer1,struPlateResult.dwPicLen,1,fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
break;
}
case COMM_ITS_PLATE_RESULT:
{
NET_ITS_PLATE_RESULT struITSPlateResult={0};
memcpy(&struITSPlateResult, pAlarmInfo, sizeof(struITSPlateResult));
for (i=0;i<struITSPlateResult.dwPicNum;i++)
{
printf("License Plate Number: %s\n", struITSPlateResult.struPlateInfo.sLicense);//License plate number
switch(struITSPlateResult.struPlateInfo.byColor)//License plate color
{
case VCA_BLUE_PLATE:
printf("Vehicle Color: Blue\n");
break;
case VCA_YELLOW_PLATE:
printf("Vehicle Color: Yellow\n");
break;
case VCA_WHITE_PLATE:
printf("Vehicle Color: White\n");
break;
case VCA_BLACK_PLATE:
printf("Vehicle Color: Black\n");
break;
default:
break;
104
Device Network SDK (Access Control on Card) Developer Guide
}
//Save scene picture
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType== 1)||
(struITSPlateResult.struPicInfo[i].byType == 2))
{
sprintf(filename,"testITSpic%d_%d.jpg",iNum,i);
fSnapPic=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen,1,fSnapPic);
iNum++;
fclose(fSnapPic);
}
//License plate thumbnails
if ((struITSPlateResult.struPicInfo[i].dwDataLen != 0)&&(struITSPlateResult.struPicInfo[i].byType == 0))
{
sprintf(filename,"testPicPlate%d_%d.jpg",iNum,i);
fSnapPicPlate=fopen(filename,"wb");
fwrite(struITSPlateResult.struPicInfo[i].pBuffer, struITSPlateResult.struPicInfo[i].dwDataLen, 1, \
fSnapPicPlate);
iNum++;
fclose(fSnapPicPlate);
}
//Processing other data...
}
break;
}
default:
break;
}
}
void main() {
//---------------------------------------
//Initialize
NET_DVR_Init();
//Set the connection time and reconnection time
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------
//Log in to device
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
lUserID = NET_DVR_Login_V30("172.0.0.100", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}
105
Device Network SDK (Access Control on Card) Developer Guide
//Enable arming
NET_DVR_SETUPALARM_PARAM struSetupParam={0};
struSetupParam.dwSize=sizeof(NET_DVR_SETUPALARM_PARAM);
Sleep(20000);
//Disarm uploading channel
if (!NET_DVR_CloseAlarmChan_V30(lHandle))
{
printf("NET_DVR_CloseAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
}
//User logout
NET_DVR_Logout(lUserID);
//Release SDK resource
NET_DVR_Cleanup();
return;
}
See Also
NET_DVR_SetupAlarmChan_V50
3.26.1 MSGCallBack
Alarm/event information callback function.
106
Device Network SDK (Access Control on Card) Developer Guide
NET_DVR_ALARMER *pAlarmer,
char *pAlarmInfo,
DWORD dwBufLen,
void *pUser
);
Parameters
lCommand
[OUT] Uploaded message type. You can distinguish the alarm/event information via the type.
pAlarmer
[OUT] Alarm device information, including serial No., IP address, login handle, and so on, see
details in NET_DVR_ALARMER .
pAlarmInfo
[OUT] Alarm/event information, the details are returned in different structures according to
lCommand.
dwBufLen
[OUT] Size of alarm/event information buffer.
pUser
[OUT] User data.
3.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
107
Device Network SDK (Access Control on Card) Developer Guide
Return Values
Return -1 for failure, and return other values as the handles of NET_DVR_CloseAlarmChan_V30 .
If -1 is returned, you can call NET_DVR_GetLastError to get the error code.
Remarks
This API supports alarm/event subscription, you can specify the types of alarm or event to be
uploaded by device by setting pData and dwDataLen.
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,
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.
108
Device Network SDK (Access Control on Card) Developer Guide
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
);
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 .
109
Device Network SDK (Access Control on Card) Developer Guide
4.1.1 NET_ALARM_CVR_SUBINFO_UNION
4.1.2 NET_ALARM_RECORD_EXCEPTION
110
Device Network SDK (Access Control on Card) Developer Guide
4.1.3 NET_ALARM_RECORDFILE_LOSS
4.1.4 NET_ALARM_RESOURCE_USAGE
111
Device Network SDK (Access Control on Card) Developer Guide
4.1.5 NET_ALARM_STREAM_EXCEPTION
4.1.6 NET_DVR_ALARMER
112
Device Network SDK (Access Control on Card) Developer Guide
4.1.7 NET_DVR_ALARMINFO_DEV
Remarks
For pNO: if dwAlarmType is 0, 3, 6, or 7, it may be channel No.; if dwAlarmType is 5, it may be disk
No.
113
Device Network SDK (Access Control on Card) Developer Guide
4.1.8 NET_DVR_ALARMINFO_DEV_V40
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
114
Device Network SDK (Access Control on Card) 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
115
Device Network SDK (Access Control on Card) 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.
• The content of pAlarmData varies with the value of dwAlarmType in the structure
NET_DVR_ALRAM_FIXED_HEADER , see details in the table below:
Table 4-1 Relations Between pAlarmData and dwAlarmType
dwAlarmType Description pAlarmData
0, 23 Alarm input alarm, pulse alarm dwTrigerAlarmOutNum*(DWOR
D) Alarm output No.,
+dwTrigerRecordChanNum*(DW
ORD) Channel No.
2, 3, 6, 9, 10, 11, 13, 15, Video loss, motion detection, dwAlarmChanNum*(DWORD)
16, 19 video tampering alarm, video channel No.
exception, recording exception,
scene change, resolution
mismatched, VCA detection, PoE
power supply exception, audio
loss
1, 4, 5 HDD full, HDD uninitialized, dwAlarmHardDiskNum*(DWOR
writing to HDD failed D) HDD No.
7, 8, 12, 17, 18, 24, 25, 26 Standard mismatches, invalid None
login, array exception, education
sharing system alarm, two-way
audio request alarm, face library
HDD exception, face library
changed, picture changed in face
picture library
4.1.11 NET_DVR_ALRAM_FIXED_HEADER
116
Device Network SDK (Access Control on Card) Developer Guide
117
Device Network SDK (Access Control on Card) Developer Guide
118
Device Network SDK (Access Control on Card) Developer Guide
Remarks
dwAlarmType==0, 23 corresponds to the structure struIOAlarm; dwAlarmType==
2/3/6/9/10/11/13/15/16/28 corresponds to the structure struAlarmChannel; dwAlarmType==
1/4/5 corresponds to the structure struAlarmHardDisk; dwAlarmType== 17 corresponds to the
structure struRecordingHost; dwAlarmType== 31 corresponds to the structure struVoltageInstable;
for other value, the union is not available.
119
Device Network SDK (Access Control on Card) 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 OPEN
ISAPI Protocol to set the IP address for the listening service.
4.1.13 NET_DVR_ALARM_ISAPI_PICDATA
120
Device Network SDK (Access Control on Card) Developer Guide
4.1.14 NET_DVR_ACS_ALARM_INFO_V50
Access control alarm/event information structure.
Structure Definition
struct{
DWORD dwSize;
DWORD dwMajor;
DWORD dwMinor;
NET_DVR_TIME struTime;
BYTE sNetUser[MAX_NAMELEN/*16*/];
NET_DVR_IPADDR struRemoteHostAddr;
NET_DVR_ACS_EVENT_INFO_V50 struAcsEventInfo;
DWORD dwPicDataLen;
char *pPicData;
WORD wInductiveEventType;
BYTE byPicTransType;
BYTE byRes1;
DWORD dwIOTChannelNo;
char *pAcsEventInfoExtend;
BYTE byAcsEventInfoExtend;
BYTE byTimeType;
BYTE byRes[10];
}NET_DVR_ACS_ALARM_INFO_V50, *LPNET_DVR_ACS_ALARM_INFO_V50;
Members
dwSize
Structure size.
dwMajor
Event major types, see details in Access Control Event Types .
dwMinor
Event minor types, see details in Access Control Event Types .
struTime
Time information, see NET_DVR_TIME for details.
121
Device Network SDK (Access Control on Card) Developer Guide
sNetUser
User name.
struRemoteHostAddr
IP address of remote access controller, see NET_DVR_IPADDR for details.
struAcsEventInfo
Access control event details, see NET_DVR_ACS_EVENT_INFO_V50 for details.
dwPicDataLen
Picture size, non-0: picture data exists.
pPicData
Picture data.
wInductiveEventType
Inductive event type, 0-invalid. The alarm event types will be distinguished according to the
inductive event type if wInductiveEventType is not 0; otherwise, the alarm event types will be
distinguished according to dwMajor and dwMinor.
byPicTransType
Picture data transmission mode: 0-binary, 1-URL.
byRes1
Reserved.
dwIOTChannelNo
IOT channel No.
pAcsEventInfoExtend
When this member is set to 1, it points to the structure NET_DVR_ACS_EVENT_INFO_EXTEND .
byAcsEventInfoExtend
Whether pAcsEventInfoExtend is valid: 0-no, 1-yes.
byTimeType
Time type: 0-device's local time, 1-UTC time (which is the same as struTime).
byRes
Reserved, set to 0.
4.1.15 NET_DVR_ACS_EVENT_CFG
Access control event parameter structure.
Structure Definition
struct{
DWORD dwSize;
122
Device Network SDK (Access Control on Card) Developer Guide
DWORD dwMajor;
DWORD dwMinor;
NET_DVR_TIME struTime;
BYTE sNetUser[MAX_NAMELEN/*16*/];
NET_DVR_IPADDR struRemoteHostAddr;
NET_DVR_ACS_EVENT_DETAIL struAcsEventInfo;
DWORD dwPicDataLen;
char *pPicData;
BYTE byTimeType;
BYTE byRes[61];
}NET_DVR_ACS_EVENT_CFG, *LPNET_DVR_ACS_EVENT_CFG;
Members
dwSize
Structure size.
dwMajor
Event major types, see details in Access Control Event Types .
dwMinor
Event minor types, see details in Access Control Event Types .
struTime
Time information, see NET_DVR_TIME for details.
sNetUser
User name.
struRemoteHostAddr
IP address of remote access controller, see NET_DVR_IPADDR for details.
struAcsEventInfo
Access control event details, see NET_DVR_ACS_EVENT_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).
byRes
Reserved, set to 0.
4.1.16 NET_DVR_ACS_EVENT_COND
Condition structure about getting access control events.
123
Device Network SDK (Access Control on Card) Developer Guide
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.
byPicEnable
Whether contain pictures: 0-no, 1-yes.
byTimeType
124
Device Network SDK (Access Control on Card) Developer Guide
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.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardType;
BYTE byWhiteListNo;
BYTE byReportChannel;
125
Device Network SDK (Access Control on Card) Developer Guide
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 byRes[64];
}NET_DVR_ACS_EVENT_DETAIL, *LPNET_DVR_ACS_EVENT_DETAIL;
Members
dwSize
Structure size.
byCardNo
Card No.: 0-invalid.
byCardType
Card types: 0-invalid, 1-normal card, 2-disabled card, 3-blacklist card, 4-patrol card, 5-duress
card, 6-super card, 7-visitor card.
byWhiteListNo
Whitelist No., which is between 1 and 8, but if the value is 0, it is invalid.
byReportChannel
126
Device Network SDK (Access Control on Card) Developer Guide
Event uploading channel types: 0-invalid, 1-upload in arming mode, 2-upload by central group 1,
3-upload by central group 2.
byCardReaderKind
Authentictaion device types: 0-invalid, 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-
fingerprint module.
dwCardReaderNo
Authentication device No.: 0-invalid.
dwDoorNo
Door or floor No.: 0-invalid. For Turnstile (swing barrier), door No.1 refers to entrance, and door
No.2 refers to exist.
dwVerifyNo
Multiple authentication No.: 0-invalid
dwAlarmInNo
Alarm input No.: 0-invalid
dwAlarmOutNo
Alarm output No.: 0-invalid
dwCaseSensorNo
Event trigger No.
dwRs485No
RS485 channel No.: 0-invalid.
dwMultiCardGroupNo
Group No.
wAccessChannel
Turnstile No.
byDeviceNo
Device No.: 0-invalid.
byDistractControlNo
Distributed controller No.: 0-invalid.
dwEmployeeNo
Employee No.: 0-invalid.
wLocalControllerID
Distributed access controller No.: 0-access controller, 0 to 64: distributed access controller.
byInternetAccess
Network interface No.: 1-upstream network interface No.1, 2-upstream network interface No.2,
3-downstream network interface No.1.
127
Device Network SDK (Access Control on Card) Developer Guide
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-master lane controller, 2-slave lane controller.
byChannelControllerLampID
Light board No. of lane controller, which is between 1 and 255, 0-invalid
byChannelControllerIRAdaptorID
IR adaptor No. of lane controller, which is between 1 and 255, 0-invalid.
byChannelControllerIREmitterID
Active infrared intrusion detector No. of lane controller, which is between 1 and 255, 0-invalid.
dwRecordChannelNum
Number of recording channels.
pRecordChannelData
Recording channel, the size depends on dwRecordChannelNum.
byUserType
Person type: 0-invalid, 1-resident, 2-visitor, 3-person in blacklist, 4-administrator.
byCurrentVerifyMode
Authentication mode: 0-invalid, 1-sleepy, 2-card+password, 3-card, 4-card or password, 5-
fingerprint, 6-fingerprint+password, 7-fingerprint or card, 8-fingerprint+card, 9-fingerprint+card
+password, 10-face or fingerprint or card or password, 11-face+fingerprint, 12-face+password,
13-face+card, 14-face, 15-employee No.+password, 16-fingerprint or password, 17-employee
No.+fingerprint, 18-employee No.+fingerprint+password, 19-face+fingerprint+card, 20-face
+password+fingerprint, 21-employee No.+face, 22-face or face+card, 23-fingerprint or face, 24-
card or face or password, 25-card or face, 26-card or face or fingerprint, 27-card or fingerprint
or password.
128
Device Network SDK (Access Control on Card) Developer Guide
byAttendanceStatus
Attendance status: 0-undefined, 1-check in, 2-check out, 3-break out, 4-break in, 5-overtime in,
6-overtime out.
byStatusValue
Attendance status value.
byEmployeeNo
Employee No. (person ID). Both byEmployeeNo and dwEmployeeNo should be transferred by
the device. The byEmployeeNo will be parsed by the upper-level platform or client first. If the
byEmployeeNo is NULL, the dwEmployeeNo will be parsed.
byRes
Reserved, set to 0.
4.1.18 NET_DVR_ACS_EVENT_INFO_EXTEND
Structure about extended access control event information.
Structure Definition
struct{
DWORD dwFrontSerialNo;
BYTE byUserType;
BYTE byCurrentVerifyMode;
BYTE byCurrentEvent;
BYTE byPurePwdVerifyEnable;
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byAttendanceStatus;
BYTE byStatusValue;
BYTE byRes2[2];
BYTE byUUID[NET_SDK_UUID_LEN/*36*/];
BYTE byDeviceId[NAME_LEN/*32*/];
BYTE byRes[56];
}NET_DVR_ACS_EVENT_INFO_EXTEND, *LPNET_DVR_ACS_EVENT_INFO_EXTEND;
Members
dwFrontSerialNo
Event serial No., 0-invalid. If this member is set to 0, the platform will judge whether the event
is lost by dwSerialNo; otherwise, the platform will judge whether the event is lost by both
dwFrontSerialNo and dwSerialNo. This member is used for discontinuous dwSerialNo after
alarm subscription.
byUserType
Person type: 0-invalid, 1-resident, 2-visitor, 3-person in blacklist, 4-administrator.
byCurrentVerifyMode
129
Device Network SDK (Access Control on Card) Developer Guide
Current authentication mode of the card reader: 0-invalid, 1-sleepy, 2-card+password, 3-card, 4-
card or password, 5-fingerprint, 6-fingerprint+password, 7-fingerprint or card, 8-fingerprint
+card, 9-fingerprint+card+password, 10-face or fingerprint or card or password, 11-face
+fingerprint, 12-face+password, 13-face+card, 14-face, 15-employee No.+password, 16-
fingerprint or password, 17-employee No.+fingerprint, 18-employee No.+fingerprint+password,
19-face+fingerprint+card, 20-face+password+fingerprint, 21-employee No.+face, 22-face or face
+card, 23-fingerprint or face, 24-card or face or password, 25-card or face, 26-card or face or
fingerprint, 27-card or fingerprint or password.
byCurrentEvent
Whether it is a real-time event: 0-invalid, 1-yes (real-time event), 2-no (offline event).
byPurePwdVerifyEnable
Whether the device supports opening the door only by password: 1-yes, 0-no.
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.
byEmployeeNo
Employee No. (person ID). Both byEmployeeNo and dwEmployeeNo should be transferred by
the device. The byEmployeeNo will be parsed by the upper-level platform or client first. If the
byEmployeeNo is NULL, the dwEmployeeNo will be parsed.
byAttendanceStatus
Attendance status: 0-undefined, 1-check in, 2-check out, 3-break out, 4-break in, 5-overtime in,
6-overtime out.
byStatusValue
Attendance status value.
byRes2
Reserved.
byUUID
UUID, this member is only used when accessing EZVIZ platform.
byDeviceId
Device serial No.
byRes
Reserved.
See Also
NET_DVR_ACS_ALARM_INFO_V50
130
Device Network SDK (Access Control on Card) Developer Guide
4.1.19 NET_DVR_ACS_EVENT_INFO_V50
Access control event details structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byCardType;
BYTE byWhiteListNo;
BYTE byReportChannel;
BYTE byCardReaderKind;
DWORD dwCardReaderNo;
DWORD dwDoorNo;
DWORD dwVerifyNo;
DWORD dwAlarmInNo;
DWORD dwAlarmOutNo;
DWORD dwCaseSensorNo;
DWORD dwRs485No;
DWORD dwMultiCardGroupNo;
WORD wAccessChannel;
BYTE byDeviceNo;
BYTE byDistractControlNo;
DWORD dwEmployeeNo;
WORD wLocalControllerID;
BYTE byInternetAccess;
BYTE byType;
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE bySwipeCardType;
BYTE byRes2;
DWORD dwSerialNo;
BYTE byChannelControllerID;
BYTE byChannelControllerLampID;
BYTE byChannelControllerIRAdaptorID;
BYTE byChannelControllerIREmitterID;
BYTE byRes[4];
}NET_DVR_ACS_EVENT_INFO_V50, *LPNET_DVR_ACS_EVENT_INFO_V50;
Members
dwSize
Structure size.
byCardNo
Card number, some special cards' numbers are listed as the follows: "18446744073709551613"-
supper card, "18446744073709551614"-duress card, "18446744073709551615"-invalid card.
byCardType
131
Device Network SDK (Access Control on Card) Developer Guide
Card types: 0-invalid, 1-normal card, 2-disabled card, 3-blacklist card, 4-patrol card, 5-duress
card, 6-super card, 7-visitor card.
byWhiteListNo
Whitelist No., which is between 1 and 8, but if the value is 0, it is invalid.
byReportChannel
Event uploading channel types: 0-invalid, 1-upload in arming mode, 2-upload by central group 1,
3-upload by central group 2.
byCardReaderKind
Authentictaion device types: 0-invalid, 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-
fingerprint module.
dwCardReaderNo
Authentication device No.: 0-invalid.
dwDoorNo
Door or floor No.: 0-invalid. For Turnstile (swing barrier), door No.1 refers to entrance, and door
No.2 refers to exit.
dwVerifyNo
Multiple authentication No.: 0-invalid
dwAlarmInNo
Alarm input No.: 0-invalid
dwAlarmOutNo
Alarm output No.: 0-invalid
dwCaseSensorNo
Event trigger No.
dwRs485No
RS485 channel No.: 0-invalid.
dwMultiCardGroupNo
Group No.
wAccessChannel
Turnstile No.
byDeviceNo
Device No.: 0-invalid.
byDistractControlNo
Distributed controller No.: 0-invalid.
dwEmployeeNo
Employee ID.: 0-invalid.
132
Device Network SDK (Access Control on Card) Developer Guide
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.
byRes2
Reserved, set to 0.
dwSerialNo
Event serial No.: 0-invalid, which is used to judge whether the event loss occurred.
byChannelControllerID
Lane controller No.: 0-invalid, 1-master lane controller, 2-slave lane controller.
byChannelControllerLampID
Light board No. of lane controller, which is between 1 and 255, 0-invalid
byChannelControllerIRAdaptorID
IR adaptor No. of lane controller, which is between 1 and 255, 0-invalid.
byChannelControllerIREmitterID
Active infrared intrusion detector No. of lane controller, which is between 1 and 255, 0-invalid.
byRes
Reserved, set to 0.
4.1.20 NET_DVR_ACS_EXTERNAL_DEV_CFG
Structure about the peripheral parameters of access controller.
Structure Definition
struct{
DWORD dwSize;
BYTE byIDCardUpMode;
133
Device Network SDK (Access Control on Card) Developer Guide
BYTE byRes1;
BYTE byCardVerifyMode;
BYTE byACSDevType;
BYTE byDoorMode;
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-Hikvision ID card reader;
when byACSDevType=7: 0-DC48270RS043_01T, 1-DC80480B070_03T.
byRes
Reserved, set to 0.
4.1.21 NET_DVR_ACS_WORK_STATUS_V50
Access controller working status structure.
134
Device Network SDK (Access Control on Card) Developer Guide
Structure Definition
struct{
DWORD dwSize;
BYTE byDoorLockStatus[MAX_DOOR_NUM/*256*/];
BYTE byDoorStatus[MAX_DOOR_NUM/*256*/];
BYTE byMagneticStatus[MAX_DOOR_NUM/*256*/];
BYTE byCaseStatus[MAX_CASE_SENSOR_NUM/*8*/];
WORD wBatteryVoltage;
BYTE byBatteryLowVoltage;
BYTE byPowerSupplyStatus;
BYTE byMultiDoorInterlockStatus;
BYTE byAntiSneakStatus;
BYTE byHostAntiDismantleStatus;
BYTE byIndicatorLightStatus;
BYTE byCardReaderOnlineStatus[MAX_CARD_READER_NUM/*512*/];
BYTE byCardReaderAntiDismantleStatus[MAX_CARD_READER_NUM/*512*/];
BYTE byCardReaderVerifyMode[MAX_CARD_READER_NUM/*512*/];
BYTE bySetupAlarmStatus[MAX_ALARMHOST_ALARMIN_NUM/*512*/];
BYTE byAlarmInStatus[MAX_ALARMHOST_ALARMIN_NUM/*512*/];
BYTE byAlarmOutStatus[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
DWORD dwCardNum;
BYTE byFireAlarmStatus;
BYTE byBatteryChargeStatus;
BYTE byMasterChannelControllerStatus;
BYTE bySlaveChannelControllerStatus;
BYTE byAntiSneakServerStatus;
BYTE byRes3[3];
DWORD dwWhiteFaceNum;
DWORD dwBlackFaceNum;
BYTE byRes2[108];
}NET_DVR_ACS_WORK_STATUS_V50,*LPNET_DVR_ACS_WORK_STATUS_V50;
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
135
Device Network SDK (Access Control on Card) Developer Guide
136
Device Network SDK (Access Control on Card) Developer Guide
byFireAlarmStatus
Fire alarm status: 0-normal, 1-short circuit alarm, 2-open circuit alarm.
byBatteryChargeStatus
Battery charging status: 0-invalid, 1-charging, 2-unchanged.
byMasterChannelControllerStatus
Online status of master lane controller online status: 0-invalid, 1-offline, 2-online.
bySlaveChannelControllerStatus
Online status of slave 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.
dwWhiteFaceNum
The number of face pictures in whitelist.
wBlackFaceNum
The number of face pictures in blacklist.
byRes2
Reserved, set to 0
4.1.22 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 for details.
struCenterAddr
137
Device Network SDK (Access Control on Card) Developer Guide
See Also
4.1.23 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
138
Device Network SDK (Access Control on Card) Developer Guide
Size of face data template 1. When its value is 0, it indicates that there is no data template 1.
pFaceTemplate1Buffer
Buffer to save face data template 1, the buffer size should be smaller than or equal to 2.5 KB.
dwFaceTemplate2Size
Size of face data template 2. When its value is 0, it indicates that there is no data template 2.
pFaceTemplate2Buffer
Buffer to save face data template 2, the buffer size should be smaller than or equal to 2.5 KB.
dwFacePicSize
Size of face picture data. When its value is 0, it indicates that there is no face picture data.
pFacePicBuffer
Buffer to save face picture data.
byFaceQuality1
Face picture quality, it is between 1 and 100.
byFaceQuality2
Face picture quality, it is between 1 and 100.
byCaptureProgress
Collection progress: 0-no face data collected, 1-collected. The face information can be parsed
only when the progress value is 100.
byFacePicQuality
Face quality in the face picture.
dwInfraredFacePicSize
Size of infrared face picture data. When its value is 0, it indicates that there is no face picture
data.
pInfraredFacePicBuffer
Buffer to save infrared face picture data.
byInfraredFacePicQuality
Face quality in the infrared face picture.
byRes1
Reserved.
struFeature
Feature information in the matted face picture, see details in the structure
NET_DVR_FACE_FEATURE .
byRes
Reserved.
139
Device Network SDK (Access Control on Card) Developer Guide
4.1.24 NET_DVR_CAPTURE_FACE_COND
Condition structure for collecting face data.
Structure Definition
struct{
DWORD dwSize;
BYTE byRes[128];
}NET_DVR_CAPTURE_FACE_COND,*LPNET_DVR_CAPTURE_FACE_COND;
Members
dwSize
Structure size.
byRes
Reserved.
4.1.25 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
140
Device Network SDK (Access Control on Card) Developer Guide
4.1.26 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.27 NET_DVR_CARD_READER_CFG_V50
Fingerprint and card reader parameters structure.
141
Device Network SDK (Access Control on Card) Developer Guide
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byCardReaderType;
BYTE byOkLedPolarity;
BYTE byErrorLedPolarity;
BYTE byBuzzerPolarity;
BYTE bySwipeInterval;
BYTE byPressTimeout;
BYTE byEnableFailAlarm;
BYTE byMaxReadCardFailNum;
BYTE byEnableTamperCheck;
BYTE byOfflineCheckTime;
BYTE byFingerPrintCheckLevel;
BYTE byUseLocalController;
BYTE byRes1;
WORD wLocalControllerID;
WORD wLocalControllerReaderID;
WORD wCardReaderChannel;
BYTE byFingerPrintImageQuality;
BYTE byFingerPrintContrastTimeOut;
BYTE byFingerPrintRecogizeInterval;
BYTE byFingerPrintMatchFastMode;
BYTE byFingerPrintModuleSensitive;
BYTE byFingerPrintModuleLightCondition;
BYTE byFaceMatchThresholdN;
BYTE byFaceQuality;
BYTE byFaceRecogizeTimeOut;
BYTE byFaceRecogizeInterval;
WORD wCardReaderFunction;
BYTE byCardReaderDescription[CARD_READER_DESCRIPTION/*32*/];
WORD wFaceImageSensitometry;
BYTE byLivingBodyDetect;
BYTE byFaceMatchThreshold1;
WORD wBuzzerTime;
BYTE byFaceMatch1SecurityLevel;
BYTE byFaceMatchNSecurityLevel;
BYTE byEnvirMode;
BYTE byLiveDetLevelSet;
BYTE byLiveDetAntiAttackCntLimit;
BYTE byEnableLiveDetAntiAttack;
BYTE bySupportDelFPByID;
BYTE byRes1;
BYTE byFaceContrastMotionDetLevel;
BYTE byDayFaceMatchThresholdN;
BYTE byNightFaceMatchThresholdN;
BYTE byFaceRecogizeEnable;
BYTE byBlackFaceMatchThreshold;
BYTE byRes3[2];
BYTE byDefaultVerifyMode;
142
Device Network SDK (Access Control on Card) Developer Guide
DWORD dwFingerPrintCapacity;
DWORD dwFingerPrintNum;
BYTE byEnableFingerPrintNum;
BYTE byRes[231];
}NET_DVR_CARD_READER_CFG_V50,*LPNET_DVR_CARD_READER_CFG_V50;
Members
dwSize
Structure size
byEnable
Whether to enable: 0-no, 1-yes.
byCardReaderType
Fingerprint and card reader types: 1-DS-K110XM/MK/C/CK, 7-Wiegand or RS485 offline, 8-DS-
K1101M/MK, 9-DS-K1101C/CK, 10-DS-K1102M/MK/M-A, 11-DS-K1102C/CK, 12-DS-
K1103M/MK, 13-DS-K1103C/CK, 14-DS-K1104M/MK, 15-DS-K1104C/CK, 16-DS-K1102S/SK/S-A,
19-DS-K1102EM, 20- DS-K1102E, 21-DS-K1200EF, 22-DS-K1200MF, 23-DS-K1200CF, 33-DS-
K1T200EF, 34- DS-K1T300EF
byOkLedPolarity
OK LED polarity: 0-negative pole, 1-positive pole.
byErrorLedPolarity
Error LED polarity: 0-negative pole, 1-positive pole.
byBuzzerPolarity
Buzzer polarity: 0-negative pole, 1-positive pole.
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
143
Device Network SDK (Access Control on Card) Developer Guide
Fingerprint recognition level: 1-1/10 error rate, 2-1/100error rate, 3-1/1000error rate,
4-1/10000error rate, 5-1/100000error rate, 6-1/1000000error rate, 7-1/10000000error rate, 8-
1/100000000error rate, 9-3/100error rate, 10-3/1000error rate, 11-3/10000error rate,
12-3/100000error rate, 13-3/1000000error rate, 14-3/10000000error rate,
15-3/100000000error rate, 16-Auto Normal, 17-Auto Secure, 18-Auto More Secure
byUseLocalController
Read-only, whether is it linked with distributed access controller or not? 0-no, 1-yes.
byRes1
Reserved, set to 0.
wLocalControllerID
Read-only, distributed access controller No. It is valid when byUseLocalController is 1, No.0
indicates that the controller is not registered, and the No. is ranging from 1 and 255.
wLocalControllerReaderID
Read-only, fingerprint and card reader No. of distributed access controller. It is valid when
byUseLocalController is 1, No.0 indicates that the controller is not registered.
wCardReaderChannel
Read-only, communication channel No. of fingerprint an card reader: 0-Wiegand or offline, 1-
RS485A, 2-RS485B. It is valid when byUseLocalController is 1.
byFingerPrintImageQuality
Fingerprint picture quality: 0-invalid, 1-low (V1), 2-medium (V1), 3-high (V1), 4-highest (V1), 5-
low (V2), 6-medium (V2), 7-high (V2), 8-highest (V2).
byFingerPrintContrastTimeOut
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
144
Device Network SDK (Access Control on Card) Developer Guide
145
Device Network SDK (Access Control on Card) Developer Guide
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.
byFaceRecogizeEnable
Whether to enable facial recognition: 0-invalid, 1-yes (one face), 2-no, 3-yes (multiple faces).
byBlackFaceMatchThreshold
Face picture comparison threshold in blacklist, 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.28 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;
146
Device Network SDK (Access Control on Card) Developer Guide
BYTE byRes[12];
}NET_DVR_CARD_CFG_SEND_DATA,*LPNET_DVR_CARD_CFG_SEND_DATA;
Members
dwSize
Structure size.
byCardNo
Card number.
dwCardUserId
Card holder ID.
byRes2
Reserved, set to 0.
4.1.29 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;
147
Device Network SDK (Access Control on Card) Developer Guide
DWORD dwPlanTemplate;
DWORD dwCardUserId;
BYTE byCardModelType;
BYTE bySIMNum[NAME_LEN/*32*/];
BYTE byRes3[51];
}NET_DVR_CARD_CFG_V50,*LPNET_DVR_CARD_CFG_V50;
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.
148
Device Network SDK (Access Control on Card) Developer Guide
149
Device Network SDK (Access Control on Card) Developer Guide
Floor No.
dwEmployeeNo
Employee ID, which is between 1 and 99999999, it cannot be 0 and cannot be duplicated.
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-MIFARE S50, 2-MIFARE S70, 3- FM1208 CPU card, 4-FM1216 CPU card, 5-reserved,
6-identity card, 7-NFC
byRes2
150
Device Network SDK (Access Control on Card) Developer Guide
Reserved, set to 0.
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.30 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
151
Device Network SDK (Access Control on Card) 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.31 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.32 NET_DVR_DATE
Date information structure.
Structure Definition
struct{
WORD wYear;
BYTE byMonth;
BYTE byDay;
}NET_DVR_DATE,*LPNET_DVR_DATE;
152
Device Network SDK (Access Control on Card) Developer Guide
Members
wYear
Year
byMonth
Month
byDay
Day
4.1.33 NET_DVR_DEVICEINFO_V30
Device parameter structure (V30).
153
Device Network SDK (Access Control on Card) Developer Guide
154
Device Network SDK (Access Control on Card) Developer Guide
155
Device Network SDK (Access Control on Card) Developer Guide
Remarks
• The maximum number of digital channels equal to byIPChanNum+byHighDChanNum*256.
• For login via ISAPI Protocol, the following parameters are not supported: byMainProto,
bySubProto, bySupport, bySupport1, bySupport2, bySupport3, bySupport4, bySupport5,
bySupport6, bySupport7, byMultiStreamProto, byStartDTalkChan, byVoiceInChanNum,
byStartVoiceInChanNo, byMirrorChanNum, and wStartMirrorChanNo.
See Also
NET_DVR_DEVICEINFO_V40
156
Device Network SDK (Access Control on Card) Developer Guide
4.1.34 NET_DVR_DEVICEINFO_V40
157
Device Network SDK (Access Control on Card) Developer Guide
158
Device Network SDK (Access Control on Card) Developer Guide
Remarks
• Four character types are allowed in the password, including digits, lowercase letters, uppercase
letters and symbols. The maximum password length is 16 bits, and there are four password
strength levels, see details below:
• Level 0 (Risky Password): The password length is less than 8 bits, or only contains one kind of
the character types. Or the password is the same with the user name, or is the mirror writing
of the user name.
• Level 1 (Weak Password): The password length is more than or equal to 8 bits, and contains
two kinds of the character types. Meanwhile, the combination should be (digits + lowercase
letters) or (digits + uppercase letters).
• Level 2 (Medium Password): The password length is more than or equal to 8 bits, and contains
two kinds of the character types. Meanwhile, the combination cannot be (digits + lowercase
letters) and (digits + uppercase letters).
• Level 3 (Strong Password): The password length is more than or equal to 8 bits, and at least
contains three kinds of the character types.
• For login via ISAPI Protocol, the following parameters are not supported: bySupportLock,
byRetryLoginTime, byPasswordLevel, byProxyType, dwSurplusLockTime, byCharEncodeType,
and bySupportDev5.
4.1.35 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*/];
159
Device Network SDK (Access Control on Card) Developer Guide
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.36 NET_DVR_DOOR_STATUS_PLAN
Parameter structure about door control schedule configuration.
Structure Definition
struct{
DWORD dwSize;
DWORD dwTemplateNo;
BYTE byRes[64];
}NET_DVR_DOOR_STATUS_PLAN,*LPNET_DVR_DOOR_STATUS_PLAN;
Members
dwSize
Structure size.
dwTemplateNo
Schedule template No.: 0-cancel linking the configured template with schedule, and restore to
the default settings; non-0-link the configured template with schedule.
byRes
Reserved, set to 0.
4.1.37 NET_DVR_ETHERNET_V30
160
Device Network SDK (Access Control on Card) Developer Guide
4.1.38 NET_DVR_EVENT_CARD_LINKAGE_CFG_V51
Parameter structure about event and card linkage configuration.
Structure Definition
struct{
DWORD dwSize;
BYTE byProMode;
BYTE byRes1[3];
DWORD dwEventSourceID;
NET_DVR_EVENT_CARD_LINKAGE_UNION uLinkageInfo;
BYTE byAlarmout[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byRes2[32];
BYTE byOpenDoor[MAX_DOOR_NUM/*256*/];
BYTE byCloseDoor[MAX_DOOR_NUM/*256*/];
BYTE byNormalOpen[MAX_DOOR_NUM/*256*/];
BYTE byNormalClose[MAX_DOOR_NUM/*256*/];
BYTE byMainDevBuzzer;
BYTE byCapturePic;
BYTE byRecordVideo;
BYTE byMainDevStopBuzzer;
WORD wAudioDisplayID;
BYTE byAudioDisplayMode;
BYTE byRes3[25];
161
Device Network SDK (Access Control on Card) Developer Guide
BYTE byReaderBuzzer[MAX_CARD_READER_NUM/*512*/];
BYTE byAlarmOutClose[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byAlarmInSetup[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byAlarmInClose[MAX_ALARMHOST_ALARMOUT_NUM/*512*/];
BYTE byReaderStopBuzzer[MAX_CARD_READER_NUM/*64*/];
BYTE byRes[512];
}NET_DVR_EVENT_CARD_LINKAGE_CFG_V51, *LPNET_DVR_EVENT_CARD_LINKAGE_CFG_V51;
Members
dwSize
Structure size.
byProMode
Linkage type: 0-event linkage, 1-card No. linkage, 2-MAC address linkage, 3- employee No.
(person ID) linkage.
byRes1
Reserved, set to 0.
dwEventSourceID
Event triggering source ID: 0xffffffff-all. For device events, this parameter is invalid; for door
events, it refers to door No.; for card reader events, it refers to card reader ID; for alarm input
events, it refers to zone or event alarm input ID.
uLinkageInfo
Linkage action parameter, see NET_DVR_EVETN_CARD_LINKAGE_UNION for details.
byAlarmout
Linked alarm output No., which is represented by byte. 0-not link, 1-link.
byRes2
Reserved, set to 0.
byOpenDoor
Whether to enable door opening linkage, which is represented by byte. 0-disable, 1-enable.
byCloseDoor
Whether to enable door closing linkage, which is represented by byte. 0-disable, 1-enable.
byNormalOpen
Whether to enable door remaining open linkage, which is represented by byte. 0-disable, 1-
enable.
byNormalClose
Whether to enable door remaining closed linkage, which is represented by byte. 0-disable, 1-
enable.
byMainDevBuzzer
Whether to enable access controller buzzing, 0-disable, 1-enable.
162
Device Network SDK (Access Control on Card) Developer Guide
byCapturePic
Whether to enable capture linkage, 0-disable, 1-enable.
byRecordVideo
Whether to enable recording linkage, 0-disable, 1-enable.
byMainDevStopBuzzer
Whether to enable access controller stopping buzzing linkage, 0-disable, 1-enable.
wAudioDisplayID
Linked audio prompt ID, currently it is between 1 and 32, and 0 indicates no linkage.
byAudioDisplayMode
Linked audio prompt mode: 0-disable, 1-play once, 2-loop playing.
byRes3
Reserved.
byReaderBuzzer
Whether to enable buzzer linkage, which is represented by byte. 0-disable, 1-enable.
byAlarmOutClose
Whether to enable alarm output disabling linkage, which is represented by byte. 0-disable, 1-
enable.
byAlarmInSetup
Whether to enable zone arming linkage, which is represented by byte. 0-disable, 1-enable.
byAlarmInClose
Whether to enable zone disarming linkage, which is represented by byte. 0-disable, 1-enable.
byReaderStopBuzzer
Whether to enable card reader stopping buzzing linkage, which is represented by byte. 0-
disable, 1-enable.
byRes
Reserved, set to 0.
4.1.39 NET_DVR_EVENT_CARD_LINKAGE_COND
Condition structure about the event card linkage configuration.
Structure Definition
struct{
DWORD dwSize;
DWORD dwEventID;
WORD wLocalControllerID;
163
Device Network SDK (Access Control on Card) Developer Guide
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.40 NET_DVR_EVETN_CARD_LINKAGE_UNION
Parameter union about event and card linkage configuration.
Structure Definition
union{
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
NET_DVR_EVENT_LINKAGE_INFO struEventLinkage;
BYTE byMACAddr[MACADDR_LEN/*6*/];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
}NET_DVR_EVETN_CARD_LINKAGE_UNION,*LPNET_DVR_EVETN_CARD_LINKAGE_UNION;
Members
byCardNo
Card No.
struEventLinkage
Event linkage parameters, see details in the structure NET_DVR_EVENT_LINKAGE_INFO .
byMACAddr
Physical MAC address.
byEmployeeNo
Employee No. (person ID)
See Also
NET_DVR_EVENT_CARD_LINKAGE_CFG_V51
164
Device Network SDK (Access Control on Card) Developer Guide
4.1.41 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.42 NET_DVR_FACE_FEATURE
Structure about facial feature parameters.
Structure Definition
struct{
NET_VCA_RECT struFace;
NET_VCA_POINT struLeftEye;
NET_VCA_POINT struRightEye;
NET_VCA_POINT struLeftMouth;
NET_VCA_POINT struRightMouth;
NET_VCA_POINT struNoseTip;
}NET_DVR_FACE_FEATURE, *LPNET_DVR_FACE_FEATURE;
Members
struFace
Face sub-picture area, see details in the structure NET_VCA_RECT .
struLeftEye
165
Device Network SDK (Access Control on Card) Developer Guide
4.1.43 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.
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.
166
Device Network SDK (Access Control on Card) Developer Guide
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.44 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
Number of face pictures to be get and apply. 0xffffffff-all face pictures.
byFaceID
Face picture ID, which is between 1 and 2, 0xff-all face pictures linked with the card.
byFaceDataType
Face data type: 0-template (default), 1-picture
byRes
Reserved, set to 0.
167
Device Network SDK (Access Control on Card) Developer Guide
4.1.45 NET_DVR_FINGER_PRINT_CFG_V50
Fingerprint configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
DWORD dwFingerPrintLen;
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
BYTE byFingerPrintID;
BYTE byFingerType;
BYTE byRes1[30];
BYTE byFingerData[MAX_FINGER_PRINT_LEN/*768*/];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byLeaderFP[MAX_DOOR_NUM_256/*256*/]
BYTE byRes[128];
}NET_DVR_FINGER_PRINT_CFG, *LPNET_DVR_FINGER_PRINT_CFG;
Members
dwSize
Structure size.
byCardNo
Card No., which is linked with the fingerprint.
dwFingerPrintLen
Size of fingerprint data. The fingerprint module and fingerprint recorder will be used in pair.
byEnableCardReader
Whether to apply fingerprint data to the fingerprint module, which is represented by array: 0-no
1-yes
byFingerPrintID
Finger No., which is between 1 and 10
byFingerType
Fingerprint type: 0-normal fingerprint, 1-duress fingerprint, 2-patrol fingerprint, 3-super
fingerprint, 4-dismiss fingerprint
byRes1
Reserved, set to 0
byFingerData
Fingerprint data
byEmployeeNo
Employee No. (person ID)
168
Device Network SDK (Access Control on Card) Developer Guide
byLeaderFP
Whether to support first time authentication function (door, represented by byte): 0-no, 1-yes.
byRes
Reserved, set to 0
4.1.46 NET_DVR_FINGER_PRINT_INFO_COND_V50
Fingerprint parameter configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byCardNo[ACS_CARD_NO_LEN/*32*/];
BYTE byEnableCardReader[MAX_CARD_READER_NUM/*512*/];
DWORD dwFingerPrintNum;
BYTE byFingerPrintID;
BYTE byCallbackMode;
BYTE byRes2[2];
BYTE byEmployeeNo[NET_SDK_EMPLOYEE_NO_LEN/*32*/];
BYTE byRes1[128];
}NET_DVR_FINGER_PRINT_INFO_COND_V50, *LPNET_DVR_FINGER_PRINT_INFO_COND_V50;
Members
dwSize
Structure size.
byCardNo
Card No. linked with the fingerprint. This parameter is invalid when setting fingerprint
parameters.
byEnableCardReader
Fingerprint module status: 0-invalid; 1-valid.
dwFingerPrintNum
Number of obtained or configured fingerprints, 0xffffffff-get all fingerprints' information.
byFingerPrintID
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
169
Device Network SDK (Access Control on Card) Developer Guide
Remarks
Two fingerprint applying modes are available: blocking mode and non-blocking mode.
• Blocking Mode: Set byCallbackMode to "0", and the applying status will be returned for once
only after applying each fingerprint.
• Non-blocking Mode: Set byCallbackMode to "1", and the applying status will be returned for
multiple times after applying each fingerprint. And the next fingerprint can be applied until the
previous fingerprint information is applied.
4.1.47 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.
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
170
Device Network SDK (Access Control on Card) Developer Guide
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.48 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.
struValidPeriodCfg
Group expiry date.
byGroupName
Group name
byRes2
Reserved, set to 0.
171
Device Network SDK (Access Control on Card) Developer Guide
4.1.49 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.50 NET_DVR_HOLIDAY_GROUP_CFG
Holiday group configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
BYTE byGroupName[HOLIDAY_GROUP_NAME_LEN/*32*/];
DWORD dwHolidayPlanNo[MAX_HOLIDAY_PLAN_NUM/*16*/];
BYTE byRes2[32];
}NET_DVR_HOLIDAY_GROUP_CFG,*LPNET_DVR_HOLIDAY_GROUP_CFG;
172
Device Network SDK (Access Control on Card) Developer Guide
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.51 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
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
173
Device Network SDK (Access Control on Card) Developer Guide
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.52 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.
wDevIndex
Indoor station No., which is between 0 and 10.
byRes
Reserved, set to 0.
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
174
Device Network SDK (Access Control on Card) Developer Guide
4.1.53 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 for details.
struManageUnit
IP address of master station, refer to the structure NET_DVR_IPADDR for details.
struSIPServer
IP address of SIP server, refer to the structure NET_DVR_IPADDR for details.
struAgainUnit
Doorphone IP address, refer to the structure NET_DVR_IPADDR 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.
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 for details.
byRes
175
Device Network SDK (Access Control on Card) Developer Guide
Reserved, set to 0.
See Also
4.1.54 NET_DVR_INIT_CFG_ABILITY
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.55 NET_DVR_IPADDR
176
Device Network SDK (Access Control on Card) Developer Guide
IP Address Structure
4.1.56 NET_DVR_JSON_DATA_CFG
Structure about picture data in JSON format.
Structure Definition
struct{
DWORD dwSize;
void *lpJsonData;
DWORD dwJsonDataSize;
void *lpPicData;
DWORD dwPicDataSize;
DWORD dwInfraredFacePicSize;
char *lpInfraredFacePicBuffer;
BYTE byRes[248];
}NET_DVR_JSON_DATA_CFG,*LPNET_DVR_JSON_DATA_CFG;
Members
dwSize
Structure size.
lpJsonData
Returned message in JSON format.
dwJsonDataSize
Size of the message in JSON format.
lpPicData
Picture data. If the returned message is the response status message, this member is invalid; if
the returned message in JSON format does not contain faceURL, this member should contain
picture data in binary format.
dwPicDataSize
Picture data size, the maximum size is 200 KB.
dwInfraredFacePicSize
Data size of the infrared face picture. When this member is 0, it indicates that there is no face
picture data. When the response message is JSON_ResponseStatus , this member is
177
Device Network SDK (Access Control on Card) Developer Guide
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.57 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.58 NET_DVR_MANAGE_UNIT_DEVICEID
Parameter structure of master station No.
Structure Definition
struct{
DWORD wPeriod;
DWORD wDevIndex;
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.
178
Device Network SDK (Access Control on Card) Developer Guide
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
4.1.59 NET_DVR_MANAGE_UNIT_RELATEDEV
Parameter structure of linked network device of master 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 for details.
byRes
Reserved, set to 0.
See Also
4.1.60 NET_DVR_MIME_UNIT
179
Device Network SDK (Access Control on Card) Developer Guide
See Also
NET_DVR_XML_CONFIG_INPUT
4.1.61 NET_DVR_MULTI_CARD_CFG_V50
Multi-factor authentication parameter structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE bySwipeIntervalTimeout;
BYTE byRes1[2];
NET_DVR_MULTI_CARD_GROUP_CFG_V50 struGroupCfg[NET_SDK_MULTI_CARD_GROUP_NUM/*20*/];
BYTE byRes2[32];
}NET_DVR_MULTI_CARD_CFG_V50,*LPNET_DVR_MULTI_CARD_CFG_V50;
Members
dwSize
Structure size
byEnable
Whether to enable multi-factor authentication: 0-no, 1-yes.
bySwipeIntervalTimeout
Card swiping interval timeout, which is ranging from 1 to 255, unit: second, default: 10s.
byRes1
Reserved, set to 0.
struGroupCfg
Card swiping parameters of group, see details in the structure
NET_DVR_MULTI_CARD_GROUP_CFG_V50 .
byRes2
Reserved, set to 0.
180
Device Network SDK (Access Control on Card) Developer Guide
4.1.62 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
Group parameters, see details in the structure NET_DVR_GROUP_COMBINATION_INFO_V50 .
See Also
NET_DVR_MULTI_CARD_CFG_V50
4.1.63 NET_DVR_NETCFG_V50
181
Device Network SDK (Access Control on Card) Developer Guide
182
Device Network SDK (Access Control on Card) 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.64 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
Community No., range: [0,9].
wDevIndex
Outer door station No., which starts from 0.
byRes
Reserved, set to 0.
See Also
NET_DVR_VIDEO_INTERCOM_UNIT_DEVICEID_UNION
4.1.65 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
183
Device Network SDK (Access Control on Card) Developer Guide
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
4.1.66 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 for details.
184
Device Network SDK (Access Control on Card) Developer Guide
struManageUnit
IP address of master station, refer to the structure NET_DVR_IPADDR for details.
struSIPServer
IP address of SIP server, it is valid when the sub door station exits, refer to the structure
NET_DVR_IPADDR 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.67 NET_DVR_PERSON_STATISTICS_CFG
People counting parameters structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnableStatistics;
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.
185
Device Network SDK (Access Control on Card) Developer Guide
4.1.68 NET_DVR_PLAN_TEMPLATE
Schedule template configuration structure.
Structure Definition
struct{
DWORD dwSize;
BYTE byEnable;
BYTE byRes1[3];
BYTE byTemplateName[TEMPLATE_NAME_LEN/*32*/];
DWORD dwWeekPlanNo;
DWORD dwHolidayGroupNo[MAX_HOLIDAY_GROUP_NUM/*16*/];
BYTE byRes2[32];
}NET_DVR_PLAN_TEMPLATE,*LPNET_DVR_PLAN_TEMPLATE;
Members
dwSize
Structure size.
byEnable
Whether to enable: 1-enable, 0-disable.
byRes1
Reserved, set to 0.
byGroupName
Schedule template name.
byGroupName
Week schedule No.: 0-invalid.
dwHolidayGroupNo
Holiday group No.: 0-invalid.
byRes2
Reserved, set to 0.
4.1.69 NET_DVR_PPPOECFG
186
Device Network SDK (Access Control on Card) Developer Guide
4.1.70 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.71 NET_DVR_SETUPALARM_PARAM_V50
187
Device Network SDK (Access Control on Card) Developer Guide
188
Device Network SDK (Access Control on Card) Developer Guide
189
Device Network SDK (Access Control on Card) Developer Guide
Remarks
• The parameters byLevel and byAlarmInfoType are available for traffic cameras. Up to 1 cameras
can be armed in the priority of level 0, up to 3 cameras can be armed in the priority of level 1,
and up to 5 cameras can be armed in the priority of level 3, the alarm/event information from
the camera in highest priority will be uploaded first.
• For arming via client software, only supports arming one channel, and supports uploading the
alarm/event when device is offline; for real-time arming, up to four channels can be armed at
same time, but uploading alarm/event when device is offline is not supported.
• The parameter wTaskNo is used to distinguish different arming connections. If the value of this
parameter in different arming connections is same, error will be returned.
4.1.72 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;
Members
byHour
190
Device Network SDK (Access Control on Card) Developer Guide
Hour
byMinute
Minute
bySecond
Second
byRes
Reserved, set to 0.
4.1.73 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.
byRes
Reserved, set to 0.
struTimeSegment
191
Device Network SDK (Access Control on Card) Developer Guide
4.1.74 NET_DVR_TIME
4.1.75 NET_DVR_TIME_EX
4.1.76 NET_DVR_TIME_SEGMENT
Time period parameter structure.
Structure Definition
struct{
NET_DVR_SIMPLE_DAYTIME struBeginTime;
192
Device Network SDK (Access Control on Card) 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.77 NET_DVR_USER_LOGIN_INFO
193
Device Network SDK (Access Control on Card) Developer Guide
4.1.78 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.
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 ..
194
Device Network SDK (Access Control on Card) Developer Guide
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.79 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.
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.
195
Device Network SDK (Access Control on Card) Developer Guide
Remarks
Configuring No. for doorphone is not required.
4.1.80 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.
4.1.81 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;
196
Device Network SDK (Access Control on Card) Developer Guide
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
Master 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:
• The long No. of master station is "*00000001XX": "*"-project No., "001"-master station, "XX"-
master 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"-
unit No.; "$$$"-floor No.; "$$"-room No.
• The long No. of outer door station is "*00000002XX": "*"-project No., "002"-outer door
station, "XX"-outer door station No. (01, 02, …, increased by 1).
• In the actual application, one master station may belong to multiple communities, so the project
No. of the device can be any of the existing project No., as long as the generated device No. is
unique.
197
Device Network SDK (Access Control on Card) Developer Guide
4.1.82 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
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.83 NET_DVR_WEEK_PLAN_CFG
Week schedule parameter structure.
198
Device Network SDK (Access Control on Card) Developer Guide
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.84 NET_DVR_XML_CONFIG_INPUT
199
Device Network SDK (Access Control on Card) Developer Guide
Related API
NET_DVR_STDXMLConfig
4.1.85 NET_DVR_XML_CONFIG_OUTPUT
Related API
NET_DVR_STDXMLConfig
4.1.86 NET_SDK_CALLBACK_STATUS_NORMAL
200
Device Network SDK (Access Control on Card) Developer Guide
4.1.87 NET_VCA_POINT
4.1.88 NET_VCA_RECT
201
Device Network SDK (Access Control on Card) Developer Guide
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,
NET_SDK_DOWNLOAD_CONFIGURATION_FILE = 4,
NET_SDK_DOWNLOAD_SCENE_CONFIGURATION_FILE = 5,
NET_SDK_DOWNLOAD_FILE_FORM_DB = 6,
NET_SDK_DOWNLOAD_TME_FILE = 7,
NET_SDK_DOWNLOAD_VEHICLE_BLACKWHITELST_FILE = 8,
NET_SDK_DOWNLOAD_GUID_FILE = 9,
NET_SDK_DOWNLOAD_FILE_FORM_CLOUD = 10,
NET_SDK_DOWNLOAD_PICTURE = 11,
NET_SDK_DOWNLOAD_VIDEO = 12,
NET_DVR_DOWNLOAD_SCREEN_FILE = 13,
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL = 14,
NET_SDK_DOWNLOAD_THERMOMETRIC_FILE = 15,
NET_SDK_DOWNLOAD_LED_CHECK_FILE = 16,
NET_SDK_DOWNLOAD_VEHICLE_INFORMATION = 17,
NET_SDK_DOWNLOAD_CERTIFICATE_BLACK_LIST_TEMPLET = 18,
NET_SDK_DOWNLOAD_LOG_FILE = 19,
NET_SDK_DOWNLOAD_FILEVOLUME_DATA = 20,
NET_SDK_DOWNLOAD_FD_DATA = 21,
NET_SDK_DOWNLOAD_SECURITY_CFG_FILE = 22,
NET_SDK_DOWNLOAD_PUBLISH_SCHEDULE = 23,
NET_SDK_DOWNLOAD_RIGHT_CONTROLLER_AUDIO = 24,
NET_SDK_DOWNLOAD_MODBUS_CFG_FILE = 25,
NET_SDK_DOWNLOAD_RS485_PROTOCOL_DLL_FILE = 26,
NET_SDK_DOWNLOAD_CLUSTER_MAINTENANCE_LOG = 27,
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,
202
Device Network SDK (Access Control on Card) Developer Guide
NET_SDK_DOWNLOAD_OFFLINE_CAPTURE_INFO_TEMPLATE = 40,
NET_SDK_DOWNLOAD_CAPTURE_DATA = 41
} NET_SDK_DOWNLOAD_TYPE;
Members
NET_SDK_DOWNLOAD_CERT
Certificate.
NET_SDK_DOWNLOAD_IPC_CFG_FILE
Network camera configuration file.
NET_SDK_DOWNLOAD_BASELINE_SCENE_PIC
Base scene picture.
NET_SDK_DOWNLOAD_VQD_ALARM_PIC
VQD (video quality diagnosis) alarm picture.
NET_SDK_DOWNLOAD_CONFIGURATION_FILE
Configuration file.
NET_SDK_DOWNLOAD_SCENE_CONFIGURATION_FILE
Scene configuration file.
NET_SDK_DOWNLOAD_FILE_FORM_DB
File in the image and video library.
NET_SDK_DOWNLOAD_TME_FILE
Entrance and exit management file.
NET_SDK_DOWNLOAD_VEHICLE_BLACKWHITELST_FILE
Blacklist and whitelist configuration file.
NET_SDK_DOWNLOAD_GUID_FILE
GUID file.
NET_SDK_DOWNLOAD_FILE_FORM_CLOUD
Picture in the cloud storage.
NET_SDK_DOWNLOAD_PICTURE
Picture.
NET_SDK_DOWNLOAD_VIDEO
Video.
NET_DVR_DOWNLOAD_SCREEN_FILE
Screen server file.
NET_SDK_DOWNLOAD_PUBLISH_MATERIAL
Static material file of information release.
NET_SDK_DOWNLOAD_THERMOMETRIC_FILE
203
Device Network SDK (Access Control on Card) Developer Guide
204
Device Network SDK (Access Control on Card) Developer Guide
4.2.2 NET_SDK_UPLOAD_TYPE
Enumerate file types to be uploaded.
Enumeration Definition
typedef enum {
UPGRADE_CERT_FILE = 0,
UPLOAD_CERT_FILE = 1,
TRIAL_CERT_FILE = 2,
CONFIGURATION_FILE = 3,
UPLOAD_RECORD_FILE = 4,
SCENE_CONFIGURATION_FILE = 5,
UPLOAD_PICTURE_FILE = 6,
UPLOAD_VIOLATION_FILE = 7,
UPLOAD_TG_FILE = 8,
UPLOAD_DATA_TO_DB = 9,
UPLOAD_BACKGROUND_PIC = 10,
UPLOAD_CALIBRATION_FILE = 11,
UPLOAD_TME_FILE = 12,
UPLOAD_VEHICLE_BLACKWHITELST_FILE = 13,
205
Device Network SDK (Access Control on Card) Developer Guide
UPLOAD_PICTURE_TO_CLOUD = 15,
UPLOAD_VIDEO_FILE = 16,
UPLOAD_SCREEN_FILE = 17,
UPLOAD_PUBLISH_MATERIAL = 18,
UPLOAD_PUBLISH_UPGRADE_FILE = 19,
UPLOAD_RING_FILE = 20,
UPLOAD_ENCRYPT_CERT = 21,
UPLOAD_THERMOMETRIC_FILE = 22,
UPLOAD_SUBBRAND_FILE = 23,
UPLOAD_LED_CHECK_FILE = 24,
BATCH_UPLOAD_PICTURE_FILE = 25,
UPLOAD_EDID_CFG_FILE = 26,
UPLOAD_PANORAMIC_STITCH = 27,
UPLOAD_BINOCULAR_COUNTING = 28,
UPLOAD_AUDIO_FILE = 29,
UPLOAD_PUBLISH_THIRD_PARTY_FILE = 30,
UPLOAD_DEEPEYES_BINOCULAR = 31,
UPLOAD_CERTIFICATE_BLACK_LIST = 32,
UPLOAD_HD_CAMERA_CORRECT_TABLE = 33,
UPLOAD_FD_DATA = 35,
UPLOAD_FACE_DATA = 36,
UPLOAD_FACE_ANALYSIS_DATA = 37,
UPLOAD_FILEVOLUME_DATA = 38,
IMPORT_DATA_TO_FACELIB = 39,
UPLOAD_LEFTEYE_4K_CALIBFILE = 40,
UPLOAD_SECURITY_CFG_FILE = 41,
UPLOAD_RIGHT_CONTROLLER_AUDIO = 42,
UPLOAD_MODBUS_CFG_FILE = 43,
UPLOAD_NOTICE_VIDEO_DATA = 44,
UPLOAD_RS485_PROTOCOL_DLL_FILE = 45,
UPLOAD_PIC_BY_BUF = 46,
UPLOAD_CLIENT_CALIBFILE = 47,
UPLOAD_HD_CAMERA_CORRECT_TABLE_3200W = 48,
UPLOAD_APP_FILE = 51,
UPLOAD_OFFLINE_CAPTURE_INFO = 56
}NET_SDK_UPLOAD_TYPE;
Members
UPGRADE_CERT_FILE
Certificate file to be upgraded.
UPLOAD_CERT_FILE
Certificate file to be uploaded.
TRIAL_CERT_FILE
Trial license file.
CONFIGURATION_FILE
Configuration file.
UPLOAD_RECORD_FILE
206
Device Network SDK (Access Control on Card) Developer Guide
Video file.
SCENE_CONFIGURATION_FILE
Scene configuration file.
UPLOAD_PICTURE_FILE
Picture file.
UPLOAD_VIOLATION_FILE
Violation dictionary file.
UPLOAD_TG_FILE
Timing generator file.
UPLOAD_DATA_TO_DB
File to be uploaded to picture and video library.
UPLOAD_BACKGROUND_PIC
Background picture.
UPLOAD_CALIBRATION_FILE
Calibration file.
UPLOAD_TME_FILE
Entrance and exiting management file.
UPLOAD_VEHICLE_BLACKWHITELST_FILE
Vehicle blacklist file.
UPLOAD_PICTURE_TO_CLOUD
Picture file to be uploaded to cloud storage.
UPLOAD_VIDEO_FILE
Video file.
UPLOAD_SCREEN_FILE
Screen server file.
UPLOAD_PUBLISH_MATERIAL
Static material file of information release system.
UPLOAD_PUBLISH_UPGRADE_FILE
Upgrade file of information release system.
UPLOAD_RING_FILE
Ringtone file.
UPLOAD_ENCRYPT_CERT
Encryption certificate.
UPLOAD_THERMOMETRIC_FILE
207
Device Network SDK (Access Control on Card) Developer Guide
208
Device Network SDK (Access Control on Card) Developer Guide
209
Device Network SDK (Access Control on Card) Developer Guide
5.1 /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json
Get the capability of getting total number of access control events by specific conditions.
5.2 /ISAPI/AccessControl/AcsEventTotalNum?format=json
Get the total number of access control events by specific conditions.
Remarks
The recommended timeout is 30s.
210
Device Network SDK (Access Control on Card) Developer Guide
5.3 /ISAPI/AccessControl/attendanceStatusModeCfg/capabilities?
format=json
Get the configuration capability of the attendance mode.
5.4 /ISAPI/AccessControl/attendanceStatusModeCfg?format=json
Operations about the attendance mode configuration.
211
Device Network SDK (Access Control on Card) Developer Guide
5.5 /ISAPI/AccessControl/attendanceStatusRuleCfg/capabilities?
format=json
Get the configuration capability of the attendance status and rule.
5.6 /ISAPI/AccessControl/attendanceStatusRuleCfg?
attendanceStatus=&format=json
Operations about the configuration of the attendance status and rule.
212
Device Network SDK (Access Control on Card) Developer Guide
5.7 /ISAPI/AccessControl/capabilities
Get the functional capability of access control.
5.8 /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json
Get the capability of collecting card information.
213
Device Network SDK (Access Control on Card) Developer Guide
Request None.
Response Succeeded: JSON_CardInfoCap
Failed: JSON_ResponseStatus
5.9 /ISAPI/AccessControl/CaptureCardInfo?format=json
Collect card information.
5.10 /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json
Get the capability of collecting ID card information.
5.11 /ISAPI/AccessControl/CaptureIDInfo?format=json
Collect ID card information.
214
Device Network SDK (Access Control on Card) Developer Guide
5.12 /ISAPI/AccessControl/CapturePresetParam/capabilities?
format=json
Get the configuration capability of online collection preset parameters.
5.13 /ISAPI/AccessControl/CapturePresetParam?format=json
Get or set the online collection preset parameters.
215
Device Network SDK (Access Control on Card) Developer Guide
5.14 /ISAPI/AccessControl/CaptureRule/capabilities?format=json
Get the configuration capability of online collection rules.
5.15 /ISAPI/AccessControl/CaptureRule?format=json
Get or set the parameters of online collection rules.
216
Device Network SDK (Access Control on Card) Developer Guide
5.16 /ISAPI/AccessControl/CardOperations/capabilities?format=json
Get card operation capability.
5.17 /ISAPI/AccessControl/CardOperations/cardParam?format=json
Set card parameters (only available for CPU card).
217
Device Network SDK (Access Control on Card) Developer Guide
5.18 /ISAPI/AccessControl/CardOperations/controlBlock?format=json
Change the control block of a specific section (only available for M1 card).
5.19 /ISAPI/AccessControl/CardOperations/dataBlock/control?
format=json
Do operations (i.e., plus, minus, copy, and paste) on the data block.
218
Device Network SDK (Access Control on Card) Developer Guide
Request JSON_DataBlockCtrl
Response JSON_ResponseStatus
5.20 /ISAPI/AccessControl/CardOperations/dataBlock/<address>?
format=json
Read or write data block (only available for M1 card).
Remarks
The <address> in the request URI refers to the block address, which is same as that in
JSON_DataBlock .
5.21 /ISAPI/AccessControl/CardOperations/dataTrans?format=json
Pass through the data package (only available for CPU card).
219
Device Network SDK (Access Control on Card) Developer Guide
5.22 /ISAPI/AccessControl/CardOperations/encryption?format=json
Set card encryption parameters (only available for CPU card).
5.23 /ISAPI/AccessControl/CardOperations/protocol?format=json
Set operation protocol type for the card (only available when applying card).
220
Device Network SDK (Access Control on Card) Developer Guide
5.24 /ISAPI/AccessControl/CardOperations/reset?format=json
Reset card parameters (only available for CPU card).
5.25 /ISAPI/AccessControl/CardOperations/sectionEncryption?
format=json
Set the encryption parameters of a specific section (only available for M1 card).
5.26 /ISAPI/AccessControl/CardOperations/verification?format=json
Verify the password of the encrypted section (only available for M1 card).
221
Device Network SDK (Access Control on Card) Developer Guide
5.27 /ISAPI/AccessControl/ChannelControllerAlarmLinkage
Get or set the alarm linkage parameters of the lane controller.
5.28 /ISAPI/AccessControl/ChannelControllerAlarmLinkage/capabilities
Get the configuration capability of the alarm linkage of the lane controller.
222
Device Network SDK (Access Control on Card) Developer Guide
5.29 /ISAPI/AccessControl/ChannelControllerAlarmOut/capabilities
Get the configuration capability of the alarm output of the lane controller.
5.30 /ISAPI/AccessControl/ChannelControllerAlarmOut?
controllerType=&alarmOutNo=
Get or set the alarm output parameters of the lane controller.
223
Device Network SDK (Access Control on Card) Developer Guide
5.31 /ISAPI/AccessControl/ChannelControllerAlarmOutControl
Control the alarm output of the lane controller.
224
Device Network SDK (Access Control on Card) Developer Guide
5.32 /ISAPI/AccessControl/ChannelControllerAlarmOutControl/
capabilities
Get the capability of controlling the alarm output of the lane controller.
5.33 /ISAPI/AccessControl/ChannelControllerCfg
Get or set the lane controller parameters.
225
Device Network SDK (Access Control on Card) Developer Guide
Request XML_ChannelControllerCfg
Response XML_ResponseStatus
5.34 /ISAPI/AccessControl/ChannelControllerCfg/capabilities
Get the lane controller configuration capability.
5.35 /ISAPI/AccessControl/channelControllerTypeCfg/capabilities?
format=json
Get the configuration capability of the lane controller's device type.
5.36 /ISAPI/AccessControl/channelControllerTypeCfg?format=json
Get or set the device type parameters of the lane controller.
226
Device Network SDK (Access Control on Card) Developer Guide
5.37 /ISAPI/AccessControl/Configuration/IRCfg/capabilities?format=json
Get active infrared intrusion capability.
5.38 /ISAPI/AccessControl/Configuration/IRCfg?format=json
Get or set active infrared intrusion parameters.
227
Device Network SDK (Access Control on Card) Developer Guide
5.39 /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?
format=json
Get the configuration capability of enabling NFC (Near-Field Communication) function.
228
Device Network SDK (Access Control on Card) Developer Guide
5.40 /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Operations about the configuration of enabling NFC (Near-Field Communication) function.
5.41 /ISAPI/AccessControl/Configuration/RFCardCfg/capabilities?
format=json
Get the configuration capability of enabling RF (Radio Frequency) card recognition.
229
Device Network SDK (Access Control on Card) Developer Guide
Request None.
Response Succeeded: JSON_RFCardCfgCap
Failed: JSON_ResponseStatus
5.42 /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Operations about the configuration of enabling RF (Radio Frequency) card recognition.
5.43 /ISAPI/AccessControl/FaceCompareCond
Get or set the condition parameters of face picture comparison.
230
Device Network SDK (Access Control on Card) Developer Guide
Query None.
Request None.
Response Succeeded: XML_FaceCompareCond
Failed: XML_ResponseStatus
Table 5-56 PUT /ISAPI/AccessControl/FaceCompareCond
Method PUT
Description Set the condition parameters of face picture comparison.
Query None.
Request XML_FaceCompareCond
Response XML_ResponseStatus
5.44 /ISAPI/AccessControl/FaceCompareCond/capabilities
Get condition configuration capability of face picture comparison.
5.45 /ISAPI/AccessControl/GateDialAndInfo
Get the local DIP (Dual In-line Package) and information of the turnstile.
231
Device Network SDK (Access Control on Card) Developer Guide
Query None.
Request None.
Response Succeeded: XML_GateDialAndInfo
Failed: XML_ResponseStatus
5.46 /ISAPI/AccessControl/GateDialAndInfo/capabilities
Get the capability of getting the local DIP (Dual In-line Package) and information of the turnstile.
5.47 /ISAPI/AccessControl/GateIRStatus
Get the status of the active infrared intrusion detector of the turnstile.
232
Device Network SDK (Access Control on Card) Developer Guide
5.48 /ISAPI/AccessControl/GateIRStatus/capabilities
Get the capability of getting the status of the active infrared intrusion detector of the turnstile.
5.49 /ISAPI/AccessControl/GateRelatedPartsStatus
Get the related components' status of the turnstile.
5.50 /ISAPI/AccessControl/GateRelatedPartsStatus/capabilities
Get the capability of getting the related components' status of the turnstile.
233
Device Network SDK (Access Control on Card) Developer Guide
5.51 /ISAPI/AccessControl/GateStatus
Get the general turnstile status.
5.52 /ISAPI/AccessControl/GateStatus/capabilities
Get the capability of getting the general turnstile status.
234
Device Network SDK (Access Control on Card) Developer Guide
Request None.
Response Succeeded: XML_Cap_GateStatus
Failed: XML_ResponseStatus
5.53 /ISAPI/AccessControl/GetAcsEvent/capabilities
Get capability of getting access control event.
5.54 /ISAPI/AccessControl/IdentityTerminal/capabilities
Get configuration capability of intelligent identity recognition terminal.
5.55 /ISAPI/AccessControl/IdentityTerminal
Operations about configuration of intelligent identity recognition terminal.
235
Device Network SDK (Access Control on Card) Developer Guide
5.56 /ISAPI/AccessControl/OfflineCapture/capabilities?format=json
Get the online collection capability.
236
Device Network SDK (Access Control on Card) Developer Guide
5.57 /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.
5.58 /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?
format=json
Search for the collection data.
5.59 /ISAPI/AccessControl/OfflineCapture/DataCollections?format=json
Delete all offline collected data.
237
Device Network SDK (Access Control on Card) Developer Guide
5.60 /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?
format=json
Get the progress of exporting the offline collected data.
5.61 /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json
Export the offline collected data.
238
Device Network SDK (Access Control on Card) Developer Guide
Request JSON_DataOutputCfg
Response JSON_ResponseStatus
5.62 /ISAPI/AccessControl/OfflineCapture/progress?format=json
Get the offline collection progress.
5.63 /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Get or set the parameters of offline collection rules.
239
Device Network SDK (Access Control on Card) Developer Guide
Request JSON_RuleInfo
Response JSON_ResponseStatus
5.64 /ISAPI/AccessControl/RightControllerAudio/capabilities
Get the configuration capability of the audio file of the main controller.
5.65 /ISAPI/AccessControl/RightControllerAudio/<ID>
Get or set the audio file parameters of the main controller, or delete the audio file of the main
controller.
240
Device Network SDK (Access Control on Card) Developer Guide
Query None.
Request XML_RightControllerAudio
Response XML_ResponseStatus
Table 5-82 DELETE /ISAPI/AccessControl/RightControllerAudio/<ID>
Method DELETE
Description Delete the audio file of the main controller.
Query None.
Request None.
Response 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.
241
Device Network SDK (Access Control on Card) Developer Guide
6.1 JSON_AcsEventTotalNum
AcsEventTotalNum message in JSON format
{
"AcsEventTotalNum":{
"totalNum":
/*required, integer, total number of events that match the search conditions*/
}
}
6.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"*/
}
}
242
Device Network SDK (Access Control on Card) Developer Guide
See Also
Access Control Event Types
6.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)*/
}
}
6.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*/
}]
}
}
243
Device Network SDK (Access Control on Card) Developer Guide
6.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":{
244
Device Network SDK (Access Control on Card) Developer Guide
See Also
Access Control Event Types
6.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
245
Device Network SDK (Access Control on Card) 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)*/
}
}
6.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"*/
}
}
}
246
Device Network SDK (Access Control on Card) Developer Guide
6.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*/
}
}
6.9 JSON_CapturePresetCap
CapturePresetCap capability message in JSON format
{
"CapturePresetCap":{
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
}
}
}
6.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*/
247
Device Network SDK (Access Control on Card) 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*/
}
}
6.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*/
}
}
6.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
}
}
}
248
Device Network SDK (Access Control on Card) Developer Guide
6.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*/
}
}
6.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"*/
}
}
6.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"]
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K"*/
}
}
249
Device Network SDK (Access Control on Card) Developer Guide
6.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":{
250
Device Network SDK (Access Control on Card) Developer Guide
251
Device Network SDK (Access Control on Card) Developer Guide
252
Device Network SDK (Access Control on Card) 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
}
}
}
}
6.17 JSON_CardParam
JSON message about card parameters
{
"CardParam": {
"type": ""
/*required, string, card types: " CPU1356,PSAM1,PSAM2,PSAM3,PSAM4"*/
253
Device Network SDK (Access Control on Card) Developer Guide
"protocol": ""
/*required, string, card protocol types: "T0,T1"*/
}
}
6.18 JSON_CardProto
JSON message about operation protocol types of card
{
"CardProto": {
"protocol": "TypeA"
/*required, string, operation protocol types: "TypeA,TypeB,TypeAB,125K,all"*/
}
}
6.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*/
}
}
6.20 JSON_ChannelControllerTypeCfg
Message about the device type of the lane controller in JSON format
{
"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*/
}
}
6.21 JSON_ChannelControllerTypeCfgCap
Message about the device type configuration capability of the lane controller in JSON format
254
Device Network SDK (Access Control on Card) Developer Guide
{
"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"]
}
}
}
6.22 JSON_ControlBlock
JSON message about the control block parameters of a specific section.
{
"ControlBlock": {
"sectionNo": ,
/*required, integer, section No.*/
"KeyA": "",
/*optional, string type, a hexadecimal key A password*/
"KeyB": "",
/*optional, string type, a hexadecimal key B password*/
"controlBits":""
/*optional, string type, a hexadecimal control bit*/
}
}
6.23 JSON_DataBlock
JSON message about data block details
{
"DataBlock": {
"addressOfBlock": ,
/*optional, integer, block address*/
"data": "",
/*required, string, a hexBinary character string, i.e., "f2345678abf2345678abf2345678abf2"*/
}
}
6.24 JSON_DataBlockCtrl
JSON message about operation parameters of data block
{
"DataBlockCtrl": {
255
Device Network SDK (Access Control on Card) Developer Guide
"addressOfBlock": ,
/*required, integer, block address*/
"command":"",
/*required, string, control commands: "add, minus, copy, paste"*/
"value":,
/*depend, integer, relative value to be changed, this field is value only when the command is set to "add" or "minus"*/
}
}
6.25 JSON_DataOutputCfg
DataOutputCfg message in JSON format
{
"DataOutputCfg":{
"password":"",
/*required, string, password for exporting*/
"type":""
/*optional, string, exporting type, it is "USB" by default which refers to exporting via USB*/
}
}
6.26 JSON_DataOutputProgress
DataOutputProgress message in JSON format
{
"DataOutputProgress":{
"progress":
/*required, integer, exporting progress*/
}
}
6.27 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*/
}
}
256
Device Network SDK (Access Control on Card) Developer Guide
6.28 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*/
}
6.29 JSON_IdentityInfo
IdentityInfo message in JSON format
{
"IdentityInfo":{
"chnName":"",
/*optional, string, reserved*/
"enName":"",
/*optional, string, English name*/
"sex":"",
257
Device Network SDK (Access Control on Card) Developer Guide
6.30 JSON_IdentityInfoCap
IdentityInfoCap capability message in JSON format
{
"IdentityInfoCap":{
"IdentityInfoCond":{ },
/*optional, conditions of collecting ID card information*/
"chnName":{
/*optional, string, reserved*/
"@min":0,
258
Device Network SDK (Access Control on Card) Developer Guide
"@max":0
},
"enName":{
/*optional, string, English name*/
"@min":0,
"@max":0
},
"sex":{
/*optional, string, gender: "male", "female"*/
"@opt":["male", "female"]
},
"birth":{
/*optional, string, date of birth, e.g., 1990-02-24*/
"@min":0,
"@max":0
},
"addr":{
/*optional, string, address*/
"@min":0,
"@max":0
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"issuingAuthority":{
/*optional, string, authority*/
"@min":0,
"@max":0
},
"startDate":{
/*optional, string, start time of the validity period*/
"@min":0,
"@max":0
},
"endDate":{
/*optional, string, end time of the validity period*/
"@min":0,
"@max":0
},
"nation":{
/*optional, integer, reserved*/
"@min":0,
"@max":0
},
"passNo":{
/*optional, string, entry-exit permit No.*/
"@min":0,
"@max":0
},
"issueNumber":{
259
Device Network SDK (Access Control on Card) Developer Guide
6.31 JSON_IdentityInfoCond
IdentityInfoCond message in JSON format
260
Device Network SDK (Access Control on Card) Developer Guide
{
"IdentityInfoCond":{ }
/*currently there are no condition parameters, so this field can be set to NULL*/
}
6.32 JSON_IRCfg
JSON message about active infrared intrusion parameters
{
"IRCfg": {
"enable": ,
/*required, boolean, whether to enable: true (yes), false (no)*/
"distance":
/*optional, float, distance, unit: m*/
}
}
6.33 JSON_IRCfgCap
JSON message about active infrared intrusion capability
{
"IRCfgCap": {
"enable":[true,false],
/*required, boolean, whether to enable*/
"distance":{
"@opt":[0.5,1,1.5]
}
}
}
6.34 JSON_NFCCfg
NFCCfg message in JSON format
{
"NFCCfg":{
"enable":
/*required, boolean, whether to enable NFC function: "true"-yes, "false"-no*/
}
}
261
Device Network SDK (Access Control on Card) Developer Guide
6.35 JSON_NFCCfgCap
NFCCfgCap capability message in JSON format
{
"NFCCfgCap":{
"enable":"true, false"
/*required, whether to enable NFC function: "true"-yes, "false"-no (default)*/
}
}
6.36 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"]
},
262
Device Network SDK (Access Control on Card) Developer Guide
"DataCollections":{
/*optional, array, matched data information that has been searched*/
"maxSize":0,
"captureNo":{
/*optional, integer, collection No.*/
"@min":0,
"@max":0
},
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
},
"employeeNo":{
/*optional, string, employee No.*/
"@min":0,
"@max":0
},
"CardNoList":{
/*optional, string, card No. list*/
"maxSize":0,
"@min":0,
"@max":0
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"FingerprintList":{
"fingerprintID":{
"@min":0,
"@max":0
},
"fingerprint":{
/*optional, fingerprint information, it is encoded using base64*/
"@min":0,
"@max":0
}
},
"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*/
263
Device Network SDK (Access Control on Card) Developer Guide
"@opt":["new", "modified","normal"]
}
}
},
"RuleInfo":{
/*rule list, which lists rules for collecting different types of data*/
"reqAdminRights":[true,false],
/*required, boolean, whether the administrator permission is required: "true"-yes, "false"-no*/
"enableCardNoLenAuto":[true,false],
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"maxSize":0,
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"dataType":{
/*required, string, data type: "name", "employeeNo"-employee No., "IDCardNo"-ID card No., "IDCardSerialNo"-ID
card serial No., "IDCardDetails"-ID card details, "card", "fingprint"-fingerprint, "face"*/
"@opt":["name","employeeNo","IDCardNo","IDCardSerialNo", "IDCardDetails","card", "fingprint", "face"]
},
"enable":[true, false],
/*required, string, whether to collect and display: "true"-collect and display, "false"-not collect and display*/
"uniqueCheck":[true, false],
/*dependency, boolean, whether to enable uniqueness verification: "true"-yes, "false" (default) or this node is not
returned-no. This field is valid when dataType is "name". For other data types, the field is the read-only optional
parameter*/
"len":[{
/*dependency, integer, data length. If dataType is "name", it refers to the name length and the default value is 128.
For other data types, this field is the read-only optional parameter. This node will not be returned if it is not
supported. The capability list will be returned according to the data type*/
"dataType":"",
"@min":0,
"@max":0
}],
"num":[{
/*dependency, integer, number of collected data, this field is valid when dataType is "fingerprint" or "card". The
capability list will be returned according to the data type*/
"dataType":"",
"@min":0,
"@max":0
}],
"fingerprintIDs":{
/*dependency, integer, No. list of collected fingerprints, this field is valid when dataType is "fingerprint"*/
"maxSize":0,
"@min":0,
"@max":0
}
},
"CaptureProgress":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
264
Device Network SDK (Access Control on Card) Developer Guide
},
"reqCaptureNum":{
/*optional, integer, total number of persons to be collected*/
"@min":0,
"@max":0
},
"completelyCaptureNum":{
/*optional, integer, number of completely collected persons*/
"@min":0,
"@max":0
},
"partiallyCaptureNum":{
/*optional, integer, number of partially collected persons*/
"@min":0,
"@max":0
},
"reqFaceNum":{
/*optional, integer, number of faces to be collected*/
"@min":0,
"@max":0
},
"faceNum":{
/*optional, integer, number of collected faces*/
"@min":0,
"@max":0
},
"reqFingerprintNum":{
/*optional, integer, number of fingerprints to be collected*/
"@min":0,
"@max":0
},
"fingerprintNum":{
/*optional, integer, number of collected fingerprints*/
"@min":0,
"@max":0
},
"reqCardNum":{
/*optional, integer, number of cards to be collected*/
"@min":0,
"@max":0
},
"cardNum":{
/*optional, integer, number of collected cards*/
"@min":0,
"@max":0
},
"reqIDCardNum":{
/*optional, integer, number of ID cards to be collected*/
"@min":0,
"@max":0
},
"IDCardNum":{
265
Device Network SDK (Access Control on Card) Developer Guide
6.37 JSON_ResponseStatus
ResponseStatus message in JSON format.
{
"requestURL":"",
/*optional, string type, request URL*/
"statusCode": ,
/*required, integer type, status code*/
"statusString":"",
/*required, string type, status description*/
"subStatusCode":"",
/*required, string type, sub status code*/
"errorCode": ,
/*optional, integer type, error code, which corresponds to subStatusCode, this field is required when statusCode is
not 1*/
"errorMsg":"",
/*optional, string type, error details, this field is required when statusCode is not 1*/
"tryTimes":
/*optional, integer, number of retry attempts, it is returned when configuring card encryption*/
}
266
Device Network SDK (Access Control on Card) Developer Guide
Note
See ISAPI Response Codes for details about the status codes, sub status codes, error codes, and
error descriptions.
6.38 JSON_RFCardCfg
RFCardCfg message in JSON format
{
"RFCardCfg":[{
"cardType":"",
/*required, string, card type: "EMCard"-EM card, "M1Card"-M1 card, "CPUCard"-CPU card, "IDCard"-ID card*/
"enabled":
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
}]
}
6.39 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*/
"@opt":["EMCard","M1Card","CPUCard","IDCard"]
},
"enabled":{
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
"@opt":[true,false]
}
}
}
6.40 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*/
267
Device Network SDK (Access Control on Card) 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"*/
}]
}
}
6.41 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*/
}
}
268
Device Network SDK (Access Control on Card) Developer Guide
6.42 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*/
"FingerprintList":[{
"fingerprintID": ,
/*optional, integer, fingerprint No.*/
"fingerprint":""
/*optional, string, fingerprint information which is encoded using base64*/
}],
"FaceFeature":{
/*optional, feature information of face picture matting*/
"Region":{
/*required, area coordinates of face picture matting, it is a rectangle*/
"height": ,
/*required, float, height*/
"width": ,
/*required, float, width*/
"x": ,
/*required, float, X-coordinate of the left corner*/
"y":
/*required, float, Y-coordinate of the left corner*/
},
"LeftEyePoint":{
/*optional, coordinates of the left eye*/
"x": ,
269
Device Network SDK (Access Control on Card) Developer Guide
6.43 JSON_SectionEncryption
JSON message about section encryption parameters
{
"SectionEncryption": {
"sectionNo": ,
/*required, integer, section No.*/
270
Device Network SDK (Access Control on Card) Developer Guide
"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"*/
}
}
6.44 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*/
}
}
6.45 XML_AcsAbility
AcsAbility capability message in XML format
<AcsAbility version="2.0">
<channelControllerNo min="" max=""/>
<!--req, lane controller range-->
<doorNo min="" max=""/>
<!--req , door No. rang or floor No. range-->
<cardReaderNo min="" max=""/>
<!--req, card reader No. range-->
<maxCardNum></maxCardNum>
<!--req, supported card number-->
<caseSensorNo min="" max=""/>
<!--req, event trigger No.-->
<gateOpenDirectionNum opt="1,2"/>
<!--req, the number of door opening directions (e.g., for the flap barrier which has only one direction, the attribute
"opt" should be set to 1; for the swing barrier and the tripod turnstile which have two directions, the attribute "opt"
should be set to 2)-->
271
Device Network SDK (Access Control on Card) Developer Guide
<DoorRelateCardReaderList>
<!--opt, card reader No., which is linked with the door No. (it will be returned only when the card reader has linked
with card reader, otherwise it will not be returned)-->
<Action>
<doorNo>1</doorNo>
<cardReaderNo>1,2</cardReaderNo>
</Action>
</DoorRelateCardReaderList>
<DoorStatusPlan>
<!--req, door status schedule capability -->
<WeekPlan>
<!--req, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--req, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--req, status value range -->
<verifyType
opt="invalid,sleep,swipecard,swipecardandpassword,swipecardorpasswd,fingerPrint,fingerPrintAndPasswd,fingerPrint
orCard,fingerPrintAndCard,fingerPrintAndCardAndPasswd,faceOrFpOrCardOrPw,faceAndFingerPrint,faceAndPassword,
faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeNoAndFp,employeeNoAndFpAndPw,fac
eAndFpAndCard,faceAndPwAndFp,employeeNoAndface,cardOrFace,cardOrFaceOrFp,cardOrFpOrPw"/>
<!--req, authentication method range -->
<TimeAccuracy>
<!--req, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan>
<!--req, holiday schedule -->
<holidayPlanNo min="" max=""/>
<!--req, holiday schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<TimeAccuracy>
<!--req, time accuracy-->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</HolidayPlan>
<HolidayGroup>
<!--req, holiday group capability-->
<holidayGroupNo min="" max=""/>
<!--req, holiday group No. range -->
<holidayGroupName min="" max=""/>
<!--req, holiday group name length -->
<maxHolidayPlanNum></maxHolidayPlanNum>
<!--req, max. holiday schedule number for the holiday group -->
272
Device Network SDK (Access Control on Card) Developer Guide
</HolidayGroup>
<PlanTemplate>
<!--req, schedule template capability -->
<templateNo min="" max=""/>
<!--opt, range of schedule template No.-->
<templateName min="" max=""/>
<!--req, schedule template name length -->
<maxHolidayGroupNum></maxHolidayGroupNum>
<!--req, max. holiday group number for the schedule template -->
</PlanTemplate>
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
</DoorStatusPlan>
<CardReaderVerifyTypePlan>
<!--req, card reader authentication schedule capability -->
<WeekPlan>
<!--req, weekly schedule capability -->
<weekPlanNo min="" max=""/>
<!--req, weekly schedule No. range -->
<maxDaySegment>8</maxDaySegment>
<!--req, supported daily time segment number -->
<status opt="invalid,sleep,alwaysopen,alwaysclose,normal"/>
<!--req, status value range -->
<verifyType
opt="invalid,sleep,swipecard,swipecardandpassword,swipecardorpasswd,fingerPrint,fingerPrintAndPasswd,fingerPrint
OrCard,fingerPrintAndCard,fingerPrintAndCardAndPasswd,fingerPrintorCard,fingerPrintAndCard,fingerPrintAndCardAn
dPasswd,faceOrFpOrCardOrPw,faceAndFingerPrint,
faceAndPassword,faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeNoAndFp,employeeN
oAndFpAndPw,faceAndFpAndCard,faceAndPwAndFp,employeeNoAndface,employeeNoAndFpAndPw,faceAndFpAndCa
rd,faceAndPwAndFp,employeeNoAndface,faceOrFaceAndCard,fingerPrintOrFace,swipecardOrFaceOrPw,cardOrFace,ca
rdOrFaceOrFp,cardOrFpOrPw"/>
<!--req,verification mode range: invalid, sleep, card, card and password, card or password, fingerprint, fingerprint
and password, fingerprint or card, fingerprint and card, fingerprint and card and password (no order), face or
fingerprint or card or password, face and fingerprint, face and password, face and card, face, employee No. and
password, fingerprint or password, employee No.and fingerprint, employee No. and fingerprint and password, face
and fingerprint and card, face and password and fingerprint, employee No. and face, employee No. and fingerprint
and password, face and fingerprint and card, face and password and fingerprint, employee No. and face, face or face
and card, fingerprint or face, card or face or password, card or face, card or face or fingerprint-->
<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>
<!--req, time accuracy -->
<hour>enable</hour>
<minute>enable</minute>
<second>enable</second>
</TimeAccuracy>
</WeekPlan>
<HolidayPlan>
273
Device Network SDK (Access Control on Card) Developer Guide
274
Device Network SDK (Access Control on Card) Developer Guide
275
Device Network SDK (Access Control on Card) Developer Guide
276
Device Network SDK (Access Control on Card) Developer Guide
277
Device Network SDK (Access Control on Card) Developer Guide
278
Device Network SDK (Access Control on Card) Developer Guide
<doorLogicalStatus>enable</doorLogicalStatus>
<!--req, door logic status -->
<doorStatus opt="alwaysopen,alwaysclose,normal"/>
<!--req, door status parameters -->
<magneticStatus>enable</magneticStatus>
<!--req, door magnetic status parameters -->
<relayStatus>enable</relayStatus>
<!--req, relay status-->
<caseSensorStatus>enable</caseSensorStatus>
<!--req, case trigger status-->
<BatteryVoltage>enable</BatteryVoltage>
<!--req, battery voltage value -->
<BatteryLowVoltage>enable</BatteryLowVoltage>
<!--req, battery low voltage detection -->
<PowerSupplyStatus>enable</PowerSupplyStatus>
<!--req, device power supply status-->
<multiDoorInterlockStatus>enable</multiDoorInterlockStatus>
<!--req, multi-door interlocking status parameters-->
<antiSneakStatus>enable</antiSneakStatus>
<!--req, anti-passback status parameters-->
<hostAntiDismantleStatus>enable</hostAntiDismantleStatus>
<!--req, control ler tamper ?proof status-->
<indicatorLightStatus>enable</indicatorLightStatus>
<!--req, Supports indicator status-->
<cardReaderOnlineStatus>enable</cardReaderOnlineStatus>
<!--req, card reader connection status -->
<cardReaderAntiDismantleStatus>enable</cardReaderAntiDismantleStatus>
<!--req, card reader tamper-proof status -->
<cardReaderVerifyMode opt="invalid,sleep,swipecard,swipecardandpassword, swipecardorpasswd,
fingerPrint,fingerPrintAndPasswd,fingerPrintor
Card,fingerPrintAndCard,fingerPrintAndCardAndPasswd,faceOrFpOrCardOrPw,
faceAndFingerPrint,faceAndPassword,faceAndCard,face,employeeNoAndPassword,fingerPrintOrPassword,employeeN
oAndFp,
employeeNoAndFpAndPw,faceAndFpAndCard,faceAndPwAndFp,employeeNoAndface,faceOrfaceAndCard,fingerPrintO
rFace,swipecardOrFaceOrPw,"/>
<!--req, supported card reader authentication modes: 0-invalid, 1-card, 2-card+password, 3-card, 4-card/password,
5-fingerprint, 6-fingerprint+password, 7-fingerprint/card, 8-fingerprint_card, 9-fingerprint_card+password, 10-face/
fingerprint/card/password, 11-face+fingerprint, 12-face+password, 13-face+card, 14-face, 15-employee No.
+password, 16-fingerprint/password, 17-employee No.+fingerprint, 18-employee No.+fingerprint+password, 19-face
+fingerprint+card, 20-face+password+fingerprint, 21-employee No.+face, 22-face/face+card, 23-fingerprint/face, 24-
card/face/password-->
<setupAlarmStatus>enable</setupAlarmStatus>
<!--req, zone arming status -->
<alarmInStatus>enable</alarmInStatus>
<!--req, alarm input status -->
<alarmOutStatus>enable</alarmOutStatus>
<!--req, alarm output status -->
<cardNum>enable</cardNum>
<!--req, added card number -->
<fireAlarmStatus opt="normal,shortCircuit,break"/>
<!--req, support fire alarm status-->
<supportLocalController>enable</supportLocalController>
279
Device Network SDK (Access Control on Card) Developer Guide
280
Device Network SDK (Access Control on Card) Developer Guide
281
Device Network SDK (Access Control on Card) Developer Guide
282
Device Network SDK (Access Control on Card) Developer Guide
283
Device Network SDK (Access Control on Card) Developer Guide
<AcsHostCfg>
<!--opt, access control settings capability -->
<enableRS485Backup opt="true,false"/>
<!--req, whether to support downstream RS485 communication backup -->
<showCapPic opt="true,false"/>
<!--opt,whether to support displaying captured picture on LCD screen-->
<showCardNo opt="true,false"/>
<!--opt,whether to support displaying card No. on LCD screen-->
<showUserInfo opt="true,false"/>
<!--opt,whether to support displaying user information on LCD screen-->
<overlayUserInfo opt="true,false"/>
<!--opt,Whether to overlay user information on the captured picture-->
<voicePrompt opt="true,false"/>
<!--opt,Whether to support sound prompt-->
<uploadCapPic opt="true,false"/>
<!--opt, Whether to support uploading picture after capturing-->
<saveCapPic opt="true,false"/>
<!--opt,Whether to support saving captured picture-->
<inputCardNo opt="true,false"/>
<!--opt, whether supports inputting card No. by button-->
<wifiDetect opt="true,false"/>
<!--opt, whether supports enabling Wi-Fi probe-->
<enable3G4G opt="true,false"/>
<!--opt, enable 3G/4G-->
<protocol opt="Private,OSDP"/>
<!--opt, card reader communication protocol type: "Private"-private protocol (default), "OSDP"-OSDP protocol-->
</AcsHostCfg>
<EventLinkage>
<!--req, event card linkage-->
<maxEventNum></maxEventNum>
<!--req, max. event linkage number supported by the device -->
<supportMode opt="Event,CardNo,MAC,EmployeeNo"/>
<!--req, supported linkage method, "Event"-event linkage, "CardNo"-Card No. linkage, "MAC"-MAC address linkage,
"EmployeeNo"-Employee No. (person ID)-->
<isSupportRecordVideo opt="true,false"/>
<!--req, whether supports recording linkage-->
<supportLocalController>enable</supportLocalController>
<!--req, support distributed access controller-->
<isSupportAlarmOutClose opt="true,false"/>
<!--req, whether supports disabling linked alarm output-->
<isSupportAlarmInSetup opt="true,false"/>
<!--req, whether supports arming linked zone-->
<isSupportAlarmInClose opt="true,false"/>
<!--req, whether supports disarming linked zone-->
<isSupportMainDevStopBuzzer opt="true,false"/>
284
Device Network SDK (Access Control on Card) Developer Guide
285
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>BatteryReume</subEventName>
<!--req, battery voltage recovered -->
<subEventName>ACOff</subEventName>
<!--req, AC power off -->
<subEventName>ACResume</subEventName>
<!--req, AC power recovery-->
<subEventName>SDCardFull</subEventName>
<!--req,SD card full alarm-->
<subEventName>LinkageCapturePic</subEventName>
<!--req,Linked capture event alarm-->
<subEventName>ImageQualityLow</subEventName>
<!--req,low face picture quality-->
<subEventName>FingerPrintQualityLow</subEventName>
<!--req,low fingerprint picture quality-->
<subEventName>BatteryElectricLow</subEventName>
<!--req,low battery voltage (for face device only)-->
<subEventName>BatteryElectricResume</subEventName>
<!--req,battery voltage recovery (for face device only)-->
<subEventName>FireImportShortCircuit</subEventName>
<!--req fire input short-circuit alarm-->
<subEventName>FireImportBrokenCircuit</subEventName>
<!--req fire input broken-circuit alarm-->
<subEventName>FireImportResume</subEventName>
<!--req fire input recovery-->
<subEventName>MasterRS485LoopnodeBroken</subEventName>
<!--req master controller RS485 loop node disconnection-->
<subEventName>MasterRS485LoopnodeResume</subEventName>
<!--req master controller RS485 loop node connection recovery-->
<subEventName>DistractControllerOnLine</subEventName>
<!--req,Distributed controller online-->
<subEventName>DistractControllerOffLine</subEventName>
<!--req,Distributed controller offline-->
<subEventName>FireButtonTrigger</subEventName>
<!--req,Fire button triggered-->
<subEventName>FireButtonResume</subEventName>
<!--req,Fire button recovered-->
<subEventName>MaintenanceButtonTrigger</subEventName>
<!--req,Maintenance button triggered-->
<subEventName>MaintenanceButtonResume</subEventName>
<!--req,Maintenance button recovered-->
<subEventName>EmergencyButtonTrigger</subEventName>
<!--req,Emergency button triggered-->
<subEventName>EmergencyButtonResume</subEventName>
<!--req,Emergency button recovered-->
<subEventName>LocalControlOffline</subEventName>
<!--req distributed access controller offline-->
<subEventName>LocalControlResume</subEventName>
<!--req, distributed access controller connection recovered-->
<subEventName>LocalDownsideRS485LoopNodeBroken</subEventName>
<!--req, distributed access controller downlink RS485 loop disconnection-->
<subEventName>LocalDownsideRS485LoopNodeResume</subEventName>
<!--req, distributed access controller downlink RS485 loop connection recovered-->
286
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>SubmarinebackCommBreak</subEventName>
<!--req, disconnected with anti-passing back server-->
<subEventName>SubmarinebackCommResume</subEventName>
<!--req, resume connection with anti-passing back server-->
<subEventName>RemoteActualGuard</subEventName>
<!--req, remote real-time arming-->
<subEventName>RemoteActualUnguard</subEventName>
<!--req, remote real-time disarming-->
<subEventName>MotorSensorException</subEventName>
<!--req, motor or sensor exception-->
<subEventName>CanBusException</subEventName>
<!--req, CAN bus exception-->
<subEventName>CanBusResume</subEventName>
<!--req, CAN bus restored-->
<subEventName>GateTemperatureOverrun</subEventName>
<!--req, too high pedestal temperature-->
<subEventName>IREmitterException</subEventName>
<!--req, active infrared intrusion detector exception-->
<subEventName>IREmitterResume</subEventName>
<!--req, active infrared intrusion detector restorted-->
<subEventName>LampBoardCommException</subEventName>
<!--req, communication with light board failed-->
<subEventName>LampBoardCommResume</subEventName>
<!--req, communication with light board restored-->
<subEventName>IRAdaptorBoardCommException</subEventName>
<!--req, communicated with IR adaptor exception-->
<subEventName>IRAdaptorBoardCommResume</subEventName>
<!--req, communication with IR adaptor restored-->
<subEventName>ChannelControllerDesmantleAlarm</subEventName>
<!--req, lane controller tampering alarm-->
<subEventName>ChannelControllerDesmantleResume</subEventName>
<!--req, lane controller tampering alarm restored-->
<subEventName>ChannelControllerFireImportAlarm</subEventName>
<!--req, lane controller fire input alarm-->
<subEventName>ChannelControllerFireImportResume</subEventName>
<!--req, lane controller fire input alarm restored-->
<subEventName>StayEvent</subEventName>
<!--opt, loitering event-->
<subEventName>LegalEventNearlyFull</subEventName>
<!--opt, alarm of no memory for legal offline event storage-->
</SubEventNameList>
</EventEntry>
<EventEntry>
<Index>1</Index>
<mainEventName>AlarmEvent</mainEventName>
<SubEventNameList>
<subEventName>AlarminShortCircuit</subEventName>
<!--req, zone short circuit alarm-->
<subEventName>AlarminBrokenCircuit</subEventName>
<!--req, zone open circuit alarm -->
<subEventName>AlarminException</subEventName>
<!--req, zone exception alarm -->
287
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>AlarmResume</subEventName>
<!--req, zone alarm recovery -->
<subEventName>CaseSensorAlarm</subEventName>
<!--req, event input alarm -->
<subEventName>CaseSensorResume</subEventName>
<!--req, event input recovery -->
</SubEventNameList>
</EventEntry>
<EventEntry>
<Index>2</Index>
<mainEventName>DoorEvent</mainEventName>
<SubEventNameList>
<subEventName>LeaderCardOpenBegin</subEventName>
<!--req, first card opening door starts -->
<subEventName>LeaderCardOpenStop</subEventName>
<!--req, first card open status door ends -->
<subEventName>AlwaysOpenBegin</subEventName>
<!--req, remained open status starts -->
<subEventName>AlwaysOpenStop</subEventName>
<!--req, remained open status ends -->
<subEventName>AlwaysCloseBegin</subEventName>
<!--req, remained closed status ends -->
<subEventName>AlwaysCloseStop</subEventName>
<!--req, remaining closed status ends-->
<subEventName>LockOpen</subEventName>
<!--req, open the door lock -->
<subEventName>LockClose</subEventName>
<!--req, close the lock -->
<subEventName>DoorButtonPress</subEventName>
<!--req, exit button pressed -->
<subEventName>DoorButtonRelease</subEventName>
<!--req, exit button released -->
<subEventName>DoorOpenNormal</subEventName>
<!--req, normally open the door (door magnetic) -->
<subEventName>DoorCloseNormal</subEventName>
<!--req, normally close the door (door magnetic) -->
<subEventName>DoorOpenAbnormal</subEventName>
<!--req, door opening exception (door magnetic )-->
<subEventName>DoorOpenTimeout</subEventName>
<!--req, door opening timeout (door magnetic )-->
<subEventName>RemoteOpenDoor</subEventName>
<!--req, remotely open the door-->
<subEventName>RemoteCloseDoor</subEventName>
<!--req, remotely closed the door-->
<subEventName>RemoteAlwaysOpen</subEventName>
<!--req, remotely remain open -->
<subEventName>RemoteAlwaysClose</subEventName>
<!--req, remotely remain closed -->
<subEventName>NotBelongMultiCard</subEventName>
<!--req, the card is not associated to the multi-authentication group-->
<subEventName>InvalidMultiVerifyPeriod</subEventName>
<!--req, the card is not in the multi-authentication time period -->
288
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>MultiVerifySuperRightFail</subEventName>
<!--req, super password authentication failed -->
<subEventName>MultiVerifyRemoteRightFail</subEventName>
<!--req, remote authentication failed -->
<subEventName>MultiVerifySuccess</subEventName>
<!--req, successfully multi -authentication -->
<subEventName>MultiVerifyNeedRemoteOpen</subEventName>
<!--req, multi-authentication needs remote opening door -->
<subEventName>MultiVerifySuperRightSuccess</subEventName>
<!--req, successfully super password -->
<subEventName>MultiVerifyRepeatFail</subEventName>
<!--req, repeat authentication failed -->
<subEventName>MultiVerifyTimeout</subEventName>
<!--req, multi-authentication timeout -->
<subEventName>RemoteCapturePic</subEventName>
<!--req,remote capture-->
<subEventName>DoorBellRing</subEventName>
<!--req,door bell ringing-->
<subEventName>CallCenter</subEventName>
<!--req, call center-->
<subEventName>FirstCardAuthorizeBegin</subEventName>
<!--req,first card authorization started-->
<subEventName>FirstCardAuthorizeEnd</subEventName>
<!--req,first card authorization ended-->
<subEventName>FirstCardOpenWithoutAuthorize</subEventName>
<!--req,open door with unauthorized first card failed.-->
<subEventName>SecurityMoudleDesmantleAlarm</subEventName>
<!--req, 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-->
289
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>DoorLockOpenTimeout</subEventName>
<!--req door lock open timeout-->
<subEventName>FirstCardOpenWithoutAuthorize</subEventName>
<!--req first card failed to open door without authorization-->
<subEventName>CallLadderRelayBreak</subEventName>
<!--req,Elevator relay disconnected-->
<subEventName>CallLadderRelayClose</subEventName>
<!--req,Elevator relay connected-->
<subEventName>AutoKeyRelayBreak</subEventName>
<!--req,Auto-button relay disconnected-->
<subEventName>AutoKeyRelayClose</subEventName>
<!--req,Auto-button relay connected-->
<subEventName>KeyControlRelayBreak</subEventName>
<!--req,Button relay disconnected-->
<subEventName>KeyControlRelayClose</subEventName>
<!--req,Button relay connected-->
<subEventName>RemoteVisitorCallLadder</subEventName>
<!--req,Visitor called elevator-->
<subEventName>RemoteHouseholdCallLadder</subEventName>
<!--req,Resident called elevator-->
<subEventName>LegalMessage</subEventName>
<!--req, valid message-->
<subEventName>IllegalMessage</subEventName>
<!--req, invalid message-->
<subEventName>Trailing</subEventName>
<!--req, tailgating-->
<subEventName>ReverseAccess</subEventName>
<!--req, reserve passing-->
<subEventName>ForceAccess</subEventName>
<!--req, force accessing-->
<subEventName>ClimbingOverGate</subEventName>
<!--req, climbing over barrier-->
<subEventName>PassingTimeout</subEventName>
<!--req, passing timed out-->
<subEventName>IntrusionAlarm</subEventName>
<!--req, intrusion alarm-->
<subEventName>FreeGatePassNotAuth</subEventName>
<!--req, authentication failed when free passing the turnstile-->
<subEventName>DropArmBlock</subEventName>
<!--req, barrier obstructed-->
<subEventName>DropArmBlockResume</subEventName>
<!--req, barrier obstruction restored-->
<subEventName>RemoteControlCloseDoor</subEventName>
<!--req, close door via keyfob-->
<subEventName>RemoteControlOpenDoor</subEventName>
<!--req, open door via keyfob-->
<subEventName>RemoteControlAlwaysOpenDoor</subEventName>
<!--req, remain door open via keyfob-->
</SubEventNameList>
</EventEntry>
<EventEntry>
<Index>3</Index>
290
Device Network SDK (Access Control on Card) Developer Guide
<mainEventName>ReaderEvent</mainEventName>
<SubEventNameList>
<subEventName>StressAlarm</subEventName>
<!--req, duress alarm-->
<subEventName>ReaderDesmantleAlarm</subEventName>
<!--req, card reader tamper-proof alarm-->
<subEventName>LegalCardPass</subEventName>
<!--req, valid card successfully authenticated -->
<subEventName>CardAndPasswdPass</subEventName>
<!--req, card and password successfully authenticated -->
<subEventName>CardAndPasswdFail</subEventName>
<!--req, card and password authentication failed -->
<subEventName>CardAndPasswdTimeout</subEventName>
<!--req, card and password authentication timeout -->
<subEventName>CardMaxAuthenticateFail</subEventName>
<!--req, card reader authentication over times -->
<subEventName>CardNoRight</subEventName>
<!--req, no permission for the card -->
<subEventName>CardInvalidPeriod</subEventName>
<!--req, invalid time segment -->
<subEventName>CardOutofDate</subEventName>
<!--req, card exceeds the validate -->
<subEventName>InvalidCard</subEventName>
<!--req, invalid card No. -->
<subEventName>AntiSneakFail</subEventName>
<!--req, anti-passback authentication failed -->
<subEventName>InterlockDoorNotClose</subEventName>
<!--req, interlocking door not closed -->
<subEventName>FingerprintComparePass</subEventName>
<!--req, Fingerprint Recognition Passed-->
<subEventName>FingerprintCompareFail</subEventName>
<!--req, Fingerprint Recognition Failed-->
<subEventName>CardFingerprintVerifyPass</subEventName>
<!--req, Card + Fingerprint Authentication Passed-->
<subEventName>CardFingerprintVerifyFail</subEventName>
<!--req,Card + Fingerprint Authentication Failed-->
<subEventName>CardFingerprintVerifyTimeout</subEventName>
<!--req,Card + Fingerprint Authentication Timeout-->
<subEventName>CardFingerprintPasswdVerifyPass</subEventName>
<!--req, Card + Fingerprint + Password Authentication Passed-->
<subEventName>CardFingerprintPasswdVerifyFail</subEventName>
<!--req, Card + Fingerprint + Password Authentication Failed-->
<subEventName>CardFingerprintPasswdVerifyTimeout</subEventName>
<!--req, Card + Fingerprint + Password Authentication Timeout-->
<subEventName>FingerprintPasswdVerifyPass</subEventName>
<!--req, Fingerprint + Password Authentication Passed-->
<subEventName>FingerprintPasswdVerifyFail</subEventName>
<!--req, Fingerprint + Password Authentication Failed-->
<subEventName>FingerprintPasswdVerifyTimeout</subEventName>
<!--req, Fingerprint + Password Authentication Timeout-->
<subEventName>FingerprintInexistence</subEventName>
<!--req, No Fingerprint-->
291
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>FaceVerifyPass</subEventName>
<!--req, Face Authentication Passed-->
<subEventName>FaceVerifyFail</subEventName>
<!--req, Face Authentication Failed-->
<subEventName>FaceAndFpVerifyPass</subEventName>
<!--req, Face + Fingerprint Authentication Passed-->
<subEventName>FaceAndFpVerifyFail</subEventName>
<!--req,Face + Fingerprint Authentication Failed-->
<subEventName>FaceAndFpVerifyTimeout</subEventName>
<!--req, Face + Fingerprint Authentication Timeout-->
<subEventName>FaceAndPwVerifyPass</subEventName>
<!--req, Face + Password Authentication Passed-->
<subEventName>FaceAndPwVerifyFail</subEventName>
<!--req, Face + Password Authentication Failed-->
<subEventName>FaceAndPwVerifyTimeout</subEventName>
<!--req, Face + Password Authentication Timeout-->
<subEventName>FaceAndCardVerifyPass</subEventName>
<!--req, Face + Card Authentication Passed-->
<subEventName>FaceAndCardVerifyFail</subEventName>
<!--req, Face + Card Authentication Failed-->
<subEventName>FaceAndCardVerifyTimeout</subEventName>
<!--req,Face + Card Authentication Timeout-->
<subEventName>FaceAndPwAndFpVerifyPass</subEventName>
<!--req,Face + Password + Fingerprint Authentication Passed-->
<subEventName>FaceAndPwAndFpVerifyFail</subEventName>
<!--req,Face + Password + Fingerprint Authentication Failed-->
<subEventName>FaceAndPwAndFpVerifyTimeout</subEventName>
<!--req,Face + Password + Fingerprint Authentication Timeout-->
<subEventName>FaceAndCardAndFpVerifyPass</subEventName>
<!--req,Face + Card + Fingerprint Authentication Passed-->
<subEventName>FaceAndCardAndFpVerifyFail</subEventName>
<!--req,Face + Card + Fingerprint Authentication Failed-->
<subEventName>FaceAndCardAndFpVerifyTimeout</subEventName>
<!--req,Face + Card + Fingerprint Authentication Timeout-->
<subEventName>EmployeeAndFpVerifyPass</subEventName>
<!--req,Employee No. + Fingerprint Authentication Passed-->
<subEventName>EmployeeAndFpVerifyFail</subEventName>
<!--req,Employee No. + Fingerprint Authentication Failed-->
<subEventName>EmployeeAndFpVerifyTimeout</subEventName>
<!--req,Employee No. + Fingerprint Authentication Timeout-->
<subEventName>EmployeeAndFpAndPwVerifyPass</subEventName>
<!--req,Employee No. + Fingerprint + Password Authentication Passed-->
<subEventName>EmployeeAndFpAndPwVerifyFail</subEventName>
<!--req,Employee No. + Fingerprint + Password Authentication Failed-->
<subEventName>EmployeeAndFpAndPwVerifyTimeout</subEventName>
<!--req,Employee No. + Fingerprint + Password Authentication Timeout-->
<subEventName>EmployeeAndFaceVerifyPass</subEventName>
<!--req,Employee No. + Face Authentication Passed-->
<subEventName>EmployeeAndFaceVerifyFail</subEventName>
<!--req,Employee No. + Face Authentication Failed-->
<subEventName>EmployeeAndFaceVerifyTimeout</subEventName>
<!--req,Employee No. + Face Authentication Timeout-->
292
Device Network SDK (Access Control on Card) Developer Guide
<subEventName>FaceRecognizeFail</subEventName>
<!--req, Face picture recognization failed-->
<subEventName>EmployeeAndPwVerifyPass</subEventName>
<!--req,Employee No. + Password Authentication Passed-->
<subEventName>EmployeeAndPwVerifyFail</subEventName>
<!--req,Employee No. + Password Authentication Failed-->
<subEventName>EmployeeAndPwVerifyTimeout</subEventName>
<!--req,Employee No. + Password Authentication Timeout-->
<subEventName>DoorOpenOrDormantFail</subEventName>
<!--req,door remains closed or sleepy status authentication failed.-->
<subEventName>AuthPlanDormantFail</subEventName>
<!--req,authentication of sleepy mode in the schedule failed.-->
<subEventName>CardEncryptVerifyFail</subEventName>
<!--req,authentication of card encryption failed.-->
<subEventName>SubmarinebackReplyFail</subEventName>
<!--req,response of anti-passing back server failed.-->
<subEventName>PasswordMismatch</subEventName>
<!--opt, password mismatched.-->
<subEventName>EmployeeNoNotExist</subEventName>
<!--req, the employee ID does not exist.-->
<subEventName>CombinedVerifyPass</subEventName>
<!--req, authenticated .-->
<subEventName>CombinedVerifyTimeout</subEventName>
<!--req, authentication timed out.-->
<subEventName>VerifyModeMismatch</subEventName>
<!--req, authentication mode mismatched.-->
<subEventName>PasswordVerifyPass</subEventName>
<!--optional, password authenticated-->
<subEventName>HumanDetectFail</subEventName>
<!--req,human detection failed.-->
<subEventName>PeopleAndIdCardComparePass</subEventName>
<!--req, face and ID card authenticated-->
<subEventName>PeopleAndIdCardCompareFail</subEventName>
<!--req, face and ID card authentication failed-->
<subEventName>InformalMifareCardVerifyFail</subEventName>
<!--opt, authentication failed: invalid Mifare card-->
<subEventName>CPUCardEncryptVerifyFail</subEventName>
<!--opt, verifying CPU card encryption failed-->
<subEventName>NFCDisableVerifyFail</subEventName>
<!--opt, disabling NFC verification failed-->
<subEventName>EMCardRecognizeNotEnabled</subEventName>
<!--opt, EM card recognition is disabled-->
<subEventName>M1CardRecognizeNotEnabled</subEventName>
<!--opt, M1 card recognition is disabled-->
<subEventName>CPUCardRecognizeNotEnabled</subEventName>
<!--opt, CPU card recognition is disabled-->
<subEventName>IDCardRecognizeNotEnabled</subEventName>
<!--opt, ID card recognition is disabled-->
<subEventName>CardSetSecretKeyFail</subEventName>
<!--opt, importing key to the card failed-->
</SubEventNameList>
</EventEntry>
293
Device Network SDK (Access Control on Card) Developer Guide
</EventList>
</EventLinkage>
<FingerPrint>
<!--req, fingerprint parameters -->
<enable opt="true,false"/>
<!--req, whether to support fingerprint settings -->
<cardNo min="" max=""/>
<!--req, card No. length -->
<fingerPrintLen min="" max=""/>
<!--req, fingerprint data length-->
<EnableCardReader min="" max=""/>
<!--req, supported card reader No.-->
<fingerType opt="Normal,Stress,patrolFP,superFP,dismissingFP"/>
<!--req, "Normal"-normal fingerprint, "Stress"-duress fingerprint, "patrolFP"-patrol fingerprint, "superFP"-super
fingerprint, "dismissingFP"-dismiss fingerprint-->
<fingerPrintID min="" max=""/>
<!--req, finger ID-->
<callbackMode opt="allRetrun,partReturn"/>
<!--req, callback mode, allRetrun-block (return after all the card readers are offline), partReturn-non-block (return
after a part of card readers are offline)-->
<isSupportFingerNo/>
<!--opt, boolean, whether the device supports setting finger ID: "true"-yes-->
<recvStatus opt="0,1,2,3,4,5,6,7,8,9,10"/>
<!--opt, error status: 0-success, 1-incorrect finger ID, 2-incorrect fingerprint type, 3-invalid card No. (the card No.
does not meet the device requirements), 4-the fingerprint is not linked with employee No. or card No. (the employee
No. or the card No. is NULL), 5-the employee No. does not exist, 6-the fingerprint data length is 0, 7-invalid card
reader No., 8-invalid employee No., 9-invalid first-time authentication value, 10-other parameters error-->
<employeeNo min="" max=""/>
<!--opt, employee No. (person ID)-->
<leaderFP opt="true"/>
<!--opt, whether the fingerprint supports first-time authentication: "true"-yes, "false" or this node is not returned-
no-->
<isSupportFingerCover>
<!--opt, xs:boolean, whether to overwrite the old fingerprint information when applying a new fingerprint
information linked to the same employee No. (person ID): "true"-yes, this node is not returned-no-->
</isSupportFingerCover>
</FingerPrint>
<DelFingerPrint>
<!--req, delete fingerprint parameter, which corresponds to the command NET_DVR_DEL_FINGERPRINT_CFG_V50.
This node will not be returned if device does not support this function. After calling the API
NET_DVR_StartRemoteConfig with command NET_DVR_DEL_FINGERPRINT_CFG_V50, if this node is returned, you
should wait for the return of callback function to get the actual deleting result; if this node is not returned, the return
of API NET_DVR_StartRemoteConfig already indicates the deleting result-->
<delFingerPrintMode opt="byCard,byReader"/>
<!--req, deleting fingerprint mode: byCard-by card No., byReader- by card reader-->
<FingerPrintStatus>
<!--req, delete fingerprint status-->
<cardReaderNo min="" max=""/>
<!--req, fingerprint recorder No.-->
<status min="0" max="3"/>
<!--req, status: 0-invalid, 1-handling, 2-deleting failed, 3-completed-->
294
Device Network SDK (Access Control on Card) Developer Guide
</FingerPrintStatus>
<employeeNo min="" max=""/>
<!--req, employee No. (person ID)-->
</DelFingerPrint>
<SMS>
<enable opt="true,false"/>
<!--req, whether to support SMS funtion -->
<PhoneLinkageDoor>
<!--req, mobile phone links with door -->
<openRight opt="true,false"/>
<!--req, door opening permission -->
<closeRight opt="true,false"/>
<!--req, door closing permission -->
<NormalOpenRight opt="true,false"/>
<!--req, door remained opening permission -->
<NormalCloseRight opt="true,false"/>
<!--req, door remained closing permission -->
<armRight opt="true,false"/>
<!--req, arming permission -->
<DisarmRight opt="true,false"/>
<!--req, disarming permission -->
</PhoneLinkageDoor>
<whiteListNum min="1" max="32"/>
<!--req, whitelist number-->
</SMS>
<RealteUserInfo>
<!--req, NET_DVR_CARD_CFG_SEND_DATA and NET_DVR_CARD_USER_INFO_CFG-->
<enabled opt="true,false"/>
<!--req, whether to support card No. being linked to user information-->
<userNameLen min="" max=""/>
<!--req, user name length-->
</RealteUserInfo>
<ContinuousShootCfg>
<!--req,NET_DVR_SNAPCFG-->
<enabled opt="true,false"/>
<!--req,whether to support triggering capture parameters configuration-->
<relatedDriveWay min="" max=""/>
<!--req, IO related vehicle lane No.-->
<snapTimes min="" max=""/>
<!--req, coil capture times:, 0-5-->
<snapWaitTime min="" max=""/>
<!--req, capture waiting time, unit:ms, value range[0,60000]-->
<IntervalTimeList size="4">
<intervalTime min="" max=""/>
<!--req,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,
295
Device Network SDK (Access Control on Card) Developer Guide
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"/>
<!-- opt,image size-->
<picQuality opt="best,good,general" />
<!-- opt,image quality: 0-Best, 1- Better, 2- Good-->
</JpegParam>
</ContinuousShootCfg>
<PictureCfg>
<!--req,reuse some fields of NET_DVR_PICTURECFG-->
<enableUp opt="true,false"/>
<!--req, whether to support background picture uploading-->
<enableDel opt="true,false"/>
<!--req, whether to support deleting background picture-->
<useType min="" max=""/>
<!--req,picture type, 1- background picture, 2-GIF picture, 3-CAD picture-->
<sequence min="" max=""/>
<!--req, sequence No.-->
<BasemapCfg>
<sourWidth min="" max=""/>
<!--req, initial picture width-->
<sourHeight min="" max=""/>
<!--req, initial picture height-->
</BasemapCfg>
</PictureCfg>
<ExternalDevCfg>
<!--req,NET_DVR_ACS_EXTERNAL_DEV_CFG-->
<IDCardUpMode opt="number,all"/>
<!--req, ID information report, number: upload 18-digit ID number; all: upload all information-->
<cardVerifyMode opt="remoteCenter,clientPlatform"/>
<!--req, card verification mode, remoteCenter: remote center verification; clientPlatform: client platform
verification-->
<ACSDevType
opt="IDCardReader,ICReader,QRCodeReader,fingerPrintReader,QRCodeReaderandScreen,recycleCard,screen,fingerPrin
tModule,voiceModule,peopleAndIdCard"/>
<!--req, device model: 1- ID card reader, 2- IC card reader, 3- QR code reader, 4- Fingerprint reader, 5- Screen + QR
code reader, 6- Card collector, 7- Screen, 8- Fingerprint scanner, 9- Voice module, 10-person and ID card device-->
<doorMode opt="inDoor,outDoor"/>
<!--req, door in/out type, inDoor: enter, outDoor: exit-->
<DevDetailType>
<IDCardReaderType opt="iDR210,IDM10,HikIDCardReader"/>
<!--req, ID card reader model-->
<screenType opt="DC48270RS043_01T,DC80480B070_03T"/>
<!--req,LCD model-->
</DevDetailType>
</ExternalDevCfg>
<PersonnelChannelCfg>
<!--req,NET_DVR_PERSONNEL_CHANNEL_CFG-->
<inMode opt="controlled,forbid,freedom"/>
296
Device Network SDK (Access Control on Card) Developer Guide
297
Device Network SDK (Access Control on Card) Developer Guide
<FaceParam>
<!--req,Face parameter-->
<enable opt="true"/>
<!--req,whether to support face parameter configuration-->
<cardNo min="" max=""/>
<!--req,Card No. length-->
<faceLen min="" max=""/>
<!--req,Face data length-->
<enableCardReader min="" max=""/>
<!--req,Supported card reader No.-->
<faceID min="" max=""/>
<!--req,Face No.-->
<faceDataType opt="module,picture"/>
<!--req,Face data type (the default type is template if there is no this node)-->
<isSupportFaceCover>
<!--opt, whether supports covering existed data when applying face picture data-->
</isSupportFaceCover>
</FaceParam>
<isSupportGetDeviceEvent opt="true,false"/>
<!--opt, whether to support getting device event: "true"-yes, "false" or this node is not returned-no-->
<isSupportDeployType min="0" max="1"/>
<!--opt, supported arming type: 0-arm via client software, 1-real-time arming>
<UploadRightControllerAudio>
<!--req, uploading audio file of main controller-->
<audioID min="2" max="32"/>
<!--req, audio file ID. 0xffffffff indicates uploading all audio files, and currently the device only supports uploading
all audio files instead of uploading a single audio file by ID-->
</UploadRightControllerAudio>
<DownloadRightControllerAudio>
<!--req, downloading audio file of main controller-->
<audioID min="2" max="32"/>
<!--req, audio file ID. 0xffffffff indicates downloading all audio files, and currently the device only supports
downloading all audio files instead of downloading a single audio file by ID-->
</DownloadRightControllerAudio>
<BlackListPictureParam>
<!--req, parameter of picture in blacklist (NET_DVR_BULK_UPLOAD_BLACK_LIST_PICTURE)-->
<BlackListPictureCond>
<!--req, blacklist picture condition-->
<pictureNum min="" max=""/>
<!--req, picture quantity-->
</BlackListPictureCond>
<cardNo min="" max=""/>
298
Device Network SDK (Access Control on Card) Developer Guide
299
Device Network SDK (Access Control on Card) Developer Guide
<CaptureFace>
<!--opt, xs:boolean, collect face information-->
<isSupportFaceTemplate1 opt="true,false">
<!--req, xs:boolen, face template data 1-->
</isSupportFaceTemplate1>
<isSupportFaceTemplate2 opt="true,false">
<!--req, xs:boolen, face template data 2-->
</isSupportFaceTemplate2>
<isSupportFacePic opt="true,false">
<!--req, xs:boolen, face picture data-->
</isSupportFacePic>
<faceQuality min="1" max="100">
<!--req, xs:integer, face quality-->
</faceQuality>
<captureProgress opt="0,100">
<!--req, xs:integer, collection progress-->
</captureProgress>
<isSupportInfraredFacePic opt="true,false"><!--req, xs:boolen, whether to support infrared face picture data></
isSupportInfraredFacePic>
</CaptureFace>
<isSupportUploadCertificateBlackList>
<!--opt, xs:boolean, Whether to support uploading ID Card blacklist-->
</isSupportUploadCertificateBlackList>
<isSupportGetRegisterInfo>
<!--opt, xs:boolean, Whether supports getting registered information-->
</isSupportGetRegisterInfo>
<isSupportDownloadCertificateBlackListTemplet>
<!--opt, xs:boolean, Whether to support downloading template of ID card blacklist-->
</isSupportDownloadCertificateBlackListTemplet>
<ScheduleInfo>
<!-- opt, xs:boolean, shift schedule information-->
<command opt="personal,everyone">
<!--req, xs:string, Search condition-->
</command>
<employeeNo min="" max="">
<!--req, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--req, xs:string, Name-->
</name>
<departmentName min="1" max="32">
<!--req, xs:string, Department name-->
</departmentName>
<schedulePlanNo min="" max="">
<!--req, xs:integer, Shift schedule No.-->
</schedulePlanNo>
<schedulePlanType opt="personal,department">
<!--req, xs:string, Shift schedule type-->
</schedulePlanType>
<enabled opt="true,false">
<!--req, xs:boolen, Enable-->
</enabled>
300
Device Network SDK (Access Control on Card) Developer Guide
<scheduleType opt="noSchedule,ordinaryClass,workingClass">
<!--req, xs:string, Shift type-->
</scheduleType>
<scheduleNo min="" max="">
<!--req, xs:integer, Shift No.-->
</scheduleNo>
<scheduleStartTime>
<!--req, xs:time, ISO8601 time, "2016-01-01", Start time-->
</scheduleStartTime>
<scheduleEndTime>
<!--req, xs:time, ISO8601 time, "2016-02-17", End time-->
</scheduleEndTime>
<holidayNo min="" max="">
<!--req, xs:integer, Holiday group No.-->
</holidayNo>
</ScheduleInfo>
<AttendanceSummaryInfo>
<!-- opt, xs:boolean, Time and attendance information overview-->
<command opt="personal,everyone">
<!--req, xs:string, Search condition-->
</command>
<employeeNo min="" max="">
<!--req, xs:integer, Employee No.-->
</employeeNo>
<name min="1" max="32">
<!--req, xs:string, Name-->
</name>
<departmentName min="1" max="32">
<!--req, xs:string, Department name-->
</departmentName>
<workStandard min="" max="">
<!--req, xs:integer, Standard working time (minutes)-->
</workStandard>
<workActual min="" max="">
<!--req, xs:integer, Actual working time (minutes)-->
</workActual>
<lateTimes min="" max="">
<!--req, xs:integer, Late times-->
</lateTimes>
<lateMinutes min="" max="">
<!--req, xs:integer, Total late time (minutes)-->
</lateMinutes>
<leaveEarlyTimes min="" max="">
<!--req, xs:integer, Early Leave Times-->
</leaveEarlyTimes>
<leaveEarlyMinutes min="" max="">
<!--req, xs:integer, Total eearly leave time (minutes)-->
</leaveEarlyMinutes>
<overtimeStandard min="" max="">
<!--req, xs:integer, Standard Overtime (minutes)-->
</overtimeStandard>
<overtimeActual min="" max="">
301
Device Network SDK (Access Control on Card) Developer Guide
302
Device Network SDK (Access Control on Card) Developer Guide
</lateMinutes>
<leaveEarlyMinutes min="" max="">
<!--req, xs:integer, Early Leave Duration (minutes)-->
</leaveEarlyMinutes>
<absenceMinutes min="" max="">
<!--req, xs:integer, Absent Duration (minutes)-->
</absenceMinutes>
<totalMinutes min="" max="">
<!--req, xs:integer, Total Duration (minutes)-->
</totalMinutes>
</AbnormalInfo>
<CheckFacePicture>
<!-- opt, xs:boolean, authenticate identity via 1:N face picture matching-->
<pictureNum min="" max="">
<!--req, xs:integer, picture number>
</pictureNum>
<checkStatus opt="1,2,3,4,5,6,7,8,9,10,11">
<!--req, 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">
<!--opt, xs:integer, 0-picture verification, 1-picture and modeling data matching verification>
</checkTemplate>
</CheckFacePicture>
<supplementLightNo min="" max=""/>
<!--opt, supplement light number>
<maxWhiteFaceNum/>
<!--opt, the maximum number of face picture in whitelist>
<maxBlackFaceNum/>
<!--opt, the maximum number of face picture in blacklist>
<isSupportGetFailedFaceInfo>
<!--opt, xs:boolean, whether supports getting the information of face modeling failure after upgrading-->
</isSupportGetFailedFaceInfo>
<FailedFaceInfoParam>
<!--opt, xs:boolean, get the information of face modeling failure after upgrading-->
<FailedFaceInfoCond/>
<FailedFaceInfo>
<!--req, face modeling failure information-->
<cardNo min="" max=""/>
<!--req, card number-->
<errorCode min="" max=""/>
<!--req, face modeling failure error code-->
</FailedFaceInfo>
<isSupportFaceAndTemplate>
<!--opt, xs:boolean, whether supports configuring face picture and modeling data-->
</isSupportFaceAndTemplate>
<FaceAndTemplateParam>
<!--opt, face picture and modeling data configuration-->
<cardNo min="" max=""/>
303
Device Network SDK (Access Control on Card) Developer Guide
6.46 XML_Cap_AccessControl
AccessControl capability message in XML format
<AccessControl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportWiegandCfg>
<!--opt, xs:boolean, whether it supports Wiegand configuration-->
</isSupportWiegandCfg>
<isSupportModuleStatus>
<!--opt, xs:boolean, whether it supports getting the status of secure door control unit-->
</isSupportModuleStatus>
<isSupportSNAPConfig>
<!--opt, xs:boolean, whether it supports getting capture linkage parameters-->
</isSupportSNAPConfig>
<LocalController><!--opt-->
<isSupportLocalControllerManage>
<!--opt, xs:boolean, whether it supports distributed access controller management-->
</isSupportLocalControllerManage>
<isSupportLocalControllerControl>
<!--opt, xs:boolean, whether it supports distributed access controller control-->
</isSupportLocalControllerControl>
</LocalController>
<isSupportUSBManage>
<!--opt, xs:boolean, whether it supports USB management of access control device-->
</isSupportUSBManage>
<isSupportIdentityTerminal>
<!--opt, xs:boolean, whether it supports face recognition terminal configuration-->
</isSupportIdentityTerminal>
<isSupportDepartmentParam>
<!--opt, xs:boolean, whether it supports setting department parameters-->
</isSupportDepartmentParam>
<isSupportSchedulePlan>
<!--opt, xs:boolean, whether it supports setting shift schedule-->
</isSupportSchedulePlan>
<isSupportAttendanceRule>
<!--opt, xs:boolean, whether it supports setting time and attendance rule-->
</isSupportAttendanceRule>
<isSupportOrdinaryClass>
<!--opt, xs:boolean, whether it supports setting normal shift parameters-->
</isSupportOrdinaryClass>
<isSupportWorkingClass>
<!--opt, xs:boolean, whether it supports setting man-hour shift parameters-->
304
Device Network SDK (Access Control on Card) Developer Guide
</isSupportWorkingClass>
<isSupportAttendanceHolidayGroup>
<!--opt, xs:boolean, whether it supports setting holiday group for time and attendance-->
</isSupportAttendanceHolidayGroup>
<isSupportAttendanceHolidayPlan>
<!--opt, xs:boolean, whether it supports setting holiday schedule for time and attendance-->
</isSupportAttendanceHolidayPlan>
<isSupportLadderControlRelay>
<!--opt, xs:boolean, whether it supports setting elevator controller relay-->
</isSupportLadderControlRelay>
<isSupportWiegandRuleCfg>
<!--opt, xs:boolean, whether it supports setting Wiegand rule-->
</isSupportWiegandRuleCfg>
<isSupportM1CardEncryptCfg>
<!--opt, xs:boolean, whether it supports M1 card encryption authentication-->
</isSupportM1CardEncryptCfg>
<isSupportDeployInfo>
<!--opt, xs:boolean, whether it supports getting arming information-->
</isSupportDeployInfo>
<isSupportSubmarineBack>
<!--opt, xs:boolean, whether it supports specifying anti-passing back server-->
</isSupportSubmarineBack>
<isSupportSubmarineBackHostInfo>
<!--opt, xs:boolean, whether it supports setting access controllers with anti-passing back enabled-->
</isSupportSubmarineBackHostInfo>
<isSupportStartReaderInfo>
<!--opt, xs:boolean, whether it supports setting first card reader-->
</isSupportStartReaderInfo>
<isSupportSubmarineBackReader>
<!--opt, xs:boolean, whether it supports setting anti-passing back card reader-->
</isSupportSubmarineBackReader>
<isSupportServerDevice>
<!--opt, xs:boolean, whether it supports setting anti-passing back server information-->
</isSupportServerDevice>
<isSupportReaderAcrossHost>
<!--opt, xs:boolean, whether it supports enabling cross-controller anti-passing back function of card reader-->
</isSupportReaderAcrossHost>
<isSupportClearCardRecord>
<!--opt, xs:boolean, whether it supports clearing card swiping records in anti-passing back server-->
</isSupportClearCardRecord>
<isSupportSubmarineBackMode>
<!--opt, xs:boolean, whether it supports setting anti-passing back mode-->
</isSupportSubmarineBackMode>
<isSupportClearSubmarineBack>
<!--opt, xs:boolean, whether it supports clearing cross-controller anti-passing back information-->
</isSupportClearSubmarineBack>
<isSupportRemoteControlDoor>
<!--opt, xs:boolean, whether it supports remote door, elevator, and lock control: "true"-yes, this node is not
returned-no-->
</isSupportRemoteControlDoor>
<isSupportUserInfo><!--opt, xs:boolean, whether it supports person management based on person--></
isSupportUserInfo>
305
Device Network SDK (Access Control on Card) Developer Guide
<EmployeeNoInfo><!--dep, employee No. (person ID) information, this node is valid only when the
isSupportUserInfo is "true"-->
<employeeNo min="" max=""><!--opt, employee No. (person ID)--></employeeNo>
<characterType opt="any,number">
<!--opt, employee No. (person) ID type: "any"-any characters (default), "number"-digits (from 0 to 9), only one
value can be returned-->
</characterType>
<isSupportCompress>
<!--opt, xs:boolean, whether it supports compressing employee No. (person) ID for storage: "true"-yes, this node is
not returned-no-->
</isSupportCompress>
</EmployeeNoInfo>
<isSupportCardInfo><!--opt, xs:boolean, whether it supports card management based on person: "true"-yes, this
node is not returned-no--></isSupportCardInfo>
<isSupportUserInfoDetailDelete><!--opt, xs:boolean, whether it supports deleting person information and
permission: "true"-yes, this node is not returned-no--></isSupportUserInfoDetailDelete>
<isSupportAuthCodeInfo>
<!--opt, xs:boolean, whether it supports authentication password management: "true"-yes, this node is not
returned-no-->
</isSupportAuthCodeInfo>
<isSupportFingerPrintCfg>
<!--opt, xs:boolean, whether it supports configuring fingerprint parameters: "true"-yes, this node is not returned-
no-->
</isSupportFingerPrintCfg>
<isSupportFingerPrintDelete>
<!--opt, xs:boolean, whether it supports deleting fingerprint: "true"-yes, this node is not returned-no-->
</isSupportFingerPrintDelete>
<isSupportCaptureFingerPrint>
<!--opt, xs:boolean, whether it supports collecting fingerprint information: "true"-yes, this node is not returned-no--
>
</isSupportCaptureFingerPrint>
<isSupportDoorStatusWeekPlanCfg>
<!--opt, xs:boolean, whether it supports configuring door control week schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusWeekPlanCfg>
<isSupportVerifyWeekPlanCfg>
<!--opt, xs:boolean, whether it supports configuring week schedule of the card reader authentication mode: "true"-
yes, this node is not returned-no-->
</isSupportVerifyWeekPlanCfg>
<isSupportCardRightWeekPlanCfg>
<!--opt, xs:boolean, whether it supports configuring week schedule of the access permission control: "true"-yes, this
node is not returned-no-->
</isSupportCardRightWeekPlanCfg>
<isSupportDoorStatusHolidayPlanCfg>
<!--opt, xs:boolean, whether it supports configuring door control holiday schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusHolidayPlanCfg>
<isSupportVerifyHolidayPlanCfg>
<!--opt, xs:boolean, whether it supports configuring holiday schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayPlanCfg>
<isSupportCardRightHolidayPlanCfg>
306
Device Network SDK (Access Control on Card) Developer Guide
<!--opt, xs:boolean, whether it supports configuring holiday schedule of the access permission control: "true"-yes,
this node is not returned-no-->
</isSupportCardRightHolidayPlanCfg>
<isSupportDoorStatusHolidayGroupCfg>
<!--opt, xs:boolean, whether it supports configuring holiday group of the door control schedule: "true"-yes, this
node is not returned-no-->
</isSupportDoorStatusHolidayGroupCfg>
<isSupportVerifyHolidayGroupCfg>
<!--opt, xs:boolean, whether it supports configuring holiday group of the control schedule of the card reader
authentication mode: "true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayGroupCfg>
<isSupportUserRightHolidayGroupCfg>
<!--opt, xs:boolean, whether it supports configuring holiday group of the access permission control schedule: "true"-
yes, this node is not returned-no-->
</isSupportUserRightHolidayGroupCfg>
<isSupportDoorStatusPlanTemplate>
<!--opt, xs:boolean, whether it supports configuring door control schedule template: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusPlanTemplate>
<isSupportVerifyPlanTemplate>
<!--opt, xs:boolean, whether it supports configuring schedule template of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyPlanTemplate>
<isSupportUserRightPlanTemplate>
<!--opt, xs:boolean, whether it supports configuring schedule template of the access permission control: "true"-yes,
this node is not returned-no-->
</isSupportUserRightPlanTemplate>
<isSupportDoorStatusPlan>
<!--opt, xs:boolean, whether it supports configuring door control schedule: "true"-yes, this node is not returned-no--
>
</isSupportDoorStatusPlan>
<isSupportCardReaderPlan>
<!--opt, xs:boolean, whether it supports configuring control schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportCardReaderPlan>
<isSupportClearPlansCfg>
<!--opt, xs:boolean, whether it supports clearing the access control schedule parameters: "true"-yes, this node is
not returned-no-->
</isSupportClearPlansCfg>
<isSupportRemoteControlBuzzer>
<!--opt, xs:boolean, whether it supports remotely controlling the buzzer of the card reader: "true"-yes, this node is
not returned-no-->
</isSupportRemoteControlBuzzer>
<isSupportEventCardNoList>
<!--opt, xs:boolean, whether it supports getting the list of event and card linkage ID: "true"-yes, this node is not
returned-no-->
</isSupportEventCardNoList>
<isSupportEventCardLinkageCfg>
<!--opt, xs:boolean, whether it supports configuring event and card linkage parameters: "true"-yes, this node is not
returned-no-->
</isSupportEventCardLinkageCfg>
<isSupportClearEventCardLinkageCfg>
307
Device Network SDK (Access Control on Card) Developer Guide
<!--opt, xs:boolean, whether it supports clearing event and card linkage parameters: "true"-yes, this node is not
returned-no-->
</isSupportClearEventCardLinkageCfg>
<isSupportAcsEvent>
<!--opt, xs:boolean, whether it supports searching for access control events: "true"-yes, this node is not returned-
no-->
</isSupportAcsEvent>
<isSupportAcsEventTotalNum>
<!--opt, xs:boolean, whether it supports getting total number of access control events by specific conditions: "true"-
yes, this node is not returned-no-->
</isSupportAcsEventTotalNum>
<isSupportDeployInfo>
<!--opt, xs:boolean, whether it supports getting the arming information: "true"-yes, this node is not returned-no-->
</isSupportDeployInfo>
<isSupportEventOptimizationCfg>
<!--opt, xs:boolean, whether it supports configuring event optimization: "true"-yes, this node is not returned-no-->
</isSupportEventOptimizationCfg>
<isSupportAcsWorkStatus>
<!--opt, xs:boolean, whether it supports getting working status of the access control device: "true"-yes, this node is
not returned-no-->
</isSupportAcsWorkStatus>
<isSupportDoorCfg>
<!--opt, xs:boolean, whether it supports configuring door parameters: "true"-yes, this node is not returned-no-->
</isSupportDoorCfg>
<isSupportCardReaderCfg>
<!--opt, xs:boolean, whether it supports configuring card reader parameters: "true"-yes, this node is not returned-
no-->
</isSupportCardReaderCfg>
<isSupportAcsCfg>
<!--opt, xs:boolean, whether it supports configuring parameters of access control device: "true"-yes, this node is not
returned-no-->
</isSupportAcsCfg>
<isSupportGroupCfg>
<!--opt, xs:boolean, whether it supports configuring group parameters: "true"-yes, this node is not returned-no-->
</isSupportGroupCfg>
<isSupportClearGroupCfg>
<!--opt, xs:boolean, whether it supports clearing group parameters: "true"-yes, this node is not returned-no-->
</isSupportClearGroupCfg>
<isSupportMultiCardCfg>
<!--opt, xs:boolean, whether it supports configuring multiple authentication mode: "true"-yes, this node is not
returned-no-->
</isSupportMultiCardCfg>
<isSupportMultiDoorInterLockCfg>
<!--opt, xs:boolean, whether it supports configuring multi-door interlocking parameters: "true"-yes, this node is not
returned-no-->
</isSupportMultiDoorInterLockCfg>
<isSupportAntiSneakCfg>
<!--opt, xs:boolean, whether it supports configuring anti-passing back parameters in the device: "true"-yes, this
node is not returned-no-->
</isSupportAntiSneakCfg>
<isSupportCardReaderAntiSneakCfg>
<!--opt, xs:boolean, whether it supports configuring anti-passing back parameters for the card reader in the device:
308
Device Network SDK (Access Control on Card) Developer Guide
309
Device Network SDK (Access Control on Card) Developer Guide
not returned-no-->
</isSupportRemoteControlPWCfg>
<isSupportAttendanceStatusModeCfg>
<!--opt, xs:boolean, whether it supports configuring attendance mode: "true"-yes, this node is not returned-no-->
</isSupportAttendanceStatusModeCfg>
<isSupportAttendanceStatusRuleCfg>
<!--opt, xs:boolean, whether it supports configuring attendance status and rule: "true"-yes, this node is not
returned-no-->
</isSupportAttendanceStatusRuleCfg>
<isSupportCaptureCardInfo>
<!--opt, xs:boolean, whether it supports collecting card information: "true"-yes, this node is not returned-no-->
</isSupportCaptureCardInfo>
<isSupportCaptureIDInfo>
<!--opt, xs:boolean, whether it supports collecting ID card information: "true"-yes, this node is not returned-no-->
</isSupportCaptureIDInfo>
<isSupportCaptureRule>
<!--opt, xs:boolean, whether it supports configuring online collection rules: "true"-yes, this node is not returned-no--
>
</isSupportCaptureRule>
<isSupportCapturePresetParam>
<!--opt, xs:boolean, whether it supports configuring preset parameters of online collection: "true"-yes, this node is
not returned-no-->
</isSupportCapturePresetParam>
<isSupportOfflineCapture>
<!--opt, xs:boolean, whether it supports offline collection: "true"-yes, this node is not returned-no-->
</isSupportOfflineCapture>
<isSupportCardOperations>
<!--opt, xs:boolean, whether it supports card operation: "true"-yes, this node is not returned-no-->
</isSupportCardOperations>
<isSupportRightControllerAudio>
<!--optional, xs:boolean, whether it supports configuring audio file parameters of the main controller-->
</isSupportRightControllerAudio>
<isSupportChannelControllerCfg>
<!--optional, xs:boolean, whether it supports configuring lane controller-->
</isSupportChannelControllerCfg>
<isSupportGateDialAndInfo>
<!--optional, xs:boolean, whether it supports getting local DIP and information of the turnstile-->
</isSupportGateDialAndInfo>
<isSupportGateStatus>
<!--optional, xs:boolean, whether it supports getting turnstile status-->
</isSupportGateStatus>
<isSupportGateIRStatus>
<!--optional, xs:boolean, whether it supports getting the status of the active infrared intrusion detector of the
turnstile-->
</isSupportGateIRStatus>
<isSupportGateRelatedPartsStatus>
<!--optional, xs:boolean, whether it supports getting related components' status of the turnstile-->
</isSupportGateRelatedPartsStatus>
<isSupportChannelControllerAlarmLinkage>
<!--optional, xs:boolean, whether it supports configuring alarm linkage of the lane controller-->
</isSupportChannelControllerAlarmLinkage>
<isSupportChannelControllerAlarmOut>
310
Device Network SDK (Access Control on Card) Developer Guide
<!--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>
<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 blacklist: 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>
</AccessControl>
6.47 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>
311
Device Network SDK (Access Control on Card) Developer Guide
</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
is between 1 and 4--></slaveAlarmOut>
</IntrusionAlarm>
</ChannelControllerAlarmLinkage>
6.48 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"-master lane controller,
"Slave"-slave 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>
6.49 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>
312
Device Network SDK (Access Control on Card) Developer Guide
6.50 XML_Cap_ChannelControllerCfg
ChannelControllerCfg capability message in XML format
<ChannelControllerCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<gatePassingMode opt="ByChannelController,ByRightController"><!--required, xs:string, gate passing mode:
"ByChannelController"-according to the lane controller's local DIP settings, "ByRightController"-according to the main
controller's settings--></gatePassingMode>
<freePassAuthEnabled opt="enable,disable"><!--required, xs:string, whether 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 represent 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>
<tempUnit opt="Centigrade,Fahrenheit"><!--required, xs:string, temperature unit to be displayed: "Centigrade"-
Celsius (°C), "Fahrenheit"-Fahrenheit (°F)--></tempUnit>
<alarmAreaNoAuth opt="true,false"><!--optional, xs:boolean, whether opening door is prohibited in the alarm area--
></alarmAreaNoAuth>
<gateWingMaterial opt="Acrylic,StellPipe,SinglePUGate,DoublePUGate"><!--optional, xs:string, barrier material:
"Acrylic"-acrylic, "StellPipe"-steel tube, "SinglePUGate"-single PU gate, "DoublePUGate"-double PU gate--></
gateWingMaterial>
<channelLength min="550" max="1400"><!--optional, xs:integer, lane length, unit: mm--></channelLength>
<motorDirection opt="Clockwise,AntiClockwise"><!--optional, xs:string, motor rotation direction: "Clockwise",
"AntiClockwise"--></motorDirection>
<lampBoardLight min="" max=""><!--optional, xs:integer, lamp board brightness, it is between 0 and 100--></
lampBoardLight>
<openSpeed min="" max=""><!--optional, xs:string, barrier's opening speed, it is between 1 and 10 representing
speed from 10% to 100%, and the default speed is 50%. If openAndCloseSpeed and openSpeed are configured
simultaneously, the barrier's opening speed is determined by openSpeed--></openSpeed>
<closeSpeed min="1" max="10"><!--optional, xs:integer, barrier's closing speed, it is between 1 and 10 representing
speed from 10% to 100%, and the default speed is 40%. If openAndCloseSpeed and closeSpeed are configured
simultaneously, the barrier's closing speed is determined by closeSpeed--></closeSpeed>
</ChannelControllerCfg>
6.51 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>
313
Device Network SDK (Access Control on Card) Developer Guide
<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>
</FaceCompareCond>
6.52 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>
6.53 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>
314
Device Network SDK (Access Control on Card) Developer Guide
6.54 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>
315
Device Network SDK (Access Control on Card) Developer Guide
<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>
6.55 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>
6.56 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
316
Device Network SDK (Access Control on Card) Developer Guide
not returned, the startTime and endTime will be used as the local time by default-->
<cardNo min="" max=""></cardNo><!--req, card No.-->
<name min="" max=""></name><!--req, cardholder name-->
<picEnable opt="true,false"></picEnable><!--req, whether contains picture-->
<beginSerialNo min="" max=""></beginSerialNo><!--req, start serial No.-->
<endSerialNo min="" max=""></endSerialNo><!--req, end serial No.-->
<employeeNo min="" max=""></employeeNo><!--opt, employee No. (person ID)-->
</EventCond>
<EventLog>
<majorType>0x1</majorType><!--req, alarm event-->
<MinorTypeList>
<minorType>0x400</minorType><!--req, Zone short circuit attempts alarm-->
<minorType>0x401</minorType><!--req, Zone open circuit attempts alarm-->
<!--See more minor types of alarm event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
<EventLog>
<majorType>0x2</majorType><!--req, exception alarm-->
<MinorTypeList>
<minorType>0x27</minorType><!--req, Network disconnected-->
<minorType>0x3a</minorType><!--req, Connection exception-->
<!--See more minor types of exception event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
<EventLog>
<majorType>0x3</majorType><!--req, operation event-->
<MinorTypeList>
<minorType>0x400</minorType><!--req, Remotely opened door-->
<minorType>0x401</minorType><!--req, remotely closed door-->
<!--See more minor types of operation event in Access Control Event Types-->
<MinorTypeList>
</EventLog>
<EventLog>
<majorType>0x5</majorType><!--req, other event-->
<MinorTypeList>
<minorType>0x01</minorType><!--req, Authenticated by valid card-->
<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
6.57 XML_Cap_IdentityTerminal
IdentityTerminal capability message in XML format
317
Device Network SDK (Access Control on Card) Developer Guide
318
Device Network SDK (Access Control on Card) Developer Guide
6.58 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>
6.59 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-->
319
Device Network SDK (Access Control on Card) 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>
6.60 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>
6.61 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>
6.62 XML_ChannelControllerCfg
ChannelControllerCfg message in XML format
<ChannelControllerCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<gatePassingMode><!--required, xs:string, gate passing mode: "ByChannelController"-according to the lane
controller's local DIP settings, "ByRightController"-according to the main controller's settings--></gatePassingMode>
<freePassAuthEnabled><!--required, xs:string, whether 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
represent 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"-
320
Device Network SDK (Access Control on Card) 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 tube, "SinglePUGate"-
single PU gate, "DoublePUGate"-double PU gate--></gateWingMaterial>
<channelLength><!--optional, xs:integer, lane length, unit: mm--></channelLength>
<motorDirection><!--optional, xs:string, motor rotation direction: "Clockwise", "AntiClockwise"--></motorDirection>
<lampBoardLight><!--optional, xs:integer, lamp board brightness, it is between 0 and 100--></lampBoardLight>
<openSpeed><!--optional, xs:string, barrier's opening speed, it is between 1 and 10 which represent speed from 10%
to 100%, and the default speed is 50%. If openAndCloseSpeed and openSpeed are configured simultaneously, 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 represent speed from 10%
to 100%, and the default speed is 40%. If openAndCloseSpeed and closeSpeed are configured simultaneously, the
barrier's closing speed is determined by closeSpeed--></closeSpeed>
</ChannelControllerCfg>
6.63 XML_Desc_AcsAbility
Input description message for getting access control capability.
<AcsAbility version="2.0">
<!--opt, specify child nodes about access control capabilities to be returned-->
</AcsAbility>
.
6.64 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
applications--></...>
</EventNotificationAlert>
321
Device Network SDK (Access Control on Card) Developer Guide
6.65 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>
</FaceCompareCond>
6.66 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>
322
Device Network SDK (Access Control on Card) Developer Guide
6.67 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 master lane
controller failed, it can be set to 1 or 2--></masterIRAdaptorCommFailed>
<slaveIRAdaptorCommFailed><!--required, xs:string, ID of communication with IR adapter of the slave lane controller
failed, it can be set to 1 or 2--></slaveIRAdaptorCommFailed>
</GateIRStatus>
6.68 XML_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><!--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 slave 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>
323
Device Network SDK (Access Control on Card) Developer Guide
6.69 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>
6.70 XML_IdentityTerminal
IdentityTerminal message in XML format
324
Device Network SDK (Access Control on Card) Developer Guide
325
Device Network SDK (Access Control on Card) Developer Guide
6.71 XML_ResponseStatus
ResponseStatus message in XML format
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--req, ro, xs:string, request URL-->
</requestURL>
<statusCode>
<!--req, ro, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid XML Format,
6-Invalid XML Content, 7-Reboot Required, 9-Additional Error-->
</statusCode>
<statusString>
<!--req, ro, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML Format, Invalid
XML Content, Reboot, Additional Error-->
</statusString>
<id>
<!--opt, xs:integer, unique device ID created in POST operation-->
</id>
<subStatusCode>
<!--req, ro, xs:string, describe the error reason in detail-->
</subStatusCode>
<errorCode>
<!--opt, ro, xs:integer, error code, the returned value is the transformed decimal number-->
</errorCode>
<errorMsg>
<!--opt, ro, xs:string, error message-->
</errorMsg>
<AdditionalErr>
<!--dep, it is valid when statusCode is set to 9 (Additional Error). When setting or deleting in a batch failed, if the
error status of a specific device needs to be returned, statusCode should be set to 9 (Additional Error) and the node
<AdditionalError> should be returned-->
<StatusList>
<!--req-->
<Status>
<!--req-->
<id>
<!--opt, xs:string, device ID created in POST operation-->
</id>
<statusCode>
<!--req, ro, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid XML
Format, 6-Invalid XML Content, 7-Reboot Required-->
</statusCode>
<statusString>
<!--req, ro, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML Format,
Invalid XML Content, Reboot-->
</statusString>
<subStatusCode>
<!--req, ro, xs:string, describe the error reason in detail-->
</subStatusCode>
</Status>
326
Device Network SDK (Access Control on Card) Developer Guide
</StatusList>
</AdditionalErr>
</ResponseStatus>
Note
See ISAPI Response Codes for details about sub status codes and corresponding error codes.
6.72 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>
327
Device Network SDK (Access Control on Card) Developer Guide
Appendix A. Appendixes
MAJOR_ALARM
328
Device Network SDK (Access Control on Card) Developer Guide
329
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_EXCEPTION
330
Device Network SDK (Access Control on Card) Developer Guide
331
Device Network SDK (Access Control on Card) Developer Guide
332
Device Network SDK (Access Control on Card) Developer Guide
333
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_OPERATION
334
Device Network SDK (Access Control on Card) Developer Guide
335
Device Network SDK (Access Control on Card) Developer Guide
336
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_EVENT
337
Device Network SDK (Access Control on Card) Developer Guide
338
Device Network SDK (Access Control on Card) Developer Guide
339
Device Network SDK (Access Control on Card) Developer Guide
340
Device Network SDK (Access Control on Card) Developer Guide
341
Device Network SDK (Access Control on Card) Developer Guide
342
Device Network SDK (Access Control on Card) Developer Guide
343
Device Network SDK (Access Control on Card) Developer Guide
344
Device Network SDK (Access Control on Card) Developer Guide
345
Device Network SDK (Access Control on Card) Developer Guide
346
Device Network SDK (Access Control on Card) Developer Guide
347
Device Network SDK (Access Control on Card) Developer Guide
348
Device Network SDK (Access Control on Card) Developer Guide
349
Device Network SDK (Access Control on Card) Developer Guide
350
Device Network SDK (Access Control on Card) Developer Guide
351
Device Network SDK (Access Control on Card) Developer Guide
352
Device Network SDK (Access Control on Card) Developer Guide
353
Device Network SDK (Access Control on Card) Developer Guide
354
Device Network SDK (Access Control on Card) Developer Guide
355
Device Network SDK (Access Control on Card) Developer Guide
General Errors
356
Device Network SDK (Access Control on Card) Developer Guide
357
Device Network SDK (Access Control on Card) Developer Guide
358
Device Network SDK (Access Control on Card) Developer Guide
359
Device Network SDK (Access Control on Card) Developer Guide
360
Device Network SDK (Access Control on Card) Developer Guide
361
Device Network SDK (Access Control on Card) Developer Guide
362
Device Network SDK (Access Control on Card) Developer Guide
363
Device Network SDK (Access Control on Card) Developer Guide
364
Device Network SDK (Access Control on Card) Developer Guide
365
Device Network SDK (Access Control on Card) Developer Guide
366
Device Network SDK (Access Control on Card) Developer Guide
367
Device Network SDK (Access Control on Card) Developer Guide
368
Device Network SDK (Access Control on Card) Developer Guide
369
Device Network SDK (Access Control on Card) Developer Guide
370
Device Network SDK (Access Control on Card) Developer Guide
371
Device Network SDK (Access Control on Card) Developer Guide
372
Device Network SDK (Access Control on Card) Developer Guide
373
Device Network SDK (Access Control on Card) Developer Guide
374
Device Network SDK (Access Control on Card) Developer Guide
375
Device Network SDK (Access Control on Card) Developer Guide
376
Device Network SDK (Access Control on Card) Developer Guide
377
Device Network SDK (Access Control on Card) Developer Guide
378
Device Network SDK (Access Control on Card) Developer Guide
379
Device Network SDK (Access Control on Card) Developer Guide
380
Device Network SDK (Access Control on Card) Developer Guide
381
Device Network SDK (Access Control on Card) Developer Guide
382
Device Network SDK (Access Control on Card) Developer Guide
383
Device Network SDK (Access Control on Card) Developer Guide
384
Device Network SDK (Access Control on Card) Developer Guide
385
Device Network SDK (Access Control on Card) Developer Guide
386
Device Network SDK (Access Control on Card) Developer Guide
387
Device Network SDK (Access Control on Card) Developer Guide
388
Device Network SDK (Access Control on Card) Developer Guide
389
Device Network SDK (Access Control on Card) Developer Guide
390
Device Network SDK (Access Control on Card) Developer Guide
391
Device Network SDK (Access Control on Card) Developer Guide
392
Device Network SDK (Access Control on Card) Developer Guide
393
Device Network SDK (Access Control on Card) Developer Guide
394
Device Network SDK (Access Control on Card) Developer Guide
395
Device Network SDK (Access Control on Card) Developer Guide
396
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_ALARM
Table A-1 Minor Types of Alarm Log
Log Minor Type Value Description
MINOR_ALARM_IN 0x1 Alarm Input
MINOR_ALARM_OUT 0x2 Alarm output
MINOR_MOTDET_START 0x3 Motion detection alarm started
MINOR_MOTDET_STOP 0x4 Motion detection alarm ended
MINOR_HIDE_ALARM_START 0x5 Tampering alarm started
MINOR_HIDE_ALARM_STOP 0x6 Tampering alarm ended
MINOR_VCA_ALARM_START 0x7 VCA alarm started
MINOR_VCA_ALARM_STOP 0x8 VCA alarm ended
MINOR_ITS_ALARM_START 0x09 Traffic event alarm started
MINOR_ITS_ALARM_STOP 0x0a Traffic event alarm ended
MINOR_NETALARM_START 0x0b Network alarm started
MINOR_NETALARM_STOP 0x0c Network alarm ended
MINOR_NETALARM_RESUME 0x0d Network alarm recovery
MINOR_WIRELESS_ALARM_START 0x0e Wireless alarm started
MINOR_WIRELESS_ALARM_STOP 0x0f Wireless alarm ended
MINOR_PIR_ALARM_START 0x10 Human induction alarm started
MINOR_PIR_ALARM_STOP 0x11 Human induction alarm ended
MINOR_CALLHELP_ALARM_START 0x12 Emergency alarm started
MINOR_CALLHELP_ALARM_STOP 0x13 Emergency alarm ended
MINOR_DETECTFACE_ALARM_START 0x16 Face detection alarm started
MINOR_DETECTFACE_ALARM_STOP 0x17 Face detection alarm ended
397
Device Network SDK (Access Control on Card) Developer Guide
398
Device Network SDK (Access Control on Card) Developer Guide
399
Device Network SDK (Access Control on Card) Developer Guide
400
Device Network SDK (Access Control on Card) Developer Guide
401
Device Network SDK (Access Control on Card) Developer Guide
402
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_EXCEPTION
Table A-2 Minor Types of Exception Log
Log Minor Type Value Description
MINOR_RAID_ERROR 0x20 RAID exception
MINOR_VI_LOST 0x21 Video loss
MINOR_ILLEGAL_ACCESS 0x22 Illegal login
MINOR_HD_FULL 0x23 HDD full
MINOR_HD_ERROR 0x24 HDD error
MINOR_DCD_LOST 0x25 MODEM offline (reserved)
MINOR_IP_CONFLICT 0x26 IP address conflicted
MINOR_NET_BROKEN 0x27 Network disconnected
MINOR_REC_ERROR 0x28 Recording error
MINOR_IPC_NO_LINK 0x29 IPC connection exception
MINOR_VI_EXCEPTION 0x2a Video input exception (only for analog
channel)
MINOR_IPC_IP_CONFLICT 0x2b IP address conflicted of IPC
MINOR_SENCE_EXCEPTION 0x2c Sence exception
MINOR_PIC_REC_ERROR 0x2d Capture error. Failed to get pictures.
MINOR_VI_MISMATCH 0x2e Video format mismatches
403
Device Network SDK (Access Control on Card) Developer Guide
404
Device Network SDK (Access Control on Card) Developer Guide
405
Device Network SDK (Access Control on Card) Developer Guide
406
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_OPERATION
Table A-3 Minor Types of Operation Log
Log Minor Type Value Description
MINOR_START_DVR 0x41 Power on
MINOR_STOP_DVR 0x42 Shutdown
MINOR_STOP_ABNORMAL 0x43 Abnormal shutdown
MINOR_REBOOT_DVR 0x44 Reboot device (local)
MINOR_LOCAL_LOGIN 0x50 Logged in (local)
MINOR_LOCAL_LOGOUT 0x51 Logged out (Local)
MINOR_LOCAL_CFG_PARM 0x52 Local configuration
MINOR_LOCAL_PLAYBYFILE 0x53 Playback or download by file (local)
MINOR_LOCAL_PLAYBYTIME 0x54 Playback or download by time (local)
MINOR_LOCAL_START_REC 0x55 Start recording (local)
MINOR_LOCAL_STOP_REC 0x56 Stop recording (local)
MINOR_LOCAL_PTZCTRL 0x57 PTZ control (local)
MINOR_LOCAL_PREVIEW 0x58 Live view (local,reserved)
MINOR_LOCAL_MODIFY_TIME 0x59 Edit time (local,reserved)
MINOR_LOCAL_UPGRADE 0x5a Local upgrade
MINOR_LOCAL_RECFILE_OUTPUT 0x5b Backup video files (local)
MINOR_LOCAL_FORMAT_HDD 0x5c Initialize HDD (local)
MINOR_LOCAL_CFGFILE_OUTPUT 0x5d Export local configuration files
MINOR_LOCAL_CFGFILE_INPUT 0x5e Import local configuration files
MINOR_LOCAL_COPYFILE 0x5f Backup files (local)
MINOR_LOCAL_LOCKFILE 0x60 Lock video files (local)
MINOR_LOCAL_UNLOCKFILE 0x61 Unlock video files (local)
MINOR_LOCAL_DVR_ALARM 0x62 Clear manually and trigger alarm
(local)
407
Device Network SDK (Access Control on Card) Developer Guide
408
Device Network SDK (Access Control on Card) Developer Guide
409
Device Network SDK (Access Control on Card) Developer Guide
410
Device Network SDK (Access Control on Card) Developer Guide
411
Device Network SDK (Access Control on Card) Developer Guide
412
Device Network SDK (Access Control on Card) Developer Guide
413
Device Network SDK (Access Control on Card) Developer Guide
414
Device Network SDK (Access Control on Card) Developer Guide
415
Device Network SDK (Access Control on Card) Developer Guide
416
Device Network SDK (Access Control on Card) Developer Guide
417
Device Network SDK (Access Control on Card) Developer Guide
418
Device Network SDK (Access Control on Card) Developer Guide
419
Device Network SDK (Access Control on Card) Developer Guide
420
Device Network SDK (Access Control on Card) Developer Guide
421
Device Network SDK (Access Control on Card) Developer Guide
422
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_INFORMATION
Table A-4 Minor Types of Additional Information Log
Log Minor Type Value Description
MINOR_HDD_INFO 0xa1 HDD Information
MINOR_SMART_INFO 0xa2 S.M.A.R.T Information
MINOR_REC_START 0xa3 Start recording
MINOR_REC_STOP 0xa4 Stop recording
MINOR_REC_OVERDUE 0xa5 Delete expired video files
MINOR_LINK_START 0xa6 Connect front-end device
MINOR_LINK_STOP 0xa7 Disconnect front-end device
MINOR_NET_DISK_INFO 0xa8 Network HDD information
MINOR_RAID_INFO 0xa9 raid related information
MINOR_RUN_STATUS_INFO 0xaa System running status information
MINOR_SPARE_START_BACKUP 0xab Hot spare system starts backing up
working device
MINOR_SPARE_STOP_BACKUP 0xac Hot spare system stops backing up
working device
MINOR_SPARE_CLIENT_INFO 0xad Hot spare customer device
information
MINOR_ANR_RECORD_START 0xae Start ANR recording
MINOR_ANR_RECORD_END 0xaf Stop ANR recording
MINOR_ANR_ADD_TIME_QUANTUM 0xb0 Add ANR time period
MINOR_ANR_DEL_TIME_QUANTUM 0xb1 Delete ANR time period
MINOR_PIC_REC_START 0xb3 Start capturing
MINOR_PIC_REC_STOP 0xb4 Stop Capturing
MINOR_PIC_REC_OVERDUE 0xb5 Delete expired picture
423
Device Network SDK (Access Control on Card) Developer Guide
424
Device Network SDK (Access Control on Card) Developer Guide
425
Device Network SDK (Access Control on Card) Developer Guide
MAJOR_EVENT
Table A-5 Minor Types of Event Log
Log Minor Type Value Description
MINOR_LEGAL_CARD_PASS 0x01 Legal Card Authenticated
MINOR_CARD_AND_PSW_PASS 0x02 Card and Password Authenticated
MINOR_CARD_AND_PSW_FAIL 0x03 Card and password authentication
failed.
MINOR_CARD_AND_PSW_TIMEOUT 0x04 Card and password authentication
timed out.
426
Device Network SDK (Access Control on Card) Developer Guide
427
Device Network SDK (Access Control on Card) Developer Guide
StatusCode=1
StatusCode=2
428
Device Network SDK (Access Control on Card) Developer Guide
StatusCode=3
429
Device Network SDK (Access Control on Card) Developer Guide
StatusCode=4
430
Device Network SDK (Access Control on Card) Developer Guide
431
Device Network SDK (Access Control on Card) Developer Guide
432
Device Network SDK (Access Control on Card) Developer Guide
433
Device Network SDK (Access Control on Card) Developer Guide
434
Device Network SDK (Access Control on Card) Developer Guide
435
Device Network SDK (Access Control on Card) Developer Guide
436
Device Network SDK (Access Control on Card) Developer Guide
437
Device Network SDK (Access Control on Card) Developer Guide
438
Device Network SDK (Access Control on Card) Developer Guide
439
Device Network SDK (Access Control on Card) Developer Guide
440
Device Network SDK (Access Control on Card) Developer Guide
441
Device Network SDK (Access Control on Card) Developer Guide
442
Device Network SDK (Access Control on Card) Developer Guide
443
Device Network SDK (Access Control on Card) Developer Guide
444
Device Network SDK (Access Control on Card) Developer Guide
445
Device Network SDK (Access Control on Card) Developer Guide
446
Device Network SDK (Access Control on Card) Developer Guide
447
Device Network SDK (Access Control on Card) Developer Guide
448
Device Network SDK (Access Control on Card) Developer Guide
449
Device Network SDK (Access Control on Card) Developer Guide
450
Device Network SDK (Access Control on Card) Developer Guide
451
Device Network SDK (Access Control on Card) Developer Guide
452
Device Network SDK (Access Control on Card) Developer Guide
453
Device Network SDK (Access Control on Card) Developer Guide
StatusCode=5
StatusCode=6
454
Device Network SDK (Access Control on Card) Developer Guide
455
Device Network SDK (Access Control on Card) Developer Guide
456
Device Network SDK (Access Control on Card) Developer Guide
457
Device Network SDK (Access Control on Card) Developer Guide
458
Device Network SDK (Access Control on Card) Developer Guide
StatusCode=7
459