/////////////////////////////////////////////////////////////////////////////////////////// // 身份证门禁控制器JL-IDD-Z4开发接口 #ifndef __JLIDD_H__ #define __JLIDD_H__ #ifdef JLIDD_EXPORTS #define JLIDD_API __declspec(dllexport) #else #define JLIDD_API __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// //请求命令 //常用请求命令码定义 #define CMD_START 0 #define CMD_STOP 1 #define CMD_ADDRIGHT 11 #define CMD_REMOVERIGHT 12 #define CMD_CLEARRIGHT 13 #define CMD_OPENDOOR 14 #define CMD_GETTIME 15 #define CMD_SETTIME 16 #define CMD_GETRIGHT 17 #define CMD_CHECKRIGHT 18 #define CMD_CLEARLOG 19 #define CMD_SOUND 21 #define CMD_REBOOT_DEV 22 #define CMD_SHOW_TEXT 23 #define CMD_SHOW_LEDX 24 #define CMD_PLAY_TTS 25 #define CMD_CARD_START 31 #define CMD_CARD_STOP 32 #define CMD_CARD_ADDRIGHT 33 #define CMD_CARD_REMOVERIGHT 34 #define CMD_GET_ONLINE 81 #define CMD_FIND_DEV 82 #define CMD_CALL_TEXT 83 #define CMD_CARD_CONV 84 #define CMD_SET_TIMEOUT 91 #define CMD_GET_VER 99 //调用命令接口 //@param cmdcode,命令码 //@param content,命令内容,字符串格式,以|分隔各列 JLIDD_API char *__cdecl call(int cmdcode, char *content); //释放call操作返回的内存块 JLIDD_API void __cdecl freeBuffer(char *buffer); //请求命令的使用说明 //用户可以通过头文件jlidd.h及静态库jlidd.lib使用开发包,或者通过动态加载(使用LoadLibrary)开发包jlidd.dll后,由GetProcAddress获取函数地址后调用函数。 //首次调用必须是CMD_START命令码,第二参数content为空字符串 //软件结束前需要调用CMD_STOP命令码,第二参数content为空字符串 //添加权限使用命令字CMD_ADDRIGHT,第二参数content为权限详细信息字符串,格式为"控制器序号|控制器ip地址|姓名|卡号或证件号码|生效时间|失效时间|可用读头|刷卡数次|可用时段|人员类型" //删除权限使用命令字CMD_REMOVERIGHT,第二参数content为命令详细信息字符串,格式为"控制器序号|控制器ip地址|卡号或证件号码" //清除权限使用命令字CMD_CLEARRIGHT,第二参数content为命令详细信息字符串,格式为"控制器序号|控制器ip地址" //远程开门使用命令字CMD_OPENDOOR,第二参数content为命令详细信息字符串,格式为"控制器序号|控制器ip地址|继电器序号|开门时长" //上述命令详细信息字符串中,如果控制器设置中打开了兼容模式(综合门禁控制器工具-门禁配置-选项18),则控制器序号无效,建议填充65535,否则需要填充实际的设备标志 //详细参考开发说明书 /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// //上报回调命令码,应用在实现回调函数时,可以通过此命令码判断当前回调类型并确定其对应的数据格式 //日志异步上报回调命令码(空闲时自动上报控制器中未上传的日志记录) #define CBC_LOG_2ND 1 //身份证刷卡日志 #define CBC_LOG_CARD 2 //普通刷卡日志 #define CBC_LOG_EVENT 3 //事件变化日志 #define CBC_FIND_DEV 9 //设备发现 //实时消息回调命令码(控制器上发生某事件时立即上报的消息) #define CBC_RT_SIGNAL 11 //信号变化实时消息 #define CBC_RT_CONN 12 //连接检测实时消息 #define CBC_RT_MESSAGE 13 //调试通知信息 #define CBC_RT_SCAN 14 //刷卡实时消息 //回调函数原型,用户需要按照此原型实现函数并通过setCallback将用户实现设置到框架中,未设置则不进行回调处理 //注意函数调用方式为C Declaration (cdecl/__cdecl) , c#请参考范例代码实现回调函数 //返回值:是否处理成功。0成功,其它失败 typedef int (__cdecl *Callback)( int callbackCode, char *content ); //设置新的事件回调函数到框架,当事件发生时,将调用此函数。设置NULL表示不回调。 JLIDD_API void __cdecl setCallback(Callback func); /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// //原型定义 typedef char * (*call_protype)(int cmdcode, char *content); typedef void (*freeBuffer_protype)(char *buffer); typedef void (*setCallback_protype)(Callback func); /////////////////////////////////////////////////////////////////////////////////////////// //2017-01-06 //使用stdcall方式调用的一套接口,在原来的函数名称后面加了_stdcall后缀 //call应用call_stdcall,freeBuffer对应freeBuffer_stdcall,setCallback对应setCallback_stdcall JLIDD_API char * __stdcall call_stdcall(int cmdcode, char *content); JLIDD_API void __stdcall freeBuffer_stdcall(char *buffer); typedef int (__stdcall *Callback_stdcall)( int callbackCode, char *content ); JLIDD_API void __stdcall setCallback_stdcall(Callback_stdcall func); /////////////////////////////////////////////////////////////////////////////////////////// //2017-01-06 //使用fastcall方式调用的一套接口,在原来的函数名称后面加了_fastcall后缀 //call应用call_fastcall,freeBuffer对应freeBuffer_fastcall,setCallback对应setCallback_fastcall JLIDD_API char * __fastcall call_fastcall(int cmdcode, char *content); JLIDD_API void __fastcall freeBuffer_fastcall(char *buffer); typedef int (__fastcall *Callback_fastcall)( int callbackCode, char *content ); JLIDD_API void __fastcall setCallback_fastcall(Callback_fastcall func); #ifdef __cplusplus } #endif #endif //__JLIDD_H__