Commit 0344002f8a29dc62e1ab8ffb932e66fa664cd334
1 parent
691a0ae0
feat(dlcm&doc):支持华大智宝cpu卡,并增加相关文档资料
支持华大智宝cpu卡,并增加相关文档资料。主要修改替换秘钥接口和创建文件接口。
Showing
22 changed files
with
6870 additions
and
23 deletions
dlcm/dlcm/DLCCard.cc
... | ... | @@ -280,8 +280,7 @@ int DLCCard::InstallCardKey(const unsigned char* dir, const unsigned char key_id |
280 | 280 | { |
281 | 281 | int result = 0; |
282 | 282 | |
283 | - | |
284 | - unsigned char dir_hex[2] = { 0 }, key_hex[16] = { 0 },/* au8OldKey[16] = { 0 },*/ main_key_hex[16] = { 0 }; | |
283 | + unsigned char dir_hex[2] = { 0 }, key_hex[16] = { 0 }, main_key_hex[16] = { 0 }; | |
285 | 284 | StringToHex(dir, 4, dir_hex); |
286 | 285 | StringToHex(key, 32, key_hex); |
287 | 286 | StringToHex(key_main, 32, main_key_hex); |
... | ... | @@ -393,6 +392,41 @@ int DLCCard::InstallCardKey(const unsigned char* dir, const unsigned char key_id |
393 | 392 | CalculateMac(cmd, 37, random, main_key_hex, &cmd[37]); |
394 | 393 | result = InstallKey(cmd, 41); |
395 | 394 | } |
395 | + case kCardHDZB: | |
396 | + { | |
397 | + unsigned char cmd[33] = { 0x84, 0xd4, 0x01, 0x00, 0x1c }; | |
398 | + unsigned char key_data[24] = { 0 }; | |
399 | + key_data[0] = 0x13; | |
400 | + key_data[3] = 0x00; | |
401 | + memcpy(&key_data[4], key_hex, 16); | |
402 | + key_data[20] = 0x80; | |
403 | + key_data[21] = 0x00; | |
404 | + key_data[22] = 0x00; | |
405 | + key_data[23] = 0x00; | |
406 | + | |
407 | + if (key_type == 0) | |
408 | + { | |
409 | + key_data[1] = 0x00; | |
410 | + key_data[2] = 0x00; | |
411 | + } | |
412 | + else if (key_type == 1) | |
413 | + { | |
414 | + key_data[1] = 0x00; | |
415 | + key_data[2] = 0x01; | |
416 | + } | |
417 | + else if (key_type == 2) | |
418 | + { | |
419 | + key_data[1] = 0x01; | |
420 | + key_data[2] = 0x01; | |
421 | + } | |
422 | + | |
423 | + Encrypt(key_data, 24, main_key_hex, &cmd[5]); | |
424 | + | |
425 | + unsigned char random[8] = { 0 }; | |
426 | + GetRandom(random, 8); | |
427 | + CalculateMac(cmd, 29, random, main_key_hex, &cmd[29]); | |
428 | + result = InstallKey(cmd, 33); | |
429 | + } | |
396 | 430 | break; |
397 | 431 | } |
398 | 432 | return result; |
... | ... | @@ -717,6 +751,61 @@ int DLCCard::CreatCardFile(const unsigned char* parent_dir, const unsigned char* |
717 | 751 | } |
718 | 752 | |
719 | 753 | } |
754 | + else if (card_mf = kCardHDZB) | |
755 | + { | |
756 | + if (file_type == kFTDDF) | |
757 | + { | |
758 | + if (SelectDir(parent_dir_hex)) | |
759 | + { | |
760 | + return kCanNotFindDir; | |
761 | + } | |
762 | + | |
763 | + unsigned char key[16] = { 0 }; | |
764 | + StringToHex((const unsigned char*)k25FileKey, 32, key); | |
765 | + if (ExternalAuthenticate(0x00, key, NULL)) | |
766 | + { | |
767 | + return kVerifyKeyFailure; | |
768 | + } | |
769 | + | |
770 | + unsigned char create_file_cmd[26] = { 0x80, 0xe0, 0x00, 0x02, 0x1d }; | |
771 | + memcpy(&create_file_cmd[5], file_name_hex, 2); | |
772 | + memcpy(&create_file_cmd[7], file_size_hex, 2); | |
773 | + create_file_cmd[9] = 0x00; | |
774 | + create_file_cmd[10] = 0x00; | |
775 | + create_file_cmd[11] = 0x00; | |
776 | + create_file_cmd[12] = 0x00; | |
777 | + create_file_cmd[13] = file_name_hex[1]; | |
778 | + create_file_cmd[14] = 0xb9; | |
779 | + create_file_cmd[15] = 0x00; | |
780 | + create_file_cmd[16] = 0x01; | |
781 | + create_file_cmd[17] = 0x03; | |
782 | + memcpy(&create_file_cmd[18], kDF10FileAID, 8); | |
783 | + | |
784 | + unsigned char recv_data[kHalfBlock], recv_data_len = 0; | |
785 | + result = DLCDevice::Instance().SendCommand(create_file_cmd, 15, recv_data, recv_data_len); | |
786 | + | |
787 | + if (result != kSuccess) | |
788 | + { | |
789 | + result = kCreateKeyFileFailed; | |
790 | + break; | |
791 | + } | |
792 | + | |
793 | + unsigned char create_key_file_cmd[13] = { 0x80, 0xe0, 0x00, 0x0b, 0x08, 0x00, 0x10, 0x02, 0x00, 0x00, 0x33, 0x00, 0x00 }; | |
794 | + | |
795 | + unsigned char recv[kHalfBlock], recv_len = 0; | |
796 | + result = DLCDevice::Instance().SendCommand(create_key_file_cmd, 13, recv, recv_len); | |
797 | + } | |
798 | + else if (file_type == kFTEF) | |
799 | + { | |
800 | + unsigned char cmd[18] = { 0x80, 0xe0, 0x00, 0x03, 0x0d}; | |
801 | + memcpy(&cmd[5], file_name_hex, 2); | |
802 | + memcpy(&cmd[7], file_size_hex, 2); | |
803 | + memset(&cmd[9], 0x00, 9); | |
804 | + | |
805 | + unsigned char recv[kHalfBlock], recv_len = 0; | |
806 | + result = DLCDevice::Instance().SendCommand(cmd, 18, recv, recv_len); | |
807 | + } | |
808 | + } | |
720 | 809 | }while (0); |
721 | 810 | |
722 | 811 | return result; | ... | ... |
dlcm/dlcm/DLCCard.h
dlcm/dlcm/stdafx.h
... | ... | @@ -5,27 +5,6 @@ |
5 | 5 | #include "dcrf32.h" |
6 | 6 | #include "CDLTools.h" |
7 | 7 | |
8 | - | |
9 | -//const int NULL = 0; | |
10 | - | |
11 | -//typedef signed char int8_t; | |
12 | -//typedef short unsigned int_t; | |
13 | -//typedef int int_t; | |
14 | -//typedef long long int64_t; | |
15 | -//typedef unsigned char unsigned char; | |
16 | -//typedef unsigned short uunsigned int_t; | |
17 | -//typedef unsigned int uint_t; | |
18 | -//typedef unsigned long long uint64_t; | |
19 | -//typedef unsigned char* PBlock; | |
20 | - | |
21 | -//#define BLOCK 250 //目前文件0005和0015文件最大250个字节,可以存储500个字符 | |
22 | -//#define RBLOCK 254 //加上结尾9000,最大可返回254字节的数据 | |
23 | -//#define HBLOCK 256 | |
24 | -//#define QBLOCK 128 | |
25 | -//#define WBLOCK 521 | |
26 | -//#define DBLOCK 1024 | |
27 | -//# | |
28 | - | |
29 | 8 | const int kHalfBlock = 256; |
30 | 9 | const int kBlock = 512; |
31 | 10 | const int kDoubleBlock = 1024; | ... | ... |
doc/D8&&T10ULM最新开发包/demo/help.chm
0 → 100644
No preview for this file type
doc/D8&&T10ULM最新开发包/demo/help.chw
0 → 100644
No preview for this file type
doc/D8&&T10ULM最新开发包/sdk/dcrf32.h
0 → 100644
1 | +// -*- mode:c++ -*- | |
2 | + | |
3 | +/** | |
4 | + * @file | |
5 | + * @author Wei Yang <wstcreator@hotmail.com> | |
6 | + * @date Tue Dec 20 11:42:16 2016 | |
7 | + * @brief 读写器功能接口声明文件。 | |
8 | + */ | |
9 | + | |
10 | +#ifndef DCRF32_H_ | |
11 | +#define DCRF32_H_ | |
12 | + | |
13 | +#ifdef WIN32 | |
14 | +#include <winsock2.h> | |
15 | +#pragma comment(lib, "ws2_32.lib") | |
16 | +#define USER_API __stdcall | |
17 | +#else | |
18 | +typedef int HANDLE; | |
19 | +#define USER_API | |
20 | +#endif | |
21 | + | |
22 | +#ifdef __cplusplus | |
23 | +extern "C" { | |
24 | +#endif | |
25 | + | |
26 | + /** | |
27 | + * @brief 库入口。 | |
28 | + * @par 说明: | |
29 | + * 可以获取或设置一些库相关参数,此接口可不掉用,如需调用必须放在所有其它接口之前调用。 | |
30 | + * @param[in] flag 标记,用于决定 @a context 的类型和含义。 | |
31 | + * @n 0 - 表示获取库版本, @a context 类型为char *,请至少分配8个字节。 | |
32 | + * @n 1 - 表示设置库的工作目录, @a context 类型为const char *。 | |
33 | + * @n 2 - 表示设置库调用者的工作目录, @a context 类型为const char *。 | |
34 | + * @n 3 - 保留内部使用,表示设置辅助接口上下文, @a context 类型为自定义结构指针。 | |
35 | + * @n 4 - 保留内部使用,表示获取辅助接口上下文, @a context 类型为自定义结构指针。 | |
36 | + * @param[in,out] context 参数实际类型和含义由 @a flag 的值来决定。 | |
37 | + */ | |
38 | + void USER_API LibMain(int flag, void *context); | |
39 | + | |
40 | + /** | |
41 | + * @brief 配置端口名称。 | |
42 | + * @par 说明: | |
43 | + * 用于配置端口对应的物理名称,在调用 ::dc_init 之前可以使用此接口来改变端口号内部对应的默认物理名称,如Windows平台下0端口号对应的默认名称为"COM1",Linux平台下0端口号对应的默认名称为"/dev/ttyS0"。 | |
44 | + * @param[in] port 端口号,同 ::dc_init 的 @a port ,但仅支持串口模式和蓝牙模式的端口号,即:0~99、300~399。 | |
45 | + * @param[in] name 物理名称。 | |
46 | + */ | |
47 | + void USER_API dc_config_port_name(short port, const char *name); | |
48 | + | |
49 | + /** | |
50 | + * @brief 打开设备。 | |
51 | + * @par 说明: | |
52 | + * 建立设备的通讯并且分配相应的资源,大部分功能接口都需要在此过程后才能进行,在不需要使用设备后,必须使用 ::dc_exit 去关闭设备的通讯和释放资源。 | |
53 | + * @param[in] port 端口号。 | |
54 | + * @n 0~99 - 表示串口模式(编号物理对应),编号0表示第一个串口合法设备,编号1表示第二个串口合法设备,以此类推。 | |
55 | + * @n 100~199 - 表示USB模式(编号逻辑对应),编号100表示第一个USB合法设备,编号1表示第二个USB合法设备,以此类推。 | |
56 | + * @n 200~299 - 表示PCSC模式(编号逻辑对应),编号200表示第一个PCSC合法设备,编号201表示第二个PCSC合法设备,以此类推。 | |
57 | + * @n 300~399 - 表示蓝牙模式(编号逻辑对应),编号300表示第一个蓝牙合法设备,编号301表示第二个蓝牙合法设备,以此类推。 | |
58 | + * @param[in] baud 波特率,只针对串口模式有效。 | |
59 | + * @return <0表示失败,否则为设备标识符。 | |
60 | + */ | |
61 | + HANDLE USER_API dc_init(short port, int baud); | |
62 | + | |
63 | + /** | |
64 | + * @brief 关闭设备。 | |
65 | + * @par 说明: | |
66 | + * 关闭设备的通讯和释放资源。 | |
67 | + * @param[in] icdev 设备标识符。 | |
68 | + * @return <0表示失败,==0表示成功。 | |
69 | + */ | |
70 | + short USER_API dc_exit(HANDLE icdev); | |
71 | + | |
72 | + /** | |
73 | + * @brief 获取名称。 | |
74 | + * @par 说明: | |
75 | + * 此接口将获取一个用于识别当前打开设备与软件层对应的逻辑名称,获取的逻辑名称仅供内部使用。 | |
76 | + * @param[in] icdev 设备标识符。 | |
77 | + * @param[out] name 返回的名称字符串,请至少分配64个字节。 | |
78 | + * @return <0表示失败,==0表示成功。 | |
79 | + */ | |
80 | + short USER_API dc_getname(HANDLE icdev, char *name); | |
81 | + | |
82 | + /** | |
83 | + * @brief 保留。 | |
84 | + */ | |
85 | + short USER_API dc_config(HANDLE icdev, unsigned char _Mode, unsigned char _Baud); | |
86 | + | |
87 | + /** | |
88 | + * @brief 寻卡请求。 | |
89 | + * @par 说明: | |
90 | + * 支持ISO 14443 Type A类型卡片的寻卡请求。 | |
91 | + * @param[in] icdev 设备标识符。 | |
92 | + * @param[in] _Mode 模式,0x00表示对空闲卡进行操作,0x01表示对所有卡操作。 | |
93 | + * @param[out] TagType 返回的ATQA值。 | |
94 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
95 | + */ | |
96 | + short USER_API dc_request(HANDLE icdev, unsigned char _Mode, unsigned short *TagType); | |
97 | + | |
98 | + /** | |
99 | + * @brief 防卡冲突。 | |
100 | + * @par 说明: | |
101 | + * 支持ISO 14443 Type A类型卡片的防卡冲突。 | |
102 | + * @param[in] icdev 设备标识符。 | |
103 | + * @param[in] _Bcnt 保留,固定为0x00。 | |
104 | + * @param[out] _Snr 返回的卡序列号。 | |
105 | + * @return <0表示失败,==0表示成功。 | |
106 | + */ | |
107 | + short USER_API dc_anticoll(HANDLE icdev, unsigned char _Bcnt, unsigned int *_Snr); | |
108 | + | |
109 | + /** | |
110 | + * @brief 选卡操作。 | |
111 | + * @par 说明: | |
112 | + * 通过指定序列号,选取相应的卡片。 | |
113 | + * @param[in] icdev 设备标识符。 | |
114 | + * @param[in] _Snr 卡片序列号。 | |
115 | + * @param[out] _Size 返回的SAK值。 | |
116 | + * @return <0表示失败,==0表示成功。 | |
117 | + */ | |
118 | + short USER_API dc_select(HANDLE icdev, unsigned int _Snr, unsigned char *_Size); | |
119 | + | |
120 | + /** | |
121 | + * @brief 验证M1卡密码。 | |
122 | + * @par 说明: | |
123 | + * 使用设备内部装载的密码来验证M1卡密码。 | |
124 | + * @param[in] icdev 设备标识符。 | |
125 | + * @param[in] _Mode 模式。 | |
126 | + * @n 0x00 - 表示用设备内部装载的第0套A密码来验证当前选取卡片的A密码。 | |
127 | + * @n 0x01 - 表示用设备内部装载的第1套A密码来验证当前选取卡片的A密码。 | |
128 | + * @n 0x02 - 表示用设备内部装载的第2套A密码来验证当前选取卡片的A密码。 | |
129 | + * @n 0x04 - 表示用设备内部装载的第0套B密码来验证当前选取卡片的B密码。 | |
130 | + * @n 0x05 - 表示用设备内部装载的第1套B密码来验证当前选取卡片的B密码。 | |
131 | + * @n 0x06 - 表示用设备内部装载的第2套B密码来验证当前选取卡片的B密码。 | |
132 | + * @param[in] _SecNr 要验证密码的扇区号。 | |
133 | + * @return <0表示失败,==0表示成功。 | |
134 | + */ | |
135 | + short USER_API dc_authentication(HANDLE icdev, unsigned char _Mode, unsigned char _SecNr); | |
136 | + | |
137 | + /** | |
138 | + * @brief 终止卡操作。 | |
139 | + * @par 说明: | |
140 | + * 使卡片进入终止状态,此时必须把卡移出感应区后再次放入感应区才能寻到这张卡。 | |
141 | + * @param[in] icdev 设备标识符。 | |
142 | + * @return <0表示失败,==0表示成功。 | |
143 | + */ | |
144 | + short USER_API dc_halt(HANDLE icdev); | |
145 | + | |
146 | + /** | |
147 | + * @brief 读卡数据。 | |
148 | + * @par 说明: | |
149 | + * 读取卡内数据,对于M1卡,一次读取一个块的数据,为16个字节;对于ML卡,一次读取相同属性的两页,为8个字节。 | |
150 | + * @param[in] icdev 设备标识符。 | |
151 | + * @param[in] _Adr 地址。 | |
152 | + * @n M1卡 - S50块地址(0~63),S70块地址(0~255)。 | |
153 | + * @n ML卡 - 页地址(0~11)。 | |
154 | + * @param[out] _Data 固定返回16个字节数据,真实数据可能小于16个字节。 | |
155 | + * @return <0表示失败,==0表示成功。 | |
156 | + */ | |
157 | + short USER_API dc_read(HANDLE icdev, unsigned char _Adr, unsigned char *_Data); | |
158 | + | |
159 | + /** | |
160 | + * @brief 读卡数据。 | |
161 | + * @par 说明: | |
162 | + * ::dc_read 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
163 | + */ | |
164 | + short USER_API dc_read_hex(HANDLE icdev, unsigned char _Adr, char *_Data); | |
165 | + | |
166 | + /** | |
167 | + * @brief 写卡数据。 | |
168 | + * @par 说明: | |
169 | + * 写入数据到卡片内,对于M1卡,一次必须写入一个块的数据,为16个字节;对于ML卡,一次必须写入一个页的数据,为4个字节。 | |
170 | + * @param[in] icdev 设备标识符。 | |
171 | + * @param[in] _Adr 地址。 | |
172 | + * @n M1卡 - S50块地址(1~63),S70块地址(1~255)。 | |
173 | + * @n ML卡 - 页地址(2~11)。 | |
174 | + * @param[out] _Data 固定传入16个字节数据,真实数据可能小于16个字节。 | |
175 | + * @return <0表示失败,==0表示成功。 | |
176 | + */ | |
177 | + short USER_API dc_write(HANDLE icdev, unsigned char _Adr, unsigned char *_Data); | |
178 | + | |
179 | + /** | |
180 | + * @brief 写卡数据。 | |
181 | + * @par 说明: | |
182 | + * ::dc_write 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
183 | + */ | |
184 | + short USER_API dc_write_hex(HANDLE icdev, unsigned char _Adr, char *_Data); | |
185 | + | |
186 | + /** | |
187 | + * @brief 保留。 | |
188 | + */ | |
189 | + short USER_API dc_write_TS(HANDLE icdev); | |
190 | + | |
191 | + /** | |
192 | + * @brief 装载设备密码。 | |
193 | + * @par 说明: | |
194 | + * 装载M1卡密码到设备内部,装载后可以在特定时候用 ::dc_authentication 来验证M1卡密码。注意:由于多次装载设备密码可能会受硬件存储寿命限制,此接口只用于密码相对固定,装载次数少的场合。 | |
195 | + * @param[in] icdev 设备标识符。 | |
196 | + * @param[in] _Mode 模式,同 ::dc_authentication 的 @a _Mode 。 | |
197 | + * @param[in] _SecNr 对应装载的扇区号。 | |
198 | + * @param[in] _NKey 写入设备中的卡密码,固定为6个字节。 | |
199 | + * @return <0表示失败,==0表示成功。 | |
200 | + */ | |
201 | + short USER_API dc_load_key(HANDLE icdev, unsigned char _Mode, unsigned char _SecNr, unsigned char *_NKey); | |
202 | + | |
203 | + /** | |
204 | + * @brief 装载设备密码。 | |
205 | + * @par 说明: | |
206 | + * ::dc_load_key 的HEX形式接口,参数 @a _NKey 为HEX格式。 | |
207 | + */ | |
208 | + short USER_API dc_load_key_hex(HANDLE icdev, unsigned char _Mode, unsigned char _SecNr, char *_NKey); | |
209 | + | |
210 | + /** | |
211 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
212 | + * @par 说明: | |
213 | + * 内部包含了 ::dc_request ::dc_anticoll ::dc_select 的功能。 | |
214 | + * @param[in] icdev 设备标识符。 | |
215 | + * @param[in] _Mode 模式,同 ::dc_request 的 @a _Mode 。 | |
216 | + * @param[out] _Snr 返回的卡序列号。 | |
217 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
218 | + */ | |
219 | + short USER_API dc_card(HANDLE icdev, unsigned char _Mode, unsigned int *_Snr); | |
220 | + | |
221 | + /** | |
222 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
223 | + * @par 说明: | |
224 | + * ::dc_card 的HEX形式接口,参数 @a snrstr 为HEX格式。 | |
225 | + */ | |
226 | + short USER_API dc_card_hex(HANDLE icdev, unsigned char _Mode, unsigned char *snrstr); | |
227 | + | |
228 | + /** | |
229 | + * @brief M1卡密码配置块操作。 | |
230 | + * @par 说明: | |
231 | + * 修改M1卡密码配置块数据,M1卡密码配置块也就是每个扇区的最后一块,包含密码A、控制字节、密码B数据。 | |
232 | + * @param[in] icdev 设备标识符。 | |
233 | + * @param[in] _SecNr 扇区号。 | |
234 | + * @param[in] _KeyA 密码A,固定为6个字节。 | |
235 | + * @param[in] _B0 块0控制字(当一扇区有16块时,对应为块0~4的控制字),低3位(D2D1D0)对应C10、C20、C30。 | |
236 | + * @param[in] _B1 块1控制字(当一扇区有16块时,对应为块5~9的控制字),低3位(D2D1D0)对应C11、C21、C31。 | |
237 | + * @param[in] _B2 块2控制字(当一扇区有16块时,对应为块10~14的控制字),低3位(D2D1D0)对应C12、C22、C32。 | |
238 | + * @param[in] _B3 块3控制字(当一扇区有16块时,对应为块15的控制字),低3位(D2D1D0)对应C13、C23、C33。 | |
239 | + * @param[in] _Bk 保留,固定为0x00。 | |
240 | + * @param[in] _KeyB 密码B,固定为6个字节。 | |
241 | + * @return <0表示失败,==0表示成功。 | |
242 | + */ | |
243 | + short USER_API dc_changeb3(HANDLE icdev, unsigned char _SecNr, unsigned char *_KeyA, unsigned char _B0, unsigned char _B1, unsigned char _B2, unsigned char _B3, unsigned char _Bk, unsigned char *_KeyB); | |
244 | + | |
245 | + /** | |
246 | + * @brief M1卡密码配置块操作。 | |
247 | + * @par 说明: | |
248 | + * ::dc_changeb3 的HEX形式接口,参数 @a _KeyA @a _KeyB 为HEX格式。 | |
249 | + */ | |
250 | + short USER_API dc_changeb3_hex(HANDLE icdev, unsigned char _SecNr, const char *_KeyA, unsigned char _B0, unsigned char _B1, unsigned char _B2, unsigned char _B3, unsigned char _Bk, const char *_KeyB); | |
251 | + | |
252 | + /** | |
253 | + * @brief M1卡值块回传。 | |
254 | + * @par 说明: | |
255 | + * 用于把指定的值块内容暂存,后续可以使用 ::dc_transfer 将暂存值块内容传递到另一块中,实现块与块之间数值传送。 | |
256 | + * @param[in] icdev 设备标识符。 | |
257 | + * @param[in] _Adr 要回传的块地址。 | |
258 | + * @return <0表示失败,==0表示成功。 | |
259 | + */ | |
260 | + short USER_API dc_restore(HANDLE icdev, unsigned char _Adr); | |
261 | + | |
262 | + /** | |
263 | + * @brief M1卡值块传递。 | |
264 | + * @par 说明: | |
265 | + * 用于把 ::dc_restore 暂存的值块内容传递到指定块中,实现块与块之间数值传送。 | |
266 | + * @param[in] icdev 设备标识符。 | |
267 | + * @param[in] _Adr 要传递的块地址。 | |
268 | + * @return <0表示失败,==0表示成功。 | |
269 | + */ | |
270 | + short USER_API dc_transfer(HANDLE icdev, unsigned char _Adr); | |
271 | + | |
272 | + /** | |
273 | + * @brief M1卡值块加值。 | |
274 | + * @par 说明: | |
275 | + * 用于操作M1卡值块,使块值增加指定数值。 | |
276 | + * @param[in] icdev 设备标识符。 | |
277 | + * @param[in] _Adr 块地址。 | |
278 | + * @param[in] _Value 要增加的数值。 | |
279 | + * @return <0表示失败,==0表示成功。 | |
280 | + */ | |
281 | + short USER_API dc_increment(HANDLE icdev, unsigned char _Adr, unsigned int _Value); | |
282 | + | |
283 | + /** | |
284 | + * @brief M1卡值块减值。 | |
285 | + * @par 说明: | |
286 | + * 用于操作M1卡值块,使块值减少指定数值。 | |
287 | + * @param[in] icdev 设备标识符。 | |
288 | + * @param[in] _Adr 块地址。 | |
289 | + * @param[in] _Value 要减少的数值。 | |
290 | + * @return <0表示失败,==0表示成功。 | |
291 | + */ | |
292 | + short USER_API dc_decrement(HANDLE icdev, unsigned char _Adr, unsigned int _Value); | |
293 | + | |
294 | + /** | |
295 | + * @brief M1卡值块初始化。 | |
296 | + * @par 说明: | |
297 | + * 用于操作M1卡,使得指定块为值块,并且初始化此值块为指定数值。 | |
298 | + * @param[in] icdev 设备标识符。 | |
299 | + * @param[in] _Adr 块地址。 | |
300 | + * @param[in] _Value 初始化数值。 | |
301 | + * @return <0表示失败,==0表示成功。 | |
302 | + */ | |
303 | + short USER_API dc_initval(HANDLE icdev, unsigned char _Adr, unsigned int _Value); | |
304 | + | |
305 | + /** | |
306 | + * @brief M1卡值块读值。 | |
307 | + * @par 说明: | |
308 | + * 用于读取M1卡值块数值。 | |
309 | + * @param[in] icdev 设备标识符。 | |
310 | + * @param[in] _Adr 要读取的块地址。 | |
311 | + * @param[out] _Value 返回的数值。 | |
312 | + * @return <0表示失败,==0表示成功。 | |
313 | + */ | |
314 | + short USER_API dc_readval(HANDLE icdev, unsigned char _Adr, unsigned int *_Value); | |
315 | + | |
316 | + /** | |
317 | + * @brief ML卡值初始化。 | |
318 | + * @par 说明: | |
319 | + * 用于操作ML卡,初始化卡内容为指定数值。 | |
320 | + * @param[in] icdev 设备标识符。 | |
321 | + * @param[in] _Value 初始化数值。 | |
322 | + * @return <0表示失败,==0表示成功。 | |
323 | + */ | |
324 | + short USER_API dc_initval_ml(HANDLE icdev, unsigned short _Value); | |
325 | + | |
326 | + /** | |
327 | + * @brief ML卡读值。 | |
328 | + * @par 说明: | |
329 | + * 用于读取ML卡数值。 | |
330 | + * @param[in] icdev 设备标识符。 | |
331 | + * @param[out] _Value 返回的数值。 | |
332 | + * @return <0表示失败,==0表示成功。 | |
333 | + */ | |
334 | + short USER_API dc_readval_ml(HANDLE icdev, unsigned short *_Value); | |
335 | + | |
336 | + /** | |
337 | + * @brief ML卡减值。 | |
338 | + * @par 说明: | |
339 | + * 用于操作ML卡值,使值减少指定数值。 | |
340 | + * @param[in] icdev 设备标识符。 | |
341 | + * @param[in] _Value 要减少的数值。 | |
342 | + * @return <0表示失败,==0表示成功。 | |
343 | + */ | |
344 | + short USER_API dc_decrement_ml(HANDLE icdev, unsigned short _Value); | |
345 | + | |
346 | + /** | |
347 | + * @brief 验证M1卡密码。 | |
348 | + * @par 说明: | |
349 | + * 使用设备内部装载的密码来验证M1卡密码。 | |
350 | + * @param[in] icdev 设备标识符。 | |
351 | + * @param[in] _Mode 模式,同 ::dc_authentication 的 @a _Mode 。 | |
352 | + * @param[in] KeyNr 要验证密码的扇区号。 | |
353 | + * @param[in] Adr 要验证密码扇区中的块号,此块号非卡片绝对块号。 | |
354 | + * @return <0表示失败,==0表示成功。 | |
355 | + */ | |
356 | + short USER_API dc_authentication_2(HANDLE icdev, unsigned char _Mode, unsigned char KeyNr, unsigned char Adr); | |
357 | + | |
358 | + /** | |
359 | + * @brief 第二级防卡冲突。 | |
360 | + * @par 说明: | |
361 | + * 支持ISO 14443 Type A类型卡片的第二级防卡冲突。 | |
362 | + * @param[in] icdev 设备标识符。 | |
363 | + * @param[in] _Bcnt 保留,固定为0x00。 | |
364 | + * @param[out] _Snr 返回的卡序列号。 | |
365 | + * @return <0表示失败,==0表示成功。 | |
366 | + */ | |
367 | + short USER_API dc_anticoll2(HANDLE icdev, unsigned char _Bcnt, unsigned int *_Snr); | |
368 | + | |
369 | + /** | |
370 | + * @brief 第二级选卡操作。 | |
371 | + * @par 说明: | |
372 | + * 通过指定序列号,选取相应的卡片。 | |
373 | + * @param[in] icdev 设备标识符。 | |
374 | + * @param[in] _Snr 卡片序列号。 | |
375 | + * @param[out] _Size 返回的SAK值。 | |
376 | + * @return <0表示失败,==0表示成功。 | |
377 | + */ | |
378 | + short USER_API dc_select2(HANDLE icdev, unsigned int _Snr, unsigned char *_Size); | |
379 | + | |
380 | + /** | |
381 | + * @brief 保留。 | |
382 | + */ | |
383 | + short USER_API dc_HL_write(HANDLE icdev, unsigned char _Mode, unsigned char _Adr, unsigned int *_Snr, unsigned char *_Data); | |
384 | + | |
385 | + /** | |
386 | + * @brief 保留。 | |
387 | + */ | |
388 | + short USER_API dc_HL_writehex(HANDLE icdev, unsigned char _Mode, unsigned char _Adr, unsigned int *_Snr, unsigned char *_Data); | |
389 | + | |
390 | + /** | |
391 | + * @brief 保留。 | |
392 | + */ | |
393 | + short USER_API dc_HL_read(HANDLE icdev, unsigned char _Mode, unsigned char _Adr, unsigned int _Snr, unsigned char *_Data, unsigned int *_NSnr); | |
394 | + | |
395 | + /** | |
396 | + * @brief 保留。 | |
397 | + */ | |
398 | + short USER_API dc_HL_readhex(HANDLE icdev, unsigned char _Mode, unsigned char _Adr, unsigned int _Snr, unsigned char *_Data, unsigned int *_NSnr); | |
399 | + | |
400 | + /** | |
401 | + * @brief 高层验证M1卡密码。 | |
402 | + * @par 说明: | |
403 | + * 内部包含了 ::dc_card ::dc_authentication 的功能。 | |
404 | + * @param[in] icdev 设备标识符。 | |
405 | + * @param[in] reqmode 寻卡请求模式,同 ::dc_request 的 @a _Mode 。 | |
406 | + * @param[in] snr 保留,固定为0。 | |
407 | + * @param[in] authmode 验证模式,同 ::dc_authentication 的 @a _Mode 。 | |
408 | + * @param[in] secnr 要验证密码的扇区号。 | |
409 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
410 | + */ | |
411 | + short USER_API dc_HL_authentication(HANDLE icdev, unsigned char reqmode, unsigned int snr, unsigned char authmode, unsigned char secnr); | |
412 | + | |
413 | + /** | |
414 | + * @brief 检查之前写入的数据。 | |
415 | + * @par 说明: | |
416 | + * 内部包含了 ::dc_card ::dc_authentication ::dc_read 的功能,并且验证传入和读取的数据是否一致。 | |
417 | + * @param[in] icdev 设备标识符。 | |
418 | + * @param[in] Snr 卡序列号,用于内部核对。 | |
419 | + * @param[in] authmode 验证模式,同 ::dc_authentication 的 @a _Mode 。 | |
420 | + * @param[in] Adr 块地址。 | |
421 | + * @param[in] _data 块数据,固定为16个字节。 | |
422 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
423 | + */ | |
424 | + short USER_API dc_check_write(HANDLE icdev, unsigned int Snr, unsigned char authmode, unsigned char Adr, unsigned char *_data); | |
425 | + | |
426 | + /** | |
427 | + * @brief 检查之前写入的数据。 | |
428 | + * @par 说明: | |
429 | + * ::dc_check_write 的HEX形式接口,参数 @a _data 为HEX格式。 | |
430 | + */ | |
431 | + short USER_API dc_check_writehex(HANDLE icdev, unsigned int Snr, unsigned char authmode, unsigned char Adr, unsigned char *_data); | |
432 | + | |
433 | + /** | |
434 | + * @brief 获取设备版本。 | |
435 | + * @par 说明: | |
436 | + * 获取设备内部固件代码的版本。 | |
437 | + * @param[in] icdev 设备标识符。 | |
438 | + * @param[out] sver 返回的版本字符串,请至少分配128个字节。 | |
439 | + * @return <0表示失败,==0表示成功。 | |
440 | + */ | |
441 | + short USER_API dc_getver(HANDLE icdev, unsigned char *sver); | |
442 | + | |
443 | + /** | |
444 | + * @brief 保留。 | |
445 | + */ | |
446 | + short USER_API dc_update(HANDLE icdev); | |
447 | + | |
448 | + /** | |
449 | + * @brief 保留。 | |
450 | + */ | |
451 | + short USER_API dc_clr_control_bit(HANDLE icdev, unsigned char _b); | |
452 | + | |
453 | + /** | |
454 | + * @brief 保留。 | |
455 | + */ | |
456 | + short USER_API dc_set_control_bit(HANDLE icdev, unsigned char _b); | |
457 | + | |
458 | + /** | |
459 | + * @brief 复位射频。 | |
460 | + * @par 说明: | |
461 | + * 复位设备的射频,可以关闭,关闭并且启动。 | |
462 | + * @param[in] icdev 设备标识符。 | |
463 | + * @param[in] _Msec 为0表示关闭射频,否则为复位时间,单位为10毫秒,一般调用建议值为10。 | |
464 | + * @return <0表示失败,==0表示成功。 | |
465 | + */ | |
466 | + short USER_API dc_reset(HANDLE icdev, unsigned short _Msec); | |
467 | + | |
468 | + /** | |
469 | + * @brief 设备蜂鸣。 | |
470 | + * @par 说明: | |
471 | + * 设备蜂鸣器发出指定时间的蜂鸣声。 | |
472 | + * @param[in] icdev 设备标识符。 | |
473 | + * @param[in] _Msec 蜂鸣时间,单位为10毫秒。 | |
474 | + * @return <0表示失败,==0表示成功。 | |
475 | + */ | |
476 | + short USER_API dc_beep(HANDLE icdev, unsigned short _Msec); | |
477 | + | |
478 | + /** | |
479 | + * @brief 液晶显示。 | |
480 | + * @par 说明: | |
481 | + * 显示指定字符串到液晶屏幕上。 | |
482 | + * @param[in] icdev 设备标识符。 | |
483 | + * @param[in] dispstr 要显示的字符串。 | |
484 | + * @return <0表示失败,==0表示成功。 | |
485 | + */ | |
486 | + short USER_API dc_disp_str(HANDLE icdev, char *dispstr); | |
487 | + | |
488 | + /** | |
489 | + * @brief 读EEPROM。 | |
490 | + * @par 说明: | |
491 | + * 读取设备内部EEPROM中的数据,可以用作数据保存等。 | |
492 | + * @param[in] icdev 设备标识符。 | |
493 | + * @param[in] offset 偏移地址。 | |
494 | + * @param[in] length 读取长度。 | |
495 | + * @param[out] rec_buffer 返回的数据。 | |
496 | + * @return <0表示失败,==0表示成功。 | |
497 | + */ | |
498 | + short USER_API dc_srd_eeprom(HANDLE icdev, short offset, short length, unsigned char *rec_buffer); | |
499 | + | |
500 | + /** | |
501 | + * @brief 写EEPROM。 | |
502 | + * @par 说明: | |
503 | + * 写入数据到设备内部EEPROM中,可以用作数据保存等。 | |
504 | + * @param[in] icdev 设备标识符。 | |
505 | + * @param[in] offset 偏移地址。 | |
506 | + * @param[in] length 写入长度。 | |
507 | + * @param[in] send_buffer 传入数据。 | |
508 | + * @return <0表示失败,==0表示成功。 | |
509 | + */ | |
510 | + short USER_API dc_swr_eeprom(HANDLE icdev, short offset, short length, unsigned char *send_buffer); | |
511 | + | |
512 | + /** | |
513 | + * @brief 写EEPROM。 | |
514 | + * @par 说明: | |
515 | + * 同 ::dc_swr_eeprom 。 | |
516 | + */ | |
517 | + short USER_API swr_alleeprom(HANDLE icdev, short offset, short length, unsigned char *snd_buffer); | |
518 | + | |
519 | + /** | |
520 | + * @brief 读EEPROM。 | |
521 | + * @par 说明: | |
522 | + * 同 ::dc_srd_eeprom 。 | |
523 | + */ | |
524 | + short USER_API srd_alleeprom(HANDLE icdev, short offset, short length, unsigned char *receive_buffer); | |
525 | + | |
526 | + /** | |
527 | + * @brief 读EEPROM。 | |
528 | + * @par 说明: | |
529 | + * ::dc_srd_eeprom 的HEX形式接口,参数 @a rec_buffer 为HEX格式。 | |
530 | + */ | |
531 | + short USER_API dc_srd_eepromhex(HANDLE icdev, short offset, short length, unsigned char *rec_buffer); | |
532 | + | |
533 | + /** | |
534 | + * @brief 写EEPROM。 | |
535 | + * @par 说明: | |
536 | + * ::dc_swr_eeprom 的HEX形式接口,参数 @a send_buffer 为HEX格式。 | |
537 | + */ | |
538 | + short USER_API dc_swr_eepromhex(HANDLE icdev, short offset, short length, unsigned char *send_buffer); | |
539 | + | |
540 | + /** | |
541 | + * @brief 获取设备时间。 | |
542 | + * @par 说明: | |
543 | + * 获取设备当前的时间。 | |
544 | + * @param[in] icdev 设备标识符。 | |
545 | + * @param[out] time 返回的时间,长度为7个字节,格式为'年'、'星期'、'月'、'日'、'时'、'分'、'秒'。如:0x16,0x01,0x12,0x08,0x16,0x20,0x10表示2016年星期一12月8日16时20分10秒。 | |
546 | + * @return <0表示失败,==0表示成功。 | |
547 | + */ | |
548 | + short USER_API dc_gettime(HANDLE icdev, unsigned char *time); | |
549 | + | |
550 | + /** | |
551 | + * @brief 获取设备时间。 | |
552 | + * @par 说明: | |
553 | + * ::dc_gettime 的HEX形式接口,参数 @a time 为HEX格式。 | |
554 | + */ | |
555 | + short USER_API dc_gettimehex(HANDLE icdev, char *time); | |
556 | + | |
557 | + /** | |
558 | + * @brief 设置设备时间。 | |
559 | + * @par 说明: | |
560 | + * 设置设备的当前时间。 | |
561 | + * @param[in] icdev 设备标识符。 | |
562 | + * @param[in] time 传入时间,长度为7个字节,格式为'年'、'星期'、'月'、'日'、'时'、'分'、'秒'。如:0x16,0x01,0x12,0x08,0x16,0x20,0x10表示2016年星期一12月8日16时20分10秒。 | |
563 | + * @return <0表示失败,==0表示成功。 | |
564 | + */ | |
565 | + short USER_API dc_settime(HANDLE icdev, unsigned char *time); | |
566 | + | |
567 | + /** | |
568 | + * @brief 设置设备时间。 | |
569 | + * @par 说明: | |
570 | + * ::dc_settime 的HEX形式接口,参数 @a time 为HEX格式。 | |
571 | + */ | |
572 | + short USER_API dc_settimehex(HANDLE icdev, char *time); | |
573 | + | |
574 | + /** | |
575 | + * @brief 保留。 | |
576 | + */ | |
577 | + short USER_API dc_setbright(HANDLE icdev, unsigned char bright); | |
578 | + | |
579 | + /** | |
580 | + * @brief 保留。 | |
581 | + */ | |
582 | + short USER_API dc_ctl_mode(HANDLE icdev, unsigned char mode); | |
583 | + | |
584 | + /** | |
585 | + * @brief 保留。 | |
586 | + */ | |
587 | + short USER_API dc_disp_mode(HANDLE icdev, unsigned char mode); | |
588 | + | |
589 | + /** | |
590 | + * @brief 单DES加解密。 | |
591 | + * @par 说明: | |
592 | + * ::dcdes 的HEX形式接口,参数 @a key @a sour @a dest 为HEX格式。 | |
593 | + */ | |
594 | + short USER_API dcdeshex(unsigned char *key, unsigned char *sour, unsigned char *dest, short m); | |
595 | + | |
596 | + /** | |
597 | + * @brief 单DES加解密。 | |
598 | + * @par 说明: | |
599 | + * 使用单DES算法对数据进行加密/解密。 | |
600 | + * @param[in] key 8个字节密钥。 | |
601 | + * @param[in] sour 8个字节要做加密/解密的数据。 | |
602 | + * @param[out] dest 返回8个字节运算后的数据。 | |
603 | + * @param[in] m 模式,0-解密,1-加密。 | |
604 | + * @return <0表示失败,==0表示成功。 | |
605 | + */ | |
606 | + short USER_API dcdes(unsigned char *key, unsigned char *sour, unsigned char *dest, short m); | |
607 | + | |
608 | + /** | |
609 | + * @brief 指示灯点亮/熄灭。 | |
610 | + * @par 说明: | |
611 | + * 点亮/熄灭设备的指示灯。 | |
612 | + * @param[in] icdev 设备标识符。 | |
613 | + * @param[in] _OnOff 0-点亮,1-熄灭。 | |
614 | + * @return <0表示失败,==0表示成功。 | |
615 | + */ | |
616 | + short USER_API dc_light(HANDLE icdev, unsigned short _OnOff); | |
617 | + | |
618 | + /** | |
619 | + * @brief 液晶显示。 | |
620 | + * @par 说明: | |
621 | + * 显示指定数据到液晶屏幕上。 | |
622 | + * @param[in] icdev 设备标识符。 | |
623 | + * @param[in] offset 屏幕偏移。 | |
624 | + * @param[in] displen 显示数据的长度。 | |
625 | + * @param[in] dispstr 显示数据。 | |
626 | + * @return <0表示失败,==0表示成功。 | |
627 | + */ | |
628 | + short USER_API dc_high_disp(HANDLE icdev, unsigned char offset, unsigned char displen, unsigned char *dispstr); | |
629 | + | |
630 | + /** | |
631 | + * @brief 设置当前接触式卡座。 | |
632 | + * @par 说明: | |
633 | + * 设置当前接触式卡座为指定卡座,用于多卡座切换卡操作。 | |
634 | + * @param[in] icdev 设备标识符。 | |
635 | + * @param[in] _Byte 卡座编号。 | |
636 | + * @n 0x0C - 附卡座/接触式CPU1卡座。 | |
637 | + * @n 0x0B - 接触式CPU2卡座。 | |
638 | + * @n 0x0D - SAM1卡座。 | |
639 | + * @n 0x0E - SAM2卡座。 | |
640 | + * @n 0x0F - SAM3卡座。 | |
641 | + * @n 0x11 - SAM4卡座。 | |
642 | + * @n 0x12 - SAM5卡座。 | |
643 | + * @n 0x13 - SAM6卡座/ESAM芯片。 | |
644 | + * @n 0x14 - SAM7卡座。 | |
645 | + * @n 0x15 - SAM8卡座。 | |
646 | + * @return <0表示失败,==0表示成功。 | |
647 | + */ | |
648 | + short USER_API dc_setcpu(HANDLE icdev, unsigned char _Byte); | |
649 | + | |
650 | + /** | |
651 | + * @brief 接触式CPU卡复位。 | |
652 | + * @par 说明: | |
653 | + * 对当前卡座CPU卡进行复位操作,此复位为冷复位。 | |
654 | + * @param[in] icdev 设备标识符。 | |
655 | + * @param[out] rlen 返回复位信息的长度。 | |
656 | + * @param[out] databuffer 返回的复位信息,请至少分配128个字节。 | |
657 | + * @return <0表示失败,==0表示成功。 | |
658 | + */ | |
659 | + short USER_API dc_cpureset(HANDLE icdev, unsigned char *rlen, unsigned char *databuffer); | |
660 | + | |
661 | + /** | |
662 | + * @brief 接触式CPU卡指令交互。 | |
663 | + * @par 说明: | |
664 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口不封装卡协议部分。 | |
665 | + * @param[in] icdev 设备标识符。 | |
666 | + * @param[in] slen 发送数据的长度。 | |
667 | + * @param[in] sendbuffer 发送数据。 | |
668 | + * @param[out] rlen 返回数据的长度。 | |
669 | + * @param[out] databuffer 返回的数据。 | |
670 | + * @return <0表示失败,==0表示成功。 | |
671 | + */ | |
672 | + short USER_API dc_cpuapdusource(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
673 | + | |
674 | + /** | |
675 | + * @brief 接触式CPU卡指令交互。 | |
676 | + * @par 说明: | |
677 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
678 | + * @param[in] icdev 设备标识符。 | |
679 | + * @param[in] slen 发送数据的长度。 | |
680 | + * @param[in] sendbuffer 发送数据。 | |
681 | + * @param[out] rlen 返回数据的长度。 | |
682 | + * @param[out] databuffer 返回的数据。 | |
683 | + * @return <0表示失败,==0表示成功。 | |
684 | + */ | |
685 | + short USER_API dc_cpuapdu(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
686 | + | |
687 | + /** | |
688 | + * @brief 接触式CPU卡复位。 | |
689 | + * @par 说明: | |
690 | + * ::dc_cpureset 的HEX形式接口,参数 @a databuffer 为HEX格式。 | |
691 | + */ | |
692 | + short USER_API dc_cpureset_hex(HANDLE icdev, unsigned char *rlen, char *databuffer); | |
693 | + | |
694 | + /** | |
695 | + * @brief 接触式CPU卡指令交互。 | |
696 | + * @par 说明: | |
697 | + * ::dc_cpuapdusource 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
698 | + */ | |
699 | + short USER_API dc_cpuapdusource_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer); | |
700 | + | |
701 | + /** | |
702 | + * @brief 接触式CPU卡指令交互。 | |
703 | + * @par 说明: | |
704 | + * ::dc_cpuapdu 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
705 | + */ | |
706 | + short USER_API dc_cpuapdu_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer); | |
707 | + | |
708 | + /** | |
709 | + * @brief 接触式CPU卡指令交互。 | |
710 | + * @par 说明: | |
711 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口已封装卡协议部分,内部处理了SW1为0x61和0x6C的情况。 | |
712 | + * @param[in] icdev 设备标识符。 | |
713 | + * @param[in] slen 发送数据的长度。 | |
714 | + * @param[in] sendbuffer 发送数据。 | |
715 | + * @param[out] rlen 返回数据的长度。 | |
716 | + * @param[out] databuffer 返回的数据。 | |
717 | + * @return <0表示失败,==0表示成功。 | |
718 | + */ | |
719 | + short USER_API dc_cpuapdurespon(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
720 | + | |
721 | + /** | |
722 | + * @brief 接触式CPU卡指令交互。 | |
723 | + * @par 说明: | |
724 | + * ::dc_cpuapdurespon 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
725 | + */ | |
726 | + short USER_API dc_cpuapdurespon_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer); | |
727 | + | |
728 | + /** | |
729 | + * @brief 接触式CPU卡下电。 | |
730 | + * @par 说明: | |
731 | + * 对当前卡座CPU卡进行下电操作。 | |
732 | + * @param[in] icdev 设备标识符。 | |
733 | + * @return <0表示失败,==0表示成功。 | |
734 | + */ | |
735 | + short USER_API dc_cpudown(HANDLE icdev); | |
736 | + | |
737 | + /** | |
738 | + * @brief 保留。 | |
739 | + */ | |
740 | + short USER_API dc_set_addr(unsigned char saddr); | |
741 | + | |
742 | + /** | |
743 | + * @brief 保留。 | |
744 | + */ | |
745 | + HANDLE USER_API dc_init_485(short port, int baud); | |
746 | + | |
747 | + /** | |
748 | + * @brief 保留。 | |
749 | + */ | |
750 | + short USER_API dc_changebaud_485(HANDLE icdev, int baud); | |
751 | + | |
752 | + /** | |
753 | + * @brief 保留。 | |
754 | + */ | |
755 | + short USER_API dc_change_addr(HANDLE icdev, unsigned char saddr); | |
756 | + | |
757 | + /** | |
758 | + * @brief 非接触式CPU卡复位。 | |
759 | + * @par 说明: | |
760 | + * 对感应区CPU卡进行复位操作。 | |
761 | + * @param[in] icdev 设备标识符。 | |
762 | + * @param[out] rlen 返回复位信息的长度。 | |
763 | + * @param[out] receive_data 返回的复位信息,请至少分配128个字节。 | |
764 | + * @return <0表示失败,==0表示成功。 | |
765 | + */ | |
766 | + short USER_API dc_pro_reset(HANDLE icdev, unsigned char *rlen, unsigned char *receive_data); | |
767 | + | |
768 | + /** | |
769 | + * @brief 非接触式CPU卡指令交互。 | |
770 | + * @par 说明: | |
771 | + * 对感应区CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
772 | + * @param[in] icdev 设备标识符。 | |
773 | + * @param[in] slen 发送数据的长度。 | |
774 | + * @param[in] sendbuffer 发送数据。 | |
775 | + * @param[out] rlen 返回数据的长度。 | |
776 | + * @param[out] databuffer 返回的数据。 | |
777 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
778 | + * @return <0表示失败,==0表示成功。 | |
779 | + */ | |
780 | + short USER_API dc_pro_command(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout); | |
781 | + | |
782 | + /** | |
783 | + * @brief 非接触式CPU卡复位。 | |
784 | + * @par 说明: | |
785 | + * ::dc_pro_reset 的HEX形式接口,参数 @a receive_data 为HEX格式。 | |
786 | + */ | |
787 | + short USER_API dc_pro_resethex(HANDLE icdev, unsigned char *rlen, char *receive_data); | |
788 | + | |
789 | + /** | |
790 | + * @brief 非接触式CPU卡复位。 | |
791 | + * @par 说明: | |
792 | + * 对感应区CPU卡进行复位操作。 | |
793 | + * @param[in] icdev 设备标识符。 | |
794 | + * @param[out] rlen 返回复位信息的长度。 | |
795 | + * @param[out] receive_data 返回的复位信息,请至少分配128个字节。 | |
796 | + * @return <0表示失败,==0表示成功。 | |
797 | + */ | |
798 | + short USER_API dc_pro_resetInt(HANDLE icdev, unsigned char *rlen, unsigned char *receive_data); | |
799 | + | |
800 | + /** | |
801 | + * @brief 非接触式CPU卡复位。 | |
802 | + * @par 说明: | |
803 | + * ::dc_pro_resetInt 的HEX形式接口,参数 @a receive_data 为HEX格式。 | |
804 | + */ | |
805 | + short USER_API dc_pro_resetInt_hex(HANDLE icdev, unsigned char *rlen, char *receive_data); | |
806 | + | |
807 | + /** | |
808 | + * @brief 非接触式CPU卡指令交互。 | |
809 | + * @par 说明: | |
810 | + * ::dc_pro_command 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
811 | + */ | |
812 | + short USER_API dc_pro_commandhex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer, unsigned char timeout); | |
813 | + | |
814 | + /** | |
815 | + * @brief 非接触式CPU卡指令交互。 | |
816 | + * @par 说明: | |
817 | + * 对感应区CPU卡进行指令交互操作,注意此接口不封装卡协议部分。 | |
818 | + * @param[in] icdev 设备标识符。 | |
819 | + * @param[in] slen 发送数据的长度。 | |
820 | + * @param[in] sendbuffer 发送数据。 | |
821 | + * @param[out] rlen 返回数据的长度。 | |
822 | + * @param[out] databuffer 返回的数据。 | |
823 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
824 | + * @return <0表示失败,==0表示成功。 | |
825 | + */ | |
826 | + short USER_API dc_pro_commandsource(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout); | |
827 | + | |
828 | + /** | |
829 | + * @brief 非接触式CPU卡指令交互。 | |
830 | + * @par 说明: | |
831 | + * ::dc_pro_commandsource 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
832 | + */ | |
833 | + short USER_API dc_pro_commandsourcehex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer, unsigned char timeout); | |
834 | + | |
835 | + /** | |
836 | + * @brief 非接触式CPU卡指令交互。 | |
837 | + * @par 说明: | |
838 | + * 对感应区CPU卡进行指令交互操作,注意此接口不封装卡协议部分。 | |
839 | + * @param[in] icdev 设备标识符。 | |
840 | + * @param[in] slen 发送数据的长度。 | |
841 | + * @param[in] sendbuffer 发送数据。 | |
842 | + * @param[out] rlen 返回数据的长度。 | |
843 | + * @param[out] databuffer 返回的数据。 | |
844 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
845 | + * @return <0表示失败,==0表示成功。 | |
846 | + */ | |
847 | + short USER_API dc_pro_commandsource_int(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer, unsigned char timeout); | |
848 | + | |
849 | + /** | |
850 | + * @brief 终止非接触式CPU卡操作。 | |
851 | + * @par 说明: | |
852 | + * 使非接触式CPU卡进入终止状态,此时必须把卡移出感应区后再次放入感应区才能寻到这张卡。 | |
853 | + * @param[in] icdev 设备标识符。 | |
854 | + * @return <0表示失败,==0表示成功。 | |
855 | + */ | |
856 | + short USER_API dc_pro_halt(HANDLE icdev); | |
857 | + | |
858 | + /** | |
859 | + * @brief SHC1102卡寻卡请求。 | |
860 | + * @par 说明: | |
861 | + * 支持SHC1102卡的寻卡请求。 | |
862 | + * @param[in] icdev 设备标识符。 | |
863 | + * @param[in] _Mode 模式,0x00表示对空闲卡进行操作,0x01表示对所有卡操作。 | |
864 | + * @param[out] TagType 返回的ATQA值。 | |
865 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
866 | + */ | |
867 | + short USER_API dc_request_shc1102(HANDLE icdev, unsigned char _Mode, unsigned short *TagType); | |
868 | + | |
869 | + /** | |
870 | + * @brief 验证SHC1102卡密码。 | |
871 | + * @par 说明: | |
872 | + * 使用传入的密码来验证SHC1102卡密码。 | |
873 | + * @param[in] icdev 设备标识符。 | |
874 | + * @param[in] _Data 密码,固定为4个字节。 | |
875 | + * @return <0表示失败,==0表示成功。 | |
876 | + */ | |
877 | + short USER_API dc_auth_shc1102(HANDLE icdev, unsigned char *_Data); | |
878 | + | |
879 | + /** | |
880 | + * @brief 读SHC1102卡。 | |
881 | + * @par 说明: | |
882 | + * 读取SHC1102卡的数据。 | |
883 | + * @param[in] icdev 设备标识符。 | |
884 | + * @param[in] _Adr 块地址(0~15)。 | |
885 | + * @param[out] _Data 返回的数据,固定为4个字节。 | |
886 | + * @return <0表示失败,==0表示成功。 | |
887 | + */ | |
888 | + short USER_API dc_read_shc1102(HANDLE icdev, unsigned char _Adr, unsigned char *_Data); | |
889 | + | |
890 | + /** | |
891 | + * @brief 写SHC1102卡。 | |
892 | + * @par 说明: | |
893 | + * 写入数据到SHC1102卡中。 | |
894 | + * @param[in] icdev 设备标识符。 | |
895 | + * @param[in] _Adr 块地址(2~15)。 | |
896 | + * @param[in] _Data 传入数据,固定为4个字节。 | |
897 | + * @return <0表示失败,==0表示成功。 | |
898 | + */ | |
899 | + short USER_API dc_write_shc1102(HANDLE icdev, unsigned char _Adr, unsigned char *_Data); | |
900 | + | |
901 | + /** | |
902 | + * @brief 终止SHC1102卡操作。 | |
903 | + * @par 说明: | |
904 | + * 使SHC1102卡进入终止状态,此时必须把卡移出感应区后再次放入感应区才能寻到这张卡。 | |
905 | + * @param[in] icdev 设备标识符。 | |
906 | + * @return <0表示失败,==0表示成功。 | |
907 | + */ | |
908 | + short USER_API dc_halt_shc1102(HANDLE icdev); | |
909 | + | |
910 | + /** | |
911 | + * @brief 数据转换。 | |
912 | + * @par 说明: | |
913 | + * 普通数据换成十六进制字符串(短转长)。 | |
914 | + * @param[in] hex 要转换的数据。 | |
915 | + * @param[out] a 转换后的字符串。 | |
916 | + * @param[in] length 要转换数据的长度。 | |
917 | + * @return <0表示失败,==0表示成功。 | |
918 | + */ | |
919 | + short USER_API hex_a(unsigned char *hex, unsigned char *a, short length); | |
920 | + | |
921 | + /** | |
922 | + * @brief 数据转换。 | |
923 | + * @par 说明: | |
924 | + * 十六进制字符数据转换为普通数据(长转短)。 | |
925 | + * @param[in] a 要转换的数据。 | |
926 | + * @param[out] hex 转换后的数据。 | |
927 | + * @param[in] len 要转换数据的长度。 | |
928 | + * @return <0表示失败,==0表示成功。 | |
929 | + */ | |
930 | + short USER_API a_hex(unsigned char *a, unsigned char *hex, short len); | |
931 | + | |
932 | + /** | |
933 | + * @brief 配置非接触卡类型。 | |
934 | + * @par 说明: | |
935 | + * 配置需要操作什么类型的非接触式卡,设备上电后默认操作Type A卡,可以使用此接口来改变类型,一般在寻卡前调用此接口。 | |
936 | + * @param[in] icdev 设备标识符。 | |
937 | + * @param[in] cardtype 类型,'A'表示Type A卡,'B'表示Type B卡。 | |
938 | + * @return <0表示失败,==0表示成功。 | |
939 | + */ | |
940 | + short USER_API dc_config_card(HANDLE icdev, unsigned char cardtype); | |
941 | + | |
942 | + /** | |
943 | + * @brief 寻卡请求。 | |
944 | + * @par 说明: | |
945 | + * 支持ISO 14443 Type B类型卡片的寻卡请求。 | |
946 | + * @param[in] icdev 设备标识符。 | |
947 | + * @param[in] _Mode 保留,固定为0x00。 | |
948 | + * @param[in] AFI 应用族标识符。 | |
949 | + * @param[in] N 时间槽编号。 | |
950 | + * @param[out] ATQB 返回的ATQB值,请至少分配32个字节。 | |
951 | + * @return <0表示失败,==0表示成功。 | |
952 | + */ | |
953 | + short USER_API dc_request_b(HANDLE icdev, unsigned char _Mode, unsigned char AFI, unsigned char N, unsigned char *ATQB); | |
954 | + | |
955 | + /** | |
956 | + * @brief 管道标记。 | |
957 | + * @par 说明: | |
958 | + * 支持ISO 14443 Type B类型卡片的管道标记。 | |
959 | + * @param[in] icdev 设备标识符。 | |
960 | + * @param[in] N 时间槽编号。 | |
961 | + * @param[out] ATQB 返回的ATQB值,请至少分配32个字节。 | |
962 | + * @return <0表示失败,==0表示成功。 | |
963 | + */ | |
964 | + short USER_API dc_slotmarker(HANDLE icdev, unsigned char N, unsigned char *ATQB); | |
965 | + | |
966 | + /** | |
967 | + * @brief 激活卡片。 | |
968 | + * @par 说明: | |
969 | + * 支持ISO 14443 Type B类型卡片的激活。 | |
970 | + * @param[in] icdev 设备标识符。 | |
971 | + * @param[in] PUPI 伪唯一PICC标识符,固定为4个字节。 | |
972 | + * @param[in] CID 信道号。 | |
973 | + * @return <0表示失败,==0表示成功。 | |
974 | + */ | |
975 | + short USER_API dc_attrib(HANDLE icdev, unsigned char *PUPI, unsigned char CID); | |
976 | + | |
977 | + /** | |
978 | + * @brief 保留。 | |
979 | + */ | |
980 | + short USER_API dc_open_door(HANDLE icdev, unsigned char cflag); | |
981 | + | |
982 | + /** | |
983 | + * @brief 保留。 | |
984 | + */ | |
985 | + short USER_API dc_open_timedoor(HANDLE icdev, unsigned short utime); | |
986 | + | |
987 | + /** | |
988 | + * @brief 保留。 | |
989 | + */ | |
990 | + short USER_API dc_read_random(HANDLE icdev, unsigned char *data); | |
991 | + | |
992 | + /** | |
993 | + * @brief 保留。 | |
994 | + */ | |
995 | + short USER_API dc_write_random(HANDLE icdev, short length, unsigned char *data); | |
996 | + | |
997 | + /** | |
998 | + * @brief 保留。 | |
999 | + */ | |
1000 | + short USER_API dc_read_random_hex(HANDLE icdev, unsigned char *data); | |
1001 | + | |
1002 | + /** | |
1003 | + * @brief 保留。 | |
1004 | + */ | |
1005 | + short USER_API dc_write_random_hex(HANDLE icdev, short length, unsigned char *data); | |
1006 | + | |
1007 | + /** | |
1008 | + * @brief 保留。 | |
1009 | + */ | |
1010 | + short USER_API dc_erase_random(HANDLE icdev, short length); | |
1011 | + | |
1012 | + /** | |
1013 | + * @brief Mifare Desfire卡认证。 | |
1014 | + * @par 说明: | |
1015 | + * 对Mifare Desfire卡进行认证。 | |
1016 | + * @param[in] icdev 设备标识符。 | |
1017 | + * @param[in] keyno 密钥号。 | |
1018 | + * @param[in] keylen 密钥数据的长度。 | |
1019 | + * @param[in] authkey 密钥数据。 | |
1020 | + * @param[in] randAdata 传入随机数A,8个字节。 | |
1021 | + * @param[out] randBdata 返回的随机数B,8个字节。 | |
1022 | + * @return <0表示失败,==0表示成功。 | |
1023 | + */ | |
1024 | + short USER_API dc_mfdes_auth(HANDLE icdev, unsigned char keyno, unsigned char keylen, unsigned char *authkey, unsigned char *randAdata, unsigned char *randBdata); | |
1025 | + | |
1026 | + /** | |
1027 | + * @brief 验证M1卡密码。 | |
1028 | + * @par 说明: | |
1029 | + * 使用传入的密码来验证M1卡密码。 | |
1030 | + * @param[in] icdev 设备标识符。 | |
1031 | + * @param[in] _Mode 模式,0x00表示验证A密码,0x04表示验证B密码。 | |
1032 | + * @param[in] _Addr 要验证密码的扇区号。 | |
1033 | + * @param[in] passbuff 密码,固定为6个字节。 | |
1034 | + * @return <0表示失败,==0表示成功。 | |
1035 | + */ | |
1036 | + short USER_API dc_authentication_pass(HANDLE icdev, unsigned char _Mode, unsigned char _Addr, unsigned char *passbuff); | |
1037 | + | |
1038 | + /** | |
1039 | + * @brief 高层液晶显示。 | |
1040 | + * @par 说明: | |
1041 | + * 显示指定数据到液晶屏幕上。 | |
1042 | + * @param[in] icdev 设备标识符。 | |
1043 | + * @param[in] dispstr 显示字符串。 | |
1044 | + * @return <0表示失败,==0表示成功。 | |
1045 | + */ | |
1046 | + short USER_API dc_disp_neg(HANDLE icdev, char *dispstr); | |
1047 | + | |
1048 | + /** | |
1049 | + * @brief 非接触式CPU卡指令交互。 | |
1050 | + * @par 说明: | |
1051 | + * 对感应区CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
1052 | + * @param[in] icdev 设备标识符。 | |
1053 | + * @param[in] slen 发送数据的长度。 | |
1054 | + * @param[in] sendbuffer 发送数据。 | |
1055 | + * @param[out] rlen 返回数据的长度。 | |
1056 | + * @param[out] databuffer 返回的数据。 | |
1057 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
1058 | + * @param[in] FG 分割值,此值只在部分设备的底层使用,单位为字节,一般调用建议值为64。 | |
1059 | + * @return <0表示失败,==0表示成功。 | |
1060 | + */ | |
1061 | + short USER_API dc_pro_commandlink(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout, unsigned char FG); | |
1062 | + | |
1063 | + /** | |
1064 | + * @brief 非接触式CPU卡指令交互。 | |
1065 | + * @par 说明: | |
1066 | + * ::dc_pro_commandlink 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
1067 | + */ | |
1068 | + short USER_API dc_pro_commandlink_hex(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout, unsigned char FG); | |
1069 | + | |
1070 | + /** | |
1071 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
1072 | + * @par 说明: | |
1073 | + * 内部包含了 ::dc_request ::dc_anticoll ::dc_select ::dc_anticoll2 ::dc_select2 的功能,此接口有设计缺陷,不能返回卡序列号实际长度,建议使用 ::dc_card_n 替代。 | |
1074 | + * @param[in] icdev 设备标识符。 | |
1075 | + * @param[in] _Mode 模式,同 ::dc_request 的 @a _Mode 。 | |
1076 | + * @param[out] _Snr 返回的卡序列号,请至少分配8个字节。 | |
1077 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
1078 | + */ | |
1079 | + short USER_API dc_card_double(HANDLE icdev, unsigned char _Mode, unsigned char *_Snr); | |
1080 | + | |
1081 | + /** | |
1082 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
1083 | + * @par 说明: | |
1084 | + * ::dc_card_double 的HEX形式接口,参数 @a _Snr 为HEX格式。 | |
1085 | + */ | |
1086 | + short USER_API dc_card_double_hex(HANDLE icdev, unsigned char _Mode, unsigned char *_Snr); | |
1087 | + | |
1088 | + /** | |
1089 | + * @brief 读ID卡。 | |
1090 | + * @par 说明: | |
1091 | + * 读取ID卡数据。 | |
1092 | + * @param[in] icdev 设备标识符。 | |
1093 | + * @param[in] times 设备超时值,单位为秒。 | |
1094 | + * @param[out] _Data 返回的数据,固定为5个字节。 | |
1095 | + * @return <0表示失败,==0表示成功。 | |
1096 | + */ | |
1097 | + short USER_API dc_read_idcard(HANDLE icdev, unsigned char times, unsigned char *_Data); | |
1098 | + | |
1099 | + /** | |
1100 | + * @brief 读取id卡。 | |
1101 | + * @par 说明: | |
1102 | + * ::dc_read_idcard 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
1103 | + */ | |
1104 | + short USER_API dc_read_idcard_hex(HANDLE icdev, unsigned char times, unsigned char *_Data); | |
1105 | + | |
1106 | + /** | |
1107 | + * @brief 验证M1卡密码。 | |
1108 | + * @par 说明: | |
1109 | + * ::dc_authentication_pass 的HEX形式接口,参数 @a passbuff 为HEX格式。 | |
1110 | + */ | |
1111 | + short USER_API dc_authentication_pass_hex(HANDLE icdev, unsigned char _Mode, unsigned char _Addr, unsigned char *passbuff); | |
1112 | + | |
1113 | + /** | |
1114 | + * @brief 设置接触式CPU卡参数。 | |
1115 | + * @par 说明: | |
1116 | + * 此接口可控制接触式CPU卡操作的行为,当不掉用时,设备将使用默认方式进行接触式CPU卡操作。 | |
1117 | + * @param[in] icdev 设备标识符。 | |
1118 | + * @param[in] cputype 卡座编号,同 ::dc_setcpu 的 @a _Byte 。 | |
1119 | + * @param[in] cpupro 卡协议编号,0x00表示T0,0x01表示T1,默认为0x00。 | |
1120 | + * @param[in] cpuetu 卡复位波特率编号,0x5C表示9600,0x14表示38400. | |
1121 | + * @return <0表示失败,==0表示成功。 | |
1122 | + */ | |
1123 | + short USER_API dc_setcpupara(HANDLE icdev, unsigned char cputype, unsigned char cpupro, unsigned char cpuetu); | |
1124 | + | |
1125 | + /** | |
1126 | + * @brief 保留。 | |
1127 | + */ | |
1128 | + short USER_API dc_command(HANDLE icdev, unsigned char cmd, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
1129 | + | |
1130 | + /** | |
1131 | + * @brief 保留。 | |
1132 | + */ | |
1133 | + short USER_API dc_command_hex(HANDLE icdev, unsigned char cmd, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer); | |
1134 | + | |
1135 | + /** | |
1136 | + * @brief 保留。 | |
1137 | + */ | |
1138 | + short USER_API dc_creat_mac(unsigned char KeyLen, unsigned char *Key, unsigned short DataLen, unsigned char *Data, unsigned char *InitData, unsigned char AutoFixFlag, unsigned char FixChar, unsigned char *MacData); | |
1139 | + | |
1140 | + /** | |
1141 | + * @brief 保留。 | |
1142 | + */ | |
1143 | + short USER_API dc_creat_mac_hex(unsigned char KeyLen, unsigned char *Key, unsigned short DataLen, unsigned char *Data, unsigned char *InitData, unsigned char AutoFixFlag, unsigned char FixChar, unsigned char *MacData); | |
1144 | + | |
1145 | + /** | |
1146 | + * @brief 保留。 | |
1147 | + */ | |
1148 | + short USER_API dc_creat_mac2(HANDLE icdev, unsigned short DataLen, unsigned char *Data, unsigned char *MacData, unsigned char flag); | |
1149 | + | |
1150 | + /** | |
1151 | + * @brief 保留。 | |
1152 | + */ | |
1153 | + short USER_API dc_creat_mac2_hex(HANDLE icdev, unsigned short DataLen, unsigned char *Data, unsigned char *MacData, unsigned char flag); | |
1154 | + | |
1155 | + /** | |
1156 | + * @brief 保留。 | |
1157 | + */ | |
1158 | + short USER_API dc_encrypt(char *key, char *ptrSource, unsigned short msgLen, char *ptrDest); | |
1159 | + | |
1160 | + /** | |
1161 | + * @brief 保留。 | |
1162 | + */ | |
1163 | + short USER_API dc_decrypt(char *key, char *ptrSource, unsigned short msgLen, char *ptrDest); | |
1164 | + | |
1165 | + /** | |
1166 | + * @brief 保留。 | |
1167 | + */ | |
1168 | + short USER_API dc_encrypt_hex(char *key, char *ptrSource, unsigned short msgLen, char *ptrDest); | |
1169 | + | |
1170 | + /** | |
1171 | + * @brief 保留。 | |
1172 | + */ | |
1173 | + short USER_API dc_decrypt_hex(char *key, char *ptrSource, unsigned short msgLen, char *ptrDest); | |
1174 | + | |
1175 | + /** | |
1176 | + * @brief 保留。 | |
1177 | + */ | |
1178 | + short USER_API dc_HL_write_hex(HANDLE icdev, unsigned char _Mode, unsigned char _Adr, unsigned int *_Snr, unsigned char *_Data); | |
1179 | + | |
1180 | + /** | |
1181 | + * @brief 保留。 | |
1182 | + */ | |
1183 | + short USER_API dc_HL_read_hex(HANDLE icdev, unsigned char _Mode, unsigned char _Adr, unsigned int _Snr, unsigned char *_Data, unsigned int *_NSnr); | |
1184 | + | |
1185 | + /** | |
1186 | + * @brief 检查之前写入的数据。 | |
1187 | + * @par 说明: | |
1188 | + * ::dc_check_write 的HEX形式接口,参数 @a _data 为HEX格式。 | |
1189 | + */ | |
1190 | + short USER_API dc_check_write_hex(HANDLE icdev, unsigned int Snr, unsigned char authmode, unsigned char Adr, unsigned char *_data); | |
1191 | + | |
1192 | + /** | |
1193 | + * @brief 读EEPROM。 | |
1194 | + * @par 说明: | |
1195 | + * ::dc_srd_eeprom 的HEX形式接口,参数 @a rec_buffer 为HEX格式。 | |
1196 | + */ | |
1197 | + short USER_API dc_srd_eeprom_hex(HANDLE icdev, short offset, short length, unsigned char *rec_buffer); | |
1198 | + | |
1199 | + /** | |
1200 | + * @brief 写EEPROM。 | |
1201 | + * @par 说明: | |
1202 | + * ::dc_swr_eeprom 的HEX形式接口,参数 @a send_buffer 为HEX格式。 | |
1203 | + */ | |
1204 | + short USER_API dc_swr_eeprom_hex(HANDLE icdev, short offset, short length, unsigned char *send_buffer); | |
1205 | + | |
1206 | + /** | |
1207 | + * @brief 获取设备时间。 | |
1208 | + * @par 说明: | |
1209 | + * ::dc_gettime 的HEX形式接口,参数 @a time 为HEX格式。 | |
1210 | + */ | |
1211 | + short USER_API dc_gettime_hex(HANDLE icdev, char *time); | |
1212 | + | |
1213 | + /** | |
1214 | + * @brief 设置设备时间。 | |
1215 | + * @par 说明: | |
1216 | + * ::dc_settime 的HEX形式接口,参数 @a time 为HEX格式。 | |
1217 | + */ | |
1218 | + short USER_API dc_settime_hex(HANDLE icdev, char *time); | |
1219 | + | |
1220 | + /** | |
1221 | + * @brief 单DES加解密。 | |
1222 | + * @par 说明: | |
1223 | + * ::dc_des 的HEX形式接口,参数 @a key @a sour @a dest 为HEX格式。 | |
1224 | + */ | |
1225 | + short USER_API dc_des_hex(unsigned char *key, unsigned char *sour, unsigned char *dest, short m); | |
1226 | + | |
1227 | + /** | |
1228 | + * @brief 单DES加解密。 | |
1229 | + * @par 说明: | |
1230 | + * 使用单DES算法对数据进行加密/解密。 | |
1231 | + * @param[in] key 8个字节密钥。 | |
1232 | + * @param[in] sour 8个字节要做加密/解密的数据。 | |
1233 | + * @param[out] dest 返回8个字节运算后的数据。 | |
1234 | + * @param[in] m 模式,0-解密,1-加密。 | |
1235 | + * @return <0表示失败,==0表示成功。 | |
1236 | + */ | |
1237 | + short USER_API dc_des(unsigned char *key, unsigned char *sour, unsigned char *dest, short m); | |
1238 | + | |
1239 | + /** | |
1240 | + * @brief 非接触式CPU卡复位。 | |
1241 | + * @par 说明: | |
1242 | + * ::dc_pro_reset 的HEX形式接口,参数 @a receive_data 为HEX格式。 | |
1243 | + */ | |
1244 | + short USER_API dc_pro_reset_hex(HANDLE icdev, unsigned char *rlen, char *receive_data); | |
1245 | + | |
1246 | + /** | |
1247 | + * @brief 非接触式CPU卡指令交互。 | |
1248 | + * @par 说明: | |
1249 | + * ::dc_pro_command 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
1250 | + */ | |
1251 | + short USER_API dc_pro_command_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer, unsigned char timeout); | |
1252 | + | |
1253 | + /** | |
1254 | + * @brief 非接触式CPU卡指令交互。 | |
1255 | + * @par 说明: | |
1256 | + * ::dc_pro_commandsource 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
1257 | + */ | |
1258 | + short USER_API dc_pro_commandsource_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer, unsigned char timeout); | |
1259 | + | |
1260 | + /** | |
1261 | + * @brief 保留。 | |
1262 | + */ | |
1263 | + short USER_API dc_switch_unix(HANDLE icdev, int baud); | |
1264 | + | |
1265 | + /** | |
1266 | + * @brief 验证M1卡密码。 | |
1267 | + * @par 说明: | |
1268 | + * 使用传入的密码来验证M1卡密码。 | |
1269 | + * @param[in] icdev 设备标识符。 | |
1270 | + * @param[in] _Mode 模式,0x00表示验证A密码,0x04表示验证B密码。 | |
1271 | + * @param[in] _Addr 要验证密码的块号。 | |
1272 | + * @param[in] passbuff 密码,固定为6个字节。 | |
1273 | + * @return <0表示失败,==0表示成功。 | |
1274 | + */ | |
1275 | + short USER_API dc_authentication_passaddr(HANDLE icdev, unsigned char _Mode, unsigned char _Addr, unsigned char *passbuff); | |
1276 | + | |
1277 | + /** | |
1278 | + * @brief 验证M1卡密码。 | |
1279 | + * @par 说明: | |
1280 | + * ::dc_authentication_passaddr 的HEX形式接口,参数 @a passbuff 为HEX格式。 | |
1281 | + */ | |
1282 | + short USER_API dc_authentication_passaddr_hex(HANDLE icdev, unsigned char _Mode, unsigned char _Addr, unsigned char *passbuff); | |
1283 | + | |
1284 | + /** | |
1285 | + * @brief 寻FM11RF005卡。 | |
1286 | + * @par 说明: | |
1287 | + * 对FM11RF005卡进行寻卡操作。 | |
1288 | + * @param[in] icdev 设备标识符。 | |
1289 | + * @param[in] _Mode 模式,模式,同 ::dc_request 的 @a _Mode 。 | |
1290 | + * @param[out] _Snr 返回的卡序列号。 | |
1291 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
1292 | + */ | |
1293 | + short USER_API dc_card_fm11rf005(HANDLE icdev, unsigned char _Mode, unsigned int *_Snr); | |
1294 | + | |
1295 | + /** | |
1296 | + * @brief 保留。 | |
1297 | + */ | |
1298 | + short USER_API dc_setusbtimeout(unsigned char ntimes); | |
1299 | + | |
1300 | + /** | |
1301 | + * @brief 保留。 | |
1302 | + */ | |
1303 | + short USER_API dc_mfdes_baud(HANDLE icdev, unsigned char _Mode, unsigned char para); | |
1304 | + | |
1305 | + /** | |
1306 | + * @brief 三DES加解密。 | |
1307 | + * @par 说明: | |
1308 | + * 使用三DES算法对数据进行加密/解密。 | |
1309 | + * @param[in] key 16个字节密钥。 | |
1310 | + * @param[in] src 8个字节要做加密/解密的数据。 | |
1311 | + * @param[out] dest 返回8个字节运算后的数据。 | |
1312 | + * @param[in] m 模式,0-解密,1-加密。 | |
1313 | + * @return <0表示失败,==0表示成功。 | |
1314 | + */ | |
1315 | + short USER_API dc_tripledes(unsigned char *key, unsigned char *src, unsigned char *dest, short m); | |
1316 | + | |
1317 | + /** | |
1318 | + * @brief 三DES加解密。 | |
1319 | + * @par 说明: | |
1320 | + * ::dc_tripledes 的HEX形式接口,参数 @a key @a src @a dest 为HEX格式。 | |
1321 | + */ | |
1322 | + short USER_API dc_tripledes_hex(unsigned char *key, unsigned char *src, unsigned char *dest, short m); | |
1323 | + | |
1324 | + /** | |
1325 | + * @brief Mifare Desfire卡认证。 | |
1326 | + * @par 说明: | |
1327 | + * ::dc_mfdes_auth 的HEX形式接口,参数 @a authkey @a randAdata @a randBdata 为HEX格式。 | |
1328 | + */ | |
1329 | + short USER_API dc_mfdes_auth_hex(HANDLE icdev, unsigned char keyno, unsigned char keylen, unsigned char *authkey, unsigned char *randAdata, unsigned char *randBdata); | |
1330 | + | |
1331 | + /** | |
1332 | + * @brief 保留。 | |
1333 | + */ | |
1334 | + short USER_API dc_pro_sendcommandsource(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char timeout); | |
1335 | + | |
1336 | + /** | |
1337 | + * @brief 保留。 | |
1338 | + */ | |
1339 | + short USER_API dc_pro_receivecommandsource(HANDLE icdev, unsigned char *rlen, unsigned char *databuffer); | |
1340 | + | |
1341 | + /** | |
1342 | + * @brief 保留。 | |
1343 | + */ | |
1344 | + short USER_API dc_inventory(HANDLE icdev, unsigned char flags, unsigned char AFI, unsigned char masklen, unsigned char *rlen, unsigned char *rbuffer); | |
1345 | + | |
1346 | + /** | |
1347 | + * @brief 保留。 | |
1348 | + */ | |
1349 | + short USER_API dc_inventory_hex(HANDLE icdev, unsigned char flags, unsigned char AFI, unsigned char masklen, unsigned char *rlen, unsigned char *rbuffer); | |
1350 | + | |
1351 | + /** | |
1352 | + * @brief 保留。 | |
1353 | + */ | |
1354 | + short USER_API dc_stay_quiet(HANDLE icdev, unsigned char flags, unsigned char *UID); | |
1355 | + | |
1356 | + /** | |
1357 | + * @brief 保留。 | |
1358 | + */ | |
1359 | + short USER_API dc_stay_quiet_hex(HANDLE icdev, unsigned char flags, unsigned char *UID); | |
1360 | + | |
1361 | + /** | |
1362 | + * @brief 保留。 | |
1363 | + */ | |
1364 | + short USER_API dc_select_uid(HANDLE icdev, unsigned char flags, unsigned char *UID); | |
1365 | + | |
1366 | + /** | |
1367 | + * @brief 保留。 | |
1368 | + */ | |
1369 | + short USER_API dc_select_uid_hex(HANDLE icdev, unsigned char flags, unsigned char *UID); | |
1370 | + | |
1371 | + /** | |
1372 | + * @brief 保留。 | |
1373 | + */ | |
1374 | + short USER_API dc_reset_to_ready(HANDLE icdev, unsigned char flags, unsigned char *UID); | |
1375 | + | |
1376 | + /** | |
1377 | + * @brief 保留。 | |
1378 | + */ | |
1379 | + short USER_API dc_reset_to_ready_hex(HANDLE icdev, unsigned char flags, unsigned char *UID); | |
1380 | + | |
1381 | + /** | |
1382 | + * @brief 保留。 | |
1383 | + */ | |
1384 | + short USER_API dc_readblock(HANDLE icdev, unsigned char flags, unsigned char startblock, unsigned char blocknum, unsigned char *UID, unsigned char *rlen, unsigned char *rbuffer); | |
1385 | + | |
1386 | + /** | |
1387 | + * @brief 保留。 | |
1388 | + */ | |
1389 | + short USER_API dc_readblock_hex(HANDLE icdev, unsigned char flags, unsigned char startblock, unsigned char blocknum, unsigned char *UID, unsigned char *rlen, unsigned char *rbuffer); | |
1390 | + | |
1391 | + /** | |
1392 | + * @brief 保留。 | |
1393 | + */ | |
1394 | + short USER_API dc_writeblock(HANDLE icdev, unsigned char flags, unsigned char startblock, unsigned char blocknum, unsigned char *UID, unsigned char wlen, unsigned char *wbuffer); | |
1395 | + | |
1396 | + /** | |
1397 | + * @brief 保留。 | |
1398 | + */ | |
1399 | + short USER_API dc_writeblock_hex(HANDLE icdev, unsigned char flags, unsigned char startblock, unsigned char blocknum, unsigned char *UID, unsigned char wlen, unsigned char *wbuffer); | |
1400 | + | |
1401 | + /** | |
1402 | + * @brief 保留。 | |
1403 | + */ | |
1404 | + short USER_API dc_lock_block(HANDLE icdev, unsigned char flags, unsigned char block, unsigned char *UID); | |
1405 | + | |
1406 | + /** | |
1407 | + * @brief 保留。 | |
1408 | + */ | |
1409 | + short USER_API dc_lock_block_hex(HANDLE icdev, unsigned char flags, unsigned char block, unsigned char *UID); | |
1410 | + | |
1411 | + /** | |
1412 | + * @brief 保留。 | |
1413 | + */ | |
1414 | + short USER_API dc_write_afi(HANDLE icdev, unsigned char flags, unsigned char AFI, unsigned char *UID); | |
1415 | + | |
1416 | + /** | |
1417 | + * @brief 保留。 | |
1418 | + */ | |
1419 | + short USER_API dc_write_afi_hex(HANDLE icdev, unsigned char flags, unsigned char AFI, unsigned char *UID); | |
1420 | + | |
1421 | + /** | |
1422 | + * @brief 保留。 | |
1423 | + */ | |
1424 | + short USER_API dc_lock_afi(HANDLE icdev, unsigned char flags, unsigned char AFI, unsigned char *UID); | |
1425 | + | |
1426 | + /** | |
1427 | + * @brief 保留。 | |
1428 | + */ | |
1429 | + short USER_API dc_lock_afi_hex(HANDLE icdev, unsigned char flags, unsigned char AFI, unsigned char *UID); | |
1430 | + | |
1431 | + /** | |
1432 | + * @brief 保留。 | |
1433 | + */ | |
1434 | + short USER_API dc_write_dsfid(HANDLE icdev, unsigned char flags, unsigned char DSFID, unsigned char *UID); | |
1435 | + | |
1436 | + /** | |
1437 | + * @brief 保留。 | |
1438 | + */ | |
1439 | + short USER_API dc_write_dsfid_hex(HANDLE icdev, unsigned char flags, unsigned char DSFID, unsigned char *UID); | |
1440 | + | |
1441 | + /** | |
1442 | + * @brief 保留。 | |
1443 | + */ | |
1444 | + short USER_API dc_lock_dsfid(HANDLE icdev, unsigned char flags, unsigned char DSFID, unsigned char *UID); | |
1445 | + | |
1446 | + /** | |
1447 | + * @brief 保留。 | |
1448 | + */ | |
1449 | + short USER_API dc_lock_dsfid_hex(HANDLE icdev, unsigned char flags, unsigned char DSFID, unsigned char *UID); | |
1450 | + | |
1451 | + /** | |
1452 | + * @brief 保留。 | |
1453 | + */ | |
1454 | + short USER_API dc_get_systeminfo(HANDLE icdev, unsigned char flags, unsigned char *UID, unsigned char *rlen, unsigned char *rbuffer); | |
1455 | + | |
1456 | + /** | |
1457 | + * @brief 保留。 | |
1458 | + */ | |
1459 | + short USER_API dc_get_systeminfo_hex(HANDLE icdev, unsigned char flags, unsigned char *UID, unsigned char *rlen, unsigned char *rbuffer); | |
1460 | + | |
1461 | + /** | |
1462 | + * @brief 保留。 | |
1463 | + */ | |
1464 | + short USER_API dc_get_securityinfo(HANDLE icdev, unsigned char flags, unsigned char startblock, unsigned char blocknum, unsigned char *UID, unsigned char *rlen, unsigned char *rbuffer); | |
1465 | + | |
1466 | + /** | |
1467 | + * @brief 保留。 | |
1468 | + */ | |
1469 | + short USER_API dc_get_securityinfo_hex(HANDLE icdev, unsigned char flags, unsigned char startblock, unsigned char blocknum, unsigned char *UID, unsigned char *rlen, unsigned char *rbuffer); | |
1470 | + | |
1471 | + /** | |
1472 | + * @brief 获取FM11RF005卡序列号。 | |
1473 | + * @par 说明: | |
1474 | + * 获取FM11RF005卡序列号。 | |
1475 | + * @param[in] icdev 设备标识符。 | |
1476 | + * @param[out] _Snr 返回的卡序列号。 | |
1477 | + * @return <0表示失败,==0表示成功。 | |
1478 | + */ | |
1479 | + short USER_API dc_getsnr_fm11rf005(HANDLE icdev, unsigned int *_Snr); | |
1480 | + | |
1481 | + /** | |
1482 | + * @brief 获取FM11RF005卡序列号。 | |
1483 | + * @par 说明: | |
1484 | + * ::dc_getsnr_fm11rf005 的HEX形式接口,参数 @a snrstr 为HEX格式。 | |
1485 | + */ | |
1486 | + short USER_API dc_getsnr_fm11rf005_hex(HANDLE icdev, unsigned char *snrstr); | |
1487 | + | |
1488 | + /** | |
1489 | + * @brief 写FM11RF005卡。 | |
1490 | + * @par 说明: | |
1491 | + * 写入数据到FM11RF005卡中。 | |
1492 | + * @param[in] icdev 设备标识符。 | |
1493 | + * @param[in] _Adr 块地址(2~15)。 | |
1494 | + * @param[in] _Data 传入数据,固定为4个字节。 | |
1495 | + * @return <0表示失败,==0表示成功。 | |
1496 | + */ | |
1497 | + short USER_API dc_write_fm11rf005(HANDLE icdev, unsigned char _Adr, unsigned char *_Data); | |
1498 | + | |
1499 | + /** | |
1500 | + * @brief 读FM11RF005卡。 | |
1501 | + * @par 说明: | |
1502 | + * 读取FM11RF005卡的数据。 | |
1503 | + * @param[in] icdev 设备标识符。 | |
1504 | + * @param[in] _Adr 块地址(0~15)。 | |
1505 | + * @param[out] _Data 返回的数据,固定为4个字节。 | |
1506 | + * @return <0表示失败,==0表示成功。 | |
1507 | + */ | |
1508 | + short USER_API dc_read_fm11rf005(HANDLE icdev, unsigned char _Adr, unsigned char *_Data); | |
1509 | + | |
1510 | + /** | |
1511 | + * @brief 读FM11RF005卡。 | |
1512 | + * @par 说明: | |
1513 | + * ::dc_read_fm11rf005 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
1514 | + */ | |
1515 | + short USER_API dc_read_fm11rf005_hex(HANDLE icdev, unsigned char _Adr, char *_Data); | |
1516 | + | |
1517 | + /** | |
1518 | + * @brief 写FM11RF005卡。 | |
1519 | + * @par 说明: | |
1520 | + * ::dc_write_fm11rf005 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
1521 | + */ | |
1522 | + short USER_API dc_write_fm11rf005_hex(HANDLE icdev, unsigned char _Adr, char *_Data); | |
1523 | + | |
1524 | + /** | |
1525 | + * @brief 保留。 | |
1526 | + */ | |
1527 | + short USER_API DCDEV_CommandMcu(HANDLE icdev, unsigned char ctimeout, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
1528 | + | |
1529 | + /** | |
1530 | + * @brief 保留。 | |
1531 | + */ | |
1532 | + short USER_API DCDEV_CommandMcu_Hex(HANDLE icdev, unsigned char ctimeout, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
1533 | + | |
1534 | + /** | |
1535 | + * @brief 保留。 | |
1536 | + */ | |
1537 | + short USER_API dc_displcd(HANDLE icdev, unsigned char flag); | |
1538 | + | |
1539 | + /** | |
1540 | + * @brief 键盘密码输入。 | |
1541 | + * @par 说明: | |
1542 | + * 获取键盘按键,用于密码输入,不同的键盘装置可能有不同的效果,如不同的提示音或不同的显示。 | |
1543 | + * @param[in] icdev 设备标识符。 | |
1544 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1545 | + * @param[out] rlen 返回按键数据的长度,不含'\0'。 | |
1546 | + * @param[out] cpass 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
1547 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
1548 | + */ | |
1549 | + short USER_API dc_getinputpass(HANDLE icdev, unsigned char ctime, unsigned char *rlen, unsigned char *cpass); | |
1550 | + | |
1551 | + /** | |
1552 | + * @brief 键盘密码输入。 | |
1553 | + * @par 说明: | |
1554 | + * 获取键盘按键,用于密码输入,不同的键盘装置可能有不同的效果,如不同的提示音或不同的显示。 | |
1555 | + * @param[in] icdev 设备标识符。 | |
1556 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1557 | + * @param[out] rlen 返回按键数据的长度,不含'\0'。 | |
1558 | + * @param[out] cpass 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
1559 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
1560 | + */ | |
1561 | + short USER_API dc_GetInputPass(HANDLE icdev, unsigned char ctime, unsigned char *rlen, unsigned char *cpass); | |
1562 | + | |
1563 | + /** | |
1564 | + * @brief 读磁条卡。 | |
1565 | + * @par 说明: | |
1566 | + * 读取磁条卡的数据,支持2、3轨道。 | |
1567 | + * @param[in] icdev 设备标识符。 | |
1568 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1569 | + * @param[out] pTrack2Data 返回的2轨道数据,数据格式为'\0'结尾的字符串。 | |
1570 | + * @param[out] pTrack2Len 返回2轨道数据的长度,不含'\0'。 | |
1571 | + * @param[out] pTrack3Data 返回的3轨道数据,数据格式为'\0'结尾的字符串。 | |
1572 | + * @param[out] pTrack3Len 返回3轨道数据的长度,不含'\0'。 | |
1573 | + * @return <0表示失败,==0表示成功。 | |
1574 | + */ | |
1575 | + short USER_API dc_readmagcard(HANDLE icdev, unsigned char ctime, unsigned char *pTrack2Data, unsigned int *pTrack2Len, unsigned char *pTrack3Data, unsigned int *pTrack3Len); | |
1576 | + | |
1577 | + /** | |
1578 | + * @brief 写磁条卡。 | |
1579 | + * @par 说明: | |
1580 | + * 写入数据到磁条卡中。 | |
1581 | + * @param[in] icdev 设备标识符。 | |
1582 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1583 | + * @param[in] pTrack1Data 传入1轨道数据。 | |
1584 | + * @param[in] pTrack1Len 1轨道数据的长度。 | |
1585 | + * @param[in] pTrack2Data 传入2轨道数据。 | |
1586 | + * @param[in] pTrack2Len 2轨道数据的长度。 | |
1587 | + * @param[in] pTrack3Data 传入3轨道数据。 | |
1588 | + * @param[in] pTrack3Len 3轨道数据的长度。 | |
1589 | + * @return <0表示失败,==0表示成功。 | |
1590 | + */ | |
1591 | + short USER_API dc_writemagcard(HANDLE icdev, unsigned char ctime, unsigned char *pTrack1Data, unsigned char pTrack1Len, unsigned char *pTrack2Data, unsigned char pTrack2Len, unsigned char *pTrack3Data, unsigned char pTrack3Len); | |
1592 | + | |
1593 | + /** | |
1594 | + * @brief 测试设备通讯。 | |
1595 | + * @par 说明: | |
1596 | + * 测试和设备之间是否可以正常通讯。 | |
1597 | + * @param[in] icdev 设备标识符。 | |
1598 | + * @return <0表示失败,==0表示成功。 | |
1599 | + */ | |
1600 | + short USER_API dc_testdevicecomm(HANDLE icdev); | |
1601 | + | |
1602 | + /** | |
1603 | + * @brief 显示主界面。 | |
1604 | + * @par 说明: | |
1605 | + * 使设备屏幕上显示预置的主界面,不同设备的主界面不尽相同。 | |
1606 | + * @param[in] icdev 设备标识符。 | |
1607 | + * @return <0表示失败,==0表示成功。 | |
1608 | + */ | |
1609 | + short USER_API dc_dispmainmenu(HANDLE icdev); | |
1610 | + | |
1611 | + /** | |
1612 | + * @brief 设置设备时间。 | |
1613 | + * @par 说明: | |
1614 | + * 设置设备的当前时间。 | |
1615 | + * @param[in] icdev 设备标识符。 | |
1616 | + * @param[in] year 年(0~99)。 | |
1617 | + * @param[in] month 月(1~12)。 | |
1618 | + * @param[in] date 日(1~31)。 | |
1619 | + * @param[in] hour 时(0~23)。 | |
1620 | + * @param[in] minute 分(0~59)。 | |
1621 | + * @param[in] second 秒(0~59)。 | |
1622 | + * @return <0表示失败,==0表示成功。 | |
1623 | + */ | |
1624 | + short USER_API dc_setdevicetime(HANDLE icdev, unsigned char year, unsigned char month, unsigned char date, unsigned char hour, unsigned char minute, unsigned char second); | |
1625 | + | |
1626 | + /** | |
1627 | + * @brief 获取设备时间。 | |
1628 | + * @par 说明: | |
1629 | + * 获取设备当前的时间。 | |
1630 | + * @param[out] icdev 设备标识符。 | |
1631 | + * @param[out] year 年(0~99)。 | |
1632 | + * @param[out] month 月(1~12)。 | |
1633 | + * @param[out] date 日(1~31)。 | |
1634 | + * @param[out] hour 时(0~23)。 | |
1635 | + * @param[out] minute 分(0~59)。 | |
1636 | + * @param[out] second 秒(0~59)。 | |
1637 | + * @return <0表示失败,==0表示成功。 | |
1638 | + */ | |
1639 | + short USER_API dc_getdevicetime(HANDLE icdev, unsigned char *year, unsigned char *month, unsigned char *date, unsigned char *hour, unsigned char *minute, unsigned char *second); | |
1640 | + | |
1641 | + /** | |
1642 | + * @brief 液晶显示。 | |
1643 | + * @par 说明: | |
1644 | + * 显示指定字符串到液晶屏幕上。 | |
1645 | + * @param[in] icdev 设备标识符。 | |
1646 | + * @param[in] line 行号。 | |
1647 | + * @param[in] offset 偏移。 | |
1648 | + * @param[in] data 要显示的字符串。 | |
1649 | + * @return <0表示失败,==0表示成功。 | |
1650 | + */ | |
1651 | + short USER_API dc_dispinfo(HANDLE icdev, unsigned char line, unsigned char offset, char *data); | |
1652 | + | |
1653 | + /** | |
1654 | + * @brief 液晶显示。 | |
1655 | + * @par 说明: | |
1656 | + * 显示指定字符串到液晶屏幕上。 | |
1657 | + * @param[in] icdev 设备标识符。 | |
1658 | + * @param[in] offset 屏幕偏移。 | |
1659 | + * @param[in] data 要显示的字符串。 | |
1660 | + * @return <0表示失败,==0表示成功。 | |
1661 | + */ | |
1662 | + short USER_API dc_dispmaininfo(HANDLE icdev, unsigned char offset, char *data); | |
1663 | + | |
1664 | + /** | |
1665 | + * @brief 设备蜂鸣。 | |
1666 | + * @par 说明: | |
1667 | + * 设备蜂鸣器发出指定时间的蜂鸣声。 | |
1668 | + * @param[in] icdev 设备标识符。 | |
1669 | + * @param[in] beeptime 蜂鸣时间,单位为50毫秒。 | |
1670 | + * @return <0表示失败,==0表示成功。 | |
1671 | + */ | |
1672 | + short USER_API dc_posbeep(HANDLE icdev, unsigned char beeptime); | |
1673 | + | |
1674 | + /** | |
1675 | + * @brief LCD背光控制。 | |
1676 | + * @par 说明: | |
1677 | + * 控制设备的LCD背光。 | |
1678 | + * @param[in] icdev 设备标识符。 | |
1679 | + * @param[in] cOpenFlag 0-开背光,1-关背光。 | |
1680 | + * @return <0表示失败,==0表示成功。 | |
1681 | + */ | |
1682 | + short USER_API dc_ctlbacklight(HANDLE icdev, unsigned char cOpenFlag); | |
1683 | + | |
1684 | + /** | |
1685 | + * @brief 指示灯控制。 | |
1686 | + * @par 说明: | |
1687 | + * 控制设备的指示灯。 | |
1688 | + * @param[in] icdev 设备标识符。 | |
1689 | + * @param[in] cLed 指示灯编号,0表示全部指示灯,1表示第一个指示灯,2表示第二个指示灯,以此类推。 | |
1690 | + * @param[in] cOpenFlag 0-点亮,1-熄灭,2-闪烁。 | |
1691 | + * @return <0表示失败,==0表示成功。 | |
1692 | + */ | |
1693 | + short USER_API dc_ctlled(HANDLE icdev, unsigned char cLed, unsigned char cOpenFlag); | |
1694 | + | |
1695 | + /** | |
1696 | + * @brief LCD清屏。 | |
1697 | + * @par 说明: | |
1698 | + * 清除LCD屏幕的显示内容。 | |
1699 | + * @param[in] icdev 设备标识符。 | |
1700 | + * @param[in] cLine 需要清除的行号,编号从1开始。 | |
1701 | + * @return <0表示失败,==0表示成功。 | |
1702 | + */ | |
1703 | + short USER_API dc_lcdclrscrn(HANDLE icdev, unsigned char cLine); | |
1704 | + | |
1705 | + /** | |
1706 | + * @brief 进入读键盘模式。 | |
1707 | + * @par 说明: | |
1708 | + * 使设备进入读取键盘的状态,接口本身会直接返回,而不会等待按键完成或设备超时。 | |
1709 | + * @param[in] icdev 设备标识符。 | |
1710 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1711 | + * @return <0表示失败,==0表示成功。 | |
1712 | + */ | |
1713 | + short USER_API dc_passin(HANDLE icdev, unsigned char ctime); | |
1714 | + | |
1715 | + /** | |
1716 | + * @brief 进入读键盘模式。 | |
1717 | + * @par 说明: | |
1718 | + * 使设备进入读取键盘的状态,接口本身会直接返回,而不会等待按键完成或设备超时。 | |
1719 | + * @param[in] icdev 设备标识符。 | |
1720 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1721 | + * @return <0表示失败,==0表示成功。 | |
1722 | + */ | |
1723 | + short USER_API dc_PassIn(HANDLE icdev, unsigned char ctime); | |
1724 | + | |
1725 | + /** | |
1726 | + * @brief 进入读键盘模式。 | |
1727 | + * @par 说明: | |
1728 | + * 使设备进入读取键盘的状态,接口本身会直接返回,而不会等待按键完成或设备超时。 | |
1729 | + * @param[in] icdev 设备标识符。 | |
1730 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1731 | + * @param[in] ucmode 模式,0-带卡号,1-不带卡号。 | |
1732 | + * @param[in] cardno 卡号字符串,只用于带卡号的模式。 | |
1733 | + * @return <0表示失败,==0表示成功。 | |
1734 | + */ | |
1735 | + short USER_API dc_passin2(HANDLE icdev, unsigned char ctime, unsigned char ucmode, unsigned char *cardno); | |
1736 | + | |
1737 | + /** | |
1738 | + * @brief 进入读键盘模式。 | |
1739 | + * @par 说明: | |
1740 | + * 使设备进入读取键盘的状态,接口本身会直接返回,而不会等待按键完成或设备超时。 | |
1741 | + * @param[in] icdev 设备标识符。 | |
1742 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1743 | + * @param[in] ucmode 模式,0-带卡号,1-不带卡号。 | |
1744 | + * @param[in] cardno 卡号字符串,只用于带卡号的模式。 | |
1745 | + * @return <0表示失败,==0表示成功。 | |
1746 | + */ | |
1747 | + short USER_API dc_PassIn2(HANDLE icdev, unsigned char ctime, unsigned char ucmode, unsigned char *cardno); | |
1748 | + | |
1749 | + /** | |
1750 | + * @brief 获取键盘数据。 | |
1751 | + * @par 说明: | |
1752 | + * 获取设备已经读取到的键盘数据。 | |
1753 | + * @param[in] icdev 设备标识符。 | |
1754 | + * @param[out] rlen 返回按键数据的长度,不含'\0'。 | |
1755 | + * @param[out] cpass 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
1756 | + * @return <0表示失败,==0表示成功。 | |
1757 | + */ | |
1758 | + short USER_API dc_passget(HANDLE icdev, unsigned char *rlen, unsigned char *cpass); | |
1759 | + | |
1760 | + /** | |
1761 | + * @brief 获取键盘数据。 | |
1762 | + * @par 说明: | |
1763 | + * 获取设备已经读取到的键盘数据。 | |
1764 | + * @param[in] icdev 设备标识符。 | |
1765 | + * @param[out] rlen 返回按键数据的长度,不含'\0'。 | |
1766 | + * @param[out] cpass 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
1767 | + * @return <0表示失败,==0表示成功。 | |
1768 | + */ | |
1769 | + short USER_API dc_PassGet(HANDLE icdev, unsigned char *rlen, unsigned char *cpass); | |
1770 | + | |
1771 | + /** | |
1772 | + * @brief 退出读键盘模式。 | |
1773 | + * @par 说明: | |
1774 | + * 在设备进入读键盘模式后,设备会一直处于接收键盘输入的状态,这时只有按键完成、设备超时或调用此接口才能使得设备退出这种状态。 | |
1775 | + * @param[in] icdev 设备标识符。 | |
1776 | + * @return <0表示失败,==0表示成功。 | |
1777 | + */ | |
1778 | + short USER_API dc_passcancel(HANDLE icdev); | |
1779 | + | |
1780 | + /** | |
1781 | + * @brief 退出读键盘模式。 | |
1782 | + * @par 说明: | |
1783 | + * 在设备进入读键盘模式后,设备会一直处于接收键盘输入的状态,这时是只有按键完成、设备超时或调用此接口才能使得设备退出这种状态。 | |
1784 | + * @param[in] icdev 设备标识符。 | |
1785 | + * @return <0表示失败,==0表示成功。 | |
1786 | + */ | |
1787 | + short USER_API dc_PassCancel(HANDLE icdev); | |
1788 | + | |
1789 | + /** | |
1790 | + * @brief 获取键盘输入。 | |
1791 | + * @par 说明: | |
1792 | + * 获取键盘按键,同时设置输入时屏幕显示的信息。 | |
1793 | + * @param[in] icdev 设备标识符。 | |
1794 | + * @param[in] disptype 显示类型,此类型与设备内置显示条目相关。 | |
1795 | + * @param[in] line 行号,信息将会显示在此行号指定的行中。 | |
1796 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1797 | + * @param[out] rlen 返回按键数据的长度,不含'\0'。 | |
1798 | + * @param[out] ckeydata 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
1799 | + * @return <0表示失败,==0表示成功。 | |
1800 | + */ | |
1801 | + short USER_API dc_getinputkey(HANDLE icdev, unsigned char disptype, unsigned char line, unsigned char ctime, unsigned char *rlen, unsigned char *ckeydata); | |
1802 | + | |
1803 | + /** | |
1804 | + * @brief 保留。 | |
1805 | + */ | |
1806 | + short USER_API dc_displcd_ext(HANDLE icdev, unsigned char flag, unsigned char row, unsigned char offset); | |
1807 | + | |
1808 | + /** | |
1809 | + * @brief 读磁条卡。 | |
1810 | + * @par 说明: | |
1811 | + * 读取磁条卡的数据,支持1、2、3轨道。 | |
1812 | + * @param[in] icdev 设备标识符。 | |
1813 | + * @param[in] ctime 设备超时值,单位为秒。 | |
1814 | + * @param[out] pTrack1Data 返回的1轨道数据,数据格式为'\0'结尾的字符串。 | |
1815 | + * @param[out] pTrack1Len 返回1轨道数据的长度,不含'\0'。 | |
1816 | + * @param[out] pTrack2Data 返回的2轨道数据,数据格式为'\0'结尾的字符串。 | |
1817 | + * @param[out] pTrack2Len 返回2轨道数据的长度,不含'\0'。 | |
1818 | + * @param[out] pTrack3Data 返回的3轨道数据,数据格式为'\0'结尾的字符串。 | |
1819 | + * @param[out] pTrack3Len 返回3轨道数据的长度,不含'\0'。 | |
1820 | + * @return <0表示失败,==0表示成功。 | |
1821 | + */ | |
1822 | + short USER_API dc_readmagcardall(HANDLE icdev, unsigned char ctime, unsigned char *pTrack1Data, unsigned int *pTrack1Len, unsigned char *pTrack2Data, unsigned int *pTrack2Len, unsigned char *pTrack3Data, unsigned int *pTrack3Len); | |
1823 | + | |
1824 | + /** | |
1825 | + * @brief 获取设备序列号。 | |
1826 | + * @par 说明: | |
1827 | + * 获取设备内部定制的序列号,设备默认序列号为空,只有预先定制的设备才会存在可用的序列号。 | |
1828 | + * @param[in] icdev 设备标识符。 | |
1829 | + * @param[out] snr 返回的序列号字符串,请至少分配33个字节。 | |
1830 | + * @return <0表示失败,==0表示成功。 | |
1831 | + */ | |
1832 | + short USER_API dc_readdevsnr(HANDLE icdev, unsigned char *snr); | |
1833 | + | |
1834 | + /** | |
1835 | + * @brief 获取设备序列号。 | |
1836 | + * @par 说明: | |
1837 | + * 获取设备内部定制的序列号,设备默认序列号为空,只有预先定制的设备才会存在可用的序列号。 | |
1838 | + * @param[in] icdev 设备标识符。 | |
1839 | + * @param[out] snr 返回的序列号字符串,请至少分配17个字节。 | |
1840 | + * @return <0表示失败,==0表示成功。 | |
1841 | + */ | |
1842 | + short USER_API dc_readreadersnr(HANDLE icdev, unsigned char *snr); | |
1843 | + | |
1844 | + /** | |
1845 | + * @brief 复位设备。 | |
1846 | + * @par 说明: | |
1847 | + * 使设备进入上电初始状态。 | |
1848 | + * @param[in] icdev 设备标识符。 | |
1849 | + * @return <0表示失败,==0表示成功。 | |
1850 | + */ | |
1851 | + short USER_API dc_resetdevice(HANDLE icdev); | |
1852 | + | |
1853 | + /** | |
1854 | + * @brief 设置串口设备通讯波特率。 | |
1855 | + * @par 说明: | |
1856 | + * 设置串口设备通讯波特率。 | |
1857 | + * @param[in] icdev 设备标识符。 | |
1858 | + * @param[in] baud 波特率。 | |
1859 | + * @n 0x00 - 115200。 | |
1860 | + * @n 0x01 - 57600。 | |
1861 | + * @n 0x02 - 38400。 | |
1862 | + * @n 0x03 - 19200。 | |
1863 | + * @n 0x04 - 9600。 | |
1864 | + * @n 0x05 - 4800。 | |
1865 | + * @n 0x06 - 2400。 | |
1866 | + * @n 0x07 - 1200。 | |
1867 | + * @return <0表示失败,==0表示成功。 | |
1868 | + */ | |
1869 | + short USER_API dc_setdevicebaud(HANDLE icdev, unsigned char baud); | |
1870 | + | |
1871 | + /** | |
1872 | + * @brief 读4442卡。 | |
1873 | + * @par 说明: | |
1874 | + * 读取4442卡的数据。 | |
1875 | + * @param[in] icdev 设备标识符。 | |
1876 | + * @param[in] offset 偏移。 | |
1877 | + * @param[in] length 读取长度。 | |
1878 | + * @param[out] data_buffer 返回的数据。 | |
1879 | + * @return <0表示失败,==0表示成功。 | |
1880 | + */ | |
1881 | + short USER_API dc_read_4442(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1882 | + | |
1883 | + /** | |
1884 | + * @brief 读4442卡。 | |
1885 | + * @par 说明: | |
1886 | + * ::dc_read_4442 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
1887 | + */ | |
1888 | + short USER_API dc_read_4442_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1889 | + | |
1890 | + /** | |
1891 | + * @brief 写4442卡。 | |
1892 | + * @par 说明: | |
1893 | + * 写入数据到4442卡中。 | |
1894 | + * @param[in] icdev 设备标识符。 | |
1895 | + * @param[in] offset 偏移。 | |
1896 | + * @param[in] length 写入长度。 | |
1897 | + * @param[in] data_buffer 传入数据。 | |
1898 | + * @return <0表示失败,==0表示成功。 | |
1899 | + */ | |
1900 | + short USER_API dc_write_4442(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1901 | + | |
1902 | + /** | |
1903 | + * @brief 写4442卡。 | |
1904 | + * @par 说明: | |
1905 | + * ::dc_write_4442 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
1906 | + */ | |
1907 | + short USER_API dc_write_4442_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1908 | + | |
1909 | + /** | |
1910 | + * @brief 验证4442卡密码。 | |
1911 | + * @par 说明: | |
1912 | + * 使用传入的密码来验证4442卡密码。 | |
1913 | + * @param[in] icdev 设备标识符。 | |
1914 | + * @param[in] passwd 密码,固定为3个字节。 | |
1915 | + * @return <0表示失败,==0表示成功。 | |
1916 | + */ | |
1917 | + short USER_API dc_verifypin_4442(HANDLE icdev, unsigned char *passwd); | |
1918 | + | |
1919 | + /** | |
1920 | + * @brief 验证4442卡密码。 | |
1921 | + * @par 说明: | |
1922 | + * ::dc_verifypin_4442 的HEX形式接口,参数 @a passwd 为HEX格式。 | |
1923 | + */ | |
1924 | + short USER_API dc_verifypin_4442_hex(HANDLE icdev, unsigned char *passwd); | |
1925 | + | |
1926 | + /** | |
1927 | + * @brief 读4442卡密码。 | |
1928 | + * @par 说明: | |
1929 | + * 读取4442卡的密码。 | |
1930 | + * @param[in] icdev 设备标识符。 | |
1931 | + * @param[out] passwd 密码,固定为3个字节。 | |
1932 | + * @return <0表示失败,==0表示成功。 | |
1933 | + */ | |
1934 | + short USER_API dc_readpin_4442(HANDLE icdev, unsigned char *passwd); | |
1935 | + | |
1936 | + /** | |
1937 | + * @brief 读4442卡密码。 | |
1938 | + * @par 说明: | |
1939 | + * ::dc_readpin_4442 的HEX形式接口,参数 @a passwd 为HEX格式。 | |
1940 | + */ | |
1941 | + short USER_API dc_readpin_4442_hex(HANDLE icdev, unsigned char *passwd); | |
1942 | + | |
1943 | + /** | |
1944 | + * @brief 读4442卡密码计数。 | |
1945 | + * @par 说明: | |
1946 | + * 读取4442卡的密码计数,此计数值表示可以尝试验证密码的次数。 | |
1947 | + * @param[in] icdev 设备标识符。 | |
1948 | + * @return <0表示失败,否则为密码计数值。 | |
1949 | + */ | |
1950 | + short USER_API dc_readpincount_4442(HANDLE icdev); | |
1951 | + | |
1952 | + /** | |
1953 | + * @brief 修改4442卡密码。 | |
1954 | + * @par 说明: | |
1955 | + * 修改4442卡的密码。 | |
1956 | + * @param[in] icdev 设备标识符。 | |
1957 | + * @param[in] passwd 密码,固定为3个字节。 | |
1958 | + * @return <0表示失败,==0表示成功。 | |
1959 | + */ | |
1960 | + short USER_API dc_changepin_4442(HANDLE icdev, unsigned char *passwd); | |
1961 | + | |
1962 | + /** | |
1963 | + * @brief 修改4442卡密码。 | |
1964 | + * @par 说明: | |
1965 | + * ::dc_changepin_4442 的HEX形式接口,参数 @a passwd 为HEX格式。 | |
1966 | + */ | |
1967 | + short USER_API dc_changepin_4442_hex(HANDLE icdev, unsigned char *passwd); | |
1968 | + | |
1969 | + /** | |
1970 | + * @brief 读4442卡保护位。 | |
1971 | + * @par 说明: | |
1972 | + * 读取4442卡的保护区中哪些位置已经被置保护。 | |
1973 | + * @param[in] icdev 设备标识符。 | |
1974 | + * @param[in] offset 偏移。 | |
1975 | + * @param[in] length 读取长度。 | |
1976 | + * @param[out] data_buffer 返回的数据,数据中含有0x00字节的位置表示已经被置保护。 | |
1977 | + * @return <0表示失败,==0表示成功。 | |
1978 | + */ | |
1979 | + short USER_API dc_readwrotect_4442(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1980 | + | |
1981 | + /** | |
1982 | + * @brief 读4442卡保护位。 | |
1983 | + * @par 说明: | |
1984 | + * ::dc_readwrotect_4442 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
1985 | + */ | |
1986 | + short USER_API dc_readwrotect_4442_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1987 | + | |
1988 | + /** | |
1989 | + * @brief 读4442卡保护位。 | |
1990 | + * @par 说明: | |
1991 | + * 读取4442卡的保护区中哪些位置已经被置保护。 | |
1992 | + * @param[in] icdev 设备标识符。 | |
1993 | + * @param[in] offset 偏移。 | |
1994 | + * @param[in] length 读取长度。 | |
1995 | + * @param[out] data_buffer 返回的数据,数据中含有0x00字节的位置表示已经被置保护。 | |
1996 | + * @return <0表示失败,==0表示成功。 | |
1997 | + */ | |
1998 | + short USER_API dc_readprotect_4442(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
1999 | + | |
2000 | + /** | |
2001 | + * @brief 读4442卡保护位。 | |
2002 | + * @par 说明: | |
2003 | + * ::dc_readprotect_4442 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
2004 | + */ | |
2005 | + short USER_API dc_readprotect_4442_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2006 | + | |
2007 | + /** | |
2008 | + * @brief 写4442卡保护位。 | |
2009 | + * @par 说明: | |
2010 | + * 对4442卡的保护区中指定位置进行置保护。 | |
2011 | + * @param[in] icdev 设备标识符。 | |
2012 | + * @param[in] offset 偏移。 | |
2013 | + * @param[in] length 写入长度。 | |
2014 | + * @param[in] data_buffer 传入数据,数据中和卡内原有数据相同的字节位置将被置保护。 | |
2015 | + * @return <0表示失败,==0表示成功。 | |
2016 | + */ | |
2017 | + short USER_API dc_writeprotect_4442(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2018 | + | |
2019 | + /** | |
2020 | + * @brief 写4442卡保护位。 | |
2021 | + * @par 说明: | |
2022 | + * ::dc_writeprotect_4442 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
2023 | + */ | |
2024 | + short USER_API dc_writeprotect_4442_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2025 | + | |
2026 | + /** | |
2027 | + * @brief 写24C系列卡。 | |
2028 | + * @par 说明: | |
2029 | + * 写入数据到24C系列卡中,支持24C01、24C02、24C04、24C08、24C16卡。 | |
2030 | + * @param[in] icdev 设备标识符。 | |
2031 | + * @param[in] offset 偏移。 | |
2032 | + * @param[in] length 写入长度。 | |
2033 | + * @param[in] snd_buffer 传入数据。 | |
2034 | + * @return <0表示失败,==0表示成功。 | |
2035 | + */ | |
2036 | + short USER_API dc_write_24c(HANDLE icdev, short offset, short length, unsigned char *snd_buffer); | |
2037 | + | |
2038 | + /** | |
2039 | + * @brief 写24C系列卡。 | |
2040 | + * @par 说明: | |
2041 | + * ::dc_write_24c 的HEX形式接口,参数 @a snd_buffer 为HEX格式。 | |
2042 | + */ | |
2043 | + short USER_API dc_write_24c_hex(HANDLE icdev, short offset, short length, unsigned char *snd_buffer); | |
2044 | + | |
2045 | + /** | |
2046 | + * @brief 写24C64系列卡。 | |
2047 | + * @par 说明: | |
2048 | + * 写入数据到24C64系列卡中,支持24C64、24C512、24C1024卡。 | |
2049 | + * @param[in] icdev 设备标识符。 | |
2050 | + * @param[in] offset 偏移。 | |
2051 | + * @param[in] length 写入长度。 | |
2052 | + * @param[in] snd_buffer 传入数据。 | |
2053 | + * @return <0表示失败,==0表示成功。 | |
2054 | + */ | |
2055 | + short USER_API dc_write_24c64(HANDLE icdev, short offset, short length, unsigned char *snd_buffer); | |
2056 | + | |
2057 | + /** | |
2058 | + * @brief 写24C64系列卡。 | |
2059 | + * @par 说明: | |
2060 | + * ::dc_write_24c64 的HEX形式接口,参数 @a snd_buffer 为HEX格式。 | |
2061 | + */ | |
2062 | + short USER_API dc_write_24c64_hex(HANDLE icdev, short offset, short length, unsigned char *snd_buffer); | |
2063 | + | |
2064 | + /** | |
2065 | + * @brief 读24C系列卡。 | |
2066 | + * @par 说明: | |
2067 | + * 读取24C系列卡的数据,支持24C01、24C02、24C04、24C08、24C16卡。 | |
2068 | + * @param[in] icdev 设备标识符。 | |
2069 | + * @param[in] offset 偏移。 | |
2070 | + * @param[in] length 读取长度。 | |
2071 | + * @param[out] receive_buffer 返回的数据。 | |
2072 | + * @return <0表示失败,==0表示成功。 | |
2073 | + */ | |
2074 | + short USER_API dc_read_24c(HANDLE icdev, short offset, short length, unsigned char *receive_buffer); | |
2075 | + | |
2076 | + /** | |
2077 | + * @brief 读24C系列卡。 | |
2078 | + * @par 说明: | |
2079 | + * ::dc_read_24c 的HEX形式接口,参数 @a receive_buffer 为HEX格式。 | |
2080 | + */ | |
2081 | + short USER_API dc_read_24c_hex(HANDLE icdev, short offset, short length, unsigned char *receive_buffer); | |
2082 | + | |
2083 | + /** | |
2084 | + * @brief 读24C64系列卡。 | |
2085 | + * @par 说明: | |
2086 | + * 读取24C64系列卡的数据,支持24C64、24C512、24C1024卡。 | |
2087 | + * @param[in] icdev 设备标识符。 | |
2088 | + * @param[in] offset 偏移。 | |
2089 | + * @param[in] length 读取长度。 | |
2090 | + * @param[out] receive_buffer 返回的数据。 | |
2091 | + * @return <0表示失败,==0表示成功。 | |
2092 | + */ | |
2093 | + short USER_API dc_read_24c64(HANDLE icdev, short offset, short length, unsigned char *receive_buffer); | |
2094 | + | |
2095 | + /** | |
2096 | + * @brief 读24C64系列卡。 | |
2097 | + * @par 说明: | |
2098 | + * ::dc_read_24c64 的HEX形式接口,参数 @a receive_buffer 为HEX格式。 | |
2099 | + */ | |
2100 | + short USER_API dc_read_24c64_hex(HANDLE icdev, short offset, short length, unsigned char *receive_buffer); | |
2101 | + | |
2102 | + /** | |
2103 | + * @brief 读4428卡。 | |
2104 | + * @par 说明: | |
2105 | + * 读取4428卡的数据。 | |
2106 | + * @param[in] icdev 设备标识符。 | |
2107 | + * @param[in] offset 偏移。 | |
2108 | + * @param[in] length 读取长度。 | |
2109 | + * @param[out] data_buffer 返回的数据。 | |
2110 | + * @return <0表示失败,==0表示成功。 | |
2111 | + */ | |
2112 | + short USER_API dc_read_4428(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2113 | + | |
2114 | + /** | |
2115 | + * @brief 读4428卡。 | |
2116 | + * @par 说明: | |
2117 | + * ::dc_read_4428 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
2118 | + */ | |
2119 | + short USER_API dc_read_4428_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2120 | + | |
2121 | + /** | |
2122 | + * @brief 写4428卡。 | |
2123 | + * @par 说明: | |
2124 | + * 写入数据到4428卡中。 | |
2125 | + * @param[in] icdev 设备标识符。 | |
2126 | + * @param[in] offset 偏移。 | |
2127 | + * @param[in] length 写入长度。 | |
2128 | + * @param[in] data_buffer 传入数据。 | |
2129 | + * @return <0表示失败,==0表示成功。 | |
2130 | + */ | |
2131 | + short USER_API dc_write_4428(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2132 | + | |
2133 | + /** | |
2134 | + * @brief 写4428卡。 | |
2135 | + * @par 说明: | |
2136 | + * ::dc_write_4428 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
2137 | + */ | |
2138 | + short USER_API dc_write_4428_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2139 | + | |
2140 | + /** | |
2141 | + * @brief 验证4428卡密码。 | |
2142 | + * @par 说明: | |
2143 | + * 使用传入的密码来验证4428卡密码。 | |
2144 | + * @param[in] icdev 设备标识符。 | |
2145 | + * @param[in] passwd 密码,固定为2个字节。 | |
2146 | + * @return <0表示失败,==0表示成功。 | |
2147 | + */ | |
2148 | + short USER_API dc_verifypin_4428(HANDLE icdev, unsigned char *passwd); | |
2149 | + | |
2150 | + /** | |
2151 | + * @brief 验证4428卡密码。 | |
2152 | + * @par 说明: | |
2153 | + * ::dc_verifypin_4428 的HEX形式接口,参数 @a passwd 为HEX格式。 | |
2154 | + */ | |
2155 | + short USER_API dc_verifypin_4428_hex(HANDLE icdev, unsigned char *passwd); | |
2156 | + | |
2157 | + /** | |
2158 | + * @brief 读4428卡密码。 | |
2159 | + * @par 说明: | |
2160 | + * 读取4428卡的密码。 | |
2161 | + * @param[in] icdev 设备标识符。 | |
2162 | + * @param[out] passwd 密码,固定为2个字节。 | |
2163 | + * @return <0表示失败,==0表示成功。 | |
2164 | + */ | |
2165 | + short USER_API dc_readpin_4428(HANDLE icdev, unsigned char *passwd); | |
2166 | + | |
2167 | + /** | |
2168 | + * @brief 读4428卡密码。 | |
2169 | + * @par 说明: | |
2170 | + * ::dc_readpin_4428 的HEX形式接口,参数 @a passwd 为HEX格式。 | |
2171 | + */ | |
2172 | + short USER_API dc_readpin_4428_hex(HANDLE icdev, unsigned char *passwd); | |
2173 | + | |
2174 | + /** | |
2175 | + * @brief 读4428卡密码计数。 | |
2176 | + * @par 说明: | |
2177 | + * 读取4428卡的密码计数,此计数值表示可以尝试验证密码的次数。 | |
2178 | + * @param[in] icdev 设备标识符。 | |
2179 | + * @return <0表示失败,否则为密码计数值。 | |
2180 | + */ | |
2181 | + short USER_API dc_readpincount_4428(HANDLE icdev); | |
2182 | + | |
2183 | + /** | |
2184 | + * @brief 修改4428卡密码。 | |
2185 | + * @par 说明: | |
2186 | + * 修改4428卡的密码。 | |
2187 | + * @param[in] icdev 设备标识符。 | |
2188 | + * @param[in] passwd 密码,固定为2个字节。 | |
2189 | + * @return <0表示失败,==0表示成功。 | |
2190 | + */ | |
2191 | + short USER_API dc_changepin_4428(HANDLE icdev, unsigned char *passwd); | |
2192 | + | |
2193 | + /** | |
2194 | + * @brief 修改4428卡密码。 | |
2195 | + * @par 说明: | |
2196 | + * ::dc_changepin_4428 的HEX形式接口,参数 @a passwd 为HEX格式。 | |
2197 | + */ | |
2198 | + short USER_API dc_changepin_4428_hex(HANDLE icdev, unsigned char *passwd); | |
2199 | + | |
2200 | + /** | |
2201 | + * @brief 读4428卡保护位。 | |
2202 | + * @par 说明: | |
2203 | + * 读取4428卡的保护区中哪些位置已经被置保护。 | |
2204 | + * @param[in] icdev 设备标识符。 | |
2205 | + * @param[in] offset 偏移。 | |
2206 | + * @param[in] length 读取长度。 | |
2207 | + * @param[out] data_buffer 返回的数据,数据中含有0x00字节的位置表示已经被置保护。 | |
2208 | + * @return <0表示失败,==0表示成功。 | |
2209 | + */ | |
2210 | + short USER_API dc_readprotect_4428(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2211 | + | |
2212 | + /** | |
2213 | + * @brief 读4428卡保护位。 | |
2214 | + * @par 说明: | |
2215 | + * ::dc_readprotect_4428 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
2216 | + */ | |
2217 | + short USER_API dc_readprotect_4428_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2218 | + | |
2219 | + /** | |
2220 | + * @brief 写4428卡保护位。 | |
2221 | + * @par 说明: | |
2222 | + * 对4428卡的保护区中指定位置进行置保护。 | |
2223 | + * @param[in] icdev 设备标识符。 | |
2224 | + * @param[in] offset 偏移。 | |
2225 | + * @param[in] length 写入长度。 | |
2226 | + * @param[in] data_buffer 传入数据,数据中和卡内原有数据相同的字节位置将被置保护。 | |
2227 | + * @return <0表示失败,==0表示成功。 | |
2228 | + */ | |
2229 | + short USER_API dc_writeprotect_4428(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2230 | + | |
2231 | + /** | |
2232 | + * @brief 写4428卡保护位。 | |
2233 | + * @par 说明: | |
2234 | + * ::dc_writeprotect_4428 的HEX形式接口,参数 @a data_buffer 为HEX格式。 | |
2235 | + */ | |
2236 | + short USER_API dc_writeprotect_4428_hex(HANDLE icdev, short offset, short length, unsigned char *data_buffer); | |
2237 | + | |
2238 | + /** | |
2239 | + * @brief 检测4442卡。 | |
2240 | + * @par 说明: | |
2241 | + * 检测当前卡座中是否存在4442卡。 | |
2242 | + * @param[in] icdev 设备标识符。 | |
2243 | + * @return <0表示失败或不存在,==0表示存在。 | |
2244 | + */ | |
2245 | + short USER_API dc_Check_4442(HANDLE icdev); | |
2246 | + | |
2247 | + /** | |
2248 | + * @brief 检测4428卡。 | |
2249 | + * @par 说明: | |
2250 | + * 检测当前卡座中是否存在4428卡。 | |
2251 | + * @param[in] icdev 设备标识符。 | |
2252 | + * @return <0表示失败或不存在,==0表示存在。 | |
2253 | + */ | |
2254 | + short USER_API dc_Check_4428(HANDLE icdev); | |
2255 | + | |
2256 | + /** | |
2257 | + * @brief 检测24C01卡。 | |
2258 | + * @par 说明: | |
2259 | + * 检测当前卡座中是否存在24C01卡。 | |
2260 | + * @param[in] icdev 设备标识符。 | |
2261 | + * @return <0表示失败或不存在,==0表示存在。 | |
2262 | + */ | |
2263 | + short USER_API dc_Check_24C01(HANDLE icdev); | |
2264 | + | |
2265 | + /** | |
2266 | + * @brief 检测24C02卡。 | |
2267 | + * @par 说明: | |
2268 | + * 检测当前卡座中是否存在24C02卡。 | |
2269 | + * @param[in] icdev 设备标识符。 | |
2270 | + * @return <0表示失败或不存在,==0表示存在。 | |
2271 | + */ | |
2272 | + short USER_API dc_Check_24C02(HANDLE icdev); | |
2273 | + | |
2274 | + /** | |
2275 | + * @brief 检测24C04卡。 | |
2276 | + * @par 说明: | |
2277 | + * 检测当前卡座中是否存在24C04卡。 | |
2278 | + * @param[in] icdev 设备标识符。 | |
2279 | + * @return <0表示失败或不存在,==0表示存在。 | |
2280 | + */ | |
2281 | + short USER_API dc_Check_24C04(HANDLE icdev); | |
2282 | + | |
2283 | + /** | |
2284 | + * @brief 检测24C08卡。 | |
2285 | + * @par 说明: | |
2286 | + * 检测当前卡座中是否存在24C08卡。 | |
2287 | + * @param[in] icdev 设备标识符。 | |
2288 | + * @return <0表示失败或不存在,==0表示存在。 | |
2289 | + */ | |
2290 | + short USER_API dc_Check_24C08(HANDLE icdev); | |
2291 | + | |
2292 | + /** | |
2293 | + * @brief 检测24C16卡。 | |
2294 | + * @par 说明: | |
2295 | + * 检测当前卡座中是否存在24C16卡。 | |
2296 | + * @param[in] icdev 设备标识符。 | |
2297 | + * @return <0表示失败或不存在,==0表示存在。 | |
2298 | + */ | |
2299 | + short USER_API dc_Check_24C16(HANDLE icdev); | |
2300 | + | |
2301 | + /** | |
2302 | + * @brief 检测24C64卡。 | |
2303 | + * @par 说明: | |
2304 | + * 检测当前卡座中是否存在24C64卡。 | |
2305 | + * @param[in] icdev 设备标识符。 | |
2306 | + * @return <0表示失败或不存在,==0表示存在。 | |
2307 | + */ | |
2308 | + short USER_API dc_Check_24C64(HANDLE icdev); | |
2309 | + | |
2310 | + /** | |
2311 | + * @brief 检测CPU卡。 | |
2312 | + * @par 说明: | |
2313 | + * 检测当前卡座中是否存在CPU卡。 | |
2314 | + * @param[in] icdev 设备标识符。 | |
2315 | + * @return <0表示失败或不存在,==0表示存在T=0的CPU卡,==1表示存在T=1的CPU卡。 | |
2316 | + */ | |
2317 | + short USER_API dc_Check_CPU(HANDLE icdev); | |
2318 | + | |
2319 | + /** | |
2320 | + * @brief 检测卡。 | |
2321 | + * @par 说明: | |
2322 | + * 检测当前卡座中存在的卡类型。 | |
2323 | + * @param[in] icdev 设备标识符。 | |
2324 | + * @return <0表示失败或不存在。 | |
2325 | + * @n 8 - 表示存在4442卡。 | |
2326 | + * @n 9 - 表示存在4428卡。 | |
2327 | + * @n 30 - 表示存在T=0的CPU卡。 | |
2328 | + * @n 31 - 表示存在T=1的CPU卡。 | |
2329 | + * @n 21 - 表示存在24C01卡。 | |
2330 | + * @n 22 - 表示存在24C02卡。 | |
2331 | + * @n 23 - 表示存在24C04卡。 | |
2332 | + * @n 24 - 表示存在24C08卡。 | |
2333 | + * @n 25 - 表示存在24C16卡。 | |
2334 | + * @n 26 - 表示存在24C64卡。 | |
2335 | + */ | |
2336 | + short USER_API dc_CheckCard(HANDLE icdev); | |
2337 | + | |
2338 | + /** | |
2339 | + * @brief 保留。 | |
2340 | + */ | |
2341 | + short USER_API dc_getrcinfo(HANDLE icdev, unsigned char *info); | |
2342 | + | |
2343 | + /** | |
2344 | + * @brief 保留。 | |
2345 | + */ | |
2346 | + short USER_API dc_getrcinfo_hex(HANDLE icdev, unsigned char *info); | |
2347 | + | |
2348 | + /** | |
2349 | + * @brief 获取设备长版本。 | |
2350 | + * @par 说明: | |
2351 | + * 获取设备内部固件代码的长版本,此长版本依赖设备内部固件代码的实现,有可能同设备版本一致。 | |
2352 | + * @param[in] icdev 设备标识符。 | |
2353 | + * @param[out] sver 返回的版本字符串,请至少分配128个字节。 | |
2354 | + * @return <0表示失败,==0表示成功。 | |
2355 | + */ | |
2356 | + short USER_API dc_getlongver(HANDLE icdev, unsigned char *sver); | |
2357 | + | |
2358 | + /** | |
2359 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
2360 | + * @par 说明: | |
2361 | + * 内部包含了 ::dc_request ::dc_anticoll ::dc_select 的功能。 | |
2362 | + * @param[in] icdev 设备标识符。 | |
2363 | + * @param[in] _Mode 模式,同 ::dc_request 的 @a _Mode 。 | |
2364 | + * @param[out] Strsnr 返回的卡序列号,格式为数字字符串。 | |
2365 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
2366 | + */ | |
2367 | + short USER_API dc_cardstr(HANDLE icdev, unsigned char _Mode, char *Strsnr); | |
2368 | + | |
2369 | + /** | |
2370 | + * @brief 寻Type A或Type B卡并激活。 | |
2371 | + * @par 说明: | |
2372 | + * 对Type A或Type B卡进行寻卡和激活。 | |
2373 | + * @param[in] icdev 设备标识符。 | |
2374 | + * @param[out] rlen 返回激活信息的长度。 | |
2375 | + * @param[out] rbuf 返回的激活信息,请至少分配128个字节。 | |
2376 | + * @param[out] type 类型,'A'表示Type A卡,'B'表示Type B卡。 | |
2377 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
2378 | + */ | |
2379 | + short USER_API dc_cardAB(HANDLE icdev, unsigned char *rlen, unsigned char *rbuf, unsigned char *type); | |
2380 | + | |
2381 | + /** | |
2382 | + * @brief 寻Type B卡并激活。 | |
2383 | + * @par 说明: | |
2384 | + * 对Type B卡进行寻卡和激活。 | |
2385 | + * @param[in] icdev 设备标识符。 | |
2386 | + * @param[out] rbuf 返回的激活信息,请至少分配128个字节。 | |
2387 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
2388 | + */ | |
2389 | + short USER_API dc_card_b(HANDLE icdev, unsigned char *rbuf); | |
2390 | + | |
2391 | + /** | |
2392 | + * @brief 寻Type B卡并激活。 | |
2393 | + * @par 说明: | |
2394 | + * ::dc_card_b 的HEX形式接口,参数 @a rbuf 为HEX格式。 | |
2395 | + */ | |
2396 | + short USER_API dc_card_b_hex(HANDLE icdev, char *rbuf); | |
2397 | + | |
2398 | + /** | |
2399 | + * @brief 液晶显示。 | |
2400 | + * @par 说明: | |
2401 | + * 显示指定字符串到液晶屏幕上。 | |
2402 | + * @param[in] icdev 设备标识符。 | |
2403 | + * @param[in] line 行号。 | |
2404 | + * @param[in] offset 偏移。 | |
2405 | + * @param[in] data 要显示的字符串。 | |
2406 | + * @return <0表示失败,==0表示成功。 | |
2407 | + */ | |
2408 | + short USER_API dc_dispinfo_T8(HANDLE icdev, unsigned char line, unsigned char offset, char *data); | |
2409 | + | |
2410 | + /** | |
2411 | + * @brief 液晶显示。 | |
2412 | + * @par 说明: | |
2413 | + * 显示指定字符串到液晶屏幕上。 | |
2414 | + * @param[in] icdev 设备标识符。 | |
2415 | + * @param[in] offset 屏幕偏移。 | |
2416 | + * @param[in] data 要显示的字符串。 | |
2417 | + * @return <0表示失败,==0表示成功。 | |
2418 | + */ | |
2419 | + short USER_API dc_dispinfo_pro_T8(HANDLE icdev, unsigned char offset, char *data); | |
2420 | + | |
2421 | + /** | |
2422 | + * @brief LCD清屏。 | |
2423 | + * @par 说明: | |
2424 | + * 清除LCD屏幕的显示内容。 | |
2425 | + * @param[in] icdev 设备标识符。 | |
2426 | + * @param[in] line 需要清除的行号,编号从1开始。 | |
2427 | + * @return <0表示失败,==0表示成功。 | |
2428 | + */ | |
2429 | + short USER_API dc_clearlcd_T8(HANDLE icdev, unsigned char line); | |
2430 | + | |
2431 | + /** | |
2432 | + * @brief 指示灯点亮/熄灭。 | |
2433 | + * @par 说明: | |
2434 | + * 点亮/熄灭设备的指示灯。 | |
2435 | + * @param[in] icdev 设备标识符。 | |
2436 | + * @param[in] cled 指示灯编号,0表示全部指示灯,1表示第一个指示灯,2表示第二个指示灯,以此类推。 | |
2437 | + * @param[in] cflag 0-点亮,1-熄灭。 | |
2438 | + * @return <0表示失败,==0表示成功。 | |
2439 | + */ | |
2440 | + short USER_API dc_led_T8(HANDLE icdev, unsigned char cled, unsigned char cflag); | |
2441 | + | |
2442 | + /** | |
2443 | + * @brief 保留。 | |
2444 | + */ | |
2445 | + short USER_API dc_dispmap_T8(HANDLE icdev, unsigned char *mapdata); | |
2446 | + | |
2447 | + /** | |
2448 | + * @brief 保留。 | |
2449 | + */ | |
2450 | + short USER_API dc_displow_T8(HANDLE icdev, unsigned char rs, unsigned char cdata); | |
2451 | + | |
2452 | + /** | |
2453 | + * @brief 读/写射频寄存器。 | |
2454 | + * @par 说明: | |
2455 | + * 从射频寄存器读取值或写入值到射频寄存器中。 | |
2456 | + * @param[in] icdev 设备标识符。 | |
2457 | + * @param[in] flag 读写标记,0x00表示读,0x01表示写。 | |
2458 | + * @param[in] _Adr 寄存器地址。 | |
2459 | + * @param[in,out] _Data 寄存器值,固定为1个字节。 | |
2460 | + * @return <0表示失败,==0表示成功。 | |
2461 | + */ | |
2462 | + short USER_API dc_rw_rfreg(HANDLE icdev, unsigned char flag, unsigned char _Adr, unsigned char *_Data); | |
2463 | + | |
2464 | + /** | |
2465 | + * @brief 读/写射频寄存器。 | |
2466 | + * @par 说明: | |
2467 | + * ::dc_rw_rfreg 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
2468 | + */ | |
2469 | + short USER_API dc_rw_rfreg_hex(HANDLE icdev, unsigned char flag, unsigned char _Adr, unsigned char *_Data); | |
2470 | + | |
2471 | + /** | |
2472 | + * @brief 保留。 | |
2473 | + */ | |
2474 | + short USER_API dc_mulrequest_b(HANDLE icdev, unsigned char _Mode, unsigned char AFI, unsigned char *cardnum, unsigned char *mulATQB); | |
2475 | + | |
2476 | + /** | |
2477 | + * @brief 保留。 | |
2478 | + */ | |
2479 | + short USER_API dc_hltb(HANDLE icdev, unsigned char *PUPI); | |
2480 | + | |
2481 | + /** | |
2482 | + * @brief 保留。 | |
2483 | + */ | |
2484 | + short USER_API dc_set_poweroff(HANDLE icdev, unsigned int MsTimes, unsigned char TimerClock, unsigned char TimerReload); | |
2485 | + | |
2486 | + /** | |
2487 | + * @brief 非接触式CPU卡指令交互。 | |
2488 | + * @par 说明: | |
2489 | + * 对感应区CPU卡进行指令交互操作,注意此接口不封装卡协议部分,带CRC。 | |
2490 | + * @param[in] icdev 设备标识符。 | |
2491 | + * @param[in] slen 发送数据的长度。 | |
2492 | + * @param[in] sendbuffer 发送数据。 | |
2493 | + * @param[out] rlen 返回数据的长度。 | |
2494 | + * @param[out] databuffer 返回的数据。 | |
2495 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
2496 | + * @param[in] CRCSTU CRC值。 | |
2497 | + * @return <0表示失败,==0表示成功。 | |
2498 | + */ | |
2499 | + short USER_API dc_pro_commandsourceCRC(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout, unsigned char CRCSTU); | |
2500 | + | |
2501 | + /** | |
2502 | + * @brief 非接触式CPU卡指令交互。 | |
2503 | + * @par 说明: | |
2504 | + * ::dc_pro_commandsourceCRC 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
2505 | + */ | |
2506 | + short USER_API dc_pro_commandsourceCRChex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer, unsigned char timeout, unsigned char CRCSTU); | |
2507 | + | |
2508 | + /** | |
2509 | + * @brief Mifare Plus卡设置个人化数据(0级)。 | |
2510 | + * @par 说明: | |
2511 | + * 设置Mifare Plus卡的个人化数据。 | |
2512 | + * @param[in] icdev 设备标识符。 | |
2513 | + * @param[in] BNr 要写入的个人化数据块号。 | |
2514 | + * @param[in] dataperso 要写入的数据,固定为16个字节。 | |
2515 | + * @return <0表示失败,==0表示成功。 | |
2516 | + */ | |
2517 | + short USER_API dc_MFPL0_writeperso(HANDLE icdev, unsigned int BNr, unsigned char *dataperso); | |
2518 | + | |
2519 | + /** | |
2520 | + * @brief Mifare Plus卡设置个人化数据(0级)。 | |
2521 | + * @par 说明: | |
2522 | + * ::dc_MFPL0_writeperso 的HEX形式接口,参数 @a dataperso 为HEX格式。 | |
2523 | + */ | |
2524 | + short USER_API dc_MFPL0_writeperso_hex(HANDLE icdev, unsigned int BNr, unsigned char *dataperso); | |
2525 | + | |
2526 | + /** | |
2527 | + * @brief Mifare Plus卡提交个人化数据(0级)。 | |
2528 | + * @par 说明: | |
2529 | + * 提交Mifare Plus卡的个人化数据,提交成功后卡片进入1级状态。 | |
2530 | + * @param[in] icdev 设备标识符。 | |
2531 | + * @return <0表示失败,==0表示成功。 | |
2532 | + */ | |
2533 | + short USER_API dc_MFPL0_commitperso(HANDLE icdev); | |
2534 | + | |
2535 | + /** | |
2536 | + * @brief 验证Mifare Plus卡状态密码(1级)。 | |
2537 | + * @par 说明: | |
2538 | + * 验证Mifare Plus卡状态密码,用于在1级状态下实现严格的认证。 | |
2539 | + * @param[in] icdev 设备标识符。 | |
2540 | + * @param[in] authkey 认证密码,固定为16个字节。 | |
2541 | + * @return <0表示失败,==0表示成功。 | |
2542 | + */ | |
2543 | + short USER_API dc_MFPL1_authl1key(HANDLE icdev, unsigned char *authkey); | |
2544 | + | |
2545 | + /** | |
2546 | + * @brief 验证Mifare Plus卡状态密码(1级)。 | |
2547 | + * @par 说明: | |
2548 | + * ::dc_MFPL1_authl1key 的HEX形式接口,参数 @a authkey 为HEX格式。 | |
2549 | + */ | |
2550 | + short USER_API dc_MFPL1_authl1key_hex(HANDLE icdev, unsigned char *authkey); | |
2551 | + | |
2552 | + /** | |
2553 | + * @brief 升级Mifare Plus卡状态到2级(1级)。 | |
2554 | + * @par 说明: | |
2555 | + * 状态切换函数,执行该操作后,1级状态的卡片转换到2级。 | |
2556 | + * @param[in] icdev 设备标识符。 | |
2557 | + * @param[in] authkey 升级密码,固定为16个字节。 | |
2558 | + * @return <0表示失败,==0表示成功。 | |
2559 | + */ | |
2560 | + short USER_API dc_MFPL1_switchtol2(HANDLE icdev, unsigned char *authkey); | |
2561 | + | |
2562 | + /** | |
2563 | + * @brief 升级Mifare Plus卡状态到3级(1级)。 | |
2564 | + * @par 说明: | |
2565 | + * 状态切换函数,执行该操作后,1级状态的卡片转换到3级。 | |
2566 | + * @param[in] icdev 设备标识符。 | |
2567 | + * @param[in] authkey 升级密码,固定为16个字节。 | |
2568 | + * @return <0表示失败,==0表示成功。 | |
2569 | + */ | |
2570 | + short USER_API dc_MFPL1_switchtol3(HANDLE icdev, unsigned char *authkey); | |
2571 | + | |
2572 | + /** | |
2573 | + * @brief 升级Mifare Plus卡状态到3级(2级)。 | |
2574 | + * @par 说明: | |
2575 | + * 状态切换函数,执行该操作后,2级状态的卡片转换到3级。 | |
2576 | + * @param[in] icdev 设备标识符。 | |
2577 | + * @param[in] authkey 升级密码,固定为16个字节。 | |
2578 | + * @return <0表示失败,==0表示成功。 | |
2579 | + */ | |
2580 | + short USER_API dc_MFPL2_switchtol3(HANDLE icdev, unsigned char *authkey); | |
2581 | + | |
2582 | + /** | |
2583 | + * @brief 验证Mifare Plus卡状态密码(3级)。 | |
2584 | + * @par 说明: | |
2585 | + * 执行3级状态卡片认证,根据密码块号的不同,验证不同的密码。 | |
2586 | + * @param[in] icdev 设备标识符。 | |
2587 | + * @param[in] keyBNr 密码块号。 | |
2588 | + * @param[in] authkey 认证密码,固定为16个字节。 | |
2589 | + * @return <0表示失败,==0表示成功。 | |
2590 | + */ | |
2591 | + short USER_API dc_MFPL3_authl3key(HANDLE icdev, unsigned int keyBNr, unsigned char *authkey); | |
2592 | + | |
2593 | + /** | |
2594 | + * @brief 验证Mifare Plus卡状态密码(3级)。 | |
2595 | + * @par 说明: | |
2596 | + * ::dc_MFPL3_authl3key 的HEX形式接口,参数 @a authkey 为HEX格式。 | |
2597 | + */ | |
2598 | + short USER_API dc_MFPL3_authl3key_hex(HANDLE icdev, unsigned int keyBNr, unsigned char *authkey); | |
2599 | + | |
2600 | + /** | |
2601 | + * @brief 验证Mifare Plus卡状态密码(3级)。 | |
2602 | + * @par 说明: | |
2603 | + * 执行3级状态卡片认证,根据密码扇区号的不同,验证不同的密码。 | |
2604 | + * @param[in] icdev 设备标识符。 | |
2605 | + * @param[in] mode 模式,0x00表示验证A密码,内部用0x4000+sectorBNr*2计算密码块,0x04表示验证B密码,内部用0x4000+sectorBNr*2+1计算密码块。 | |
2606 | + * @param[in] sectorBNr 密码扇区号。 | |
2607 | + * @param[in] authkey 认证密码,固定为16个字节。 | |
2608 | + * @return <0表示失败,==0表示成功。 | |
2609 | + */ | |
2610 | + short USER_API dc_MFPL3_authl3sectorkey(HANDLE icdev, unsigned char mode, unsigned int sectorBNr, unsigned char *authkey); | |
2611 | + | |
2612 | + /** | |
2613 | + * @brief 验证Mifare Plus卡状态密码(3级)。 | |
2614 | + * @par 说明: | |
2615 | + * ::dc_MFPL3_authl3key 的HEX形式接口,参数 @a authkey 为HEX格式。 | |
2616 | + */ | |
2617 | + short USER_API dc_MFPL3_authl3sectorkey_hex(HANDLE icdev, unsigned char mode, unsigned int sectorBNr, unsigned char *authkey); | |
2618 | + | |
2619 | + /** | |
2620 | + * @brief 读Mifare Plus卡数据(3级)。 | |
2621 | + * @par 说明: | |
2622 | + * 在3级状态下读取Mifare Plus卡数据,可以连续读多块,每块16字节。 | |
2623 | + * @param[in] icdev 设备标识符。 | |
2624 | + * @param[in] BNr 起始块地址。 | |
2625 | + * @param[in] Numblock 块数目,一般不大于6块。 | |
2626 | + * @param[out] readdata 返回的数据。 | |
2627 | + * @return <0表示失败,==0表示成功。 | |
2628 | + */ | |
2629 | + short USER_API dc_MFPL3_readinplain(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *readdata); | |
2630 | + | |
2631 | + /** | |
2632 | + * @brief 读Mifare Plus卡数据(3级)。 | |
2633 | + * @par 说明: | |
2634 | + * ::dc_MFPL3_readinplain 的HEX形式接口,参数 @a readdata 为HEX格式。 | |
2635 | + */ | |
2636 | + short USER_API dc_MFPL3_readinplain_hex(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *readdata); | |
2637 | + | |
2638 | + /** | |
2639 | + * @brief 加密模式读Mifare Plus卡数据(3级)。 | |
2640 | + * @par 说明: | |
2641 | + * 在3级状态下用加密模式读取Mifare Plus卡数据,可以连续读多块,每块16字节。 | |
2642 | + * @param[in] icdev 设备标识符。 | |
2643 | + * @param[in] BNr 起始块地址。 | |
2644 | + * @param[in] Numblock 块数目,一般不大于6块。 | |
2645 | + * @param[out] readdata 返回的数据。 | |
2646 | + * @param[in] flag 标记,0x00表示加密数据内部解密后再返回,0x01表示加密数据直接返回。 | |
2647 | + * @return <0表示失败,==0表示成功。 | |
2648 | + */ | |
2649 | + short USER_API dc_MFPL3_readencrypted(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *readdata, unsigned char flag); | |
2650 | + | |
2651 | + /** | |
2652 | + * @brief 加密模式读Mifare Plus卡数据(3级)。 | |
2653 | + * @par 说明: | |
2654 | + * ::dc_MFPL3_readencrypted 的HEX形式接口,参数 @a readdata 为HEX格式。 | |
2655 | + */ | |
2656 | + short USER_API dc_MFPL3_readencrypted_hex(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *readdata, unsigned char flag); | |
2657 | + | |
2658 | + /** | |
2659 | + * @brief 写Mifare Plus卡数据(3级)。 | |
2660 | + * @par 说明: | |
2661 | + * 在3级状态下写入数据到Mifare Plus卡中,可以连续写多块,每块16字节。 | |
2662 | + * @param[in] icdev 设备标识符。 | |
2663 | + * @param[in] BNr 起始块地址。 | |
2664 | + * @param[in] Numblock 块数目,一般不大于6块。 | |
2665 | + * @param[in] writedata 传入数据。 | |
2666 | + * @return <0表示失败,==0表示成功。 | |
2667 | + */ | |
2668 | + short USER_API dc_MFPL3_writeinplain(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *writedata); | |
2669 | + | |
2670 | + /** | |
2671 | + * @brief 写Mifare Plus卡数据(3级)。 | |
2672 | + * @par 说明: | |
2673 | + * ::dc_MFPL3_writeinplain 的HEX形式接口,参数 @a writedata 为HEX格式。 | |
2674 | + */ | |
2675 | + short USER_API dc_MFPL3_writeinplain_hex(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *writedata); | |
2676 | + | |
2677 | + /** | |
2678 | + * @brief 加密模式写Mifare Plus卡数据(3级)。 | |
2679 | + * @par 说明: | |
2680 | + * 在3级状态下用加密模式写入数据到Mifare Plus卡中,可以连续写多块,每块16字节。注意:写密码时,必须使用此函数并且块数目只能为1。 | |
2681 | + * @param[in] icdev 设备标识符。 | |
2682 | + * @param[in] BNr 起始块地址。 | |
2683 | + * @param[in] Numblock 块数目,一般不大于6块。 | |
2684 | + * @param[in] writedata 传入数据。 | |
2685 | + * @param[in] flag 标记,0x00表示传入数据需内部加密后再使用,0x01表示传入数据直接使用。 | |
2686 | + * @return <0表示失败,==0表示成功。 | |
2687 | + */ | |
2688 | + short USER_API dc_MFPL3_writeencrypted(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *writedata, unsigned char flag); | |
2689 | + | |
2690 | + /** | |
2691 | + * @brief 加密模式写Mifare Plus卡数据(3级)。 | |
2692 | + * @par 说明: | |
2693 | + * ::dc_MFPL3_writeencrypted 的HEX形式接口,参数 @a writedata 为HEX格式。 | |
2694 | + */ | |
2695 | + short USER_API dc_MFPL3_writeencrypted_hex(HANDLE icdev, unsigned int BNr, unsigned char Numblock, unsigned char *writedata, unsigned char flag); | |
2696 | + | |
2697 | + /** | |
2698 | + * @brief 验证Mifare Ultralight C卡密码。 | |
2699 | + * @par 说明: | |
2700 | + * 使用传入的密码来验证Mifare Ultralight C卡密码。 | |
2701 | + * @param[in] icdev 设备标识符。 | |
2702 | + * @param[in] key 密码,固定为16个字节。 | |
2703 | + * @return <0表示失败,==0表示成功。 | |
2704 | + */ | |
2705 | + short USER_API dc_auth_ulc(HANDLE icdev, unsigned char *key); | |
2706 | + | |
2707 | + /** | |
2708 | + * @brief 验证Mifare Ultralight C卡密码。 | |
2709 | + * @par 说明: | |
2710 | + * ::dc_auth_ulc 的HEX形式接口,参数 @a key 为HEX格式。 | |
2711 | + */ | |
2712 | + short USER_API dc_auth_ulc_hex(HANDLE icdev, unsigned char *key); | |
2713 | + | |
2714 | + /** | |
2715 | + * @brief 修改Mifare Ultralight C卡密码。 | |
2716 | + * @par 说明: | |
2717 | + * 修改Mifare Ultralight C卡的密码。 | |
2718 | + * @param[in] icdev 设备标识符。 | |
2719 | + * @param[in] newkey 密码,固定为16个字节。 | |
2720 | + * @return <0表示失败,==0表示成功。 | |
2721 | + */ | |
2722 | + short USER_API dc_changekey_ulc(HANDLE icdev, unsigned char *newkey); | |
2723 | + | |
2724 | + /** | |
2725 | + * @brief 修改Mifare Ultralight C卡密码。 | |
2726 | + * @par 说明: | |
2727 | + * ::dc_changekey_ulc 的HEX形式接口,参数 @a newkey 为HEX格式。 | |
2728 | + */ | |
2729 | + short USER_API dc_changekey_ulc_hex(HANDLE icdev, unsigned char *newkey); | |
2730 | + | |
2731 | + /** | |
2732 | + * @brief 获取接触式CPU卡参数。 | |
2733 | + * @par 说明: | |
2734 | + * 此接口可获取接触式CPU卡操作行为的参数。 | |
2735 | + * @param[in] icdev 设备标识符。 | |
2736 | + * @param[in] cputype 卡座编号,同 ::dc_setcpu 的 @a _Byte 。 | |
2737 | + * @param[out] cpupro 卡协议编号,0x00表示T0,0x01表示T1,默认为0x00。 | |
2738 | + * @param[out] cpuetu 卡复位波特率编号,0x5C表示9600,0x14表示38400. | |
2739 | + * @return <0表示失败,==0表示成功。 | |
2740 | + */ | |
2741 | + short USER_API dc_getcpupara(HANDLE icdev, unsigned char cputype, unsigned char *cpupro, unsigned char *cpuetu); | |
2742 | + | |
2743 | + /** | |
2744 | + * @brief 接触式CPU卡指令交互。 | |
2745 | + * @par 说明: | |
2746 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口不封装卡协议部分。 | |
2747 | + * @param[in] icdev 设备标识符。 | |
2748 | + * @param[in] slen 发送数据的长度。 | |
2749 | + * @param[in] sendbuffer 发送数据。 | |
2750 | + * @param[out] rlen 返回数据的长度。 | |
2751 | + * @param[out] databuffer 返回的数据。 | |
2752 | + * @return <0表示失败,==0表示成功。 | |
2753 | + */ | |
2754 | + short USER_API dc_cpuapdusourceEXT(HANDLE icdev, short slen, unsigned char *sendbuffer, short *rlen, unsigned char *databuffer); | |
2755 | + | |
2756 | + /** | |
2757 | + * @brief 接触式CPU卡指令交互。 | |
2758 | + * @par 说明: | |
2759 | + * ::dc_cpuapdusourceEXT 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
2760 | + */ | |
2761 | + short USER_API dc_cpuapdusourceEXT_hex(HANDLE icdev, short slen, char *sendbuffer, short *rlen, char *databuffer); | |
2762 | + | |
2763 | + /** | |
2764 | + * @brief 接触式CPU卡指令交互。 | |
2765 | + * @par 说明: | |
2766 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
2767 | + * @param[in] icdev 设备标识符。 | |
2768 | + * @param[in] slen 发送数据的长度。 | |
2769 | + * @param[in] sendbuffer 发送数据。 | |
2770 | + * @param[out] rlen 返回数据的长度。 | |
2771 | + * @param[out] databuffer 返回的数据。 | |
2772 | + * @return <0表示失败,==0表示成功。 | |
2773 | + */ | |
2774 | + short USER_API dc_cpuapduEXT(HANDLE icdev, short slen, unsigned char *sendbuffer, short *rlen, unsigned char *databuffer); | |
2775 | + | |
2776 | + /** | |
2777 | + * @brief 接触式CPU卡指令交互。 | |
2778 | + * @par 说明: | |
2779 | + * ::dc_cpuapduEXT 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
2780 | + */ | |
2781 | + short USER_API dc_cpuapduEXT_hex(HANDLE icdev, short slen, char *sendbuffer, short *rlen, char *databuffer); | |
2782 | + | |
2783 | + /** | |
2784 | + * @brief 接触式CPU卡指令交互。 | |
2785 | + * @par 说明: | |
2786 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
2787 | + * @param[in] icdev 设备标识符。 | |
2788 | + * @param[in] slen 发送数据的长度。 | |
2789 | + * @param[in] sendbuffer 发送数据。 | |
2790 | + * @param[out] rlen 返回数据的长度。 | |
2791 | + * @param[out] databuffer 返回的数据。 | |
2792 | + * @return <0表示失败,==0表示成功。 | |
2793 | + */ | |
2794 | + short USER_API dc_cpuapduInt(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer); | |
2795 | + | |
2796 | + /** | |
2797 | + * @brief 接触式CPU卡指令交互。 | |
2798 | + * @par 说明: | |
2799 | + * ::dc_cpuapduInt 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
2800 | + */ | |
2801 | + short USER_API dc_cpuapduInt_hex(HANDLE icdev, unsigned int slen, char *sendbuffer, unsigned int *rlen, char *databuffer); | |
2802 | + | |
2803 | + /** | |
2804 | + * @brief 非接触式CPU卡指令交互。 | |
2805 | + * @par 说明: | |
2806 | + * 对感应区CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
2807 | + * @param[in] icdev 设备标识符。 | |
2808 | + * @param[in] slen 发送数据的长度。 | |
2809 | + * @param[in] sendbuffer 发送数据。 | |
2810 | + * @param[out] rlen 返回数据的长度。 | |
2811 | + * @param[out] databuffer 返回的数据。 | |
2812 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
2813 | + * @param[in] FG 分割值,此值只在部分设备的底层使用,单位为字节,一般调用建议值为64。 | |
2814 | + * @return <0表示失败,==0表示成功。 | |
2815 | + */ | |
2816 | + short USER_API dc_pro_commandlinkEXT(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer, unsigned char timeout, unsigned char FG); | |
2817 | + | |
2818 | + /** | |
2819 | + * @brief 非接触式CPU卡指令交互。 | |
2820 | + * @par 说明: | |
2821 | + * ::dc_pro_commandlinkEXT 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
2822 | + */ | |
2823 | + short USER_API dc_pro_commandlinkEXT_hex(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer, unsigned char timeout, unsigned char FG); | |
2824 | + | |
2825 | + /** | |
2826 | + * @brief 非接触式CPU卡指令交互。 | |
2827 | + * @par 说明: | |
2828 | + * 对感应区CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
2829 | + * @param[in] icdev 设备标识符。 | |
2830 | + * @param[in] slen 发送数据的长度。 | |
2831 | + * @param[in] sendbuffer 发送数据。 | |
2832 | + * @param[out] rlen 返回数据的长度。 | |
2833 | + * @param[out] databuffer 返回的数据。 | |
2834 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
2835 | + * @return <0表示失败,==0表示成功。 | |
2836 | + */ | |
2837 | + short USER_API dc_pro_commandlinkInt(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer, unsigned char timeout); | |
2838 | + | |
2839 | + /** | |
2840 | + * @brief 非接触式CPU卡指令交互。 | |
2841 | + * @par 说明: | |
2842 | + * ::dc_pro_commandlinkInt 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
2843 | + */ | |
2844 | + short USER_API dc_pro_commandlinkInt_hex(HANDLE icdev, unsigned int slen, char *sendbuffer, unsigned int *rlen, char *databuffer, unsigned char timeout); | |
2845 | + | |
2846 | + /** | |
2847 | + * @brief 保留。 | |
2848 | + */ | |
2849 | + short USER_API dc_exchangeblock(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout); | |
2850 | + | |
2851 | + /** | |
2852 | + * @brief 保留。 | |
2853 | + */ | |
2854 | + short USER_API dc_exchangeblock_hex(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout); | |
2855 | + | |
2856 | + /** | |
2857 | + * @brief 保留。 | |
2858 | + */ | |
2859 | + short USER_API dc_write1024(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *writebuffer); | |
2860 | + | |
2861 | + /** | |
2862 | + * @brief 保留。 | |
2863 | + */ | |
2864 | + short USER_API dc_write1024_hex(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *writebuffer); | |
2865 | + | |
2866 | + /** | |
2867 | + * @brief 保留。 | |
2868 | + */ | |
2869 | + short USER_API dc_read1024(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *databuffer); | |
2870 | + | |
2871 | + /** | |
2872 | + * @brief 保留。 | |
2873 | + */ | |
2874 | + short USER_API dc_read1024_hex(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *databuffer); | |
2875 | + | |
2876 | + /** | |
2877 | + * @brief 保留。 | |
2878 | + */ | |
2879 | + short USER_API dc_switch_linux(HANDLE icdev); | |
2880 | + | |
2881 | + /** | |
2882 | + * @brief 接触式CPU卡复位。 | |
2883 | + * @par 说明: | |
2884 | + * 对当前卡座CPU卡进行复位操作,此复位为热复位。 | |
2885 | + * @param[in] icdev 设备标识符。 | |
2886 | + * @param[out] rlen 返回复位信息的长度。 | |
2887 | + * @param[out] databuffer 返回的复位信息,请至少分配128个字节。 | |
2888 | + * @return <0表示失败,==0表示成功。 | |
2889 | + */ | |
2890 | + short USER_API dc_cpuhotreset(HANDLE icdev, unsigned char *rlen, unsigned char *databuffer); | |
2891 | + | |
2892 | + /** | |
2893 | + * @brief 接触式CPU卡复位。 | |
2894 | + * @par 说明: | |
2895 | + * ::dc_cpuhotreset 的HEX形式接口,参数 @a databuffer 为HEX格式。 | |
2896 | + */ | |
2897 | + short USER_API dc_cpuhotreset_hex(HANDLE icdev, unsigned char *rlen, char *databuffer); | |
2898 | + | |
2899 | + /** | |
2900 | + * @brief 检测多卡状态。 | |
2901 | + * @par 说明: | |
2902 | + * 检测设备中存在什么类型的卡片,支持磁卡、非接、接触、身份证。 | |
2903 | + * @param[in] icdev 设备标识符。 | |
2904 | + * @param[out] flag 状态标记,固定为2个字节,可以解析为一个无符号整数(Big-Endian),值为下面列出的一种或多种之和。 | |
2905 | + * @n 0x0001 - 表示已刷磁卡。 | |
2906 | + * @n 0x0002 - 表示卡座存在接触式CPU卡。 | |
2907 | + * @n 0x0004 - 表示卡座存在接触式未知卡。 | |
2908 | + * @n 0x0008 - 表示感应区存在身份证。 | |
2909 | + * @n 0x0010 - 表示感应区存在激活前的Type A CPU卡或Type B CPU卡。 | |
2910 | + * @n 0x0020 - 表示感应区存在激活后的Type A CPU卡或Type B CPU卡。 | |
2911 | + * @n 0x0040 - 表示感应区存在激活前的M1卡。 | |
2912 | + * @n 0x0100 - 表示感应区存在激活前的多张Type A CPU卡。 | |
2913 | + * @n 0x0200 - 表示感应区存在激活前的多张M1卡。 | |
2914 | + * @n 0x0400 - 表示感应区同时存在激活前的Type A CPU卡和M1卡。 | |
2915 | + * @n 0x0800 - 表示刷磁卡失败。 | |
2916 | + * @n 0x1000 - 表示启动刷磁卡模式处于关闭状态。 | |
2917 | + * @n 0x2000 - 表示启动刷磁卡模式处于开启状态。 | |
2918 | + * @n 0x4000 - 表示感应区身份证激活前后状态一致。 | |
2919 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
2920 | + */ | |
2921 | + short USER_API dc_card_exist(HANDLE icdev, unsigned char *flag); | |
2922 | + | |
2923 | + /** | |
2924 | + * @brief 检测接触式卡存在。 | |
2925 | + * @par 说明: | |
2926 | + * 检测接触式卡片是否存在于当前卡座中。 | |
2927 | + * @param[in] icdev 设备标识符。 | |
2928 | + * @return <0表示失败,==0表示存在,==1表示不存在。 | |
2929 | + */ | |
2930 | + short USER_API dc_card_status(HANDLE icdev); | |
2931 | + | |
2932 | + /** | |
2933 | + * @brief 身份证、Type A CPU卡、Type B CPU卡检测。 | |
2934 | + * @par 说明: | |
2935 | + * 检测感应区是否存在身份证、Type A CPU卡、Type B CPU卡。 | |
2936 | + * @param[in] icdev 设备标识符。 | |
2937 | + * @return <0表示失败,==0表示无卡,==1表示存在身份证,==2表示存在Type A CPU卡,==3表示存在Type B CPU卡。 | |
2938 | + */ | |
2939 | + short USER_API dc_typeab_card_status(HANDLE icdev); | |
2940 | + | |
2941 | + /** | |
2942 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
2943 | + * @par 说明: | |
2944 | + * 内部包含了 ::dc_request ::dc_anticoll ::dc_select ::dc_anticoll2 ::dc_select2 的功能。 | |
2945 | + * @param[in] icdev 设备标识符。 | |
2946 | + * @param[in] _Mode 模式,同 ::dc_request 的 @a _Mode 。 | |
2947 | + * @param[out] SnrLen 返回卡序列号的长度。 | |
2948 | + * @param[out] _Snr 返回的卡序列号,请至少分配8个字节。 | |
2949 | + * @return <0表示失败,==0表示成功,==1表示无卡或无法寻到卡片。 | |
2950 | + */ | |
2951 | + short USER_API dc_card_n(HANDLE icdev, unsigned char _Mode, unsigned int *SnrLen, unsigned char *_Snr); | |
2952 | + | |
2953 | + /** | |
2954 | + * @brief 寻卡请求、防卡冲突、选卡操作。 | |
2955 | + * @par 说明: | |
2956 | + * ::dc_card_n 的HEX形式接口,参数 @a _Snr 为HEX格式。 | |
2957 | + */ | |
2958 | + short USER_API dc_card_n_hex(HANDLE icdev, unsigned char _Mode, unsigned int *SnrLen, unsigned char *_Snr); | |
2959 | + | |
2960 | + /** | |
2961 | + * @brief 保留。 | |
2962 | + */ | |
2963 | + short USER_API dc_card_n_number(HANDLE icdev, unsigned char _Mode, char *_Snr); | |
2964 | + | |
2965 | + /** | |
2966 | + * @brief 获取单个按键值。 | |
2967 | + * @par 说明: | |
2968 | + * 获取设备键盘的按键值,每次调用仅能获取单个按键值。 | |
2969 | + * @param[in] icdev 设备标识符。 | |
2970 | + * @param[in] timeout 设备超时值,单位为秒。 | |
2971 | + * @param[out] value 返回的按键值,请至少分配8个字节。 | |
2972 | + * @return <0表示失败,==0表示成功。 | |
2973 | + */ | |
2974 | + short USER_API dc_pass_key_value(HANDLE icdev, unsigned char timeout, char *value); | |
2975 | + | |
2976 | + /** | |
2977 | + * @brief 播放语音。 | |
2978 | + * @par 说明: | |
2979 | + * 播放设备内置语音。 | |
2980 | + * @param[in] icdev 设备标识符。 | |
2981 | + * @param[in] mode 语音段号(0x01~0x12)。 | |
2982 | + * @return <0表示失败,==0表示成功。 | |
2983 | + */ | |
2984 | + short USER_API dc_play_voice(HANDLE icdev, unsigned char mode); | |
2985 | + | |
2986 | + /** | |
2987 | + * @brief 播放语音。 | |
2988 | + * @par 说明: | |
2989 | + * 播放设备内置语音。 | |
2990 | + * @param[in] icdev 设备标识符。 | |
2991 | + * @param[in] mode 语音段号(0x01~0x12)。 | |
2992 | + * @return <0表示失败,==0表示成功。 | |
2993 | + */ | |
2994 | + short USER_API dc_playvoice(HANDLE icdev, unsigned char mode); | |
2995 | + | |
2996 | + /** | |
2997 | + * @brief 装载语音。 | |
2998 | + * @par 说明: | |
2999 | + * 装载语音数据到设备内。 | |
3000 | + * @param[in] icdev 设备标识符。 | |
3001 | + * @param[in] flag 标记,0表示第一包,1表示第二包,以此类推,0xFFFF表示结束包。 | |
3002 | + * @param[in] slen 传入数据的长度,必须小于或等于1024,当标记为结束包的时候为0。 | |
3003 | + * @param[in] sdata 传入数据。 | |
3004 | + * @return <0表示失败,==0表示成功。 | |
3005 | + */ | |
3006 | + short USER_API dc_load_voice(HANDLE icdev, int flag, int slen, const unsigned char *sdata); | |
3007 | + | |
3008 | + /** | |
3009 | + * @brief 磁条卡参数配置。 | |
3010 | + * @par 说明: | |
3011 | + * 配置操作磁条卡的参数,参数仅针对自动输出的模式有效。 | |
3012 | + * @param[in] icdev 设备标识符。 | |
3013 | + * @param[in] mode 模式,0x00表示不用输出,0x01表示自动输出。 | |
3014 | + * @param[in] track1 1轨道参数。 | |
3015 | + * @n bit0 - 轨道数据输出设置,0表示不输出,1表示输出。 | |
3016 | + * @n bit1 - 轨道数据头设置,0表示无数据头,1表示有数据头。 | |
3017 | + * @n bit2 - 轨道数据尾设置,0表示无数据尾,1表示有数据尾。 | |
3018 | + * @n bit3 - 轨道数据换行符设置,0表示无换行符,1表示有换行符。 | |
3019 | + * @n bit4 - 轨道数据等号与其后数据设置,0表示不输出,1表示输出。 | |
3020 | + * @n bit5~bit7 - 保留。 | |
3021 | + * @param[in] track2 2轨道参数。 | |
3022 | + * @n bit0 - 轨道数据输出设置,0表示不输出,1表示输出。 | |
3023 | + * @n bit1 - 轨道数据头设置,0表示无数据头,1表示有数据头。 | |
3024 | + * @n bit2 - 轨道数据尾设置,0表示无数据尾,1表示有数据尾。 | |
3025 | + * @n bit3 - 轨道数据换行符设置,0表示无换行符,1表示有换行符。 | |
3026 | + * @n bit4 - 轨道数据等号与其后数据设置,0表示不输出,1表示输出。 | |
3027 | + * @n bit5~bit7 - 保留。 | |
3028 | + * @param[in] track3 3轨道参数。 | |
3029 | + * @n bit0 - 轨道数据输出设置,0表示不输出,1表示输出。 | |
3030 | + * @n bit1 - 轨道数据头设置,0表示无数据头,1表示有数据头。 | |
3031 | + * @n bit2 - 轨道数据尾设置,0表示无数据尾,1表示有数据尾。 | |
3032 | + * @n bit3 - 轨道数据换行符设置,0表示无换行符,1表示有换行符。 | |
3033 | + * @n bit4 - 轨道数据等号与其后数据设置,0表示不输出,1表示输出。 | |
3034 | + * @n bit5~bit7 - 保留。 | |
3035 | + * @return <0表示失败,==0表示成功。 | |
3036 | + */ | |
3037 | + short USER_API dc_setmag(HANDLE icdev, unsigned char mode, unsigned char track1, unsigned char track2, unsigned char track3); | |
3038 | + | |
3039 | + /** | |
3040 | + * @brief 设置打印机参数。 | |
3041 | + * @par 说明: | |
3042 | + * 设置操作打印机的参数。 | |
3043 | + * @param[in] icdev 设备标识符。 | |
3044 | + * @param[in] FontSize 字体设置,0x00表示字符大小为8*16,0x01表示字符大小为12*24,0x02表示字符大小为16*32。 | |
3045 | + * @param[in] Alignment 对齐设置,0x00表示左对齐,0x01表示居中,0x02表示右对齐。 | |
3046 | + * @param[in] LeftMargin 左边距设置,字符大小为8*16时<48,字符大小为12*24时<32,字符大小为16*32时<24。 | |
3047 | + * @param[in] RightMargin 右边距设置,字符大小为8*16时<48,字符大小为12*24时<32,字符大小为16*32时<24。 | |
3048 | + * @param[in] RowPitch 行间隔设置,单位为点。 | |
3049 | + * @param[in] PrintOutRate 打印速度设置(0x00~0x03),0x00最快,0x03最慢。 | |
3050 | + * @return <0表示失败,==0表示成功。 | |
3051 | + */ | |
3052 | + short USER_API dc_setprint(HANDLE icdev, unsigned char FontSize, unsigned char Alignment, unsigned char LeftMargin, unsigned char RightMargin, unsigned char RowPitch, unsigned char PrintOutRate); | |
3053 | + | |
3054 | + /** | |
3055 | + * @brief 查询打印机参数。 | |
3056 | + * @par 说明: | |
3057 | + * 查询操作打印机的参数。 | |
3058 | + * @param[in] icdev 设备标识符。 | |
3059 | + * @param[out] FontSize 字体设置,0x00表示字符大小为8*16,0x01表示字符大小为12*24,0x02表示字符大小为16*32。 | |
3060 | + * @param[out] Alignment 对齐设置,0x00表示左对齐,0x01表示居中,0x02表示右对齐。 | |
3061 | + * @param[out] LeftMargin 左边距设置,字符大小为8*16时<48,字符大小为12*24时<32,字符大小为16*32时<24。 | |
3062 | + * @param[out] RightMargin 右边距设置,字符大小为8*16时<48,字符大小为12*24时<32,字符大小为16*32时<24。 | |
3063 | + * @param[out] RowPitch 行间隔设置,单位为点。 | |
3064 | + * @param[out] PrintOutRate 打印速度设置(0x00~0x03),0x00最快,0x03最慢。 | |
3065 | + * @return <0表示失败,==0表示成功。 | |
3066 | + */ | |
3067 | + short USER_API dc_checkprint(HANDLE icdev, unsigned char *FontSize, unsigned char *Alignment, unsigned char *LeftMargin, unsigned char *RightMargin, unsigned char *RowPitch, unsigned char *PrintOutRate); | |
3068 | + | |
3069 | + /** | |
3070 | + * @brief 打印字符。 | |
3071 | + * @par 说明: | |
3072 | + * 打印文本字符信息。 | |
3073 | + * @param[in] icdev 设备标识符。 | |
3074 | + * @param[in] length 字符数据的长度,必须小于或等于480。 | |
3075 | + * @param[in] character 字符数据。 | |
3076 | + * @return <0表示失败,==0表示成功。 | |
3077 | + */ | |
3078 | + short USER_API dc_printcharacter(HANDLE icdev, unsigned short length, unsigned char *character); | |
3079 | + | |
3080 | + /** | |
3081 | + * @brief 打印一维码。 | |
3082 | + * @par 说明: | |
3083 | + * 打印一维码信息。 | |
3084 | + * @param[in] icdev 设备标识符。 | |
3085 | + * @param[in] hight 一维码的高度。 | |
3086 | + * @param[in] displayflag 显示类型,0x00表示图形在下文本在上,0x01表示图形在上文本在下,0x02表示只显示图形不显示文本。 | |
3087 | + * @param[in] FontSize 字体设置,0x00表示字符大小为8*16,0x01表示字符大小为12*24,0x02表示字符大小为16*32。 | |
3088 | + * @param[in] length 文本数据的长度,必须小于或等于15。 | |
3089 | + * @param[in] Onedimensional 文本数据。 | |
3090 | + * @return <0表示失败,==0表示成功。 | |
3091 | + */ | |
3092 | + short USER_API dc_printOnedimensional(HANDLE icdev, unsigned char hight, unsigned char displayflag, unsigned char FontSize, unsigned short length, unsigned char *Onedimensional); | |
3093 | + | |
3094 | + /** | |
3095 | + * @brief 打印图片。 | |
3096 | + * @par 说明: | |
3097 | + * 打印图片信息。 | |
3098 | + * @param[in] icdev 设备标识符。 | |
3099 | + * @param[in] length 长度,单位为字节,必须小于或等于48,不能为0。 | |
3100 | + * @param[in] height 高度,单位为点,必须小于100,不能为0。 | |
3101 | + * @param[in] Alignment 对齐设置,0x00表示左对齐,0x01表示居中,0x02表示右对齐。 | |
3102 | + * @param[in] LeftMargin 左边距设置,必须小于或等于48。 | |
3103 | + * @param[in] RightMargin 右边距设置,必须小于或等于48。 | |
3104 | + * @param[in] size 图片数据的大小。 | |
3105 | + * @param[in] Picture 图片数据。 | |
3106 | + * @return <0表示失败,==0表示成功。 | |
3107 | + */ | |
3108 | + short USER_API dc_printPicture(HANDLE icdev, unsigned char length, unsigned char height, unsigned char Alignment, unsigned char LeftMargin, unsigned char RightMargin, unsigned short size, unsigned char *Picture); | |
3109 | + | |
3110 | + /** | |
3111 | + * @brief 进纸。 | |
3112 | + * @par 说明: | |
3113 | + * 进纸到设备内用于打印。 | |
3114 | + * @param[in] icdev 设备标识符。 | |
3115 | + * @param[in] RowPitch 进纸行数,单位为点。 | |
3116 | + * @return <0表示失败,==0表示成功。 | |
3117 | + */ | |
3118 | + short USER_API dc_printenter(HANDLE icdev, unsigned char RowPitch); | |
3119 | + | |
3120 | + /** | |
3121 | + * @brief 获取打印机状态。 | |
3122 | + * @par 说明: | |
3123 | + * 获取打印机的状态。 | |
3124 | + * @param[in] icdev 设备标识符。 | |
3125 | + * @param[out] paperstatus 纸状态,0x00表示不缺纸,0x01表示缺纸。 | |
3126 | + * @param[out] tempturestatus 温度状态,0x00表示温度正常,0x01表示温度过高。 | |
3127 | + * @param[out] zkstatus 字库状态。 | |
3128 | + * @n 0x00 - 三种字库都存在。 | |
3129 | + * @n 0x01 - 三种字库都不存在。 | |
3130 | + * @n 0x02 - 存在8*16字库。 | |
3131 | + * @n 0x03 - 存在12*24字库。 | |
3132 | + * @n 0x04 - 存在16*32字库。 | |
3133 | + * @n 0x05 - 存在8*16字库和12*24字库。 | |
3134 | + * @n 0x06 - 存在8*16字库和16*32字库。 | |
3135 | + * @n 0x07 - 存在12*24字库和16*32字库。 | |
3136 | + * @return <0表示失败,==0表示成功。 | |
3137 | + */ | |
3138 | + short USER_API dc_printstatus(HANDLE icdev, unsigned char *paperstatus, unsigned char *tempturestatus, unsigned char *zkstatus); | |
3139 | + | |
3140 | + /** | |
3141 | + * @brief 设置2.4G模块波特率。 | |
3142 | + * @par 说明: | |
3143 | + * 设置与2.4G模块之间通讯的波特率。 | |
3144 | + * @param[in] icdev 设备标识符。 | |
3145 | + * @param[in] baund 波特率。 | |
3146 | + * @n 0x00 - 2400。 | |
3147 | + * @n 0x01 - 4800。 | |
3148 | + * @n 0x02 - 9600。 | |
3149 | + * @n 0x03 - 14400。 | |
3150 | + * @n 0x04 - 38400。 | |
3151 | + * @n 0x05 - 57600。 | |
3152 | + * @n 0x06 - 115200。 | |
3153 | + * @n 0x07 - 256000。 | |
3154 | + * @return <0表示失败,==0表示成功。 | |
3155 | + */ | |
3156 | + short USER_API dc_set2dot4Gbaund(HANDLE icdev, unsigned char baund); | |
3157 | + | |
3158 | + /** | |
3159 | + * @brief 查询2.4G模块波特率。 | |
3160 | + * @par 说明: | |
3161 | + * 查询与2.4G模块之间通讯的波特率。 | |
3162 | + * @param[in] icdev 设备标识符。 | |
3163 | + * @param[out] baund 波特率。 | |
3164 | + * @n 0x00 - 2400。 | |
3165 | + * @n 0x01 - 4800。 | |
3166 | + * @n 0x02 - 9600。 | |
3167 | + * @n 0x03 - 14400。 | |
3168 | + * @n 0x04 - 38400。 | |
3169 | + * @n 0x05 - 57600。 | |
3170 | + * @n 0x06 - 115200。 | |
3171 | + * @n 0x07 - 256000。 | |
3172 | + * @return <0表示失败,==0表示成功。 | |
3173 | + */ | |
3174 | + short USER_API dc_check2dot4Gbaund(HANDLE icdev, unsigned char *baund); | |
3175 | + | |
3176 | + /** | |
3177 | + * @brief 2.4G复位。 | |
3178 | + * @par 说明: | |
3179 | + * 用2.4G进行复位操作, | |
3180 | + * @param[in] icdev 设备标识符。 | |
3181 | + * @param[out] rlen 返回复位信息的长度。 | |
3182 | + * @param[out] databuffer 返回的复位信息,请至少分配128个字节。 | |
3183 | + * @return <0表示失败,==0表示成功。 | |
3184 | + */ | |
3185 | + short USER_API dc_2dot4_reset(HANDLE icdev, unsigned char *rlen, unsigned char *databuffer); | |
3186 | + | |
3187 | + /** | |
3188 | + * @brief 2.4G复位。 | |
3189 | + * @par 说明: | |
3190 | + * ::dc_2dot4_reset 的HEX形式接口,参数 @a databuffer 为HEX格式。 | |
3191 | + */ | |
3192 | + short USER_API dc_2dot4_resethex(HANDLE icdev, unsigned char *rlen, unsigned char *databuffer); | |
3193 | + | |
3194 | + /** | |
3195 | + * @brief 2.4G指令交互。 | |
3196 | + * @par 说明: | |
3197 | + * 用2.4G进行指令交互操作。 | |
3198 | + * @param[in] icdev 设备标识符。 | |
3199 | + * @param[in] slen 发送数据的长度。 | |
3200 | + * @param[in] senddata 发送数据。 | |
3201 | + * @param[out] rlen 返回数据的长度。 | |
3202 | + * @param[out] recvbuffer 返回的数据。 | |
3203 | + * @param[in] timeout 设备超时值,单位为秒。 | |
3204 | + * @return <0表示失败,==0表示成功。 | |
3205 | + */ | |
3206 | + short USER_API dc_2dot4_command(HANDLE icdev, unsigned int slen, unsigned char *senddata, unsigned int *rlen, unsigned char *recvbuffer, unsigned char timeout); | |
3207 | + | |
3208 | + /** | |
3209 | + * @brief 2.4G指令交互。 | |
3210 | + * @par 说明: | |
3211 | + * ::dc_2dot4_command 的HEX形式接口,参数 @a senddata @a recvbuffer 为HEX格式。 | |
3212 | + */ | |
3213 | + short USER_API dc_2dot4_command_hex(HANDLE icdev, unsigned int slen, unsigned char *senddata, unsigned int *rlen, unsigned char *recvbuffer, unsigned char timeout); | |
3214 | + | |
3215 | + /** | |
3216 | + * @brief 检测1604卡。 | |
3217 | + * @par 说明: | |
3218 | + * 检测是否存在1604卡。 | |
3219 | + * @param[in] icdev 设备标识符。 | |
3220 | + * @return <0表示失败或不存在,==0表示存在。 | |
3221 | + */ | |
3222 | + short USER_API dc_check_1604(HANDLE icdev); | |
3223 | + | |
3224 | + /** | |
3225 | + * @brief 1604卡下电。 | |
3226 | + * @par 说明: | |
3227 | + * 对1604卡进行下电操作。 | |
3228 | + * @param[in] icdev 设备标识符。 | |
3229 | + * @return <0表示失败,==0表示成功。 | |
3230 | + */ | |
3231 | + short USER_API dc_down_1604(HANDLE icdev); | |
3232 | + | |
3233 | + /** | |
3234 | + * @brief 读1604卡。 | |
3235 | + * @par 说明: | |
3236 | + * 读取1604卡的数据。 | |
3237 | + * @param[in] icdev 设备标识符。 | |
3238 | + * @param[in] offset 偏移。 | |
3239 | + * @param[in] length 读取长度。 | |
3240 | + * @param[out] readdata 返回的数据。 | |
3241 | + * @return <0表示失败,==0表示成功。 | |
3242 | + */ | |
3243 | + short USER_API dc_read_1604(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *readdata); | |
3244 | + | |
3245 | + /** | |
3246 | + * @brief 读1604卡。 | |
3247 | + * @par 说明: | |
3248 | + * ::dc_read_1604 的HEX形式接口,参数 @a readdata 为HEX格式。 | |
3249 | + */ | |
3250 | + short USER_API dc_read_1604_hex(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *readdata); | |
3251 | + | |
3252 | + /** | |
3253 | + * @brief 写1604卡。 | |
3254 | + * @par 说明: | |
3255 | + * 写入数据到1604卡中。 | |
3256 | + * @param[in] icdev 设备标识符。 | |
3257 | + * @param[in] offset 偏移。 | |
3258 | + * @param[in] length 写入长度。 | |
3259 | + * @param[in] writedata 传入数据。 | |
3260 | + * @return <0表示失败,==0表示成功。 | |
3261 | + */ | |
3262 | + short USER_API dc_write_1604(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *writedata); | |
3263 | + | |
3264 | + /** | |
3265 | + * @brief 写1604卡。 | |
3266 | + * @par 说明: | |
3267 | + * ::dc_write_1604 的HEX形式接口,参数 @a writedata 为HEX格式。 | |
3268 | + */ | |
3269 | + short USER_API dc_write_1604_hex(HANDLE icdev, unsigned int offset, unsigned int length, unsigned char *writedata); | |
3270 | + | |
3271 | + /** | |
3272 | + * @brief 验证1604卡密码。 | |
3273 | + * @par 说明: | |
3274 | + * 使用传入的密码来验证1604卡密码。 | |
3275 | + * @param[in] icdev 设备标识符。 | |
3276 | + * @param[in] area 密码区。 | |
3277 | + * @n 0 - 表示总密码。 | |
3278 | + * @n 1 - 表示一区密码。 | |
3279 | + * @n 2 - 表示二区密码。 | |
3280 | + * @n 3 - 表示三区密码。 | |
3281 | + * @n 4 - 表示四区密码。 | |
3282 | + * @n 11 - 表示一区擦除密码。 | |
3283 | + * @n 12 - 表示二区擦除密码。 | |
3284 | + * @n 13 - 表示三区擦除密码。 | |
3285 | + * @n 14 - 表示四区擦除密码。 | |
3286 | + * @param[in] password 密码,固定为2个字节。 | |
3287 | + * @return <0表示失败,==0表示成功。 | |
3288 | + */ | |
3289 | + short USER_API dc_checkpass_1604(HANDLE icdev, short area, unsigned char *password); | |
3290 | + | |
3291 | + /** | |
3292 | + * @brief 验证1604卡密码。 | |
3293 | + * @par 说明: | |
3294 | + * ::dc_checkpass_1604 的HEX形式接口,参数 @a password 为HEX格式。 | |
3295 | + */ | |
3296 | + short USER_API dc_checkpass_1604_hex(HANDLE icdev, short area, unsigned char *password); | |
3297 | + | |
3298 | + /** | |
3299 | + * @brief 修改1604卡密码。 | |
3300 | + * @par 说明: | |
3301 | + * 修改1604卡的密码。 | |
3302 | + * @param[in] icdev 设备标识符。 | |
3303 | + * @param[in] area 密码区。 | |
3304 | + * @n 0 - 表示总密码。 | |
3305 | + * @n 1 - 表示一区密码。 | |
3306 | + * @n 2 - 表示二区密码。 | |
3307 | + * @n 3 - 表示三区密码。 | |
3308 | + * @n 4 - 表示四区密码。 | |
3309 | + * @n 11 - 表示一区擦除密码。 | |
3310 | + * @n 12 - 表示二区擦除密码。 | |
3311 | + * @n 13 - 表示三区擦除密码。 | |
3312 | + * @n 14 - 表示四区擦除密码。 | |
3313 | + * @param[in] password 密码,固定为2个字节。 | |
3314 | + * @return <0表示失败,==0表示成功。 | |
3315 | + */ | |
3316 | + short USER_API dc_changepass_1604(HANDLE icdev, short area, unsigned char *password); | |
3317 | + | |
3318 | + /** | |
3319 | + * @brief 修改1604卡密码。 | |
3320 | + * @par 说明: | |
3321 | + * ::dc_changepass_1604 的HEX形式接口,参数 @a password 为HEX格式。 | |
3322 | + */ | |
3323 | + short USER_API dc_changepass_1604_hex(HANDLE icdev, short area, unsigned char *password); | |
3324 | + | |
3325 | + /** | |
3326 | + * @brief 读1604卡密码计数。 | |
3327 | + * @par 说明: | |
3328 | + * 读取1604卡的密码计数,此计数值表示可以尝试验证密码的次数。 | |
3329 | + * @param[in] icdev 设备标识符。 | |
3330 | + * @param[in] area 密码区。 | |
3331 | + * @n 0 - 表示总密码。 | |
3332 | + * @n 1 - 表示一区密码。 | |
3333 | + * @n 2 - 表示二区密码。 | |
3334 | + * @n 3 - 表示三区密码。 | |
3335 | + * @n 4 - 表示四区密码。 | |
3336 | + * @n 11 - 表示一区擦除密码。 | |
3337 | + * @n 12 - 表示二区擦除密码。 | |
3338 | + * @n 13 - 表示三区擦除密码。 | |
3339 | + * @n 14 - 表示四区擦除密码。 | |
3340 | + * @return <0表示失败,否则为密码计数值。 | |
3341 | + */ | |
3342 | + short USER_API dc_readcount_1604(HANDLE icdev, short area); | |
3343 | + | |
3344 | + /** | |
3345 | + * @brief 1604卡熔丝。 | |
3346 | + * @par 说明: | |
3347 | + * 对1604卡进行熔丝操作。 | |
3348 | + * @param[in] icdev 设备标识符。 | |
3349 | + * @return <0表示失败,==0表示成功。 | |
3350 | + */ | |
3351 | + short USER_API dc_fuse_1604(HANDLE icdev); | |
3352 | + | |
3353 | + /** | |
3354 | + * @brief 4428卡下电。 | |
3355 | + * @par 说明: | |
3356 | + * 对4428卡进行下电操作。 | |
3357 | + * @param[in] icdev 设备标识符。 | |
3358 | + * @return <0表示失败,==0表示成功。 | |
3359 | + */ | |
3360 | + short USER_API dc_down_4428(HANDLE icdev); | |
3361 | + | |
3362 | + /** | |
3363 | + * @brief 4442卡下电。 | |
3364 | + * @par 说明: | |
3365 | + * 对4442卡进行下电操作。 | |
3366 | + * @param[in] icdev 设备标识符。 | |
3367 | + * @return <0表示失败,==0表示成功。 | |
3368 | + */ | |
3369 | + short USER_API dc_down_4442(HANDLE icdev); | |
3370 | + | |
3371 | + /** | |
3372 | + * @brief 保留。 | |
3373 | + */ | |
3374 | + short USER_API dc_flash_card(HANDLE icdev); | |
3375 | + | |
3376 | + /** | |
3377 | + * @brief 保留。 | |
3378 | + */ | |
3379 | + short USER_API dc_read_walletbalance(HANDLE icdev, unsigned char *walletvalue); | |
3380 | + | |
3381 | + /** | |
3382 | + * @brief 保留。 | |
3383 | + */ | |
3384 | + short USER_API dc_consume_wallet(HANDLE icdev, unsigned char *walletvalue, unsigned char *secret); | |
3385 | + | |
3386 | + /** | |
3387 | + * @brief 保留。 | |
3388 | + */ | |
3389 | + short USER_API dc_transfer_wallet(HANDLE icdev, unsigned char *walletvalue); | |
3390 | + | |
3391 | + /** | |
3392 | + * @brief 保留。 | |
3393 | + */ | |
3394 | + short USER_API dc_authentication_key(HANDLE icdev, unsigned char *data, unsigned char *desdata); | |
3395 | + | |
3396 | + /** | |
3397 | + * @brief 保留。 | |
3398 | + */ | |
3399 | + short USER_API dc_set_terminalnumber(HANDLE icdev, unsigned char length, unsigned char *serieldata); | |
3400 | + | |
3401 | + /** | |
3402 | + * @brief 保留。 | |
3403 | + */ | |
3404 | + short USER_API dc_get_terminalnumber(HANDLE icdev, unsigned char length, unsigned char *serieldata); | |
3405 | + | |
3406 | + /** | |
3407 | + * @brief 保留。 | |
3408 | + */ | |
3409 | + short USER_API dc_set_trademerchantcode(HANDLE icdev, unsigned char length, unsigned char *merchantcode); | |
3410 | + | |
3411 | + /** | |
3412 | + * @brief 保留。 | |
3413 | + */ | |
3414 | + short USER_API dc_get_trademerchantcode(HANDLE icdev, unsigned char length, unsigned char *merchantcode); | |
3415 | + | |
3416 | + /** | |
3417 | + * @brief 保留。 | |
3418 | + */ | |
3419 | + short USER_API dc_set_transactiontype(HANDLE icdev, unsigned char typecode); | |
3420 | + | |
3421 | + /** | |
3422 | + * @brief 保留。 | |
3423 | + */ | |
3424 | + short USER_API dc_get_transactiontype(HANDLE icdev, unsigned char *typecode); | |
3425 | + | |
3426 | + /** | |
3427 | + * @brief 保留。 | |
3428 | + */ | |
3429 | + short USER_API dc_set_tradesecretkey(HANDLE icdev, unsigned char *secretkey); | |
3430 | + | |
3431 | + /** | |
3432 | + * @brief 保留。 | |
3433 | + */ | |
3434 | + short USER_API dc_get_tradesecretkey(HANDLE icdev, unsigned char *secretkey); | |
3435 | + | |
3436 | + /** | |
3437 | + * @brief 保留。 | |
3438 | + */ | |
3439 | + short USER_API dc_set_hardwareserialnumber(HANDLE icdev, unsigned char length, unsigned char *hardwareserial); | |
3440 | + | |
3441 | + /** | |
3442 | + * @brief 保留。 | |
3443 | + */ | |
3444 | + short USER_API dc_get_hardwareserialnumber(HANDLE icdev, unsigned char length, unsigned char *hardwareserial); | |
3445 | + | |
3446 | + /** | |
3447 | + * @brief 保留。 | |
3448 | + */ | |
3449 | + short USER_API dc_reset_factory(HANDLE icdev); | |
3450 | + | |
3451 | + /** | |
3452 | + * @brief 保留。 | |
3453 | + */ | |
3454 | + short USER_API dc_get_signmessageparameters(HANDLE icdev, unsigned char length, unsigned char *parameters); | |
3455 | + | |
3456 | + /** | |
3457 | + * @brief 保留。 | |
3458 | + */ | |
3459 | + short USER_API dc_get_record(HANDLE icdev, unsigned char tablenumber, unsigned char recordnumber, unsigned char *recordquantity, unsigned char *recorddata); | |
3460 | + | |
3461 | + /** | |
3462 | + * @brief 启动读磁条卡。 | |
3463 | + * @par 说明: | |
3464 | + * 使设备进入监测刷磁条的状态,接口本身会直接返回,而不会等待刷完磁条卡。 | |
3465 | + * @param[in] icdev 设备标识符。 | |
3466 | + * @return <0表示失败,==0表示成功。 | |
3467 | + */ | |
3468 | + short USER_API dc_startreadmag(HANDLE icdev); | |
3469 | + | |
3470 | + /** | |
3471 | + * @brief 停止读磁条卡。 | |
3472 | + * @par 说明: | |
3473 | + * 在设备进入监测刷磁条的状态后,只有刷完磁条卡或调用此接口才能使得设备退出这种状态。 | |
3474 | + * @param[in] icdev 设备标识符。 | |
3475 | + * @return <0表示失败,==0表示成功。 | |
3476 | + */ | |
3477 | + short USER_API dc_stopreadmag(HANDLE icdev); | |
3478 | + | |
3479 | + /** | |
3480 | + * @brief 获取磁条卡数据。 | |
3481 | + * @par 说明: | |
3482 | + * 获取设备已经读取到的磁条卡数据。 | |
3483 | + * @param[in] icdev 设备标识符。 | |
3484 | + * @param[out] pTrack1Data 返回的1轨道数据,数据格式为'\0'结尾的字符串。 | |
3485 | + * @param[out] pTrack1Len 返回1轨道数据的长度,不含'\0'。 | |
3486 | + * @param[out] pTrack2Data 返回的2轨道数据,数据格式为'\0'结尾的字符串。 | |
3487 | + * @param[out] pTrack2Len 返回2轨道数据的长度,不含'\0'。 | |
3488 | + * @param[out] pTrack3Data 返回的3轨道数据,数据格式为'\0'结尾的字符串。 | |
3489 | + * @param[out] pTrack3Len 返回3轨道数据的长度,不含'\0'。 | |
3490 | + * @return <0表示失败,==0表示成功,==1表示等待刷卡,==2表示处于停止刷卡状态。 | |
3491 | + */ | |
3492 | + short USER_API dc_readmag(HANDLE icdev, unsigned char *pTrack1Data, unsigned int *pTrack1Len, unsigned char *pTrack2Data, unsigned int *pTrack2Len, unsigned char *pTrack3Data, unsigned int *pTrack3Len); | |
3493 | + | |
3494 | + /** | |
3495 | + * @brief 自动获取磁条卡数据。 | |
3496 | + * @par 说明: | |
3497 | + * 内部包含了 ::dc_startreadmag ::dc_readmag ::dc_stopreadmag 的功能。 | |
3498 | + * @param[in] icdev 设备标识符。 | |
3499 | + * @param[in] ctime 接口超时值,单位为秒。 | |
3500 | + * @param[out] pTrack1Data 返回的1轨道数据,数据格式为'\0'结尾的字符串。 | |
3501 | + * @param[out] pTrack1Len 返回1轨道数据的长度,不含'\0'。 | |
3502 | + * @param[out] pTrack2Data 返回的2轨道数据,数据格式为'\0'结尾的字符串。 | |
3503 | + * @param[out] pTrack2Len 返回2轨道数据的长度,不含'\0'。 | |
3504 | + * @param[out] pTrack3Data 返回的3轨道数据,数据格式为'\0'结尾的字符串。 | |
3505 | + * @param[out] pTrack3Len 返回3轨道数据的长度,不含'\0'。 | |
3506 | + * @return <0表示失败,==0表示成功,==1表示等待刷卡,==2表示处于停止刷卡状态。 | |
3507 | + */ | |
3508 | + short USER_API dc_readmagcardallA(HANDLE icdev, unsigned char ctime, unsigned char *pTrack1Data, unsigned int *pTrack1Len, unsigned char *pTrack2Data, unsigned int *pTrack2Len, unsigned char *pTrack3Data, unsigned int *pTrack3Len); | |
3509 | + | |
3510 | + /** | |
3511 | + * @brief 设置密码键盘密钥。 | |
3512 | + * @par 说明: | |
3513 | + * 对密码键盘内的密钥进行设置操作。 | |
3514 | + * @param[in] icdev 设备标识符。 | |
3515 | + * @param[in] flag 标记。 | |
3516 | + * @n 0x00 - 表示装载主密钥,明文装载。 | |
3517 | + * @n 0x01 - 表示装载PIN密钥,密文装载(用主密钥加密)。 | |
3518 | + * @n 0x02 - 表示装载MAC密钥,密文装载(用主密钥加密)。 | |
3519 | + * @n 0x03 - 表示装载TDK密钥,密文装载(用主密钥加密)。 | |
3520 | + * @n 0xF0 - 表示清空主密钥、PIN密钥、MAC密钥、TDK密钥。 | |
3521 | + * @n 0xF1 - 表示清空PIN密钥。 | |
3522 | + * @n 0xF2 - 表示清空MAC密钥。 | |
3523 | + * @n 0xF3 - 表示清空TDK密钥。 | |
3524 | + * @param[in] keylen 密钥数据的长度。 | |
3525 | + * @param[in] keydata 密钥数据。 | |
3526 | + * @param[in] mode 模式,0x00表示单DES密钥,0x01表示三DES密钥,0x02表示SM4密钥,0x03表示24字节三DES密钥。 | |
3527 | + * @return <0表示失败,==0表示成功。 | |
3528 | + */ | |
3529 | + short USER_API dc_InstallKbKey(HANDLE icdev, unsigned char flag, unsigned char keylen, unsigned char *keydata, unsigned char mode); | |
3530 | + | |
3531 | + /** | |
3532 | + * @brief 设置当前密钥组。 | |
3533 | + * @par 说明: | |
3534 | + * 设置密码键盘当前使用的密钥组。 | |
3535 | + * @param[in] icdev 设备标识符。 | |
3536 | + * @param[in] keyID 密钥组号,从0x00开始编号。 | |
3537 | + * @return <0表示失败,==0表示成功。 | |
3538 | + */ | |
3539 | + short USER_API dc_SetKbKeyID(HANDLE icdev, unsigned char keyID); | |
3540 | + | |
3541 | + /** | |
3542 | + * @brief 获取加密按键数据。 | |
3543 | + * @par 说明: | |
3544 | + * 从密码键盘获取ANSI X9.8 PIN BLOCK加密的按键数据。 | |
3545 | + * @param[in] icdev 设备标识符。 | |
3546 | + * @param[in] ctime 设备超时值,单位为秒。 | |
3547 | + * @param[in] panlen 卡号的长度。 | |
3548 | + * @param[in] pandata 卡号。 | |
3549 | + * @param[out] rlen 返回加密数据的长度。 | |
3550 | + * @param[out] cpass 返回的加密数据。 | |
3551 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
3552 | + */ | |
3553 | + short USER_API dc_GetEnPass(HANDLE icdev, unsigned char ctime, unsigned char panlen, unsigned char *pandata, unsigned char *rlen, unsigned char *cpass); | |
3554 | + | |
3555 | + /** | |
3556 | + * @brief 保留。 | |
3557 | + */ | |
3558 | + short USER_API dc_get55data(HANDLE icdev, unsigned int slen, unsigned char *sdata, unsigned char *PacketType, unsigned int *rlen, unsigned char *rdata); | |
3559 | + | |
3560 | + /** | |
3561 | + * @brief 保留。 | |
3562 | + */ | |
3563 | + short USER_API dc_CardIssuingScript(HANDLE icdev, unsigned int slen, unsigned char *sdata, unsigned char *TransactionIsInterrupted, unsigned char *TradingResult); | |
3564 | + | |
3565 | + /** | |
3566 | + * @brief 保留。 | |
3567 | + */ | |
3568 | + short USER_API dc_SetEMVPara(HANDLE icdev, unsigned int slen, unsigned char *sdata); | |
3569 | + | |
3570 | + /** | |
3571 | + * @brief 保留。 | |
3572 | + */ | |
3573 | + short USER_API dc_CalculateMACCheck(HANDLE icdev, unsigned char keyindex, unsigned char macmode, unsigned int datalen, unsigned char *srcdata, unsigned char *macdata); | |
3574 | + | |
3575 | + /** | |
3576 | + * @brief 保留。 | |
3577 | + */ | |
3578 | + short USER_API dc_CalculateDes(HANDLE icdev, unsigned char keyindex, unsigned char enmode, unsigned short datalen, unsigned char *srcdata, unsigned char *desdata); | |
3579 | + | |
3580 | + /** | |
3581 | + * @brief 保留。 | |
3582 | + */ | |
3583 | + short USER_API dc_CalculateSm4(HANDLE icdev, unsigned char keyindex, unsigned char enmode, unsigned short datalen, unsigned char *srcdata, unsigned char *sm4data); | |
3584 | + | |
3585 | + /** | |
3586 | + * @brief 用工作密钥加解密。 | |
3587 | + * @par 说明: | |
3588 | + * 使用密码键盘的工作密钥进行数据加解密操作,仅支持单DES、三DES和24字节三DES算法,算法由设置密钥时确定,请参考 ::dc_InstallKbKey 。 | |
3589 | + * @param[in] icdev 设备标识符。 | |
3590 | + * @param[in] keytype 密钥类型,0x01表示PIN密钥,0x02表示MAC密钥,0x03表示TDK密钥。 | |
3591 | + * @param[in] enmode 运算模式,0x00表示加密,0x01表示解密。 | |
3592 | + * @param[in] sourcedata 传入数据,固定为8个字节。 | |
3593 | + * @param[out] retdata 返回的数据,固定为8个字节。 | |
3594 | + * @return <0表示失败,==0表示成功。 | |
3595 | + */ | |
3596 | + short USER_API dc_CreatDesData(HANDLE icdev, unsigned char keytype, unsigned char enmode, unsigned char *sourcedata, unsigned char *retdata); | |
3597 | + | |
3598 | + /** | |
3599 | + * @brief 用工作密钥加解密。 | |
3600 | + * @par 说明: | |
3601 | + * 使用密码键盘的工作密钥进行数据加解密操作,仅支持SM4算法,算法由设置密钥时确定,请参考 ::dc_InstallKbKey 。 | |
3602 | + * @param[in] icdev 设备标识符。 | |
3603 | + * @param[in] keytype 密钥类型,0x01表示PIN密钥,0x02表示MAC密钥,0x03表示TDK密钥。 | |
3604 | + * @param[in] enmode 运算模式,0x00表示加密,0x01表示解密。 | |
3605 | + * @param[in] sourcedata 传入数据,固定为16个字节。 | |
3606 | + * @param[out] retdata 返回的数据,固定为16个字节。 | |
3607 | + * @return <0表示失败,==0表示成功。 | |
3608 | + */ | |
3609 | + short USER_API dc_CreatSm4Data(HANDLE icdev, unsigned char keytype, unsigned char enmode, unsigned char *sourcedata, unsigned char *retdata); | |
3610 | + | |
3611 | + /** | |
3612 | + * @brief 用工作密钥加解密。 | |
3613 | + * @par 说明: | |
3614 | + * 使用密码键盘的工作密钥进行数据加解密操作,仅支持单DES ECB和三DES ECB算法,内部会调用 ::dc_CreatDesData 。 | |
3615 | + * @param[in] icdev 设备标识符。 | |
3616 | + * @param[in] keytype 密钥类型,0x01表示PIN密钥,0x02表示MAC密钥,0x03表示TDK密钥。 | |
3617 | + * @param[in] enmode 运算模式,0x00表示加密,0x01表示解密。 | |
3618 | + * @param[in] slen 传入数据的长度。 | |
3619 | + * @param[in] sourcedata 传入数据。 | |
3620 | + * @param[out] rlen 返回数据的长度。 | |
3621 | + * @param[out] retdata 返回的数据。 | |
3622 | + * @return <0表示失败,==0表示成功。 | |
3623 | + */ | |
3624 | + short USER_API dc_CreatDesDataECB(HANDLE icdev, unsigned char keytype, unsigned char enmode, int slen, unsigned char *sourcedata, int *rlen, unsigned char *retdata); | |
3625 | + | |
3626 | + /** | |
3627 | + * @brief 用工作密钥加解密。 | |
3628 | + * @par 说明: | |
3629 | + * 使用密码键盘的工作密钥进行数据加解密操作,仅支持SM4 ECB算法,内部会调用 ::dc_CreatSm4Data 。 | |
3630 | + * @param[in] icdev 设备标识符。 | |
3631 | + * @param[in] keytype 密钥类型,0x01表示PIN密钥,0x02表示MAC密钥,0x03表示TDK密钥。 | |
3632 | + * @param[in] enmode 运算模式,0x00表示加密,0x01表示解密。 | |
3633 | + * @param[in] slen 传入数据的长度。 | |
3634 | + * @param[in] sourcedata 传入数据。 | |
3635 | + * @param[out] rlen 返回数据的长度。 | |
3636 | + * @param[out] retdata 返回的数据。 | |
3637 | + * @return <0表示失败,==0表示成功。 | |
3638 | + */ | |
3639 | + short USER_API dc_CreatSm4DataECB(HANDLE icdev, unsigned char keytype, unsigned char enmode, int slen, unsigned char *sourcedata, int *rlen, unsigned char *retdata); | |
3640 | + | |
3641 | + /** | |
3642 | + * @brief 用工作密钥算MAC。 | |
3643 | + * @par 说明: | |
3644 | + * 使用密码键盘的工作密钥进行数据算MAC操作,内部会调用 ::dc_CreatDesData ::dc_CreatSm4Data 。 | |
3645 | + * @param[in] icdev 设备标识符。 | |
3646 | + * @param[in] keytype 密钥类型,0x01表示PIN密钥,0x02表示MAC密钥,0x03表示TDK密钥。 | |
3647 | + * @param[in] enmode 运算模式,0x00或0x01表示用DES POS ECB算MAC,0x02表示用SM4算MAC,0x03表示用DES X9.9算MAC,0x04表示用三DES X9.19算MAC,0x05表示用三DES POS ECB算MAC,0x06表示用24字节三DES X9.19算MAC,0x07表示用24字节三DES POS ECB算MAC。 | |
3648 | + * @param[in] slen 传入数据的长度。 | |
3649 | + * @param[in] sourcedata 传入数据。 | |
3650 | + * @param[out] rlen 返回数据的长度。 | |
3651 | + * @param[out] retdata 返回的数据。 | |
3652 | + * @return <0表示失败,==0表示成功。 | |
3653 | + */ | |
3654 | + short USER_API dc_CreatMacDataECB(HANDLE icdev, unsigned char keytype, unsigned char enmode, int slen, unsigned char *sourcedata, int *rlen, unsigned char *retdata); | |
3655 | + | |
3656 | + /** | |
3657 | + * @brief 写SD存储。 | |
3658 | + * @par 说明: | |
3659 | + * 写入数据到SD存储中,可以用作数据保存等。 | |
3660 | + * @param[in] icdev 设备标识符。 | |
3661 | + * @param[in] offset 偏移地址。 | |
3662 | + * @param[in] length 写入长度。 | |
3663 | + * @param[in] writebuffer 传入数据。 | |
3664 | + * @return <0表示失败,==0表示成功。 | |
3665 | + */ | |
3666 | + short USER_API dc_writeSD(HANDLE icdev, int offset, int length, unsigned char *writebuffer); | |
3667 | + | |
3668 | + /** | |
3669 | + * @brief 读SD存储。 | |
3670 | + * @par 说明: | |
3671 | + * 读取SD存储中的数据,可以用作数据保存等。 | |
3672 | + * @param[in] icdev 设备标识符。 | |
3673 | + * @param[in] offset 偏移地址。 | |
3674 | + * @param[in] length 读取长度。 | |
3675 | + * @param[out] readbuffer 返回的数据。 | |
3676 | + * @return <0表示失败,==0表示成功。 | |
3677 | + */ | |
3678 | + short USER_API dc_readSD(HANDLE icdev, int offset, int length, unsigned char *readbuffer); | |
3679 | + | |
3680 | + /** | |
3681 | + * @brief 设置USB模式。 | |
3682 | + * @par 说明: | |
3683 | + * 设置USB通讯模式,必须重新对设备进行上电才能生效。 | |
3684 | + * @param[in] icdev 设备标识符。 | |
3685 | + * @param[in] ucmode 模式。 | |
3686 | + * @n 0x00 - 表示中断发送和中断接收,此时VID=257B,PID=3010。 | |
3687 | + * @n 0x01 - 表示控制发送和控制接收,此时VID=257B,PID=3011。 | |
3688 | + * @n 0x02 - 表示控制发送和中断接收,此时VID=0471,PID=7002。 | |
3689 | + * @n 0x03 - 表示控制发送和中断接收,此时VID=0471,PID=7003。 | |
3690 | + * @n 0x04 - 表示控制发送和中断接收,此时VID=0471,PID=7003,支持磁条卡自动上传功能。 | |
3691 | + * @return <0表示失败,==0表示成功。 | |
3692 | + */ | |
3693 | + short USER_API dc_SetUsbMode(HANDLE icdev, unsigned char ucmode); | |
3694 | + | |
3695 | + /** | |
3696 | + * @brief 外接密码键盘通讯。 | |
3697 | + * @par 说明: | |
3698 | + * 与外置密码键盘进行通讯交互。 | |
3699 | + * @param[in] icdev 设备标识符。 | |
3700 | + * @param[in] ctime 设备超时值,单位为秒。 | |
3701 | + * @param[in] senlen 发送数据的长度。 | |
3702 | + * @param[in] source 发送数据。 | |
3703 | + * @param[out] reclen 返回数据的长度。 | |
3704 | + * @param[out] rdata 返回的数据。 | |
3705 | + * @return <0表示失败,==0表示成功。 | |
3706 | + */ | |
3707 | + short USER_API SD_InstallKey(HANDLE icdev, unsigned char ctime, unsigned char senlen, unsigned char *source, unsigned char *reclen, unsigned char *rdata); | |
3708 | + | |
3709 | + /** | |
3710 | + * @brief 获取外接密码键盘的版本。 | |
3711 | + * @par 说明: | |
3712 | + * 获取外接密码键盘的版本。 | |
3713 | + * @param[in] icdev 设备标识符。 | |
3714 | + * @param[out] version 返回的版本字符串,请至少分配128个字节。 | |
3715 | + * @return <0表示失败,==0表示成功。 | |
3716 | + */ | |
3717 | + short USER_API SD_IFD_GetVersion(HANDLE icdev, char *version); | |
3718 | + | |
3719 | + /** | |
3720 | + * @brief 外接密码键盘播放语音。 | |
3721 | + * @par 说明: | |
3722 | + * 播放外接密码键盘内置语音。 | |
3723 | + * @param[in] icdev 设备标识符。 | |
3724 | + * @param[in] _playmode 语音段号(0x01~0x08)。 | |
3725 | + * @n 0x01 - "请输入密码"。 | |
3726 | + * @n 0x02 - "请输入原密码"。 | |
3727 | + * @n 0x03 - "请再输入一次"。 | |
3728 | + * @n 0x04 - "请输入新密码"。 | |
3729 | + * @n 0x05 - "请确认新密码"。 | |
3730 | + * @n 0x06 - "密码修改成功"。 | |
3731 | + * @n 0x07 - "请插卡"。 | |
3732 | + * @n 0x08 - "请刷卡"。 | |
3733 | + * @return <0表示失败,==0表示成功。 | |
3734 | + */ | |
3735 | + short USER_API SD_IFD_PlayVoice(HANDLE icdev, unsigned char _playmode); | |
3736 | + | |
3737 | + /** | |
3738 | + * @brief 外接密码键盘初始化。 | |
3739 | + * @par 说明: | |
3740 | + * 对外接密码键盘进行初始化操作,使其复位为出厂状态,出厂状态下所有的主密钥内存空间都为字节0x88。 | |
3741 | + * @param[in] icdev 设备标识符。 | |
3742 | + * @return <0表示失败,==0表示成功。 | |
3743 | + */ | |
3744 | + short USER_API SD_IFD_Init(HANDLE icdev); | |
3745 | + | |
3746 | + /** | |
3747 | + * @brief 设置外接密码键盘主密钥。 | |
3748 | + * @par 说明: | |
3749 | + * 对外接密码键盘内的主密钥进行设置操作。 | |
3750 | + * @param[in] icdev 设备标识符。 | |
3751 | + * @param[in] keyset 密钥组号,从0x00开始编号。 | |
3752 | + * @param[in] oldkey 旧主密钥数据,明文,固定为16个字节。 | |
3753 | + * @param[in] newkey 新主密钥数据,明文,固定为16个字节。 | |
3754 | + * @return <0表示失败,==0表示成功。 | |
3755 | + */ | |
3756 | + short USER_API SD_IFD_SetMainKey(HANDLE icdev, unsigned char keyset, unsigned char *oldkey, unsigned char *newkey); | |
3757 | + | |
3758 | + /** | |
3759 | + * @brief 设置外接密码键盘工作密钥。 | |
3760 | + * @par 说明: | |
3761 | + * 对外接密码键盘内的工作密钥进行设置操作。 | |
3762 | + * @param[in] icdev 设备标识符。 | |
3763 | + * @param[in] keysetmain 主密钥组号,从0x00开始编号。 | |
3764 | + * @param[in] keysetwork 工作密钥组号,从0x00开始编号。 | |
3765 | + * @param[in] enkeywork 工作密钥数据,密文(用主密钥加密),固定为16个字节。 | |
3766 | + * @return <0表示失败,==0表示成功。 | |
3767 | + */ | |
3768 | + short USER_API SD_IFD_SetWorkKey(HANDLE icdev, unsigned char keysetmain, unsigned char keysetwork, unsigned char *enkeywork); | |
3769 | + | |
3770 | + /** | |
3771 | + * @brief 激活外接密码键盘工作密钥。 | |
3772 | + * @par 说明: | |
3773 | + * 激活外接密码键盘当前使用的工作密钥。 | |
3774 | + * @param[in] icdev 设备标识符。 | |
3775 | + * @param[in] keysetmain 主密钥组号,从0x00开始编号。 | |
3776 | + * @param[in] keysetwork 工作密钥组号,从0x00开始编号。 | |
3777 | + * @return <0表示失败,==0表示成功。 | |
3778 | + */ | |
3779 | + short USER_API SD_IFD_ActWorkKey(HANDLE icdev, unsigned char keysetmain, unsigned char keysetwork); | |
3780 | + | |
3781 | + /** | |
3782 | + * @brief 设置外接密码键盘最大输入长度。 | |
3783 | + * @par 说明: | |
3784 | + * 设置外接密码键盘允许用户输入密码的最大长度。 | |
3785 | + * @param[in] icdev 设备标识符。 | |
3786 | + * @param[in] keylength 密码最大长度(1~16)。 | |
3787 | + * @return <0表示失败,==0表示成功。 | |
3788 | + */ | |
3789 | + short USER_API SD_IFD_SetKeyLength(HANDLE icdev, unsigned char keylength); | |
3790 | + | |
3791 | + /** | |
3792 | + * @brief 获取外接密码键盘明文数据。 | |
3793 | + * @par 说明: | |
3794 | + * 从外接密码键盘获取明文按键数据。 | |
3795 | + * @param[in] icdev 设备标识符。 | |
3796 | + * @param[out] szPasswd 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
3797 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
3798 | + */ | |
3799 | + short USER_API SD_IFD_GetPIN(HANDLE icdev, char *szPasswd); | |
3800 | + | |
3801 | + /** | |
3802 | + * @brief 获取外接密码键盘密文数据。 | |
3803 | + * @par 说明: | |
3804 | + * 从外接密码键盘获取密文按键数据。 | |
3805 | + * @param[in] icdev 设备标识符。 | |
3806 | + * @param[out] szPasswd 返回的按键数据,数据为密文的HEX格式字符串。 | |
3807 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
3808 | + */ | |
3809 | + short USER_API SD_IFD_GetEnPIN(HANDLE icdev, char *szPasswd); | |
3810 | + | |
3811 | + /** | |
3812 | + * @brief 获取外接密码键盘明文数据。 | |
3813 | + * @par 说明: | |
3814 | + * 从外接密码键盘获取明文按键数据。 | |
3815 | + * @param[in] icdev 设备标识符。 | |
3816 | + * @param[out] szPasswd 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
3817 | + * @param[in] yyflag 标记。 | |
3818 | + * @n 0x80 - 绿灯亮,液晶显示"欢迎使用",无语音提示。 | |
3819 | + * @n 0x81 - 绿灯亮,液晶显示"请再输入一次",有语音提示。 | |
3820 | + * @n 0x82 - 绿灯亮,液晶显示"请输入密码",有语音提示。 | |
3821 | + * @n 0x83 - 绿灯亮,液晶不操作,无语音提示。 | |
3822 | + * @n 0x84 - 绿灯亮,液晶显示"请输入原密码",有语音提示。 | |
3823 | + * @n 0x85 - 绿灯亮,液晶显示"请输入新密码",有语音提示。 | |
3824 | + * @n 0x86 - 绿灯亮,液晶显示"请输入新密码",无语音提示。 | |
3825 | + * @param[in] timeout 设备超时值,单位为秒。 | |
3826 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
3827 | + */ | |
3828 | + short USER_API SD_IFD_GetPINPro(HANDLE icdev, char *szPasswd, unsigned char yyflag, unsigned char timeout); | |
3829 | + | |
3830 | + /** | |
3831 | + * @brief 获取外接密码键盘密文数据。 | |
3832 | + * @par 说明: | |
3833 | + * 从外接密码键盘获取密文按键数据。 | |
3834 | + * @param[in] icdev 设备标识符。 | |
3835 | + * @param[out] szPasswd 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
3836 | + * @param[in] yyflag 标记。 | |
3837 | + * @n 0x30 - 密码键盘提示"请输入密码",语音提示,输入密码显示'*'。 | |
3838 | + * @n 0x31 - 密码键盘提示"请再输入一次",语音提示,输入密码显示'*'。 | |
3839 | + * @n 0x32 - 密码键盘提示"请输入密码",无语音提示,输入密码显示'*'。 | |
3840 | + * @n 0x33 - 密码键盘提示"请再输入一次",无语音提示,输入密码显示'*'。 | |
3841 | + * @n 0x34 - 密码键盘提示"请输入密码",语音提示,输入密码明文显示。 | |
3842 | + * @n 0x35 - 密码键盘提示"请再输入一次",语音提示,输入密码明文显示。 | |
3843 | + * @n 0x36 - 密码键盘提示"请输入密码",无语音提示,输入密码明文显示。 | |
3844 | + * @n 0x37 - 密码键盘提示"请再输入一次",无语音提示,输入密码明文显示。 | |
3845 | + * @param[in] modeflag 模式。 | |
3846 | + * @n 0x30 - 按"确认"键或到达指定的PIN长度。 | |
3847 | + * @n 0x31 - 按"确认"键。 | |
3848 | + * @n 0x32 - 到达指定的PIN长度。 | |
3849 | + * @n 0x33 - 到达指定的PIN长度并按"确认"键。 | |
3850 | + * @param[in] timeout 设备超时值,单位为秒。 | |
3851 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
3852 | + */ | |
3853 | + short USER_API SD_IFD_GetEnPINPro(HANDLE icdev, char *szPasswd, unsigned char yyflag, unsigned char modeflag, unsigned char timeout); | |
3854 | + | |
3855 | + /** | |
3856 | + * @brief 获取外接密码键盘密文数据。 | |
3857 | + * @par 说明: | |
3858 | + * 从外接密码键盘获取ANSI X9.8 PIN BLOCK加密的按键数据。 | |
3859 | + * @param[in] icdev 设备标识符。 | |
3860 | + * @param[out] szPasswd 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
3861 | + * @param[in] yyflag 标记。 | |
3862 | + * @n 0x30 - 密码键盘提示"请输入密码",语音提示,输入密码显示'*'。 | |
3863 | + * @n 0x31 - 密码键盘提示"请再输入一次",语音提示,输入密码显示'*'。 | |
3864 | + * @n 0x32 - 密码键盘提示"请输入密码",无语音提示,输入密码显示'*'。 | |
3865 | + * @n 0x33 - 密码键盘提示"请再输入一次",无语音提示,输入密码显示'*'。 | |
3866 | + * @n 0x34 - 密码键盘提示"请输入密码",语音提示,输入密码明文显示。 | |
3867 | + * @n 0x35 - 密码键盘提示"请再输入一次",语音提示,输入密码明文显示。 | |
3868 | + * @n 0x36 - 密码键盘提示"请输入密码",无语音提示,输入密码明文显示。 | |
3869 | + * @n 0x37 - 密码键盘提示"请再输入一次",无语音提示,输入密码明文显示。 | |
3870 | + * @param[in] modeflag 模式。 | |
3871 | + * @n 0x30 - 按"确认"键或到达指定的PIN长度。 | |
3872 | + * @n 0x31 - 按"确认"键。 | |
3873 | + * @n 0x32 - 到达指定的PIN长度。 | |
3874 | + * @n 0x33 - 到达指定的PIN长度并按"确认"键。 | |
3875 | + * @param[in] cardno 截取后的卡号,固定为12个字节。 | |
3876 | + * @param[in] timeout 设备超时值,单位为秒。 | |
3877 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
3878 | + */ | |
3879 | + short USER_API SD_IFD_GetEnPINBlock(HANDLE icdev, char *szPasswd, unsigned char yyflag, unsigned char modeflag, unsigned char *cardno, unsigned char timeout); | |
3880 | + | |
3881 | + /** | |
3882 | + * @brief 设置外接密码键盘算法。 | |
3883 | + * @par 说明: | |
3884 | + * 设置外接密码键盘使用的算法。 | |
3885 | + * @param[in] icdev 设备标识符。 | |
3886 | + * @param[in] desmode 模式,0x01表示单DES,0x02表示三DES。 | |
3887 | + * @return <0表示失败,==0表示成功。 | |
3888 | + */ | |
3889 | + short USER_API SD_IFD_SelecetDes(HANDLE icdev, unsigned char desmode); | |
3890 | + | |
3891 | + /** | |
3892 | + * @brief 外接密码键盘液晶显示。 | |
3893 | + * @par 说明: | |
3894 | + * 显示指定字符串到外接密码键盘的液晶屏幕上。 | |
3895 | + * @param[in] icdev 设备标识符。 | |
3896 | + * @param[in] line 行号。 | |
3897 | + * @param[in] row 偏移。 | |
3898 | + * @param[in] leddata 要显示的字符串。 | |
3899 | + * @param[in] timeout 设备超时值,单位为秒。 | |
3900 | + * @return <0表示失败,==0表示成功。 | |
3901 | + */ | |
3902 | + short USER_API SD_IFD_LEDDisplay(HANDLE icdev, unsigned char line, unsigned char row, unsigned char *leddata, unsigned char timeout); | |
3903 | + | |
3904 | + /** | |
3905 | + * @brief 用外接密码键盘工作密钥加解密。 | |
3906 | + * @par 说明: | |
3907 | + * 使用外接密码键盘的工作密钥进行数据加解密操作。 | |
3908 | + * @param[in] icdev 设备标识符。 | |
3909 | + * @param[in] mode 运算模式,0x00表示加密,0x01表示解密。 | |
3910 | + * @param[in] srcdata 传入数据,HEX格式字符串。 | |
3911 | + * @param[out] desdata 返回的数据,HEX格式字符串。 | |
3912 | + * @return <0表示失败,==0表示成功。 | |
3913 | + */ | |
3914 | + short USER_API SD_IFD_DES(HANDLE icdev, unsigned char mode, unsigned char *srcdata, unsigned char *desdata); | |
3915 | + | |
3916 | + /** | |
3917 | + * @brief 用外接密码键盘工作密钥加解密。 | |
3918 | + * @par 说明: | |
3919 | + * 使用外接密码键盘的工作密钥进行数据加解密操作。 | |
3920 | + * @param[in] icdev 设备标识符。 | |
3921 | + * @param[in] srclen 传入数据的长度。 | |
3922 | + * @param[in] srcdata 传入数据。 | |
3923 | + * @param[out] desdata 返回的数据,HEX格式字符串。 | |
3924 | + * @param[in] flag 运算模式,0x00表示加密,0x01表示解密。 | |
3925 | + * @return <0表示失败,==0表示成功。 | |
3926 | + */ | |
3927 | + short USER_API SD_IFD_DesCaculate(HANDLE icdev, unsigned char srclen, unsigned char *srcdata, unsigned char *desdata, unsigned char flag); | |
3928 | + | |
3929 | + /** | |
3930 | + * @brief 用外接密码键盘工作密钥算MAC。 | |
3931 | + * @par 说明: | |
3932 | + * 使用外接密码键盘的工作密钥进行数据算MAC操作。 | |
3933 | + * @param[in] icdev 设备标识符。 | |
3934 | + * @param[in] srclen 传入数据的长度。 | |
3935 | + * @param[in] srcdata 传入数据。 | |
3936 | + * @param[out] macdata 返回的MAC字符串,请至少分配64个字节。 | |
3937 | + * @return <0表示失败,==0表示成功。 | |
3938 | + */ | |
3939 | + short USER_API SD_IFD_CreateMac(HANDLE icdev, unsigned char srclen, unsigned char *srcdata, unsigned char *macdata); | |
3940 | + | |
3941 | + /** | |
3942 | + * @brief 查找身份证。 | |
3943 | + * @par 说明: | |
3944 | + * 以读取数据方式查找是否有身份证存在于感应区。 | |
3945 | + * @param[in] icdev 设备标识符。 | |
3946 | + * @return <0表示失败或不存在,==0表示存在。 | |
3947 | + */ | |
3948 | + short USER_API dc_find_i_d(HANDLE icdev); | |
3949 | + | |
3950 | + /** | |
3951 | + * @brief 查找身份证。 | |
3952 | + * @par 说明: | |
3953 | + * 以读取状态方式查找是否有身份证存在于感应区。 | |
3954 | + * @param[in] icdev 设备标识符。 | |
3955 | + * @return <0表示失败或不存在,==0表示存在。 | |
3956 | + */ | |
3957 | + short USER_API dc_find_i_d_2(HANDLE icdev); | |
3958 | + | |
3959 | + /** | |
3960 | + * @brief 查找身份证。 | |
3961 | + * @par 说明: | |
3962 | + * 以寻卡方式查找是否有身份证存在于感应区。 | |
3963 | + * @param[in] icdev 设备标识符。 | |
3964 | + * @return <0表示失败或不存在,==0表示存在。 | |
3965 | + */ | |
3966 | + short USER_API dc_find_i_d_speed(HANDLE icdev); | |
3967 | + | |
3968 | + /** | |
3969 | + * @brief 读身份证原始数据。 | |
3970 | + * @par 说明: | |
3971 | + * 读取身份证模块返回的原始数据,包含基础文字和相片内容。 | |
3972 | + * @param[in] icdev 设备标识符。 | |
3973 | + * @param[out] rdata 返回的数据,请至少分配4096个字节。 | |
3974 | + * @return <0表示失败,==0表示成功。 | |
3975 | + */ | |
3976 | + short USER_API dc_get_i_d_raw_buffer(HANDLE icdev, unsigned char *rdata); | |
3977 | + | |
3978 | + /** | |
3979 | + * @brief 读身份证。 | |
3980 | + * @par 说明: | |
3981 | + * 读取身份证模块返回的原始数据,包含基础文字和相片内容,内部会做解析并且分配资源来保存,释放资源请使用 ::dc_end_i_d 。 | |
3982 | + * @param[in] icdev 设备标识符。 | |
3983 | + * @return <0表示失败,否则为身份证标识符。 | |
3984 | + */ | |
3985 | + HANDLE USER_API dc_start_i_d(HANDLE icdev); | |
3986 | + | |
3987 | + /** | |
3988 | + * @brief 读身份证。 | |
3989 | + * @par 说明: | |
3990 | + * 读取身份证模块返回的原始数据,包含基础文字、相片、指纹内容,内部会做解析并且分配资源来保存,释放资源请使用 ::dc_end_i_d 。 | |
3991 | + * @param[in] icdev 设备标识符。 | |
3992 | + * @return <0表示失败,否则为身份证标识符。 | |
3993 | + */ | |
3994 | + HANDLE USER_API dc_start_i_d_2(HANDLE icdev); | |
3995 | + | |
3996 | + /** | |
3997 | + * @brief 获取姓名。 | |
3998 | + * @par 说明: | |
3999 | + * 获取内部保存的姓名。 | |
4000 | + * @param[in] idhandle 身份证标识符。 | |
4001 | + * @return 返回的姓名字符串。 | |
4002 | + */ | |
4003 | + char *USER_API dc_i_d_query_name(HANDLE idhandle); | |
4004 | + | |
4005 | + /** | |
4006 | + * @brief 获取姓名。 | |
4007 | + * @par 说明: | |
4008 | + * 获取内部保存的姓名。 | |
4009 | + * @param[in] idhandle 身份证标识符。 | |
4010 | + * @param[out] name 姓名,请至少分配32个字节。 | |
4011 | + * @return <0表示失败,==0表示成功。 | |
4012 | + */ | |
4013 | + short USER_API dc_i_d_query_name_2(HANDLE idhandle, char *name); | |
4014 | + | |
4015 | + /** | |
4016 | + * @brief 获取性别。 | |
4017 | + * @par 说明: | |
4018 | + * 获取内部保存的性别。 | |
4019 | + * @param[in] idhandle 身份证标识符。 | |
4020 | + * @return 返回的性别字符串。 | |
4021 | + */ | |
4022 | + char *USER_API dc_i_d_query_sex(HANDLE idhandle); | |
4023 | + | |
4024 | + /** | |
4025 | + * @brief 获取性别。 | |
4026 | + * @par 说明: | |
4027 | + * 获取内部保存的性别。 | |
4028 | + * @param[in] idhandle 身份证标识符。 | |
4029 | + * @param[out] sex 性别,请至少分配8个字节。 | |
4030 | + * @return <0表示失败,==0表示成功。 | |
4031 | + */ | |
4032 | + short USER_API dc_i_d_query_sex_2(HANDLE idhandle, char *sex); | |
4033 | + | |
4034 | + /** | |
4035 | + * @brief 获取民族。 | |
4036 | + * @par 说明: | |
4037 | + * 获取内部保存的民族。 | |
4038 | + * @param[in] idhandle 身份证标识符。 | |
4039 | + * @return 返回的民族字符串。 | |
4040 | + */ | |
4041 | + char *USER_API dc_i_d_query_nation(HANDLE idhandle); | |
4042 | + | |
4043 | + /** | |
4044 | + * @brief 获取民族。 | |
4045 | + * @par 说明: | |
4046 | + * 获取内部保存的民族。 | |
4047 | + * @param[in] idhandle 身份证标识符。 | |
4048 | + * @param[out] nation 民族,请至少分配32个字节。 | |
4049 | + * @return <0表示失败,==0表示成功。 | |
4050 | + */ | |
4051 | + short USER_API dc_i_d_query_nation_2(HANDLE idhandle, char *nation); | |
4052 | + | |
4053 | + /** | |
4054 | + * @brief 获取生日。 | |
4055 | + * @par 说明: | |
4056 | + * 获取内部保存的生日。 | |
4057 | + * @param[in] idhandle 身份证标识符。 | |
4058 | + * @return 返回的生日字符串。 | |
4059 | + */ | |
4060 | + char *USER_API dc_i_d_query_birth(HANDLE idhandle); | |
4061 | + | |
4062 | + /** | |
4063 | + * @brief 获取生日。 | |
4064 | + * @par 说明: | |
4065 | + * 获取内部保存的生日。 | |
4066 | + * @param[in] idhandle 身份证标识符。 | |
4067 | + * @param[out] birth 生日,请至少分配16个字节。 | |
4068 | + * @return <0表示失败,==0表示成功。 | |
4069 | + */ | |
4070 | + short USER_API dc_i_d_query_birth_2(HANDLE idhandle, char *birth); | |
4071 | + | |
4072 | + /** | |
4073 | + * @brief 获取住址。 | |
4074 | + * @par 说明: | |
4075 | + * 获取内部保存的住址。 | |
4076 | + * @param[in] idhandle 身份证标识符。 | |
4077 | + * @return 返回的住址字符串。 | |
4078 | + */ | |
4079 | + char *USER_API dc_i_d_query_address(HANDLE idhandle); | |
4080 | + | |
4081 | + /** | |
4082 | + * @brief 获取住址。 | |
4083 | + * @par 说明: | |
4084 | + * 获取内部保存的住址。 | |
4085 | + * @param[in] idhandle 身份证标识符。 | |
4086 | + * @param[out] address 住址,请至少分配128个字节。 | |
4087 | + * @return <0表示失败,==0表示成功。 | |
4088 | + */ | |
4089 | + short USER_API dc_i_d_query_address_2(HANDLE idhandle, char *address); | |
4090 | + | |
4091 | + /** | |
4092 | + * @brief 获取公民身份号码。 | |
4093 | + * @par 说明: | |
4094 | + * 获取内部保存的公民身份号码。 | |
4095 | + * @param[in] idhandle 身份证标识符。 | |
4096 | + * @return 返回的公民身份号码字符串。 | |
4097 | + */ | |
4098 | + char *USER_API dc_i_d_query_id_number(HANDLE idhandle); | |
4099 | + | |
4100 | + /** | |
4101 | + * @brief 获取公民身份号码。 | |
4102 | + * @par 说明: | |
4103 | + * 获取内部保存的公民身份号码。 | |
4104 | + * @param[in] idhandle 身份证标识符。 | |
4105 | + * @param[out] id_number 公民身份号码,请至少分配32个字节。 | |
4106 | + * @return <0表示失败,==0表示成功。 | |
4107 | + */ | |
4108 | + short USER_API dc_i_d_query_id_number_2(HANDLE idhandle, char *id_number); | |
4109 | + | |
4110 | + /** | |
4111 | + * @brief 获取签发机关。 | |
4112 | + * @par 说明: | |
4113 | + * 获取内部保存的签发机关。 | |
4114 | + * @param[in] idhandle 身份证标识符。 | |
4115 | + * @return 返回的签发机关字符串。 | |
4116 | + */ | |
4117 | + char *USER_API dc_i_d_query_department(HANDLE idhandle); | |
4118 | + | |
4119 | + /** | |
4120 | + * @brief 获取签发机关。 | |
4121 | + * @par 说明: | |
4122 | + * 获取内部保存的签发机关。 | |
4123 | + * @param[in] idhandle 身份证标识符。 | |
4124 | + * @param[out] department 签发机关,请至少分配32个字节。 | |
4125 | + * @return <0表示失败,==0表示成功。 | |
4126 | + */ | |
4127 | + short USER_API dc_i_d_query_department_2(HANDLE idhandle, char *department); | |
4128 | + | |
4129 | + /** | |
4130 | + * @brief 获取有效期限。 | |
4131 | + * @par 说明: | |
4132 | + * 获取内部保存的有效期限。 | |
4133 | + * @param[in] idhandle 身份证标识符。 | |
4134 | + * @return 返回的有效期限字符串。 | |
4135 | + */ | |
4136 | + char *USER_API dc_i_d_query_expire_day(HANDLE idhandle); | |
4137 | + | |
4138 | + /** | |
4139 | + * @brief 获取有效期限。 | |
4140 | + * @par 说明: | |
4141 | + * 获取内部保存的有效期限。 | |
4142 | + * @param[in] idhandle 身份证标识符。 | |
4143 | + * @param[out] expire_day 有效期限,请至少分配32个字节。 | |
4144 | + * @return <0表示失败,==0表示成功。 | |
4145 | + */ | |
4146 | + short USER_API dc_i_d_query_expire_day_2(HANDLE idhandle, char *expire_day); | |
4147 | + | |
4148 | + /** | |
4149 | + * @brief 获取相片原始数据。 | |
4150 | + * @par 说明: | |
4151 | + * 获取内部保存的相片原始数据,此数据需要通过公安部相片解码库解码才能生成相片图像。 | |
4152 | + * @param[in] idhandle 身份证标识符。 | |
4153 | + * @return 返回的相片原始数据,数据实际长度通过调用 ::dc_i_d_query_photo_len 来获取。 | |
4154 | + */ | |
4155 | + unsigned char *USER_API dc_i_d_query_photo(HANDLE idhandle); | |
4156 | + | |
4157 | + /** | |
4158 | + * @brief 获取相片原始数据。 | |
4159 | + * @par 说明: | |
4160 | + * 获取内部保存的相片原始数据,此数据需要通过公安部相片解码库解码才能生成相片图像。 | |
4161 | + * @param[in] idhandle 身份证标识符。 | |
4162 | + * @param[out] photo 相片原始数据,请至少分配4096个字节,数据实际长度通过调用 ::dc_i_d_query_photo_len 来获取。 | |
4163 | + * @return <0表示失败,==0表示成功。 | |
4164 | + */ | |
4165 | + short USER_API dc_i_d_query_photo_2(HANDLE idhandle, unsigned char *photo); | |
4166 | + | |
4167 | + /** | |
4168 | + * @brief 获取相片原始数据长度。 | |
4169 | + * @par 说明: | |
4170 | + * 获取内部保存的相片原始数据的长度。 | |
4171 | + * @param[in] idhandle 身份证标识符。 | |
4172 | + * @return 返回的相片原始数据长度。 | |
4173 | + */ | |
4174 | + unsigned int USER_API dc_i_d_query_photo_len(HANDLE idhandle); | |
4175 | + | |
4176 | + /** | |
4177 | + * @brief 生成相片图像文件。 | |
4178 | + * @par 说明: | |
4179 | + * 使用内部保存的相片原始数据,通过调用公安部相片解码库解码生成相片图像文件。 | |
4180 | + * @param[in] idhandle 身份证标识符。 | |
4181 | + * @param[in] FileName 文件名,请确保有写入的权限。 | |
4182 | + * @return <0表示失败,==0表示成功。 | |
4183 | + */ | |
4184 | + short USER_API dc_i_d_query_photo_file(HANDLE idhandle, const char *FileName); | |
4185 | + | |
4186 | + /** | |
4187 | + * @brief 生成相片图像数据。 | |
4188 | + * @par 说明: | |
4189 | + * 使用内部保存的相片原始数据,通过调用公安部相片解码库解码生成相片图像数据。 | |
4190 | + * @param[in] idhandle 身份证标识符。 | |
4191 | + * @param[out] BmpBuffer 返回的相片图像数据,请至少分配65536个字节。 | |
4192 | + * @param[in,out] BmpLength 传入 @a BmpBuffer 分配的字节数,返回相片图像数据的长度。 | |
4193 | + * @return <0表示失败,==0表示成功。 | |
4194 | + */ | |
4195 | + short USER_API dc_i_d_query_photo_bmp_buffer(HANDLE idhandle, unsigned char *BmpBuffer, unsigned int *BmpLength); | |
4196 | + | |
4197 | + /** | |
4198 | + * @brief 获取指纹原始数据。 | |
4199 | + * @par 说明: | |
4200 | + * 获取内部保存的指纹原始数据。 | |
4201 | + * @param[in] idhandle 身份证标识符。 | |
4202 | + * @return 返回的指纹原始数据,数据实际长度通过调用 ::dc_i_d_query_finger_len 来获取。 | |
4203 | + */ | |
4204 | + unsigned char *USER_API dc_i_d_query_finger(HANDLE idhandle); | |
4205 | + | |
4206 | + /** | |
4207 | + * @brief 获取指纹原始数据。 | |
4208 | + * @par 说明: | |
4209 | + * 获取内部保存的指纹原始数据。 | |
4210 | + * @param[in] idhandle 身份证标识符。 | |
4211 | + * @param[out] finger 指纹原始数据,请至少分配4096个字节,数据实际长度通过调用 ::dc_i_d_query_finger_len 来获取。 | |
4212 | + * @return <0表示失败,==0表示成功。 | |
4213 | + */ | |
4214 | + short USER_API dc_i_d_query_finger_2(HANDLE idhandle, unsigned char *finger); | |
4215 | + | |
4216 | + /** | |
4217 | + * @brief 获取指纹原始数据长度。 | |
4218 | + * @par 说明: | |
4219 | + * 获取内部保存的指纹原始数据的长度。 | |
4220 | + * @param[in] idhandle 身份证标识符。 | |
4221 | + * @return 返回的指纹原始数据长度。 | |
4222 | + */ | |
4223 | + unsigned int USER_API dc_i_d_query_finger_len(HANDLE idhandle); | |
4224 | + | |
4225 | + /** | |
4226 | + * @brief 保留。 | |
4227 | + */ | |
4228 | + short USER_API dc_i_d_query_finger_file(HANDLE idhandle, const char *FileName); | |
4229 | + | |
4230 | + /** | |
4231 | + * @brief 保留。 | |
4232 | + */ | |
4233 | + short USER_API dc_i_d_query_finger_bmp_buffer(HANDLE idhandle, unsigned char *BmpBuffer, unsigned int *BmpLength); | |
4234 | + | |
4235 | + /** | |
4236 | + * @brief 释放读身份证资源。 | |
4237 | + * @par 说明: | |
4238 | + * 释放 ::dc_start_i_d ::dc_start_i_d_2 分配的资源。 | |
4239 | + * @param[in] idhandle 身份证标识符。 | |
4240 | + */ | |
4241 | + void USER_API dc_end_i_d(HANDLE idhandle); | |
4242 | + | |
4243 | + /** | |
4244 | + * @brief 获取身份证UID。 | |
4245 | + * @par 说明: | |
4246 | + * 获取身份证的唯一标识,长度为8个字节。 | |
4247 | + * @param[in] icdev 设备标识符。 | |
4248 | + * @param[out] uid 返回的UID,固定为8个字节。 | |
4249 | + * @return <0表示失败,==0表示成功。 | |
4250 | + */ | |
4251 | + short USER_API dc_getuid_i_d(HANDLE icdev, unsigned char *uid); | |
4252 | + | |
4253 | + /** | |
4254 | + * @brief LCD显示二维码。 | |
4255 | + * @par 说明: | |
4256 | + * 在设备LCD显示屏上显示二维码。 | |
4257 | + * @param[in] icdev 设备标识符。 | |
4258 | + * @param[in] point_x X轴偏移点数(0~60)。 | |
4259 | + * @param[in] point_y Y轴偏移点数(0~5)。 | |
4260 | + * @param[in] info 文本字符串。 | |
4261 | + * @return <0表示失败,==0表示成功。 | |
4262 | + */ | |
4263 | + short USER_API dc_display_2dbarcode(HANDLE icdev, int point_x, int point_y, const char *info); | |
4264 | + | |
4265 | + /** | |
4266 | + * @brief 读身份证指纹。 | |
4267 | + * @par 说明: | |
4268 | + * 读取身份证中的指纹数据。 | |
4269 | + * @param[in] icdev 设备标识符。 | |
4270 | + * @param[out] length 返回指纹数据的长度,不含'\0'。 | |
4271 | + * @param[out] data 返回的指纹数据,HEX格式字符串。 | |
4272 | + * @return <0表示失败,==0表示成功。 | |
4273 | + */ | |
4274 | + short USER_API dc_getfingerdata(HANDLE icdev, int *length, unsigned char *data); | |
4275 | + | |
4276 | + /** | |
4277 | + * @brief 检测卡片位置。 | |
4278 | + * @par 说明: | |
4279 | + * 检测卡片在设备中的位置。 | |
4280 | + * @param[in] icdev 设备标识符。 | |
4281 | + * @param[out] pos 位置。 | |
4282 | + * @n 0x01 - 卡到开始位。 | |
4283 | + * @n 0x02 - 卡到末位。 | |
4284 | + * @n 0x03 - 卡已锁住。 | |
4285 | + * @return <0表示失败,==0表示成功,==1表示无卡。 | |
4286 | + */ | |
4287 | + short USER_API dc_card_status2(HANDLE icdev, unsigned char *pos); | |
4288 | + | |
4289 | + /** | |
4290 | + * @brief 开卡与锁卡。 | |
4291 | + * @par 说明: | |
4292 | + * 开卡与锁卡。 | |
4293 | + * @param[in] icdev 设备标识符。 | |
4294 | + * @param[in] flag 标记,0x00表示锁卡,0x01表示开卡。 | |
4295 | + * @return <0表示失败,==0表示成功,==1表示无卡。 | |
4296 | + */ | |
4297 | + short USER_API dc_card_make_and_lock(HANDLE icdev, unsigned char flag); | |
4298 | + | |
4299 | + /** | |
4300 | + * @brief 发送短信。 | |
4301 | + * @par 说明: | |
4302 | + * 发送短信给指定号码。 | |
4303 | + * @param[in] icdev 设备标识符。 | |
4304 | + * @param[in] phone_no 号码。 | |
4305 | + * @param[in] sms_content 短信内容。 | |
4306 | + * @return <0表示失败,==0表示成功。 | |
4307 | + */ | |
4308 | + short USER_API dc_send_sms(HANDLE icdev, const char *phone_no, const char *sms_content); | |
4309 | + | |
4310 | + /** | |
4311 | + * @brief 指纹模块通讯。 | |
4312 | + * @par 说明: | |
4313 | + * 与指纹模块进行通讯交互。 | |
4314 | + * @param[in] icdev 设备标识符。 | |
4315 | + * @param[in] ctime 设备超时值,单位为秒。 | |
4316 | + * @param[in] request 发送数据。 | |
4317 | + * @param[in] request_len 发送数据的长度。 | |
4318 | + * @param[out] response 返回的数据。 | |
4319 | + * @param[out] response_len 返回数据的长度。 | |
4320 | + * @return <0表示失败,==0表示成功。 | |
4321 | + */ | |
4322 | + short USER_API dc_fingerprint_io_control(HANDLE icdev, unsigned char ctime, const unsigned char *request, int request_len, unsigned char *response, int *response_len); | |
4323 | + | |
4324 | + /** | |
4325 | + * @brief 保留。 | |
4326 | + */ | |
4327 | + short USER_API dc_keypad_io_control(HANDLE icdev, unsigned char ctime, const unsigned char *request, int request_len, unsigned char *response, int *response_len); | |
4328 | + | |
4329 | + /** | |
4330 | + * @brief 保留。 | |
4331 | + */ | |
4332 | + short USER_API dc_keypad_ImportKey(HANDLE icdev, unsigned char *check_value, unsigned char check_mode, int key_index, int use_key_index, unsigned char enable, const unsigned char *key, int key_len); | |
4333 | + | |
4334 | + /** | |
4335 | + * @brief 保留。 | |
4336 | + */ | |
4337 | + short USER_API dc_keypad_DeleteKey(HANDLE icdev, int key_index); | |
4338 | + | |
4339 | + /** | |
4340 | + * @brief 保留。 | |
4341 | + */ | |
4342 | + short USER_API dc_keypad_SetButtonMark(HANDLE icdev, unsigned int mark_value, unsigned char use); | |
4343 | + | |
4344 | + /** | |
4345 | + * @brief 保留。 | |
4346 | + */ | |
4347 | + short USER_API dc_keypad_Start(HANDLE icdev, unsigned char mode, int max_len, unsigned char auto_end, unsigned char enable_sound); | |
4348 | + | |
4349 | + /** | |
4350 | + * @brief 保留。 | |
4351 | + */ | |
4352 | + short USER_API dc_keypad_End(HANDLE icdev); | |
4353 | + | |
4354 | + /** | |
4355 | + * @brief 保留。 | |
4356 | + */ | |
4357 | + short USER_API dc_keypad_GetPressed(HANDLE icdev, int time_ms, unsigned char *value); | |
4358 | + | |
4359 | + /** | |
4360 | + * @brief 保留。 | |
4361 | + */ | |
4362 | + short USER_API dc_keypad_GetPinBlock(HANDLE icdev, unsigned char mode, int key_index, const unsigned char *customer_data, int customer_data_len, unsigned char *out_data, int *out_data_len); | |
4363 | + | |
4364 | + /** | |
4365 | + * @brief 保留。 | |
4366 | + */ | |
4367 | + short USER_API dc_keypad_GetRandomValue(HANDLE icdev, int length, unsigned char *value); | |
4368 | + | |
4369 | + /** | |
4370 | + * @brief 保留。 | |
4371 | + */ | |
4372 | + short USER_API dc_keypad_GetEncryptDataOfCBC(HANDLE icdev, unsigned char mode, int key_index, const unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len); | |
4373 | + | |
4374 | + /** | |
4375 | + * @brief 保留。 | |
4376 | + */ | |
4377 | + short USER_API dc_keypad_GetDecryptDataOfCBC(HANDLE icdev, unsigned char mode, int key_index, const unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len); | |
4378 | + | |
4379 | + /** | |
4380 | + * @brief 保留。 | |
4381 | + */ | |
4382 | + short USER_API dc_keypad_GetEncryptDataOfECB(HANDLE icdev, unsigned char mode, int key_index, const unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len); | |
4383 | + | |
4384 | + /** | |
4385 | + * @brief 保留。 | |
4386 | + */ | |
4387 | + short USER_API dc_keypad_GetDecryptDataOfECB(HANDLE icdev, unsigned char mode, int key_index, const unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len); | |
4388 | + | |
4389 | + /** | |
4390 | + * @brief 保留。 | |
4391 | + */ | |
4392 | + short USER_API dc_keypad_GetMACDataOfCBC(HANDLE icdev, unsigned char mode, int key_index, const unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len); | |
4393 | + | |
4394 | + /** | |
4395 | + * @brief 获取非接触卡类型。 | |
4396 | + * @par 说明: | |
4397 | + * 获取感应区中存在的非接触卡类型。 | |
4398 | + * @param[in] icdev 设备标识符。 | |
4399 | + * @return <0表示失败。 | |
4400 | + * @n 0x00 - 无卡。 | |
4401 | + * @n 0x11 - Type A CPU Card。 | |
4402 | + * @n 0x13 - Type A Mifare S50。 | |
4403 | + * @n 0x14 - Type A Mifare S70。 | |
4404 | + * @n 0x15 - Type A Mifare Ultralight。 | |
4405 | + * @n 0x21 - Type B CPU Card。 | |
4406 | + * @n 0x22 - Type B 存储卡。 | |
4407 | + */ | |
4408 | + short USER_API dc_RfGetCardType(HANDLE icdev); | |
4409 | + | |
4410 | + /** | |
4411 | + * @brief 保留。 | |
4412 | + */ | |
4413 | + short USER_API dc_RfWaveControl(HANDLE icdev, unsigned char mode); | |
4414 | + | |
4415 | + /** | |
4416 | + * @brief 保留。 | |
4417 | + */ | |
4418 | + short USER_API dc_RfReadChipRegister(HANDLE icdev, unsigned char *register_data); | |
4419 | + | |
4420 | + /** | |
4421 | + * @brief 保留。 | |
4422 | + */ | |
4423 | + short USER_API dc_RfSetChipRegister(HANDLE icdev, unsigned char register_type, unsigned char register_value); | |
4424 | + | |
4425 | + /** | |
4426 | + * @brief 获取身份证UID。 | |
4427 | + * @par 说明: | |
4428 | + * 获取身份证的唯一标识,长度为8个字节。 | |
4429 | + * @param[in] icdev 设备标识符。 | |
4430 | + * @param[out] _Data 返回的UID,固定为8个字节。 | |
4431 | + * @return <0表示失败,==0表示成功。 | |
4432 | + */ | |
4433 | + short USER_API dc_get_idsnr(HANDLE icdev, unsigned char *_Data); | |
4434 | + | |
4435 | + /** | |
4436 | + * @brief 获取身份证UID。 | |
4437 | + * @par 说明: | |
4438 | + * ::dc_get_idsnr 的HEX形式接口,参数 @a _Data 为HEX格式。 | |
4439 | + */ | |
4440 | + short USER_API dc_get_idsnr_hex(HANDLE icdev, char *_Data); | |
4441 | + | |
4442 | + /** | |
4443 | + * @brief 密码键盘模块通讯。 | |
4444 | + * @par 说明: | |
4445 | + * 与密码键盘模块进行通讯交互。 | |
4446 | + * @param[in] icdev 设备标识符。 | |
4447 | + * @param[in] time_100ms 设备超时值,单位为100毫秒。 | |
4448 | + * @param[in] slen 发送数据的长度。 | |
4449 | + * @param[in] sdata 发送数据。 | |
4450 | + * @param[out] rlen 返回数据的长度。 | |
4451 | + * @param[out] rdata 返回的数据。 | |
4452 | + * @return <0表示失败,==0表示成功。 | |
4453 | + */ | |
4454 | + short USER_API dc_PinpadCommunication(HANDLE icdev, int time_100ms, int slen, const unsigned char *sdata, int *rlen, unsigned char *rdata); | |
4455 | + | |
4456 | + /** | |
4457 | + * @brief 读Flash。 | |
4458 | + * @par 说明: | |
4459 | + * 读取设备内部Flash中的数据,可以用作数据保存等。 | |
4460 | + * @param[in] icdev 设备标识符。 | |
4461 | + * @param[in] offset 偏移地址。 | |
4462 | + * @param[in] length 读取长度。 | |
4463 | + * @param[out] data_buffer 返回的数据。 | |
4464 | + * @return <0表示失败,==0表示成功。 | |
4465 | + */ | |
4466 | + short USER_API dc_ReadFlash(HANDLE icdev, int offset, int length, unsigned char *data_buffer); | |
4467 | + | |
4468 | + /** | |
4469 | + * @brief 写Flash。 | |
4470 | + * @par 说明: | |
4471 | + * 写入数据到设备内部Flash中,可以用作数据保存等。 | |
4472 | + * @param[in] icdev 设备标识符。 | |
4473 | + * @param[in] offset 偏移地址。 | |
4474 | + * @param[in] length 写入长度。 | |
4475 | + * @param[in] data_buffer 传入数据。 | |
4476 | + * @return <0表示失败,==0表示成功。 | |
4477 | + */ | |
4478 | + short USER_API dc_WriteFlash(HANDLE icdev, int offset, int length, const unsigned char *data_buffer); | |
4479 | + | |
4480 | + /** | |
4481 | + * @brief 检测卡位置状态。 | |
4482 | + * @par 说明: | |
4483 | + * 检测卡片当前的位置状态。 | |
4484 | + * @param[in] icdev 设备标识符。 | |
4485 | + * @param[out] pos 位置状态,可为多个以下值按位或在一起。 | |
4486 | + * @n 0x00 - 无卡。 | |
4487 | + * @n 0x01 - 无卡,卡在前门口,处夹卡位置。 | |
4488 | + * @n 0x02 - 无卡,卡在前门口,处不夹卡位置。 | |
4489 | + * @n 0x10 - 有卡,不可操作任何卡。 | |
4490 | + * @n 0x11 - 有卡,可操作磁条。 | |
4491 | + * @n 0x12 - 有卡,可操作接触。 | |
4492 | + * @n 0x14 - 有卡,可操作非接触。 | |
4493 | + * @return <0表示失败,==0表示成功。 | |
4494 | + */ | |
4495 | + short USER_API dc_SelfServiceDeviceCardStatus(HANDLE icdev, unsigned char *pos); | |
4496 | + | |
4497 | + /** | |
4498 | + * @brief 进入卡片。 | |
4499 | + * @par 说明: | |
4500 | + * 进入卡片,操作前设备内有卡则错误。 | |
4501 | + * @param[in] icdev 设备标识符。 | |
4502 | + * @param[in] time_s 设备超时值,单位为秒。 | |
4503 | + * @param[in] mode 模式。 | |
4504 | + * @n 0x00 - 前端进卡,不带磁条。 | |
4505 | + * @n 0x01 - 前端进卡,带磁条。 | |
4506 | + * @n 0x02 - 后端进卡,不带磁条。 | |
4507 | + * @n 0x03 - 后端进卡,带磁条。 | |
4508 | + * @return <0表示失败。 | |
4509 | + * @n 0 - 操作成功。 | |
4510 | + * @n 1 - 设备内已有卡。 | |
4511 | + * @n 2 - 接收超时。 | |
4512 | + * @n 3 - 读磁卡错误。 | |
4513 | + * @n 4 - 参数设置出错。 | |
4514 | + * @n 5 - 异常卡正常弹出。 | |
4515 | + * @n 6 - 异常卡卡在设备内。 | |
4516 | + */ | |
4517 | + short USER_API dc_SelfServiceDeviceCardInject(HANDLE icdev, unsigned char time_s, unsigned char mode); | |
4518 | + | |
4519 | + /** | |
4520 | + * @brief 弹出卡片。 | |
4521 | + * @par 说明: | |
4522 | + * 弹出卡片,操作前设备内无卡则错误。 | |
4523 | + * @param[in] icdev 设备标识符。 | |
4524 | + * @param[in] time_s 设备超时值,单位为秒。 | |
4525 | + * @param[in] mode 模式。 | |
4526 | + * @n 0x00 - 弹到前端并夹卡。 | |
4527 | + * @n 0x01 - 弹道后端。 | |
4528 | + * @n 0x02 - 弹到前端不夹卡。 | |
4529 | + * @return <0表示失败。 | |
4530 | + * @n 0 - 操作成功。 | |
4531 | + * @n 1 - 设备内没有卡。 | |
4532 | + * @n 2 - 接收超时。 | |
4533 | + * @n 3 - 参数设置出错。 | |
4534 | + * @n 4 - 卡片已到前门夹卡位置,可操作卡片。 | |
4535 | + * @n 5 - 卡片已到前门不夹卡位置,不可操作卡片。 | |
4536 | + */ | |
4537 | + short USER_API dc_SelfServiceDeviceCardEject(HANDLE icdev, unsigned char time_s, unsigned char mode); | |
4538 | + | |
4539 | + /** | |
4540 | + * @brief 移动卡片。 | |
4541 | + * @par 说明: | |
4542 | + * 移动卡片,操作前设备内无卡则错误。 | |
4543 | + * @param[in] icdev 设备标识符。 | |
4544 | + * @param[in] time_s 设备超时值,单位为秒。 | |
4545 | + * @param[in] mode 模式。 | |
4546 | + * @n 0x00 - 移动到磁条卡操作位置。 | |
4547 | + * @n 0x01 - 移动到接触卡操作位置。 | |
4548 | + * @n 0x02 - 移动到非接触卡操作位置。 | |
4549 | + * @return <0表示失败。 | |
4550 | + * @n 0 - 操作成功。 | |
4551 | + * @n 1 - 设备内没有卡。 | |
4552 | + * @n 2 - 接收超时。 | |
4553 | + * @n 3 - 参数设置出错。 | |
4554 | + * @n 4 - 卡片已到前门不夹卡位置,不可操作卡片。 | |
4555 | + */ | |
4556 | + short USER_API dc_SelfServiceDeviceCardMove(HANDLE icdev, unsigned char time_s, unsigned char mode); | |
4557 | + | |
4558 | + /** | |
4559 | + * @brief 获取传感器状态。 | |
4560 | + * @par 说明: | |
4561 | + * 获取设备传感器的状态。 | |
4562 | + * @param[in] icdev 设备标识符。 | |
4563 | + * @param[out] value 状态值。 | |
4564 | + * @n bit0 - 电闸门开关传感器,0表示打开,1表示关闭。 | |
4565 | + * @n bit1 - 压卡传感器,0表示卡已被下压,1表示无卡。 | |
4566 | + * @n bit2~bit7 - 分别表示从前端到后端的传感器,每个传感器值0表示有卡,值1表示无卡。 | |
4567 | + * @return <0表示失败,==0表示成功,==1表示掉电无法使用。 | |
4568 | + */ | |
4569 | + short USER_API dc_SelfServiceDeviceSensorStatus(HANDLE icdev, unsigned char *value); | |
4570 | + | |
4571 | + /** | |
4572 | + * @brief 设置弹卡模式。 | |
4573 | + * @par 说明: | |
4574 | + * 设置弹卡模式。 | |
4575 | + * @param[in] icdev 设备标识符。 | |
4576 | + * @param[in] mode 模式。 | |
4577 | + * @n 0x00 - 弹到前端并夹卡。 | |
4578 | + * @n 0x01 - 弹道后端。 | |
4579 | + * @n 0x02 - 弹到前端不夹卡。 | |
4580 | + * @return <0表示失败,==0表示成功。 | |
4581 | + */ | |
4582 | + short USER_API dc_SelfServiceDeviceConfig(HANDLE icdev, unsigned char mode); | |
4583 | + | |
4584 | + /** | |
4585 | + * @brief 设置前端进卡模式。 | |
4586 | + * @par 说明: | |
4587 | + * 设置前端进卡模式。 | |
4588 | + * @param[in] icdev 设备标识符。 | |
4589 | + * @param[in] mode 模式。 | |
4590 | + * @n 0x00 - 前端禁止进卡。 | |
4591 | + * @n 0x01 - 前端磁卡方式进卡。 | |
4592 | + * @n 0x02 - 前端开关方式进卡。 | |
4593 | + * @n 0x03 - 前端磁信号方式进卡。 | |
4594 | + * @return <0表示失败,==0表示成功。 | |
4595 | + */ | |
4596 | + short USER_API dc_SelfServiceDeviceConfigFront(HANDLE icdev, unsigned char mode); | |
4597 | + | |
4598 | + /** | |
4599 | + * @brief 设置后端进卡模式。 | |
4600 | + * @par 说明: | |
4601 | + * 设置后端进卡模式。 | |
4602 | + * @param[in] icdev 设备标识符。 | |
4603 | + * @param[in] mode 模式。 | |
4604 | + * @n 0x00 - 后端禁止进卡。 | |
4605 | + * @n 0x01 - 后端磁卡方式进卡。 | |
4606 | + * @n 0x02 - 后端非磁卡方式进卡。 | |
4607 | + * @return <0表示失败,==0表示成功。 | |
4608 | + */ | |
4609 | + short USER_API dc_SelfServiceDeviceConfigBack(HANDLE icdev, unsigned char mode); | |
4610 | + | |
4611 | + /** | |
4612 | + * @brief 设置停卡位置。 | |
4613 | + * @par 说明: | |
4614 | + * 设置停卡位置。 | |
4615 | + * @param[in] icdev 设备标识符。 | |
4616 | + * @param[in] mode 模式。 | |
4617 | + * @n 0x00 - 前端不夹卡。 | |
4618 | + * @n 0x01 - 前端夹卡。 | |
4619 | + * @n 0x02 - 接触式IC卡位置。 | |
4620 | + * @n 0x03 - 射频卡位置。 | |
4621 | + * @n 0x04 - 磁卡位置。 | |
4622 | + * @n 0x05 - 弹卡到后端。 | |
4623 | + * @return <0表示失败,==0表示成功。 | |
4624 | + */ | |
4625 | + short USER_API dc_SelfServiceDeviceConfigPlace(HANDLE icdev, unsigned char mode); | |
4626 | + | |
4627 | + /** | |
4628 | + * @brief 检测卡类型。 | |
4629 | + * @par 说明: | |
4630 | + * 设备将自动移动卡片并且检测卡片类型。 | |
4631 | + * @param[in] icdev 设备标识符。 | |
4632 | + * @return <0表示失败。 | |
4633 | + * @n 0x00 - 表示无法检测到相应卡片。 | |
4634 | + * @n 0x01 - 表示设备内无卡。 | |
4635 | + * @n 0x11 - 表示Type A CPU Card。 | |
4636 | + * @n 0x13 - 表示Type A Mifare S50。 | |
4637 | + * @n 0x14 - 表示Type A Mifare S70。 | |
4638 | + * @n 0x15 - 表示Type A Mifare Ultralight。 | |
4639 | + * @n 0x21 - 表示Type B CPU Card。 | |
4640 | + * @n 0x22 - 表示Type B 存储卡。 | |
4641 | + * @n 0x31 - 表示接触T=0 CPU Card。 | |
4642 | + * @n 0x32 - 表示接触T=1 CPU Card。 | |
4643 | + * @n 0x41 - 表示4442 Card。 | |
4644 | + * @n 0x42 - 表示4428 Card。 | |
4645 | + */ | |
4646 | + short USER_API dc_SelfServiceDeviceCheckCardType(HANDLE icdev); | |
4647 | + | |
4648 | + /** | |
4649 | + * @brief 复位自助设备。 | |
4650 | + * @par 说明: | |
4651 | + * 使自助设备进入上电初始状态,并且设置参数为缺省参数。 | |
4652 | + * @param[in] icdev 设备标识符。 | |
4653 | + * @return <0表示失败,==0表示成功。 | |
4654 | + */ | |
4655 | + short USER_API dc_SelfServiceDeviceReset(HANDLE icdev); | |
4656 | + | |
4657 | + /** | |
4658 | + * @brief 检测多卡状态。 | |
4659 | + * @par 说明: | |
4660 | + * 判断是否为多张卡,是否为Type A或Type B卡。 | |
4661 | + * @param[in] icdev 设备标识符。 | |
4662 | + * @param[out] type 卡类型,0x0A表示Type A卡,0x0B表示Type B卡。 | |
4663 | + * @return <0表示失败,==0表示成功,==1表示无卡,==2表示存在多张卡。 | |
4664 | + */ | |
4665 | + short USER_API dc_MulticardStatus(HANDLE icdev, unsigned char *type); | |
4666 | + | |
4667 | + /** | |
4668 | + * @brief 获取多个按键值。 | |
4669 | + * @par 说明: | |
4670 | + * 获取设备键盘的按键值,每次调用可以获取多个按键值。 | |
4671 | + * @param[in] icdev 设备标识符。 | |
4672 | + * @param[in] ctime 设备超时值,单位为秒。 | |
4673 | + * @param[out] rlen 返回按键数据的长度,不含'\0'。 | |
4674 | + * @param[out] cpass 返回的按键数据,数据格式为'\0'结尾的字符串。 | |
4675 | + * @return <0表示失败,==0表示成功,==0xA1表示取消输入,==0xA2表示输入超时。 | |
4676 | + */ | |
4677 | + short USER_API dc_pass_key_value2(HANDLE icdev, unsigned char ctime, unsigned char *rlen, unsigned char *cpass); | |
4678 | + | |
4679 | + /** | |
4680 | + * @brief 读外部EEPROM。 | |
4681 | + * @par 说明: | |
4682 | + * 读取设备外部EEPROM中的数据,可以用作数据保存等。 | |
4683 | + * @param[in] icdev 设备标识符。 | |
4684 | + * @param[in] offset 偏移地址。 | |
4685 | + * @param[in] length 读取长度。 | |
4686 | + * @param[out] data_buffer 返回的数据。 | |
4687 | + * @return <0表示失败,==0表示成功。 | |
4688 | + */ | |
4689 | + short USER_API dc_ReadOutEeprom(HANDLE icdev, int offset, int length, unsigned char *data_buffer); | |
4690 | + | |
4691 | + /** | |
4692 | + * @brief 写外部EEPROM。 | |
4693 | + * @par 说明: | |
4694 | + * 写入数据到设备外部EEPROM中,可以用作数据保存等。 | |
4695 | + * @param[in] icdev 设备标识符。 | |
4696 | + * @param[in] offset 偏移地址。 | |
4697 | + * @param[in] length 写入长度。 | |
4698 | + * @param[in] data_buffer 传入数据。 | |
4699 | + * @return <0表示失败,==0表示成功。 | |
4700 | + */ | |
4701 | + short USER_API dc_WriteOutEeprom(HANDLE icdev, int offset, int length, const unsigned char *data_buffer); | |
4702 | + | |
4703 | + /** | |
4704 | + * @brief 读ID卡。 | |
4705 | + * @par 说明: | |
4706 | + * 读取ID卡数据。 | |
4707 | + * @param[in] icdev 设备标识符。 | |
4708 | + * @param[in] time_ms 设备超时值,单位为毫秒。 | |
4709 | + * @param[out] rlen 返回数据的长度。 | |
4710 | + * @param[out] rdata 返回的数据。 | |
4711 | + * @return <0表示失败,==0表示成功。 | |
4712 | + */ | |
4713 | + short USER_API dc_ReadIdCardInfo(HANDLE icdev, int time_ms, int *rlen, unsigned char *rdata); | |
4714 | + | |
4715 | + /** | |
4716 | + * @brief 保留。 | |
4717 | + */ | |
4718 | + short USER_API dc_cpy_getkey(HANDLE icdev, unsigned char *respkey, int *resplen); | |
4719 | + | |
4720 | + /** | |
4721 | + * @brief 保留。 | |
4722 | + */ | |
4723 | + short USER_API dc_cpy_setkey(HANDLE icdev, unsigned char *genkey, int keylen); | |
4724 | + | |
4725 | + /** | |
4726 | + * @brief 保留。 | |
4727 | + */ | |
4728 | + short USER_API dc_cpy_cpuapdu(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer); | |
4729 | + | |
4730 | + /** | |
4731 | + * @brief 保留。 | |
4732 | + */ | |
4733 | + short USER_API dc_cpy_cpuapdu_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer); | |
4734 | + | |
4735 | + /** | |
4736 | + * @brief 保留。 | |
4737 | + */ | |
4738 | + short USER_API dc_cpy_cpuapduInt(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer); | |
4739 | + | |
4740 | + /** | |
4741 | + * @brief 保留。 | |
4742 | + */ | |
4743 | + short USER_API dc_cpy_cpuapduInt_hex(HANDLE icdev, unsigned int slen, char *sendbuffer, unsigned int *rlen, char *databuffer); | |
4744 | + | |
4745 | + /** | |
4746 | + * @brief 保留。 | |
4747 | + */ | |
4748 | + short USER_API dc_cpy_procommand(HANDLE icdev, unsigned char slen, unsigned char *sendbuffer, unsigned char *rlen, unsigned char *databuffer, unsigned char timeout); | |
4749 | + | |
4750 | + /** | |
4751 | + * @brief 保留。 | |
4752 | + */ | |
4753 | + short USER_API dc_cpy_procommand_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer, unsigned char timeout); | |
4754 | + | |
4755 | + /** | |
4756 | + * @brief 保留。 | |
4757 | + */ | |
4758 | + short USER_API dc_cpy_procommandInt(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer, unsigned char timeout); | |
4759 | + | |
4760 | + /** | |
4761 | + * @brief 保留。 | |
4762 | + */ | |
4763 | + short USER_API dc_cpy_procommandInt_hex(HANDLE icdev, unsigned int slen, char *sendbuffer, unsigned int *rlen, char *databuffer, unsigned char timeout); | |
4764 | + | |
4765 | + /** | |
4766 | + * @brief 非接触式CPU卡指令交互。 | |
4767 | + * @par 说明: | |
4768 | + * 对感应区CPU卡进行指令交互操作,注意此接口已封装卡协议部分。 | |
4769 | + * @param[in] icdev 设备标识符。 | |
4770 | + * @param[in] slen 发送数据的长度。 | |
4771 | + * @param[in] sendbuffer 发送数据。 | |
4772 | + * @param[out] rlen 返回数据的长度。 | |
4773 | + * @param[out] databuffer 返回的数据。 | |
4774 | + * @param[in] timeout 超时值,此值只在部分设备的底层使用,单位为250毫秒,一般调用建议值为7。 | |
4775 | + * @return <0表示失败,==0表示成功。 | |
4776 | + */ | |
4777 | + short USER_API dc_procommandInt(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer, unsigned char timeout); | |
4778 | + | |
4779 | + /** | |
4780 | + * @brief 非接触式CPU卡指令交互。 | |
4781 | + * @par 说明: | |
4782 | + * ::dc_procommandInt 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
4783 | + */ | |
4784 | + short USER_API dc_procommandInt_hex(HANDLE icdev, unsigned int slen, char *sendbuffer, unsigned int *rlen, char *databuffer, unsigned char timeout); | |
4785 | + | |
4786 | + /** | |
4787 | + * @brief 保留。 | |
4788 | + */ | |
4789 | + short USER_API dc_ReadRfCfgReg(HANDLE icdev, int type, int number, int *value); | |
4790 | + | |
4791 | + /** | |
4792 | + * @brief 保留。 | |
4793 | + */ | |
4794 | + short USER_API dc_WriteRfCfgReg(HANDLE icdev, int type, int number, int value); | |
4795 | + | |
4796 | + /** | |
4797 | + * @brief 初始化NFC。 | |
4798 | + * @par 说明: | |
4799 | + * 切换射频到NFC点对点模式,操作NFC点对点模式之前必须使用此接口进行初始化。 | |
4800 | + * @param[in] icdev 设备标识符。 | |
4801 | + * @return <0表示失败,==0表示成功。 | |
4802 | + */ | |
4803 | + short USER_API dc_NfcInit(HANDLE icdev); | |
4804 | + | |
4805 | + /** | |
4806 | + * @brief 激活NFC。 | |
4807 | + * @par 说明: | |
4808 | + * 寻NFC(即激活NFC后自动链接)并返回ATR数据。 | |
4809 | + * @param[in] icdev 设备标识符。 | |
4810 | + * @param[out] atr 返回的数据。 | |
4811 | + * @param[out] atr_len 返回数据的长度。 | |
4812 | + * @return <0表示失败,==0表示成功。 | |
4813 | + */ | |
4814 | + short USER_API dc_NfcActivate(HANDLE icdev, unsigned char *atr, int *atr_len); | |
4815 | + | |
4816 | + /** | |
4817 | + * @brief 断开NFC。 | |
4818 | + * @par 说明: | |
4819 | + * 断开链接并关闭天线,调用此接口必须先激活NFC。 | |
4820 | + * @param[in] icdev 设备标识符。 | |
4821 | + * @return <0表示失败,==0表示成功。 | |
4822 | + */ | |
4823 | + short USER_API dc_NfcDeactivate(HANDLE icdev); | |
4824 | + | |
4825 | + /** | |
4826 | + * @brief NFC点对点数据透传(推送服务端)。 | |
4827 | + * @par 说明: | |
4828 | + * 推送数据到NFC手机,调用此接口必须先激活NFC。 | |
4829 | + * @param[in] icdev 设备标识符。 | |
4830 | + * @param[in] request 发送数据。 | |
4831 | + * @param[in] request_len 发送数据的长度。 | |
4832 | + * @return <0表示失败,==0表示成功。 | |
4833 | + */ | |
4834 | + short USER_API dc_NfcPush(HANDLE icdev, const unsigned char *request, int request_len); | |
4835 | + | |
4836 | + /** | |
4837 | + * @brief NFC点对点数据透传(从服务端接收)。 | |
4838 | + * @par 说明: | |
4839 | + * 设置接收模式,开启后将进入准备接收NFC手机数据的模式,调用此接口无须激活NFC。 | |
4840 | + * @param[in] icdev 设备标识符。 | |
4841 | + * @param[in] flag 标记,0表示关闭,1表示开启。 | |
4842 | + * @return <0表示失败,==0表示成功。 | |
4843 | + */ | |
4844 | + short USER_API dc_NfcService(HANDLE icdev, int flag); | |
4845 | + | |
4846 | + /** | |
4847 | + * @brief 接收NFC手机数据。 | |
4848 | + * @par 说明: | |
4849 | + * 设备进入接收模式后,可以使用此接口来接收NFC手机的数据。 | |
4850 | + * @param[in] icdev 设备标识符。 | |
4851 | + * @param[out] response 返回的数据。 | |
4852 | + * @param[out] response_len 返回数据的长度。 | |
4853 | + * @param[in] time_ms 接口超时值,单位为秒。 | |
4854 | + * @return <0表示失败,==0表示成功,==1表示手机不在感应区,==2表示数据需要重新传递。 | |
4855 | + */ | |
4856 | + short USER_API dc_NfcFetch(HANDLE icdev, unsigned char *response, int *response_len, int time_ms); | |
4857 | + | |
4858 | + /** | |
4859 | + * @brief NFC点对点数据透传(从服务端接收)。 | |
4860 | + * @par 说明: | |
4861 | + * 设置接收模式,开启后将进入准备接收NFC手机数据的模式,调用此接口无须激活NFC。 | |
4862 | + * @param[in] icdev 设备标识符。 | |
4863 | + * @param[in] mode 模式,0表示关闭,1表示开启。 | |
4864 | + * @return <0表示失败,==0表示成功。 | |
4865 | + */ | |
4866 | + short USER_API dc_NfcSimulateCardConfig(HANDLE icdev, int mode); | |
4867 | + | |
4868 | + /** | |
4869 | + * @brief 磁条卡数据自动上传数据模式设置。 | |
4870 | + * @par 说明: | |
4871 | + * 磁条卡数据自动上传数据模式设置。 | |
4872 | + * @param[in] icdev 设备标识符。 | |
4873 | + * @param[in] mode 模式。 | |
4874 | + * @n 0 - 输出数据中如果带字母,字母转化为大写字母。 | |
4875 | + * @n 1 - 输出数据是原始数据(默认)。 | |
4876 | + * @return <0表示失败,==0表示成功。 | |
4877 | + */ | |
4878 | + short USER_API dc_MagFormatConfig(HANDLE icdev, int mode); | |
4879 | + | |
4880 | + /** | |
4881 | + * @brief 获取通讯模块MAC地址。 | |
4882 | + * @par 说明: | |
4883 | + * 获取通讯模块MAC地址。 | |
4884 | + * @param[in] icdev 设备标识符。 | |
4885 | + * @param[in] type 模块类型,1表示蓝牙模块,2表示WIFI模块,3表示GPRS/CDMA/全网通等模块。 | |
4886 | + * @param[out] value 返回的MAC地址,数据格式为'\0'结尾的字符串。 | |
4887 | + * @return <0表示失败,==0表示成功。 | |
4888 | + */ | |
4889 | + short USER_API dc_ReadModuleMacAddress(HANDLE icdev, int type, char *value); | |
4890 | + | |
4891 | + /** | |
4892 | + * @brief 设置通讯模块MAC地址。 | |
4893 | + * @par 说明: | |
4894 | + * 设置通讯模块MAC地址。 | |
4895 | + * @param[in] icdev 设备标识符。 | |
4896 | + * @param[in] type 模块类型,1表示蓝牙模块,2表示WIFI模块,3表示GPRS/CDMA/全网通等模块。 | |
4897 | + * @param[in] value 传入MAC地址,数据格式为'\0'结尾的字符串。 | |
4898 | + * @return <0表示失败,==0表示成功。 | |
4899 | + */ | |
4900 | + short USER_API dc_WriteModuleMacAddress(HANDLE icdev, int type, const char *value); | |
4901 | + | |
4902 | + /** | |
4903 | + * @brief 读取ATS数据。 | |
4904 | + * @par 说明: | |
4905 | + * 读取Type A、Type B卡的ATS,此接口必须在卡片激活后才可使用。 | |
4906 | + * @param[in] icdev 设备标识符。 | |
4907 | + * @param[out] ats_len 返回ATS数据的长度。 | |
4908 | + * @param[out] ats 返回的ATS数据。 | |
4909 | + * @return <0表示失败,==0表示成功。 | |
4910 | + */ | |
4911 | + short USER_API dc_ReadRfTypeABATS(HANDLE icdev, int *ats_len, unsigned char *ats); | |
4912 | + | |
4913 | + /** | |
4914 | + * @brief 读取ATS数据。 | |
4915 | + * @par 说明: | |
4916 | + * ::dc_ReadRfTypeABATS 的HEX形式接口,参数 @a ats 为HEX格式。 | |
4917 | + */ | |
4918 | + short USER_API dc_ReadRfTypeABATS_hex(HANDLE icdev, int *ats_len, char *ats); | |
4919 | + | |
4920 | + /** | |
4921 | + * @brief 保留。 | |
4922 | + */ | |
4923 | + short USER_API dc_RfFormatConfig(HANDLE icdev, int mode, int block_number, int offset, int length); | |
4924 | + | |
4925 | + /** | |
4926 | + * @brief Flash扇区擦除。 | |
4927 | + * @par 说明: | |
4928 | + * 擦除Flash扇区中的数据。 | |
4929 | + * @param[in] icdev 设备标识符。 | |
4930 | + * @param[in] sector 扇区地址,0xFFFF表示擦除全部。 | |
4931 | + * @return <0表示失败,==0表示成功。 | |
4932 | + */ | |
4933 | + short USER_API dc_FlashErase(HANDLE icdev, int sector); | |
4934 | + | |
4935 | + /** | |
4936 | + * @brief 设备蜂鸣。 | |
4937 | + * @par 说明: | |
4938 | + * 设备蜂鸣器按照指定参数进行蜂鸣,接口本身会直接返回,而不会等待蜂鸣器工作完成。 | |
4939 | + * @param[in] icdev 设备标识符。 | |
4940 | + * @param[in] beep_time_ms 单次蜂鸣时间,单位为毫秒。 | |
4941 | + * @param[in] interval_time_ms 间隔时间,单位为毫秒。 | |
4942 | + * @param[in] count 蜂鸣次数,其中0x0000表示停止,0xFFFF表示无限次。 | |
4943 | + * @return <0表示失败,==0表示成功。 | |
4944 | + */ | |
4945 | + short USER_API dc_BuzzerBeep(HANDLE icdev, unsigned short beep_time_ms, unsigned short interval_time_ms, unsigned short count); | |
4946 | + | |
4947 | + /** | |
4948 | + * @brief 蓝牙模式设置。 | |
4949 | + * @par 说明: | |
4950 | + * 设置蓝牙模块的通讯模式。 | |
4951 | + * @param[in] icdev 设备标识符。 | |
4952 | + * @param[in] mode 模式,0x00表示串口模式(AT指令集或EEPROM读写),0x01表示蓝牙模式。 | |
4953 | + * @return <0表示失败,==0表示成功。 | |
4954 | + */ | |
4955 | + short USER_API dc_BtModeControl(HANDLE icdev, unsigned char mode); | |
4956 | + | |
4957 | + /** | |
4958 | + * @brief 蓝牙波特率查询/设置。 | |
4959 | + * @par 说明: | |
4960 | + * 查询/设置蓝牙模块的通讯波特率,修改的是蓝牙模块端。 | |
4961 | + * @param[in] icdev 设备标识符。 | |
4962 | + * @param[in] flag 标记,0x00表示查询,0x01表示设置。 | |
4963 | + * @param[in,out] value 波特率。 | |
4964 | + * @n 0x00 - 9600。 | |
4965 | + * @n 0x01 - 19200。 | |
4966 | + * @n 0x02 - 38400。 | |
4967 | + * @n 0x03 - 57600。 | |
4968 | + * @n 0x04 - 115200。 | |
4969 | + * @return <0表示失败,==0表示成功。 | |
4970 | + */ | |
4971 | + short USER_API dc_BtBaudrateControl(HANDLE icdev, unsigned char flag, unsigned char *value); | |
4972 | + | |
4973 | + /** | |
4974 | + * @brief 蓝牙连接密码查询/设置。 | |
4975 | + * @par 说明: | |
4976 | + * 查询/设置蓝牙模块的连接密码。 | |
4977 | + * @param[in] icdev 设备标识符。 | |
4978 | + * @param[in] flag 标记,0x00表示查询,0x01表示设置。 | |
4979 | + * @param[in,out] value 密码字符串,查询时请至少分配64个字节。 | |
4980 | + * @return <0表示失败,==0表示成功。 | |
4981 | + */ | |
4982 | + short USER_API dc_BtPasswordControl(HANDLE icdev, unsigned char flag, char *value); | |
4983 | + | |
4984 | + /** | |
4985 | + * @brief 蓝牙模块地址查询/设置。 | |
4986 | + * @par 说明: | |
4987 | + * 查询/设置蓝牙模块的地址。 | |
4988 | + * @param[in] icdev 设备标识符。 | |
4989 | + * @param[in] flag 标记,0x00表示查询,0x01表示设置。 | |
4990 | + * @param[in,out] length 地址的长度。 | |
4991 | + * @param[in,out] value 地址,查询时请至少分配64个字节。 | |
4992 | + * @return <0表示失败,==0表示成功。 | |
4993 | + */ | |
4994 | + short USER_API dc_BtAddressControl(HANDLE icdev, unsigned char flag, unsigned char *length, unsigned char *value); | |
4995 | + | |
4996 | + /** | |
4997 | + * @brief 蓝牙模块名称查询/设置。 | |
4998 | + * @par 说明: | |
4999 | + * 查询/设置蓝牙模块的名称。 | |
5000 | + * @param[in] icdev 设备标识符。 | |
5001 | + * @param[in] flag 标记,0x00表示查询,0x01表示设置。 | |
5002 | + * @param[in,out] value 名称字符串,查询时请至少分配64个字节。 | |
5003 | + * @return <0表示失败,==0表示成功。 | |
5004 | + */ | |
5005 | + short USER_API dc_BtNameControl(HANDLE icdev, unsigned char flag, char *value); | |
5006 | + | |
5007 | + /** | |
5008 | + * @brief 蓝牙用户自定义的配置命令。 | |
5009 | + * @par 说明: | |
5010 | + * 采用读写EEPROM方式进行蓝牙模块的自定义配置。 | |
5011 | + * @param[in] icdev 设备标识符。 | |
5012 | + * @param[in] flag 标记,0x00表示读EEPROM,0x01表示写EEPROM或AT指令集模式。 | |
5013 | + * @param[in] offset 偏移地址。 | |
5014 | + * @param[in] length 数据的长度。 | |
5015 | + * @param[in,out] value 数据。 | |
5016 | + * @return <0表示失败,==0表示成功。 | |
5017 | + */ | |
5018 | + short USER_API dc_BtUserControl(HANDLE icdev, unsigned char flag, int offset, int length, unsigned char *value); | |
5019 | + | |
5020 | + /** | |
5021 | + * @brief 蓝牙软件复位。 | |
5022 | + * @par 说明: | |
5023 | + * 对蓝牙模块进行软件复位。 | |
5024 | + * @param[in] icdev 设备标识符。 | |
5025 | + * @return <0表示失败,==0表示成功。 | |
5026 | + */ | |
5027 | + short USER_API dc_BtReset(HANDLE icdev); | |
5028 | + | |
5029 | + /** | |
5030 | + * @brief 蓝牙模块通讯测试。 | |
5031 | + * @par 说明: | |
5032 | + * 蓝牙模块在蓝牙通讯模式下,用此接口可以测试蓝牙通讯是否通畅,数据发送成功后,监测相关串口是否有接收到该数据来判断通讯是否成功。 | |
5033 | + * @param[in] icdev 设备标识符。 | |
5034 | + * @param[in] length 发送数据的长度。 | |
5035 | + * @param[in] value 发送数据。 | |
5036 | + * @return <0表示失败,==0表示成功。 | |
5037 | + */ | |
5038 | + short USER_API dc_BtCommunicationTest(HANDLE icdev, int length, const unsigned char *value); | |
5039 | + | |
5040 | + /** | |
5041 | + * @brief 蓝牙波特率查询/设置。 | |
5042 | + * @par 说明: | |
5043 | + * 查询/设置与蓝牙模块之间的通讯波特率,修改的是设备端。 | |
5044 | + * @param[in] icdev 设备标识符。 | |
5045 | + * @param[in] flag 标记,0x00表示查询,0x01表示设置。 | |
5046 | + * @param[in,out] value 波特率。 | |
5047 | + * @n 0x00 - 2400。 | |
5048 | + * @n 0x01 - 4800。 | |
5049 | + * @n 0x02 - 9600。 | |
5050 | + * @n 0x03 - 14400。 | |
5051 | + * @n 0x04 - 38400。 | |
5052 | + * @n 0x05 - 57600。 | |
5053 | + * @n 0x06 - 115200。 | |
5054 | + * @n 0x07 - 256000。 | |
5055 | + * @return <0表示失败,==0表示成功。 | |
5056 | + */ | |
5057 | + short USER_API dc_BtWithReaderBaudrateControl(HANDLE icdev, unsigned char flag, unsigned char *value); | |
5058 | + | |
5059 | + /** | |
5060 | + * @brief 蓝牙模块通讯。 | |
5061 | + * @par 说明: | |
5062 | + * 与蓝牙模块进行通讯交互。 | |
5063 | + * @param[in] icdev 设备标识符。 | |
5064 | + * @param[in] slen 发送数据的长度。 | |
5065 | + * @param[in] sdata 发送数据。 | |
5066 | + * @param[out] rlen 返回数据的长度。 | |
5067 | + * @param[out] rdata 返回的数据。 | |
5068 | + * @return <0表示失败,==0表示成功。 | |
5069 | + */ | |
5070 | + short USER_API dc_BtCommand(HANDLE icdev, int slen, const unsigned char *sdata, int *rlen, unsigned char *rdata); | |
5071 | + | |
5072 | + /** | |
5073 | + * @brief 获取蓝牙信号强度。 | |
5074 | + * @par 说明: | |
5075 | + * 获取蓝牙信号强度。 | |
5076 | + * @param[in] icdev 设备标识符。 | |
5077 | + * @param[out] state 状态,0x00表示蓝牙未连接,0x01表示蓝牙已连接。 | |
5078 | + * @param[out] value 信号值。 | |
5079 | + * @return <0表示失败,==0表示成功。 | |
5080 | + */ | |
5081 | + short USER_API dc_BtSignalStrength(HANDLE icdev, unsigned char *state, short *value); | |
5082 | + | |
5083 | + /** | |
5084 | + * @brief 获取蓝牙响应。 | |
5085 | + * @par 说明: | |
5086 | + * 获取蓝牙模块当前执行命令的响应或数据。 | |
5087 | + * @param[in] icdev 设备标识符。 | |
5088 | + * @param[out] length 返回数据的长度。 | |
5089 | + * @param[out] value 返回的数据。 | |
5090 | + * @return <0表示失败,==0表示成功。 | |
5091 | + */ | |
5092 | + short USER_API dc_BtDataResponse(HANDLE icdev, int *length, unsigned char *value); | |
5093 | + | |
5094 | + /** | |
5095 | + * @brief 蓝牙数据透传。 | |
5096 | + * @par 说明: | |
5097 | + * 此接口用于将从蓝牙接收到的数据透传到外设中,并返回从外设接收的数据。 | |
5098 | + * @param[in] icdev 设备标识符。 | |
5099 | + * @param[in] slen 发送数据的长度。 | |
5100 | + * @param[in] sdata 发送数据。 | |
5101 | + * @param[out] rlen 返回数据的长度。 | |
5102 | + * @param[out] rdata 返回的数据。 | |
5103 | + * @return <0表示失败,==0表示成功。 | |
5104 | + */ | |
5105 | + short USER_API dc_BtDataTransmit(HANDLE icdev, int slen, const unsigned char *sdata, int *rlen, unsigned char *rdata); | |
5106 | + | |
5107 | + /** | |
5108 | + * @brief SAM_A模块指令交互。 | |
5109 | + * @par 说明: | |
5110 | + * 此接口用于操作居民身份证验证安全控制模块。 | |
5111 | + * @param[in] icdev 设备标识符。 | |
5112 | + * @param[in] code 指令代码。 | |
5113 | + * @n 0x10FF - 复位SAM_A,无发送数据,无返回数据。 | |
5114 | + * @n 0x11FF - SAM_A状态检测,无发送数据,无返回数据。 | |
5115 | + * @n 0x12FF - 读SAM_A管理信息,无发送数据,返回数据为16个字节的SAM_A编号。 | |
5116 | + * @n 0x2001 - 寻找居民身份证,无发送数据,返回数据为4个字节的0x00。 | |
5117 | + * @n 0x2002 - 选取居民身份证,无发送数据,返回数据为8个字节的0x00。 | |
5118 | + * @n 0x3001 - 读机读文字信息和相片信息,无发送数据,返回数据格式为:【2个字节文字信息长度(Big-Endian)】【2个字节相片信息长度(Big-Endian)】【文字信息(不大于256个字节)】【相片信息(不大于1024个字节)】。 | |
5119 | + * @n 0x3010 - 读机读文字信息、相片信息和指纹信息,无发送数据,返回数据格式为:【2个字节文字信息长度(Big-Endian)】【2个字节相片信息长度(Big-Endian)】【2个字节指纹信息长度(Big-Endian)】【文字信息(不大于256个字节)】【相片信息(不大于1024个字节)】【指纹信息(不大于1024个字节)】。 | |
5120 | + * @n 0x3003 - 读追加住址信息,无发送数据,返回数据为70个字节的追加住址信息。 | |
5121 | + * @n 0x6000 - 设置UART接口速率,速率为115200bps,无发送数据,无返回数据。 | |
5122 | + * @n 0x6001 - 设置UART接口速率,速率为57600bps,无发送数据,无返回数据。 | |
5123 | + * @n 0x6002 - 设置UART接口速率,速率为38400bps,无发送数据,无返回数据。 | |
5124 | + * @n 0x6003 - 设置UART接口速率,速率为19200bps,无发送数据,无返回数据。 | |
5125 | + * @n 0x6004 - 设置UART接口速率,速率为9600bps,无发送数据,无返回数据。 | |
5126 | + * @n 0x61FF - 设置SAM_A与射频模块一帧通信数据的最大字节数,发送数据为1个字节的最大字节数,取值返回为0x18~0xFF,默认值为0x58,无返回数据。 | |
5127 | + * @param[in] slen 发送数据的长度。 | |
5128 | + * @param[in] sdata 发送数据。 | |
5129 | + * @param[out] rlen 返回数据的长度。 | |
5130 | + * @param[out] rdata 返回的数据,请至少分配4096个字节。 | |
5131 | + * @return <0表示失败,==0表示成功。 | |
5132 | + */ | |
5133 | + short USER_API dc_SamAControl(HANDLE icdev, int code, int slen, const unsigned char *sdata, int *rlen, unsigned char *rdata); | |
5134 | + | |
5135 | + /** | |
5136 | + * @brief 读身份证。 | |
5137 | + * @par 说明: | |
5138 | + * 读取身份证的原始信息数据。 | |
5139 | + * @param[in] icdev 设备标识符。 | |
5140 | + * @param[in] type 类型。 | |
5141 | + * @n 1 - 读取文字信息、相片信息和指纹信息。 | |
5142 | + * @n 2 - 读取追加住址信息。 | |
5143 | + * @n 3 - 读取文字信息、相片信息、指纹信息和追加住址信息。 | |
5144 | + * @param[out] text_len 返回文字信息的长度。 | |
5145 | + * @param[out] text 返回的文字信息,请至少分配256个字节。 | |
5146 | + * @param[out] photo_len 返回相片信息的长度。 | |
5147 | + * @param[out] photo 返回的相片信息,请至少分配1024个字节。 | |
5148 | + * @param[out] fingerprint_len 返回指纹信息的长度。 | |
5149 | + * @param[out] fingerprint 返回的指纹信息,请至少分配1024个字节。 | |
5150 | + * @param[out] extra_len 返回追加住址信息的长度。 | |
5151 | + * @param[out] extra 返回的追加住址信息,请至少分配70个字节。 | |
5152 | + * @return <0表示失败,==0表示成功。 | |
5153 | + */ | |
5154 | + short USER_API dc_SamAReadCardInfo(HANDLE icdev, int type, int *text_len, unsigned char *text, int *photo_len, unsigned char *photo, int *fingerprint_len, unsigned char *fingerprint, int *extra_len, unsigned char *extra); | |
5155 | + | |
5156 | + /** | |
5157 | + * @brief 解析文字信息。 | |
5158 | + * @par 说明: | |
5159 | + * 解析中国人居民身份证文字信息,获取相应的条目。 | |
5160 | + * @param[in] icdev 设备标识符。 | |
5161 | + * @param[in] charset 获取条目将采用的字符集,0表示GBK,1表示UCS-2。 | |
5162 | + * @param[in] info_len 文字信息的长度。 | |
5163 | + * @param[in] info 文字信息。 | |
5164 | + * @param[out] name 姓名,请至少分配64个字节。 | |
5165 | + * @param[out] sex 性别,请至少分配8个字节。 | |
5166 | + * @param[out] nation 民族,请至少分配12个字节。 | |
5167 | + * @param[out] birth_day 出生日期,请至少分配36个字节。 | |
5168 | + * @param[out] address 住址,请至少分配144个字节。 | |
5169 | + * @param[out] id_number 公民身份号码,请至少分配76个字节。 | |
5170 | + * @param[out] department 签发机关,请至少分配64个字节。 | |
5171 | + * @param[out] expire_start_day 证件签发日期,请至少分配36个字节。 | |
5172 | + * @param[out] expire_end_day 证件终止日期,请至少分配36个字节。 | |
5173 | + * @param[out] reserved 预留项,请至少分配76个字节。 | |
5174 | + * @return <0表示失败,==0表示成功。 | |
5175 | + */ | |
5176 | + short USER_API dc_ParseTextInfo(HANDLE icdev, int charset, int info_len, const unsigned char *info, unsigned char *name, unsigned char *sex, unsigned char *nation, unsigned char *birth_day, unsigned char *address, unsigned char *id_number, unsigned char *department, unsigned char *expire_start_day, unsigned char *expire_end_day, unsigned char *reserved); | |
5177 | + | |
5178 | + /** | |
5179 | + * @brief 解析文字信息。 | |
5180 | + * @par 说明: | |
5181 | + * 解析外国人永久居留证文字信息,获取相应的条目。 | |
5182 | + * @param[in] icdev 设备标识符。 | |
5183 | + * @param[in] charset 获取条目将采用的字符集,0表示GBK,1表示UCS-2。 | |
5184 | + * @param[in] info_len 文字信息的长度。 | |
5185 | + * @param[in] info 文字信息。 | |
5186 | + * @param[out] english_name 英文姓名,请至少分配244个字节。 | |
5187 | + * @param[out] sex 性别,请至少分配8个字节。 | |
5188 | + * @param[out] id_number 永久居留证号码,请至少分配64个字节。 | |
5189 | + * @param[out] citizenship 国籍或所在地区代码,请至少分配16个字节。 | |
5190 | + * @param[out] chinese_name 中文姓名,请至少分配64个字节。 | |
5191 | + * @param[out] expire_start_day 证件签发日期,请至少分配36个字节。 | |
5192 | + * @param[out] expire_end_day 证件终止日期,请至少分配36个字节。 | |
5193 | + * @param[out] birth_day 出生日期,请至少分配36个字节。 | |
5194 | + * @param[out] version_number 证件版本号,请至少分配12个字节。 | |
5195 | + * @param[out] department_code 当次申请受理机关代码,请至少分配20个字节。 | |
5196 | + * @param[out] type_sign 证件类型标识,请至少分配8个字节。 | |
5197 | + * @param[out] reserved 预留项,请至少分配16个字节。 | |
5198 | + * @return <0表示失败,==0表示成功。 | |
5199 | + */ | |
5200 | + short USER_API dc_ParseTextInfoForForeigner(HANDLE icdev, int charset, int info_len, const unsigned char *info, unsigned char *english_name, unsigned char *sex, unsigned char *id_number, unsigned char *citizenship, unsigned char *chinese_name, unsigned char *expire_start_day, unsigned char *expire_end_day, unsigned char *birth_day, unsigned char *version_number, unsigned char *department_code, unsigned char *type_sign, unsigned char *reserved); | |
5201 | + | |
5202 | + /** | |
5203 | + * @brief 解析相片信息。 | |
5204 | + * @par 说明: | |
5205 | + * 解析相片信息,通过公安部相片解码库还原相片图像数据。 | |
5206 | + * @param[in] icdev 设备标识符。 | |
5207 | + * @param[in] type 相片图像数据的格式,0表示BMP文件,1表示BMP缓存。 | |
5208 | + * @param[in] info_len 相片信息的长度。 | |
5209 | + * @param[in] info 相片信息。 | |
5210 | + * @param[in,out] photo_len 数据的长度。 | |
5211 | + * @n BMP文件 - 无效。 | |
5212 | + * @n BMP缓存 - 传入 @a photo 分配的字节数,返回相片图像数据的长度。 | |
5213 | + * @param[in,out] photo 数据。 | |
5214 | + * @n BMP文件 - 传入文件名,请确保有写入的权限。 | |
5215 | + * @n BMP缓存 - 返回的相片图像数据,请至少分配65536个字节。 | |
5216 | + * @return <0表示失败,==0表示成功。 | |
5217 | + */ | |
5218 | + short USER_API dc_ParsePhotoInfo(HANDLE icdev, int type, int info_len, const unsigned char *info, int *photo_len, unsigned char *photo); | |
5219 | + | |
5220 | + /** | |
5221 | + * @brief 解析其它信息。 | |
5222 | + * @par 说明: | |
5223 | + * 解析其它信息。 | |
5224 | + * @param[in] icdev 设备标识符。 | |
5225 | + * @param[in] flag 标志,0表示性别,1表示民族,2表示国籍。 | |
5226 | + * @param[in] in_info 传入信息。 | |
5227 | + * @param[out] out_info 返回的信息。 | |
5228 | + * @return <0表示失败,==0表示成功。 | |
5229 | + */ | |
5230 | + short USER_API dc_ParseOtherInfo(HANDLE icdev, int flag, const unsigned char *in_info, unsigned char *out_info); | |
5231 | + | |
5232 | + /** | |
5233 | + * @brief 检测接触式CPU卡。 | |
5234 | + * @par 说明: | |
5235 | + * 检测当前卡座中CPU卡的状态。 | |
5236 | + * @param[in] icdev 设备标识符。 | |
5237 | + * @return <0表示失败。 | |
5238 | + * @n 0 - 状态未知。 | |
5239 | + * @n 1 - 无卡。 | |
5240 | + * @n 2 - 有卡,但卡类型未知。 | |
5241 | + * @n 3 - 有卡,卡未上电。 | |
5242 | + * @n 4 - 有卡,卡已上电。 | |
5243 | + */ | |
5244 | + short USER_API dc_CpuCardStatus(HANDLE icdev); | |
5245 | + | |
5246 | + /** | |
5247 | + * @brief 唤醒设备。 | |
5248 | + * @par 说明: | |
5249 | + * 唤醒设备,此接口用于向设备发出唤醒请求,成功则表示设备已经唤醒。 | |
5250 | + * @param[in] icdev 设备标识符。 | |
5251 | + * @return <0表示失败,==0表示成功。 | |
5252 | + */ | |
5253 | + short USER_API dc_WakeDevice(HANDLE icdev); | |
5254 | + | |
5255 | + /** | |
5256 | + * @brief 休眠设备。 | |
5257 | + * @par 说明: | |
5258 | + * 休眠设备,此接口用于向设备发出休眠请求,执行成功仅仅表示成功发出休眠请求,并不表示设备已经进入休眠状态。 | |
5259 | + * @param[in] icdev 设备标识符。 | |
5260 | + * @return <0表示失败,==0表示成功。 | |
5261 | + */ | |
5262 | + short USER_API dc_RestDevice(HANDLE icdev); | |
5263 | + | |
5264 | + /** | |
5265 | + * @brief 获取电池电量。 | |
5266 | + * @par 说明: | |
5267 | + * 获取电池电量。 | |
5268 | + * @param[in] icdev 设备标识符。 | |
5269 | + * @param[out] value 电池百分比(0x00~0x64),0x00表示0%,0x64表示100%。 | |
5270 | + * @return <0表示失败,==0表示成功。 | |
5271 | + */ | |
5272 | + short USER_API dc_GetBatteryValue(HANDLE icdev, unsigned char *value); | |
5273 | + | |
5274 | + /** | |
5275 | + * @brief 防卡冲突。 | |
5276 | + * @par 说明: | |
5277 | + * 支持ISO 14443 Type A类型卡片的防卡冲突。 | |
5278 | + * @param[in] icdev 设备标识符。 | |
5279 | + * @param[in] mode 模式,0x93表示一级,0x95表示二级,0x97表示三级。 | |
5280 | + * @param[in] _Bcnt 保留,固定为0x00。 | |
5281 | + * @param[out] _Snr 返回的卡序列号。 | |
5282 | + * @return <0表示失败,==0表示成功。 | |
5283 | + */ | |
5284 | + short USER_API dc_anticoll_mode(HANDLE icdev, unsigned char mode, unsigned char _Bcnt, unsigned int *_Snr); | |
5285 | + | |
5286 | + /** | |
5287 | + * @brief 选卡操作。 | |
5288 | + * @par 说明: | |
5289 | + * 通过指定序列号,选取相应的卡片。 | |
5290 | + * @param[in] icdev 设备标识符。 | |
5291 | + * @param[in] mode 模式,0x93表示一级,0x95表示二级,0x97表示三级。 | |
5292 | + * @param[in] _Snr 卡片序列号。 | |
5293 | + * @param[out] _Size 返回的SAK值。 | |
5294 | + * @return <0表示失败,==0表示成功。 | |
5295 | + */ | |
5296 | + short USER_API dc_select_mode(HANDLE icdev, unsigned char mode, unsigned int _Snr, unsigned char *_Size); | |
5297 | + | |
5298 | + /** | |
5299 | + * @brief 激活卡片。 | |
5300 | + * @par 说明: | |
5301 | + * 支持ISO 14443 Type B类型卡片的激活。 | |
5302 | + * @param[in] icdev 设备标识符。 | |
5303 | + * @param[in] PUPI 伪唯一PICC标识符。 | |
5304 | + * @param[in] CID 信道号。 | |
5305 | + * @return <0表示失败,==0表示成功。 | |
5306 | + */ | |
5307 | + short USER_API dc_attribInt(HANDLE icdev, unsigned char *PUPI, unsigned char CID); | |
5308 | + | |
5309 | + /** | |
5310 | + * @brief 卡上电。 | |
5311 | + * @par 说明: | |
5312 | + * 对指定卡座的卡片进行上电操作。 | |
5313 | + * @param[in] icdev 设备标识符。 | |
5314 | + * @param[in] icc_slot_no 卡座编号,用户卡为0x0n,SAM卡为0x1n,其中“n”的取值范围为1~F。 | |
5315 | + * @param[out] response 返回的复位信息,请至少分配128个字节。 | |
5316 | + * @return <0表示失败,否则为返回复位信息的长度。 | |
5317 | + * @n -1 - 卡片类型不对。 | |
5318 | + * @n -2 - 无卡。 | |
5319 | + * @n -3 - 有卡未上电。 | |
5320 | + * @n -4 - 卡片无应答。 | |
5321 | + */ | |
5322 | + short USER_API dc_rf_poweron(HANDLE icdev, unsigned char icc_slot_no, unsigned char *response); | |
5323 | + | |
5324 | + /** | |
5325 | + * @brief 卡下电。 | |
5326 | + * @par 说明: | |
5327 | + * 对指定卡座的卡片进行下电操作。 | |
5328 | + * @param[in] icdev 设备标识符。 | |
5329 | + * @param[in] icc_slot_no 卡座编号,用户卡为0x0n,SAM卡为0x1n,其中“n”的取值范围为1~F。 | |
5330 | + * @return <0表示失败,==0表示成功。 | |
5331 | + * @n -1 - 卡片类型不对。 | |
5332 | + * @n -2 - 无卡。 | |
5333 | + * @n -3 - 有卡未上电。 | |
5334 | + * @n -4 - 卡片无应答。 | |
5335 | + */ | |
5336 | + short USER_API dc_rf_poweroff(HANDLE icdev, unsigned char icc_slot_no); | |
5337 | + | |
5338 | + /** | |
5339 | + * @brief 获取卡状态。 | |
5340 | + * @par 说明: | |
5341 | + * 获取指定卡座的卡片状态。 | |
5342 | + * @param[in] icdev 设备标识符。 | |
5343 | + * @param[in] icc_slot_no 卡座编号,用户卡为0x0n,SAM卡为0x1n,其中“n”的取值范围为1~F。 | |
5344 | + * @return <0表示失败,==0表示有卡且已上电。 | |
5345 | + * @n -1 - 卡片类型不对。 | |
5346 | + * @n -2 - 无卡。 | |
5347 | + * @n -3 - 有卡未上电。 | |
5348 | + * @n -4 - 卡片无应答。 | |
5349 | + */ | |
5350 | + short USER_API dc_rf_getstatus(HANDLE icdev, unsigned char icc_slot_no); | |
5351 | + | |
5352 | + /** | |
5353 | + * @brief 卡指令交互。 | |
5354 | + * @par 说明: | |
5355 | + * 对指定卡座的卡片进行指令交互操作。 | |
5356 | + * @param[in] icdev 设备标识符。 | |
5357 | + * @param[in] icc_slot_no 卡座编号,用户卡为0x0n,SAM卡为0x1n,其中“n”的取值范围为1~F。 | |
5358 | + * @param[in] length_of_command_apdu 发送数据的长度。 | |
5359 | + * @param[in] command_apdu 发送数据的长度。 | |
5360 | + * @param[in] length_of_command_apdu 发送数据。 | |
5361 | + * @param[out] response_apdu 返回的数据。 | |
5362 | + * @return <0表示失败,否则为返回数据的长度。 | |
5363 | + * @n -1 - 卡片类型不对。 | |
5364 | + * @n -2 - 无卡。 | |
5365 | + * @n -3 - 有卡未上电。 | |
5366 | + * @n -4 - 卡片无应答。 | |
5367 | + */ | |
5368 | + short USER_API dc_rf_application(HANDLE icdev, unsigned char icc_slot_no, int length_of_command_apdu, unsigned char *command_apdu, unsigned char *response_apdu); | |
5369 | + | |
5370 | + /** | |
5371 | + * @brief 获取多张Type A卡UID。 | |
5372 | + * @par 说明: | |
5373 | + * 获取多张Type A卡UID。 | |
5374 | + * @param[in] icdev 设备标识符。 | |
5375 | + * @param[out] uid_data 返回的数据,请至少分配256个字节。格式为:【1字节UID条目数量】【1字节UID长度】【UID】【1字节UID2长度】【UID2】...。 | |
5376 | + * @return <0表示失败,==0表示成功。 | |
5377 | + */ | |
5378 | + short USER_API dc_RequestMultiCard(HANDLE icdev, unsigned char *uid_data); | |
5379 | + | |
5380 | + /** | |
5381 | + * @brief 选择一张Type A卡并激活。 | |
5382 | + * @par 说明: | |
5383 | + * 选择一张Type A卡并激活。 | |
5384 | + * @param[in] icdev 设备标识符。 | |
5385 | + * @param[in] uid_len 传入UID的长度。 | |
5386 | + * @param[in] uid 传入UID。 | |
5387 | + * @return <0表示失败,==0表示成功。 | |
5388 | + */ | |
5389 | + short USER_API dc_ActivateCard(HANDLE icdev, unsigned char uid_len, const unsigned char *uid); | |
5390 | + | |
5391 | + /** | |
5392 | + * @brief 获取最后响应码。 | |
5393 | + * @par 说明: | |
5394 | + * 获取最后一次和设备交互时设备返回的响应状态代码,此接口获取的响应码依赖设备内部固件代码的实现,不同的设备可能有不一致的响应码。 | |
5395 | + * @param[in] icdev 设备标识符。 | |
5396 | + * @param[out] code 返回的响应码。 | |
5397 | + * @return <0表示失败,==0表示成功。 | |
5398 | + */ | |
5399 | + short USER_API dc_GetLastResponseCode(HANDLE icdev, unsigned int *code); | |
5400 | + | |
5401 | + /** | |
5402 | + * @brief 多个Flash扇区擦除。 | |
5403 | + * @par 说明: | |
5404 | + * 擦除指定Flash扇区中的数据。 | |
5405 | + * @param[in] icdev 设备标识符。 | |
5406 | + * @param[in] type 类型,0x00表示核心板上的Flash,0x01表示主Spi的Flash,0x02表示备份Spi的Flash,0x03表示语音存储的Flash,0x04表示字库存储的Flash。 | |
5407 | + * @param[in] sector 扇区地址,0xFFFFFFFF表示擦除全部。 | |
5408 | + * @return <0表示失败,==0表示成功。 | |
5409 | + */ | |
5410 | + short USER_API dc_MultiFlashErase(HANDLE icdev, unsigned char type, unsigned int sector); | |
5411 | + | |
5412 | + /** | |
5413 | + * @brief 多个Flash读数据。 | |
5414 | + * @par 说明: | |
5415 | + * 读取指定Flash中的数据。 | |
5416 | + * @param[in] icdev 设备标识符。 | |
5417 | + * @param[in] type 类型,0x00表示核心板上的Flash,0x01表示主Spi的Flash,0x02表示备份Spi的Flash,0x03表示语音存储的Flash,0x04表示字库存储的Flash。 | |
5418 | + * @param[in] offset_h 偏移地址(高位)。 | |
5419 | + * @param[in] offset_l 偏移地址(低位)。 | |
5420 | + * @param[in] length_h 读取长度(高位)。 | |
5421 | + * @param[in] length_l 读取长度(低位)。 | |
5422 | + * @param[out] data_buffer 返回的数据。 | |
5423 | + * @return <0表示失败,==0表示成功。 | |
5424 | + */ | |
5425 | + short USER_API dc_MultiFlashRead(HANDLE icdev, unsigned char type, unsigned int offset_h, unsigned int offset_l, unsigned int length_h, unsigned int length_l, unsigned char *data_buffer); | |
5426 | + | |
5427 | + /** | |
5428 | + * @brief 多个Flash写数据。 | |
5429 | + * @par 说明: | |
5430 | + * 写入数据到指定Flash中。 | |
5431 | + * @param[in] icdev 设备标识符。 | |
5432 | + * @param[in] type 类型,0x00表示核心板上的Flash,0x01表示主Spi的Flash,0x02表示备份Spi的Flash,0x03表示语音存储的Flash,0x04表示字库存储的Flash。 | |
5433 | + * @param[in] offset_h 偏移地址(高位)。 | |
5434 | + * @param[in] offset_l 偏移地址(低位)。 | |
5435 | + * @param[in] length_h 读取长度(高位)。 | |
5436 | + * @param[in] length_l 读取长度(低位)。 | |
5437 | + * @param[in] data_buffer 传入数据。 | |
5438 | + * @return <0表示失败,==0表示成功。 | |
5439 | + */ | |
5440 | + short USER_API dc_MultiFlashWrite(HANDLE icdev, unsigned char type, unsigned int offset_h, unsigned int offset_l, unsigned int length_h, unsigned int length_l, const unsigned char *data_buffer); | |
5441 | + | |
5442 | + /** | |
5443 | + * @brief 多个FLASH容量大小获取。 | |
5444 | + * @par 说明: | |
5445 | + * 获取指定Flash的容量大小。 | |
5446 | + * @param[in] icdev 设备标识符。 | |
5447 | + * @param[in] type 类型,0x00表示核心板上的Flash,0x01表示主Spi的Flash,0x02表示备份Spi的Flash,0x03表示语音存储的Flash,0x04表示字库存储的Flash。 | |
5448 | + * @param[out] length_h 返回的长度(高位)。 | |
5449 | + * @param[out] length_l 返回的长度(低位)。 | |
5450 | + * @return <0表示失败,==0表示成功。 | |
5451 | + */ | |
5452 | + short USER_API dc_MultiFlashGetSize(HANDLE icdev, unsigned char type, unsigned int *length_h, unsigned int *length_l); | |
5453 | + | |
5454 | + /** | |
5455 | + * @brief 多重寻卡。 | |
5456 | + * @par 说明: | |
5457 | + * 有卡寻卡、无卡寻卡、多卡防冲突。 | |
5458 | + * @param[in] icdev 设备标识符。 | |
5459 | + * @return <0表示失败。 | |
5460 | + * @n 0 - 操作成功。 | |
5461 | + * @n 1 - 未检测到射频卡。 | |
5462 | + * @n 2 - 检测到身份证。 | |
5463 | + * @n 3 - 多卡报错。 | |
5464 | + * @n 4 - 其它射频卡。 | |
5465 | + * @n 5 - 检测到Type A / Type B CPU卡。 | |
5466 | + * @n 6 - 检测到有卡后的卡片还在感应区。 | |
5467 | + */ | |
5468 | + short USER_API dc_RfMultiRequest(HANDLE icdev); | |
5469 | + | |
5470 | + /** | |
5471 | + * @brief TTS语音播放。 | |
5472 | + * @par 说明: | |
5473 | + * TTS语音播放。 | |
5474 | + * @param[in] icdev 设备标识符。 | |
5475 | + * @param[in] type 类型,0x00表示停止播放,0x01表示播放内容为UCS2编码,0x02表示播放内容为GBK编码。 | |
5476 | + * @param[in] content 播放内容。 | |
5477 | + * @param[in] content_len 播放内容的长度。 | |
5478 | + * @return <0表示失败,==0表示成功。 | |
5479 | + */ | |
5480 | + short USER_API dc_TtsVoicePlay(HANDLE icdev, unsigned char type, const unsigned char *content, int content_len); | |
5481 | + | |
5482 | + /** | |
5483 | + * @brief TTS语音设置。 | |
5484 | + * @par 说明: | |
5485 | + * TTS语音设置。 | |
5486 | + * @param[in] icdev 设备标识符。 | |
5487 | + * @param[in] type 类型,0x01表示设置语速,0x02表示设置音量,0x03表示设置音色。 | |
5488 | + * @param[in] value 增益值(0x00~0xFF),正常为0x80。 | |
5489 | + * @return <0表示失败,==0表示成功。 | |
5490 | + */ | |
5491 | + short USER_API dc_TtsVoiceConfig(HANDLE icdev, unsigned char type, unsigned char value); | |
5492 | + | |
5493 | + /** | |
5494 | + * @brief 配置二维码工作模式。 | |
5495 | + * @par 说明: | |
5496 | + * 配置二维码工作模式。 | |
5497 | + * @param[in] icdev 设备标识符。 | |
5498 | + * @param[in] content 配置内容。 | |
5499 | + * @param[in] content_len 配置内容的长度。 | |
5500 | + * @return <0表示失败,==0表示成功。 | |
5501 | + */ | |
5502 | + short USER_API dc_Config2DBarcode(HANDLE icdev, const unsigned char *content, int content_len); | |
5503 | + | |
5504 | + /** | |
5505 | + * @brief 扫描二维码。 | |
5506 | + * @par 说明: | |
5507 | + * 扫描二维码。 | |
5508 | + * @param[in] icdev 设备标识符。 | |
5509 | + * @param[in] time_ms 设备超时值,单位为毫秒。 | |
5510 | + * @param[out] message_data 二维码,数据格式为'\0'结尾的字符串。 | |
5511 | + * @return <0表示失败,==0表示成功。 | |
5512 | + */ | |
5513 | + short USER_API dc_Scan2DBarcode(HANDLE icdev, unsigned short time_ms, char *message_data); | |
5514 | + | |
5515 | + /** | |
5516 | + * @brief 打开密码键盘。 | |
5517 | + * @par 说明: | |
5518 | + * 打开密码键盘并且分配相关资源。 | |
5519 | + * @param[in] icdev 设备标识符。 | |
5520 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5521 | + * @param[out] version 返回的版本字符串,请至少分配128个字节。 | |
5522 | + * @return <0表示失败,==0表示成功。 | |
5523 | + */ | |
5524 | + short USER_API dc_KeypadOpen(HANDLE icdev, int number, char *version); | |
5525 | + | |
5526 | + /** | |
5527 | + * @brief 关闭密码键盘。 | |
5528 | + * @par 说明: | |
5529 | + * 关闭密码键盘并且释放相关资源。 | |
5530 | + * @param[in] icdev 设备标识符。 | |
5531 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5532 | + * @return <0表示失败,==0表示成功。 | |
5533 | + */ | |
5534 | + short USER_API dc_KeypadClose(HANDLE icdev, int number); | |
5535 | + | |
5536 | + /** | |
5537 | + * @brief 装载密钥。 | |
5538 | + * @par 说明: | |
5539 | + * 装载密钥到密码键盘中永久保存。 | |
5540 | + * @param[in] icdev 设备标识符。 | |
5541 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5542 | + * @param[in] set_index 密钥套索引(0~15)。 | |
5543 | + * @param[in] sub_index 密钥索引(0~15),其中0表示主密钥。 | |
5544 | + * @param[in] type 密钥类型,0表示单DES,1表示三DES,2表示24字节三DES,16表示SM4。 | |
5545 | + * @param[in] mode 装载模式,0表示明文装载,1表示密文装载。 | |
5546 | + * @param[in] key_data 密钥数据。 | |
5547 | + * @param[in] key_len 密钥数据的长度。 | |
5548 | + * @param[in] flag 标志,0表示不验证,1表示验证类别1,2表示验证类别2。 | |
5549 | + * @param[in,out] ex_data 附加数据,含义由 @a flag 的值来决定。 | |
5550 | + * @n flag为1 - ex_data为out形式的参数,返回加密全0x00后的数据。 | |
5551 | + * @n flag为2 - ex_data为In形式的参数,传入加密全0x00后的数据。 | |
5552 | + * @param[in,out] ex_len 附加数据的长度,含义由 @a flag 的值来决定。 | |
5553 | + * @n flag为1 - ex_len为Out形式的参数,返回 @a ex_data 的长度。 | |
5554 | + * @n flag为2 - ex_len为In形式的参数,传入 @a ex_data 的长度。 | |
5555 | + * @return <0表示失败,==0表示成功。 | |
5556 | + */ | |
5557 | + short USER_API dc_KeypadLoadKey(HANDLE icdev, int number, int set_index, int sub_index, int type, int mode, const unsigned char *key_data, int key_len, int flag, unsigned char *ex_data, int *ex_len); | |
5558 | + | |
5559 | + /** | |
5560 | + * @brief 清除密钥。 | |
5561 | + * @par 说明: | |
5562 | + * 清除密码键盘中指定的密钥。 | |
5563 | + * @param[in] icdev 设备标识符。 | |
5564 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5565 | + * @param[in] set_index 密钥套索引(0~15),-1表示全部密钥套。 | |
5566 | + * @param[in] sub_index 密钥索引(0~15),其中0表示主密钥,-1表示全部密钥。 | |
5567 | + * @return <0表示失败,==0表示成功。 | |
5568 | + */ | |
5569 | + short USER_API dc_KeypadClearKey(HANDLE icdev, int number, int set_index, int sub_index); | |
5570 | + | |
5571 | + /** | |
5572 | + * @brief 获取密钥类型。 | |
5573 | + * @par 说明: | |
5574 | + * 获取密码键盘中指定密钥的类型。 | |
5575 | + * @param[in] icdev 设备标识符。 | |
5576 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5577 | + * @param[in] set_index 密钥套索引(0~15)。 | |
5578 | + * @param[in] sub_index 密钥索引(0~15),其中0表示主密钥。 | |
5579 | + * @param[out] type 密钥类型,0表示单DES,1表示三DES,2表示24字节三DES,16表示SM4。 | |
5580 | + * @return <0表示失败,==0表示成功。 | |
5581 | + */ | |
5582 | + short USER_API dc_KeypadGetKeyType(HANDLE icdev, int number, int set_index, int sub_index, int *type); | |
5583 | + | |
5584 | + /** | |
5585 | + * @brief 数据加解密。 | |
5586 | + * @par 说明: | |
5587 | + * 使用密码键盘中装载的密钥进行数据加解密操作。 | |
5588 | + * @param[in] icdev 设备标识符。 | |
5589 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5590 | + * @param[in] set_index 密钥套索引(0~15)。 | |
5591 | + * @param[in] sub_index 密钥索引(0~15),其中0表示主密钥。 | |
5592 | + * @param[in] flag 标志,0表示使用密钥默认算法,1表示使用密钥0~7字节算单DES,2表示使用密钥8~15字节算单DES,3表示使用密钥16~23字节算单DES。 | |
5593 | + * @param[in] mode 模式,0表示加密,1表示解密。 | |
5594 | + * @param[in] in_data 输入数据。 | |
5595 | + * @param[in] in_len 输入数据的长度。 | |
5596 | + * @param[out] out_data 输出数据。 | |
5597 | + * @param[out] out_len 输出数据的长度。 | |
5598 | + * @return <0表示失败,==0表示成功。 | |
5599 | + */ | |
5600 | + short USER_API dc_KeypadAlgorithm(HANDLE icdev, int number, int set_index, int sub_index, int flag, int mode, const unsigned char *in_data, int in_len, unsigned char *out_data, int *out_len); | |
5601 | + | |
5602 | + /** | |
5603 | + * @brief 启动按键输入。 | |
5604 | + * @par 说明: | |
5605 | + * 启动密码键盘的按键输入,这时设备将开始接收用户的按键输入操作。 | |
5606 | + * @param[in] icdev 设备标识符。 | |
5607 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5608 | + * @param[in] mode 模式,0表示获取明文,1表示获取ANSI X9.8 PIN BLOCK加密的按键数据,2表示获取IBM3624加密的按键数据,3表示获取ANSII加密的按键数据。 | |
5609 | + * @param[in] set_index 密钥套索引(0~15),明文模式内部将忽略它的传入。 | |
5610 | + * @param[in] sub_index 密钥索引(0~15),其中0表示主密钥,明文模式内部将忽略它的传入。 | |
5611 | + * @param[in] in_data 输入数据,依赖于模式,明文模式内部将忽略它的传入,密文模式为卡号,固定为12个字节。 | |
5612 | + * @param[in] in_len 输入数据的长度。 | |
5613 | + * @param[in] min_len 最小长度。 | |
5614 | + * @param[in] max_len 最大长度。 | |
5615 | + * @param[in] auto_end 按键时结束控制(此处的结束表示的仅仅是设备是否会自动加入【确认】键值),0表示不自动结束,1表示自动结束。 | |
5616 | + * @param[in] enable_beep 按键时蜂鸣声控制,0表示不使用蜂鸣,1表示使用蜂鸣。 | |
5617 | + * @param[in] time_s 从开始按键后,两次按键之间的时间间隔超时值,单位为秒,其中-1表示不使用时间间隔超时值,0表示缺省值(由设备实现决定)。 | |
5618 | + * @param[out] out_data 输出数据。 | |
5619 | + * @param[out] out_len 输出数据的长度。 | |
5620 | + * @return <0表示失败,==0表示成功。 | |
5621 | + */ | |
5622 | + short USER_API dc_KeypadStartInput(HANDLE icdev, int number, int mode, int set_index, int sub_index, const unsigned char *in_data, int in_len, int min_len, int max_len, int auto_end, int enable_beep, int time_s, unsigned char *out_data, int *out_len); | |
5623 | + | |
5624 | + /** | |
5625 | + * @brief 获取键值。 | |
5626 | + * @par 说明: | |
5627 | + * 获取一个按下的按键值,每次只能获取一个。 | |
5628 | + * @param[in] icdev 设备标识符。 | |
5629 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5630 | + * @param[out] value 明文输入模式下数值键为键值的ASCII值,如键盘1为0x31;密文输入模式下数值键为0x2A;任何输入模式下控制键的键值一致,【退格】为0x08,【确认】为0x0D,【取消】为0x1B,【清除】为0x7F;另外没有按键按下为0xFF,输入超时为0x80。 | |
5631 | + * @return <0表示失败,==0表示成功。 | |
5632 | + */ | |
5633 | + short USER_API dc_KeypadGetKeyValue(HANDLE icdev, int number, unsigned char *value); | |
5634 | + | |
5635 | + /** | |
5636 | + * @brief 退出并且获取密码数据。 | |
5637 | + * @par 说明: | |
5638 | + * 退出并且获取密码键盘的密码数据,这时设备将停止接收用户的按键输入操作。 | |
5639 | + * @param[in] icdev 设备标识符。 | |
5640 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5641 | + * @param[in] mode 模式,0表示仅退出,1表示退出并且获取数据。 | |
5642 | + * @param[out] out_data 输出数据。 | |
5643 | + * @param[out] out_len 输出数据的长度。 | |
5644 | + * @return <0表示失败,==0表示成功。 | |
5645 | + */ | |
5646 | + short USER_API dc_KeypadExitAndGetInput(HANDLE icdev, int number, int mode, unsigned char *out_data, int *out_len); | |
5647 | + | |
5648 | + /** | |
5649 | + * @brief 设置键值。 | |
5650 | + * @par 说明: | |
5651 | + * 设置一个按下的按键值,每次只能设置一个。 | |
5652 | + * @param[in] icdev 设备标识符。 | |
5653 | + * @param[in] number 编号,0表示内置密码键盘,1表示外置密码键盘。 | |
5654 | + * @param[in] value 数值键为键值的ASCII值,如键盘1为0x31;控制键【退格】为0x08,【确认】为0x0D,【取消】为0x1B,【清除】为0x7F。 | |
5655 | + * @return <0表示失败,==0表示成功。 | |
5656 | + */ | |
5657 | + short USER_API dc_KeypadSetKeyValue(HANDLE icdev, int number, unsigned char value); | |
5658 | + | |
5659 | + /** | |
5660 | + * @brief 获取设备唯一识别码。 | |
5661 | + * @par 说明: | |
5662 | + * 获取设备内部写入的唯一识别码。 | |
5663 | + * @param[in] icdev 设备标识符。 | |
5664 | + * @param[out] uid 返回的唯一识别码字符串,请至少分配33个字节。 | |
5665 | + * @return <0表示失败,==0表示成功。 | |
5666 | + */ | |
5667 | + short USER_API dc_GetDeviceUid(HANDLE icdev, char *uid); | |
5668 | + | |
5669 | + /** | |
5670 | + * @brief 获取设备商户号。 | |
5671 | + * @par 说明: | |
5672 | + * 获取设备内部写入的商户号。 | |
5673 | + * @param[in] icdev 设备标识符。 | |
5674 | + * @param[out] number 返回的商户号字符串,请至少分配33个字节。 | |
5675 | + * @return <0表示失败,==0表示成功。 | |
5676 | + */ | |
5677 | + short USER_API dc_GetDeviceTradeNumber(HANDLE icdev, char *number); | |
5678 | + | |
5679 | + /** | |
5680 | + * @brief 获取设备终端号。 | |
5681 | + * @par 说明: | |
5682 | + * 获取设备内部写入的终端号。 | |
5683 | + * @param[in] icdev 设备标识符。 | |
5684 | + * @param[out] number 返回的终端号字符串,请至少分配33个字节。 | |
5685 | + * @return <0表示失败,==0表示成功。 | |
5686 | + */ | |
5687 | + short USER_API dc_GetDeviceTerminalNumber(HANDLE icdev, char *number); | |
5688 | + | |
5689 | + /** | |
5690 | + * @brief 读取设备自定义信息。 | |
5691 | + * @par 说明: | |
5692 | + * 读取设备自定义信息。 | |
5693 | + * @param[in] icdev 设备标识符。 | |
5694 | + * @param[out] info 返回的信息,固定为8个字节。 | |
5695 | + * @return <0表示失败,==0表示成功。 | |
5696 | + */ | |
5697 | + short USER_API dc_ReadDeviceCustomInfo(HANDLE icdev, unsigned char *info); | |
5698 | + | |
5699 | + /** | |
5700 | + * @brief 写入设备自定义信息。 | |
5701 | + * @par 说明: | |
5702 | + * 写入设备自定义信息。 | |
5703 | + * @param[in] icdev 设备标识符。 | |
5704 | + * @param[in] info 传入信息,固定为8个字节。 | |
5705 | + * @return <0表示失败,==0表示成功。 | |
5706 | + */ | |
5707 | + short USER_API dc_WriteDeviceCustomInfo(HANDLE icdev, const unsigned char *info); | |
5708 | + | |
5709 | + /** | |
5710 | + * @brief 读取设备型号名称。 | |
5711 | + * @par 说明: | |
5712 | + * 读取设备型号名称。 | |
5713 | + * @param[in] icdev 设备标识符。 | |
5714 | + * @param[out] name 返回的型号名称字符串,请至少分配33个字节。 | |
5715 | + * @return <0表示失败,==0表示成功。 | |
5716 | + */ | |
5717 | + short USER_API dc_ReadDeviceTypeName(HANDLE icdev, char *name); | |
5718 | + | |
5719 | + /** | |
5720 | + * @brief 写入设备型号名称。 | |
5721 | + * @par 说明: | |
5722 | + * 写入设备型号名称。 | |
5723 | + * @param[in] icdev 设备标识符。 | |
5724 | + * @param[in] name 传入型号名称,数据格式为'\0'结尾的字符串。 | |
5725 | + * @return <0表示失败,==0表示成功。 | |
5726 | + */ | |
5727 | + short USER_API dc_WriteDeviceTypeName(HANDLE icdev, const char *name); | |
5728 | + | |
5729 | + /** | |
5730 | + * @brief 无线模块电源控制。 | |
5731 | + * @par 说明: | |
5732 | + * 无线模块电源控制。 | |
5733 | + * @param[in] icdev 设备标识符。 | |
5734 | + * @param[in] value 开关,0x00表示关闭,0x01表示开启。 | |
5735 | + * @return <0表示失败,==0表示成功。 | |
5736 | + */ | |
5737 | + short USER_API dc_WirelessPowerControl(HANDLE icdev, unsigned char value); | |
5738 | + | |
5739 | + /** | |
5740 | + * @brief 打开TCP链接。 | |
5741 | + * @par 说明: | |
5742 | + * 打开TCP链接。 | |
5743 | + * @param[in] icdev 设备标识符。 | |
5744 | + * @param[in] type 无线模块类型,0x00表示CDMA,0x01表示GPRS,0x02表示WIFI。 | |
5745 | + * @param[in] network_address IP地址或域名,数据格式为'\0'结尾的字符串。 | |
5746 | + * @param[in] network_port IP端口号,数据格式为'\0'结尾的字符串。 | |
5747 | + * @return <0表示失败,==0表示成功。 | |
5748 | + */ | |
5749 | + short USER_API dc_WirelessTcpOpen(HANDLE icdev, unsigned char type, const char *network_address, const char *network_port); | |
5750 | + | |
5751 | + /** | |
5752 | + * @brief 关闭TCP链接。 | |
5753 | + * @par 说明: | |
5754 | + * 关闭TCP链接。 | |
5755 | + * @param[in] icdev 设备标识符。 | |
5756 | + * @return <0表示失败,==0表示成功。 | |
5757 | + */ | |
5758 | + short USER_API dc_WirelessTcpClose(HANDLE icdev); | |
5759 | + | |
5760 | + /** | |
5761 | + * @brief 查询网络状态。 | |
5762 | + * @par 说明: | |
5763 | + * 查询网络状态。 | |
5764 | + * @param[in] icdev 设备标识符。 | |
5765 | + * @param[out] value 状态值,固定为1个字节。 | |
5766 | + * @n 0x00 - 表示TCP初始状态。 | |
5767 | + * @n 0x01 - 表示无线模块无法通讯。 | |
5768 | + * @n 0x02 - 表示无线模块电源关闭。 | |
5769 | + * @n 0x03 - 表示无线模块电源开启。 | |
5770 | + * @n 0x04 - 表示SIM卡异常或者无卡。 | |
5771 | + * @n 0x05 - 表示网络信号异常。 | |
5772 | + * @n 0x06 - 表示无线模块自检成功。 | |
5773 | + * @n 0x07 - 表示TCP空闲状态。 | |
5774 | + * @n 0x08 - 表示TCP已经连接成功。 | |
5775 | + * @n 0x09 - 表示TCP已经断开连接。 | |
5776 | + * @return <0表示失败,==0表示成功。 | |
5777 | + */ | |
5778 | + short USER_API dc_WirelessGetStatus(HANDLE icdev, unsigned char *value); | |
5779 | + | |
5780 | + /** | |
5781 | + * @brief 发送数据到网络端。 | |
5782 | + * @par 说明: | |
5783 | + * 发送数据到网络端。 | |
5784 | + * @param[in] icdev 设备标识符。 | |
5785 | + * @param[in] type 无线模块类型,0x00表示CDMA,0x01表示GPRS,0x02表示WIFI。 | |
5786 | + * @param[in] data_buffer 发送数据。 | |
5787 | + * @param[in] data_len 发送数据的长度。 | |
5788 | + * @return <0表示失败,==0表示成功。 | |
5789 | + */ | |
5790 | + short USER_API dc_WirelessSend(HANDLE icdev, unsigned char type, const unsigned char *data_buffer, int data_len); | |
5791 | + | |
5792 | + /** | |
5793 | + * @brief 从网络端接收数据。 | |
5794 | + * @par 说明: | |
5795 | + * 从网络端接收数据。 | |
5796 | + * @param[in] icdev 设备标识符。 | |
5797 | + * @param[in] type 无线模块类型,0x00表示CDMA,0x01表示GPRS,0x02表示WIFI。 | |
5798 | + * @param[in] mode 模式,0x00表示接收的数据格式不带格式头符号,0x01表示接收的数据格式带格式头符号,WIFI模块此参数无效。 | |
5799 | + * @param[in] time_100ms 设备超时值,单位为100毫秒。 | |
5800 | + * @param[out] data_buffer 返回的数据。 | |
5801 | + * @param[out] data_len 返回数据的长度。 | |
5802 | + * @return <0表示失败,==0表示成功。 | |
5803 | + */ | |
5804 | + short USER_API dc_WirelessRecv(HANDLE icdev, unsigned char type, unsigned char mode, unsigned char time_100ms, unsigned char *data_buffer, int *data_len); | |
5805 | + | |
5806 | + /** | |
5807 | + * @brief 配置WIFI参数。 | |
5808 | + * @par 说明: | |
5809 | + * 配置WIFI参数。 | |
5810 | + * @param[in] icdev 设备标识符。 | |
5811 | + * @param[in] type 无线模块类型,0x00表示CDMA,0x01表示GPRS,0x02表示WIFI。 | |
5812 | + * @param[in] ssid WIFI SSID,数据格式为'\0'结尾的字符串。 | |
5813 | + * @param[in] password WIFI密码,数据格式为'\0'结尾的字符串。 | |
5814 | + * @return <0表示失败,==0表示成功。 | |
5815 | + */ | |
5816 | + short USER_API dc_WirelessWifiConfig(HANDLE icdev, unsigned char type, const char *ssid, const char *password); | |
5817 | + | |
5818 | + /** | |
5819 | + * @brief 获取GPS信息。 | |
5820 | + * @par 说明: | |
5821 | + * 获取GPS信息。 | |
5822 | + * @param[in] icdev 设备标识符。 | |
5823 | + * @param[in] time_ms 设备超时值,单位为毫秒。 | |
5824 | + * @param[out] data_buffer 返回的数据。 | |
5825 | + * @param[out] data_len 返回数据的长度。 | |
5826 | + * @return <0表示失败,==0表示成功。 | |
5827 | + */ | |
5828 | + short USER_API dc_GpsGetInfo(HANDLE icdev, int time_ms, unsigned char *data_buffer, int *data_len); | |
5829 | + | |
5830 | + /** | |
5831 | + * @brief 设置接触式CPU卡616C配置。 | |
5832 | + * @par 说明: | |
5833 | + * 设置接触式CPU卡616C配置。 | |
5834 | + * @param[in] icdev 设备标识符。 | |
5835 | + * @param[in] value 配置值,0x00表示设备不处理616C,0x01表示设备处理616C。 | |
5836 | + * @return <0表示失败,==0表示成功。 | |
5837 | + */ | |
5838 | + short USER_API dc_SetCpuCard616C(HANDLE icdev, unsigned char value); | |
5839 | + | |
5840 | + /** | |
5841 | + * @brief 获取接触式CPU卡616C配置。 | |
5842 | + * @par 说明: | |
5843 | + * 获取接触式CPU卡616C配置。 | |
5844 | + * @param[in] icdev 设备标识符。 | |
5845 | + * @param[out] value 配置值,0x00表示设备不处理616C,0x01表示设备处理616C。 | |
5846 | + * @return <0表示失败,==0表示成功。 | |
5847 | + */ | |
5848 | + short USER_API dc_GetCpuCard616C(HANDLE icdev, unsigned char *value); | |
5849 | + | |
5850 | + /** | |
5851 | + * @brief 获取芯片唯一ID号。 | |
5852 | + * @par 说明: | |
5853 | + * 获取芯片唯一ID号。 | |
5854 | + * @param[in] icdev 设备标识符。 | |
5855 | + * @param[out] number 返回的ID号字符串,请至少分配128个字节。 | |
5856 | + * @return <0表示失败,==0表示成功。 | |
5857 | + */ | |
5858 | + short USER_API dc_GetChipIdNumber(HANDLE icdev, char *number); | |
5859 | + | |
5860 | + /** | |
5861 | + * @brief 数码管显示。 | |
5862 | + * @par 说明: | |
5863 | + * 数码管显示。 | |
5864 | + * @param[in] icdev 设备标识符。 | |
5865 | + * @param[in] number 数码管编号(1~12)。 | |
5866 | + * @param[in] mode 模式,0x00表示数据正常显示,0x01表示数据闪烁显示,0x02表示数据不闪烁显示,0x03表示数据带小数点显示。 | |
5867 | + * @param[in] value 显示数据值。 | |
5868 | + * @return <0表示失败,==0表示成功。 | |
5869 | + */ | |
5870 | + short USER_API dc_LedDisplay(HANDLE icdev, unsigned char number, unsigned char mode, unsigned char value); | |
5871 | + | |
5872 | + /** | |
5873 | + * @brief 数码管显示设置。 | |
5874 | + * @par 说明: | |
5875 | + * 数码管显示设置。 | |
5876 | + * @param[in] icdev 设备标识符。 | |
5877 | + * @param[in] mode 模式。 | |
5878 | + * @n 0x00 - 左移。 | |
5879 | + * @n 0x01 - 右移。 | |
5880 | + * @n 0x02 - 左循环。 | |
5881 | + * @n 0x03 - 右循环。 | |
5882 | + * @n 0x04 - 显示清除。 | |
5883 | + * @n 0x05 - 显示置位。 | |
5884 | + * @n 0x06 - 显示亮度增加。 | |
5885 | + * @n 0x07 - 显示亮度降低。 | |
5886 | + * @n 0x08 - 开显示。 | |
5887 | + * @n 0x09 - 关显示。 | |
5888 | + * @return <0表示失败,==0表示成功。 | |
5889 | + */ | |
5890 | + short USER_API dc_LedControl(HANDLE icdev, unsigned char mode); | |
5891 | + | |
5892 | + /** | |
5893 | + * @brief 透传CRC模式配置。 | |
5894 | + * @par 说明: | |
5895 | + * 透传CRC模式配置。 | |
5896 | + * @param[in] icdev 设备标识符。 | |
5897 | + * @param[in] tx_crc TXCRC模式,0x00表示内部不处理TXCRC,0x01表示内部处理TXCRC(只支持ISO14443标准卡)。 | |
5898 | + * @param[in] rx_crc RXCRC模式,0x00表示内部不处理RXCRC,0x01表示内部处理RXCRC(只支持ISO14443标准卡)。 | |
5899 | + * @return <0表示失败,==0表示成功。 | |
5900 | + */ | |
5901 | + short USER_API dc_RfCrcModeConfig(HANDLE icdev, unsigned char tx_crc, unsigned char rx_crc); | |
5902 | + | |
5903 | + /** | |
5904 | + * @brief 获取TCP信息。 | |
5905 | + * @par 说明: | |
5906 | + * 获取TCP信息。 | |
5907 | + * @param[in] icdev 设备标识符。 | |
5908 | + * @param[in] type 类型,0x01表示请求获得模块型号,0x02表示请求获得当前信号强度。 | |
5909 | + * @param[out] data_buffer 返回的数据。 | |
5910 | + * @param[out] data_len 返回数据的长度。 | |
5911 | + * @return <0表示失败,==0表示成功。 | |
5912 | + */ | |
5913 | + short USER_API dc_TcpGetInfo(HANDLE icdev, unsigned char type, unsigned char *data_buffer, int *data_len); | |
5914 | + | |
5915 | + /** | |
5916 | + * @brief 射频天线打开。 | |
5917 | + * @par 说明: | |
5918 | + * 射频天线打开。 | |
5919 | + * @param[in] icdev 设备标识符。 | |
5920 | + * @return <0表示失败,==0表示成功。 | |
5921 | + */ | |
5922 | + short USER_API dc_RfMarch(HANDLE icdev); | |
5923 | + | |
5924 | + /** | |
5925 | + * @brief 选择天线。 | |
5926 | + * @par 说明: | |
5927 | + * 选择天线。 | |
5928 | + * @param[in] icdev 设备标识符。 | |
5929 | + * @param[in] number 天线编号(1~2)。 | |
5930 | + * @return <0表示失败,==0表示成功。 | |
5931 | + */ | |
5932 | + short USER_API dc_SelectAntenna(HANDLE icdev, unsigned char number); | |
5933 | + | |
5934 | + /** | |
5935 | + * @brief 读网卡MAC地址。 | |
5936 | + * @par 说明: | |
5937 | + * 读网卡MAC地址。 | |
5938 | + * @param[in] icdev 设备标识符。 | |
5939 | + * @param[out] data_buffer 返回的网卡地址。 | |
5940 | + * @param[out] data_len 返回网卡地址的长度。 | |
5941 | + * @return <0表示失败,==0表示成功。 | |
5942 | + */ | |
5943 | + short USER_API dc_ReadNicMacAddress(HANDLE icdev, unsigned char *data_buffer, int *data_len); | |
5944 | + | |
5945 | + /** | |
5946 | + * @brief 写网卡MAC地址。 | |
5947 | + * @par 说明: | |
5948 | + * 写网卡MAC地址。 | |
5949 | + * @param[in] icdev 设备标识符。 | |
5950 | + * @param[in] data_buffer 传入网卡地址。 | |
5951 | + * @param[in] data_len 传入网卡地址的长度。 | |
5952 | + * @return <0表示失败,==0表示成功。 | |
5953 | + */ | |
5954 | + short USER_API dc_WriteNicMacAddress(HANDLE icdev, const unsigned char *data_buffer, int data_len); | |
5955 | + | |
5956 | + /** | |
5957 | + * @brief 测试网卡。 | |
5958 | + * @par 说明: | |
5959 | + * 测试网卡。 | |
5960 | + * @param[in] icdev 设备标识符。 | |
5961 | + * @param[in] data_buffer 传入IP地址。 | |
5962 | + * @param[in] data_len 传入IP地址的长度。 | |
5963 | + * @return <0表示失败,==0表示成功。 | |
5964 | + */ | |
5965 | + short USER_API dc_TestNic(HANDLE icdev, const unsigned char *data_buffer, int data_len); | |
5966 | + | |
5967 | + /** | |
5968 | + * @brief 测试USB。 | |
5969 | + * @par 说明: | |
5970 | + * 测试USB。 | |
5971 | + * @param[in] icdev 设备标识符。 | |
5972 | + * @param[in] data_buffer 保留。 | |
5973 | + * @param[in] data_len 保留,固定为0。 | |
5974 | + * @return <0表示失败,==0表示成功。 | |
5975 | + */ | |
5976 | + short USER_API dc_TestUsb(HANDLE icdev, const unsigned char *data_buffer, int data_len); | |
5977 | + | |
5978 | + /** | |
5979 | + * @brief 测试串口。 | |
5980 | + * @par 说明: | |
5981 | + * 测试串口。 | |
5982 | + * @param[in] icdev 设备标识符。 | |
5983 | + * @param[in] number 串口编号(1~3)。 | |
5984 | + * @param[in] name 主机串口名称,如:"COM1:115200"。 | |
5985 | + * @param[in,out] data_buffer 通讯数据。 | |
5986 | + * @param[in,out] data_len 通讯数据的长度。 | |
5987 | + * @return <0表示失败,==0表示成功。 | |
5988 | + */ | |
5989 | + short USER_API dc_TestCom(HANDLE icdev, unsigned char number, const char *name, unsigned char *data_buffer, int *data_len); | |
5990 | + | |
5991 | + /** | |
5992 | + * @brief 设定临时IP地址。 | |
5993 | + * @par 说明: | |
5994 | + * 设定临时IP地址。 | |
5995 | + * @param[in] icdev 设备标识符。 | |
5996 | + * @param[in] data_buffer 传入IP地址。 | |
5997 | + * @param[in] data_len 传入IP地址的长度。 | |
5998 | + * @return <0表示失败,==0表示成功。 | |
5999 | + */ | |
6000 | + short USER_API dc_ConfigTempIpAddress(HANDLE icdev, const unsigned char *data_buffer, int data_len); | |
6001 | + | |
6002 | + /** | |
6003 | + * @brief 磁条卡数据自动上传数据模式获取。 | |
6004 | + * @par 说明: | |
6005 | + * 获取磁条卡数据自动上传数据模式。 | |
6006 | + * @param[in] icdev 设备标识符。 | |
6007 | + * @param[out] mode 模式。 | |
6008 | + * @n 0 - 输出数据中如果带字母,字母转化为大写字母。 | |
6009 | + * @n 1 - 输出数据是原始数据(默认)。 | |
6010 | + * @return <0表示失败,==0表示成功。 | |
6011 | + */ | |
6012 | + short USER_API dc_GetMagFormat(HANDLE icdev, int *mode); | |
6013 | + | |
6014 | + /** | |
6015 | + * @brief 磁条卡参数获取。 | |
6016 | + * @par 说明: | |
6017 | + * 获取操作磁条卡的参数,参数仅针对自动输出的模式有效。 | |
6018 | + * @param[in] icdev 设备标识符。 | |
6019 | + * @param[out] mode 模式,0x00表示不用输出,0x01表示自动输出。 | |
6020 | + * @param[out] track1 1轨道参数。 | |
6021 | + * @n bit0 - 轨道数据输出设置,0表示不输出,1表示输出。 | |
6022 | + * @n bit1 - 轨道数据头设置,0表示无数据头,1表示有数据头。 | |
6023 | + * @n bit2 - 轨道数据尾设置,0表示无数据尾,1表示有数据尾。 | |
6024 | + * @n bit3 - 轨道数据换行符设置,0表示无换行符,1表示有换行符。 | |
6025 | + * @n bit4 - 轨道数据等号与其后数据设置,0表示不输出,1表示输出。 | |
6026 | + * @n bit5~bit7 - 保留。 | |
6027 | + * @param[out] track2 2轨道参数。 | |
6028 | + * @n bit0 - 轨道数据输出设置,0表示不输出,1表示输出。 | |
6029 | + * @n bit1 - 轨道数据头设置,0表示无数据头,1表示有数据头。 | |
6030 | + * @n bit2 - 轨道数据尾设置,0表示无数据尾,1表示有数据尾。 | |
6031 | + * @n bit3 - 轨道数据换行符设置,0表示无换行符,1表示有换行符。 | |
6032 | + * @n bit4 - 轨道数据等号与其后数据设置,0表示不输出,1表示输出。 | |
6033 | + * @n bit5~bit7 - 保留。 | |
6034 | + * @param[out] track3 3轨道参数。 | |
6035 | + * @n bit0 - 轨道数据输出设置,0表示不输出,1表示输出。 | |
6036 | + * @n bit1 - 轨道数据头设置,0表示无数据头,1表示有数据头。 | |
6037 | + * @n bit2 - 轨道数据尾设置,0表示无数据尾,1表示有数据尾。 | |
6038 | + * @n bit3 - 轨道数据换行符设置,0表示无换行符,1表示有换行符。 | |
6039 | + * @n bit4 - 轨道数据等号与其后数据设置,0表示不输出,1表示输出。 | |
6040 | + * @n bit5~bit7 - 保留。 | |
6041 | + * @return <0表示失败,==0表示成功。 | |
6042 | + */ | |
6043 | + short USER_API dc_GetMag(HANDLE icdev, unsigned char *mode, unsigned char *track1, unsigned char *track2, unsigned char *track3); | |
6044 | + | |
6045 | + /** | |
6046 | + * @brief 获取串口设备通讯波特率。 | |
6047 | + * @par 说明: | |
6048 | + * 获取串口设备通讯波特率。 | |
6049 | + * @param[in] icdev 设备标识符。 | |
6050 | + * @param[out] baud 波特率。 | |
6051 | + * @n 0x00 - 115200。 | |
6052 | + * @n 0x01 - 57600。 | |
6053 | + * @n 0x02 - 38400。 | |
6054 | + * @n 0x03 - 19200。 | |
6055 | + * @n 0x04 - 9600。 | |
6056 | + * @n 0x05 - 4800。 | |
6057 | + * @n 0x06 - 2400。 | |
6058 | + * @n 0x07 - 1200。 | |
6059 | + * @return <0表示失败,==0表示成功。 | |
6060 | + */ | |
6061 | + short USER_API dc_GetDeviceBaud(HANDLE icdev, unsigned char *baud); | |
6062 | + | |
6063 | + /** | |
6064 | + * @brief 获取USB模式。 | |
6065 | + * @par 说明: | |
6066 | + * 获取USB通讯模式。 | |
6067 | + * @param[in] icdev 设备标识符。 | |
6068 | + * @param[out] ucmode 模式。 | |
6069 | + * @n 0x00 - 表示中断发送和中断接收,此时VID=257B,PID=3010。 | |
6070 | + * @n 0x01 - 表示控制发送和控制接收,此时VID=257B,PID=3011。 | |
6071 | + * @n 0x02 - 表示控制发送和中断接收,此时VID=0471,PID=7002。 | |
6072 | + * @n 0x03 - 表示控制发送和中断接收,此时VID=0471,PID=7003。 | |
6073 | + * @n 0x04 - 表示控制发送和中断接收,此时VID=0471,PID=7003,支持磁条卡自动上传功能。 | |
6074 | + * @return <0表示失败,==0表示成功。 | |
6075 | + */ | |
6076 | + short USER_API dc_GetUsbMode(HANDLE icdev, unsigned char *ucmode); | |
6077 | + | |
6078 | + /** | |
6079 | + * @brief 接触式CPU卡指令交互。 | |
6080 | + * @par 说明: | |
6081 | + * 对当前卡座CPU卡进行指令交互操作,注意此接口已封装卡协议部分,内部处理了SW1为0x61和0x6C的情况。 | |
6082 | + * @param[in] icdev 设备标识符。 | |
6083 | + * @param[in] slen 发送数据的长度。 | |
6084 | + * @param[in] sendbuffer 发送数据。 | |
6085 | + * @param[out] rlen 返回数据的长度。 | |
6086 | + * @param[out] databuffer 返回的数据。 | |
6087 | + * @return <0表示失败,==0表示成功。 | |
6088 | + */ | |
6089 | + short USER_API dc_cpuapduresponInt(HANDLE icdev, unsigned int slen, unsigned char *sendbuffer, unsigned int *rlen, unsigned char *databuffer); | |
6090 | + | |
6091 | + /** | |
6092 | + * @brief 接触式CPU卡指令交互。 | |
6093 | + * @par 说明: | |
6094 | + * ::dc_cpuapduresponInt 的HEX形式接口,参数 @a sendbuffer @a databuffer 为HEX格式。 | |
6095 | + */ | |
6096 | + short USER_API dc_cpuapduresponInt_hex(HANDLE icdev, unsigned int slen, char *sendbuffer, unsigned int *rlen, char *databuffer); | |
6097 | + | |
6098 | + /** | |
6099 | + * @brief 获取二维码数据。 | |
6100 | + * @par 说明: | |
6101 | + * 获取二维码数据。 | |
6102 | + * @param[in] icdev 设备标识符。 | |
6103 | + * @param[in] times 设备超时值,单位为秒。 | |
6104 | + * @param[out] rlen 返回数据的长度。 | |
6105 | + * @param[out] rdata 返回的数据。 | |
6106 | + * @return <0表示失败,==0表示成功。 | |
6107 | + */ | |
6108 | + short USER_API dc_Get2DBarcodeData(HANDLE icdev, unsigned char times, int *rlen, unsigned char *rdata); | |
6109 | + | |
6110 | + /** | |
6111 | + * @brief 写磁条卡参数设置。 | |
6112 | + * @par 说明: | |
6113 | + * 写磁条卡参数设置。 | |
6114 | + * @param[in] icdev 设备标识符。 | |
6115 | + * @param[in] mode 模式,0表示写三轨共移动三次,1表示写三轨共移动一次。 | |
6116 | + * @return <0表示失败,==0表示成功。 | |
6117 | + */ | |
6118 | + short USER_API dc_SelfServiceDeviceWriteMagConfig(HANDLE icdev, unsigned char mode); | |
6119 | + | |
6120 | + /** | |
6121 | + * @brief 抖动模式设置。 | |
6122 | + * @par 说明: | |
6123 | + * 抖动模式设置。 | |
6124 | + * @param[in] icdev 设备标识符。 | |
6125 | + * @param[in] mode 模式,0表示抖动模式,1表示非抖动模式。 | |
6126 | + * @return <0表示失败,==0表示成功。 | |
6127 | + */ | |
6128 | + short USER_API dc_SelfServiceDeviceShakeConfig(HANDLE icdev, unsigned char mode); | |
6129 | + | |
6130 | + /** | |
6131 | + * @brief 语音播放及显示。 | |
6132 | + * @par 说明: | |
6133 | + * 播放设备内置语音以及是否需要显示。 | |
6134 | + * @param[in] icdev 设备标识符。 | |
6135 | + * @param[in] mode 语音段号(0x01~0x12)。 | |
6136 | + * @param[in] type 显示类型,0表示显示语音播放内容,1表示不显示语音播放内容。 | |
6137 | + * @return <0表示失败,==0表示成功。 | |
6138 | + */ | |
6139 | + short USER_API dc_VoicePlayAndDisplay(HANDLE icdev, unsigned char mode, unsigned char type); | |
6140 | + | |
6141 | + /** | |
6142 | + * @brief 获取银行卡帐户号码。 | |
6143 | + * @par 说明: | |
6144 | + * 获取银行卡帐户号码。 | |
6145 | + * @param[in] icdev 设备标识符。 | |
6146 | + * @param[in] type 类型,0表示非接触式,1表示接触式。 | |
6147 | + * @param[out] number 返回的银行卡帐户号码字符串,请至少分配64个字节。 | |
6148 | + * @return <0表示失败,==0表示成功。 | |
6149 | + */ | |
6150 | + short USER_API dc_GetBankAccountNumber(HANDLE icdev, int type, char *number); | |
6151 | + | |
6152 | +#ifdef __cplusplus | |
6153 | +} | |
6154 | +#endif | |
6155 | + | |
6156 | +#endif // DCRF32_H_ | ... | ... |
doc/D8&&T10ULM最新开发包/sdk/linux/32bit/libdcrf32.so
0 → 100644
No preview for this file type
doc/D8&&T10ULM最新开发包/sdk/linux/32bit/lite/libdcrf32.so
0 → 100644
No preview for this file type
doc/D8&&T10ULM最新开发包/sdk/linux/64bit/libdcrf32.so
0 → 100644
No preview for this file type
doc/D8&&T10ULM最新开发包/sdk/linux/64bit/lite/libdcrf32.so
0 → 100644
No preview for this file type
doc/华大智宝/北京华虹COS用户手册.pdf
0 → 100644
No preview for this file type
doc/华大智宝/华大智宝测试卡问题.txt
0 → 100644
1 | +1.縐醱瘍菴拻弇渣昫 | |
2 | + | |
3 | +888800000001100001FFFFFFFFFF8888FFFFFFFFFFFFFFFF721FFFFF88880003195344494C49888800031953FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000 | |
4 | +888800031953100001FFFFFFFFFF8888FFFFFFFFFFFFFFFF721FFFFF88880003195344494C498888000319539000 | |
0 | 5 | \ No newline at end of file | ... | ... |
doc/华大智宝/双界面CPU卡用户参考手册V1.0.pdf
0 → 100644
No preview for this file type
doc/华大智宝/指令.txt
0 → 100644
doc/华大智宝/提供给客户文档20180521/二次发卡.txt
0 → 100644
1 | +clear string | |
2 | +edit Hstring $SW$ | |
3 | +edit Hstring $RandomSESLK$;计算会话密钥的Random | |
4 | +edit Hstring $INPUTData$ | |
5 | +edit Hstring $Random$ | |
6 | +edit Hstring $Key$ | |
7 | +edit Hstring $DESKey$ | |
8 | +edit Hstring $DESResult$ | |
9 | +edit Hstring $mw$ | |
10 | +edit Hstring $mkey$ | |
11 | +edit Hstring $tkey$ | |
12 | +edit Hstring $MACInit$ | |
13 | +edit Hstring $MAC$ | |
14 | +edit Hstring $INPUT$ | |
15 | +edit Hstring $Temp$ | |
16 | +edit Hstring $DCCK$ | |
17 | +edit Hstring $DIRK1$ | |
18 | +edit Hstring $DIRK2$ | |
19 | +edit Hstring $DIRK3$ | |
20 | +edit Hstring $DCMK1$ | |
21 | +edit Hstring $DCMK2$ | |
22 | +edit Hstring $DACK$ | |
23 | +edit Hstring $DEAK$ | |
24 | +edit Hstring $DAMK1$ | |
25 | +edit Hstring $DAMK2$ | |
26 | +edit Hstring $DACK2$ | |
27 | +edit Hstring $0001$ | |
28 | +edit Hstring $0005$ | |
29 | +edit Hstring $0006$ | |
30 | +edit Hstring $0015$ | |
31 | +edit Hstring $0016$ | |
32 | +edit Hstring $0019$ | |
33 | + | |
34 | +RESET | |
35 | + | |
36 | +SEND 00A4000002 3F00 | |
37 | +ASSERT 6F148410D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3A5009000 | |
38 | + | |
39 | +SEND 0084000008 | |
40 | +edit $Random$=g_GETSW() | |
41 | +watch $Random$ | |
42 | +;3-DES | |
43 | +edit $DESKey$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 | |
44 | + | |
45 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
46 | +watch $Random$ | |
47 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
48 | +watch $DESResult$ | |
49 | +send 0082000008 $DESResult$ | |
50 | +assert 9000 | |
51 | + | |
52 | +;################################################################################################### | |
53 | +;### MF密钥替换 | |
54 | +;################################################################################################### | |
55 | + | |
56 | +edit $DCCK$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 | |
57 | +edit $DACK$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 | |
58 | +edit $DIRK1$ = 11111111111111111111111111111111 | |
59 | +edit $DIRK2$ = 22222222222222222222222222222222 | |
60 | +edit $DIRK3$ = 33333333333333333333333333333333 | |
61 | +edit $DCMK1$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 | |
62 | +edit $DCMK2$ = 22222222222222222222222222222222 | |
63 | +edit $DEAK$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 | |
64 | +edit $DAMK1$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 | |
65 | + | |
66 | +edit $0005$ = 888870000001100001FFFFFFFFFF8888FFFFFFFFFFFFFFFF721FFFFF88880003195344494C49888800031953 | |
67 | +;edit $0005$ = 888800000003100002FFFFFFFFFF8888FFFFFFFFFFFFFFFF721FFFFF88880003195344494C49888800031953FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
68 | +;edit $0005$ = 888800000005100003FFFFFFFFFF8888FFFFFFFFFFFFFFFF721FFFFF88880003195344494C49888800031953FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
69 | +;edit $0005$ = 888800000006100004FFFFFFFFFF8888FFFFFFFFFFFFFFFF721FFFFF88880003195344494C49888800031953FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
70 | +edit $0006$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
71 | +edit $0015$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
72 | +edit $0016$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
73 | + | |
74 | + | |
75 | +;主控子密钥 $DCCK$ | |
76 | +send 00 84 00 00 08 | |
77 | +edit $SW$ = g_GETSW() | |
78 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
79 | +watch $RandomSESLK$ | |
80 | +edit $Key$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 | |
81 | + | |
82 | +edit $mkey$= 13 000000 $DCCK$ 80000000 | |
83 | +watch $mkey$ | |
84 | +edit $mw$ = g_TDES(1 , $Key$ , $mkey$) | |
85 | +watch $mw$ | |
86 | +edit $MACInit$ = $RandomSESLK$ | |
87 | +edit $DESKey$= $Key$ | |
88 | +edit $INPUT$ = 84D401001C$mw$ | |
89 | +edit $MAC$= g_TMAC($MACInit$ , $DESKey$ , $INPUT$) | |
90 | +watch $mw$ $MAC$ | |
91 | +edit $Temp$ = $mw$ $MAC$ | |
92 | +watch $Temp$ | |
93 | +;主控子密钥 $DCCK$ | |
94 | +SEND 84D401001C $Temp$ | |
95 | +ASSERT 9000 | |
96 | + | |
97 | +;维护子密钥 $DCMK1$ | |
98 | +send 00 84 00 00 08 | |
99 | +edit $SW$ = g_GETSW() | |
100 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
101 | +watch $RandomSESLK$ | |
102 | + | |
103 | +edit $mkey$= 13 010100 $DCMK1$ 80000000 | |
104 | +watch $mkey$ | |
105 | +edit $mw$ = g_TDES(1 , $DCCK$ , $mkey$) | |
106 | +watch $mw$ | |
107 | +edit $MACInit$ = $RandomSESLK$ | |
108 | +edit $INPUT$ = 84D401101C$mw$ | |
109 | +edit $MAC$= g_TMAC($MACInit$ , $DCCK$ , $INPUT$) | |
110 | +watch $mw$ $MAC$ | |
111 | +edit $Temp$ = $mw$ $MAC$ | |
112 | +watch $Temp$ | |
113 | +;维护子密钥 $DAMK$ | |
114 | +SEND 84D401101C $Temp$ | |
115 | +ASSERT 9000 | |
116 | + | |
117 | +;维护子密钥 $DCMK2$ | |
118 | +send 00 84 00 00 08 | |
119 | +edit $SW$ = g_GETSW() | |
120 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
121 | +watch $RandomSESLK$ | |
122 | + | |
123 | +edit $mkey$= 13 010200 $DCMK2$ 80000000 | |
124 | +watch $mkey$ | |
125 | +edit $mw$ = g_TDES(1 , $DCCK$ , $mkey$) | |
126 | +watch $mw$ | |
127 | +edit $MACInit$ = $RandomSESLK$ | |
128 | +edit $INPUT$ = 84D401101C$mw$ | |
129 | +edit $MAC$= g_TMAC($MACInit$ , $DCCK$ , $INPUT$) | |
130 | +watch $mw$ $MAC$ | |
131 | +edit $Temp$ = $mw$ $MAC$ | |
132 | +watch $Temp$ | |
133 | +;维护子密钥 $DAMK$ | |
134 | +SEND 84D401101C $Temp$ | |
135 | +ASSERT 9000 | |
136 | + | |
137 | +;DIRK1~3 | |
138 | +send 00 84 00 00 08 | |
139 | +edit $SW$ = g_GETSW() | |
140 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
141 | +watch $RandomSESLK$ | |
142 | + | |
143 | +edit $mkey$= 13 1C0101 $DIRK1$ 80000000 | |
144 | +watch $mkey$ | |
145 | +edit $mw$ = g_TDES(1 , $DCCK$ , $mkey$) | |
146 | +watch $mw$ | |
147 | +edit $MACInit$ = $RandomSESLK$ | |
148 | +edit $INPUT$ = 84D401101C$mw$ | |
149 | +edit $MAC$= g_TMAC($MACInit$ , $DCCK$ , $INPUT$) | |
150 | +watch $mw$ $MAC$ | |
151 | +edit $Temp$ = $mw$ $MAC$ | |
152 | +watch $Temp$ | |
153 | +;DIRK1~3 | |
154 | +SEND 84D401101C $Temp$ | |
155 | +ASSERT 9000 | |
156 | + | |
157 | +;DIRK1~3 | |
158 | +send 00 84 00 00 08 | |
159 | +edit $SW$ = g_GETSW() | |
160 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
161 | +watch $RandomSESLK$ | |
162 | + | |
163 | +edit $mkey$= 13 1C0201 $DIRK2$ 80000000 | |
164 | +watch $mkey$ | |
165 | +edit $mw$ = g_TDES(1 , $DCCK$ , $mkey$) | |
166 | +watch $mw$ | |
167 | +edit $MACInit$ = $RandomSESLK$ | |
168 | +edit $INPUT$ = 84D401101C$mw$ | |
169 | +edit $MAC$= g_TMAC($MACInit$ , $DCCK$ , $INPUT$) | |
170 | +watch $mw$ $MAC$ | |
171 | +edit $Temp$ = $mw$ $MAC$ | |
172 | +watch $Temp$ | |
173 | +;DIRK1~3 | |
174 | +SEND 84D401101C $Temp$ | |
175 | +ASSERT 9000 | |
176 | + | |
177 | +;DIRK1~3 | |
178 | +send 00 84 00 00 08 | |
179 | +edit $SW$ = g_GETSW() | |
180 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
181 | +watch $RandomSESLK$ | |
182 | + | |
183 | +edit $mkey$= 13 1C0301 $DIRK3$ 80000000 | |
184 | +watch $mkey$ | |
185 | +edit $mw$ = g_TDES(1 , $DCCK$ , $mkey$) | |
186 | +watch $mw$ | |
187 | +edit $MACInit$ = $RandomSESLK$ | |
188 | +edit $INPUT$ = 84D401101C$mw$ | |
189 | +edit $MAC$= g_TMAC($MACInit$ , $DCCK$ , $INPUT$) | |
190 | +watch $mw$ $MAC$ | |
191 | +edit $Temp$ = $mw$ $MAC$ | |
192 | +watch $Temp$ | |
193 | +;DIRK1~3 | |
194 | +SEND 84D401101C $Temp$ | |
195 | +ASSERT 9000 | |
196 | + | |
197 | +;更新0001 dir文件 | |
198 | +;***************************写0001文件********************************* | |
199 | +SEND 0084000008 | |
200 | +edit $SW$ = g_GETSW() | |
201 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
202 | +watch $RandomSESLK$ | |
203 | +edit $MACInit$ = $RandomSESLK$ | |
204 | +edit $INPUT$ = 04E2000812 700C610A4F08B5D8C0FBD4DACFDF | |
205 | +edit $MAC$= g_TMAC($MACInit$ , $DCMK1$ , $INPUT$) | |
206 | +watch $MAC$ | |
207 | +SEND $INPUT$ $MAC$ | |
208 | +ASSERT 9000 | |
209 | + | |
210 | +SEND 0084000008 | |
211 | +edit $SW$ = g_GETSW() | |
212 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
213 | +watch $RandomSESLK$ | |
214 | +edit $MACInit$ = $RandomSESLK$ | |
215 | +edit $INPUT$ = 04E2000812 700C610A5008B5D8C0FBC7AEB0FC | |
216 | +edit $MAC$= g_TMAC($MACInit$ , $DCMK1$ , $INPUT$) | |
217 | +watch $MAC$ | |
218 | +SEND $INPUT$ $MAC$ | |
219 | +ASSERT 9000 | |
220 | + | |
221 | +;第二次更新时 | |
222 | +;SEND 0084000008 | |
223 | +;edit $SW$ = g_GETSW() | |
224 | +;edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
225 | +;watch $RandomSESLK$ | |
226 | +;edit $MACInit$ = $RandomSESLK$ | |
227 | +;edit $INPUT$ = 04DC010C12 700C610A4F08B5D8C0FBD4DACFDF | |
228 | +;edit $MAC$= g_TMAC($MACInit$ , $DCMK1$ , $INPUT$) | |
229 | +;watch $MAC$ | |
230 | +;SEND $INPUT$ $MAC$ | |
231 | +;ASSERT 9000 | |
232 | + | |
233 | +;更新0005基本信息文件 | |
234 | +;***************************写0005文件********************************* | |
235 | +SEND 0084000008 | |
236 | +edit $SW$ = g_GETSW() | |
237 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
238 | +watch $RandomSESLK$ | |
239 | +edit $MACInit$ = $RandomSESLK$ | |
240 | +edit $INPUT$ = 04D6850030 $0005$ | |
241 | +edit $MAC$= g_TMAC($MACInit$ , $DCMK1$ , $INPUT$) | |
242 | +watch $MAC$ | |
243 | +SEND $INPUT$ $MAC$ | |
244 | +ASSERT 9000 | |
245 | +;更新0006预留信息文件 | |
246 | +;***************************写0006文件********************************* | |
247 | +SEND 0084000008 | |
248 | +edit $SW$ = g_GETSW() | |
249 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
250 | +watch $RandomSESLK$ | |
251 | +edit $MACInit$ = $RandomSESLK$ | |
252 | +edit $INPUT$ = 04D6860030 $0006$ | |
253 | +edit $MAC$= g_TMAC($MACInit$ , $DCMK2$ , $INPUT$) | |
254 | +watch $MAC$ | |
255 | +SEND $INPUT$ $MAC$ | |
256 | +ASSERT 9000 | |
257 | + | |
258 | + | |
259 | +;内部认证1 | |
260 | +SEND 0084000008 | |
261 | +edit $Random$=g_GETSW() | |
262 | +watch $Random$ | |
263 | +;3-DES | |
264 | +edit $DESKey$ = $DIRK1$ | |
265 | + | |
266 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
267 | +watch $Random$ | |
268 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
269 | +watch $DESResult$ | |
270 | +send 0088000108 $DESResult$ | |
271 | +;ASSERT F643AEEE267B96BE 9000 | |
272 | + | |
273 | +;内部认证2 | |
274 | +SEND 0084000008 | |
275 | +edit $Random$=g_GETSW() | |
276 | +watch $Random$ | |
277 | +;3-DES | |
278 | +edit $DESKey$ = $DIRK2$ | |
279 | + | |
280 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
281 | +watch $Random$ | |
282 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
283 | +watch $DESResult$ | |
284 | +send 0088000208 $DESResult$ | |
285 | +;ASSERT 2D32365B79BAB9299000 | |
286 | + | |
287 | +;内部认证3 | |
288 | +SEND 0084000008 | |
289 | +edit $Random$=g_GETSW() | |
290 | +watch $Random$ | |
291 | +;3-DES | |
292 | +edit $DESKey$ = $DIRK3$ | |
293 | + | |
294 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
295 | +watch $Random$ | |
296 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
297 | +watch $DESResult$ | |
298 | +send 0088000308 $DESResult$ | |
299 | +;ASSERT 60833056F73E2A249000 | |
300 | + | |
301 | +;DF01:地利在线平台应用 | |
302 | +SEND 00A40400 08 B5D8C0FBD4DACFDF | |
303 | +ASSERT 6F7F8410B5D8C0FBD4DACFDF0000007479617070A56B9F0801029F0C64FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000 | |
304 | + | |
305 | +SEND 0084000008 | |
306 | +edit $Random$=g_GETSW() | |
307 | +watch $Random$ | |
308 | +;3-DES | |
309 | +edit $DESKey$ = $DACK$ | |
310 | + | |
311 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
312 | +watch $Random$ | |
313 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
314 | +watch $DESResult$ | |
315 | +send 0082000008 $DESResult$ | |
316 | +assert 9000 | |
317 | + | |
318 | + | |
319 | +;外部认证密钥 $DEAK$ | |
320 | +send 00 84 00 00 08 | |
321 | +edit $SW$ = g_GETSW() | |
322 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
323 | +watch $RandomSESLK$ | |
324 | + | |
325 | +edit $mkey$= 13 000100 $DEAK$ 80000000 | |
326 | +watch $mkey$ | |
327 | +edit $mw$ = g_TDES(1 , $DACK$ , $mkey$) | |
328 | +watch $mw$ | |
329 | +edit $MACInit$ = $RandomSESLK$ | |
330 | +edit $INPUT$ = 84D401101C$mw$ | |
331 | +edit $MAC$= g_TMAC($MACInit$ , $DACK$ , $INPUT$) | |
332 | +watch $mw$ $MAC$ | |
333 | +edit $Temp$ = $mw$ $MAC$ | |
334 | +watch $Temp$ | |
335 | +;维护子密钥 $DAMK$ | |
336 | +SEND 84D401101C $Temp$ | |
337 | +ASSERT 9000 | |
338 | + | |
339 | +;应用维护子密钥 $DCMK2$ | |
340 | +send 00 84 00 00 08 | |
341 | +edit $SW$ = g_GETSW() | |
342 | +edit $RandomSESLK$ = g_GETSTR($SW$,0,8) | |
343 | +watch $RandomSESLK$ | |
344 | + | |
345 | +edit $mkey$= 13 010100 $DAMK1$ 80000000 | |
346 | +watch $mkey$ | |
347 | +edit $mw$ = g_TDES(1 , $DACK$ , $mkey$) | |
348 | +watch $mw$ | |
349 | +edit $MACInit$ = $RandomSESLK$ | |
350 | +edit $INPUT$ = 84D401101C$mw$ | |
351 | +edit $MAC$= g_TMAC($MACInit$ , $DACK$ , $INPUT$) | |
352 | +watch $mw$ $MAC$ | |
353 | +edit $Temp$ = $mw$ $MAC$ | |
354 | +watch $Temp$ | |
355 | +;维护子密钥 $DAMK$ | |
356 | +SEND 84D401101C $Temp$ | |
357 | +ASSERT 9000 | |
358 | + | |
359 | +;外部认证 | |
360 | +SEND 0084000008 | |
361 | +edit $Random$=g_GETSW() | |
362 | +watch $Random$ | |
363 | +;3-DES | |
364 | +edit $DESKey$ = $DEAK$ | |
365 | + | |
366 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
367 | +watch $Random$ | |
368 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
369 | +watch $DESResult$ | |
370 | +send 0082000108 $DESResult$ | |
371 | +ASSERT 9000 | |
0 | 372 | \ No newline at end of file | ... | ... |
doc/华大智宝/提供给客户文档20180521/双界面CPU卡用户参考手册V1.0.pdf
0 → 100644
No preview for this file type
doc/华大智宝/提供给客户文档20180521/文件系统.txt
0 → 100644
1 | + | |
2 | +;修改ATS历史字节 | |
3 | +RESET | |
4 | +SEND 00A4040010 486E656F730000000000000000000000 | |
5 | +ASSERT 9000 | |
6 | +SEND 80F2000010 4845442D484353502D41444D494E3030 | |
7 | +ASSERT 9000 | |
8 | +SEND FFCA0000 04 | |
9 | + | |
10 | +edit Hstring $UID$ | |
11 | +edit $UID$ = g_GETSW() | |
12 | +edit $UID$ = g_GETSTR ($UID$,0,4) | |
13 | +SEND 8012 0700 0D 0C 4D54 0081 3212 8698 $UID$ | |
14 | + | |
15 | +SEND FFCC000001 93;读ATS | |
16 | + | |
17 | +RESET | |
18 | +SEND 00A4040008A000000003000000 | |
19 | +;ASSERT 6F108408A000000003000000A5049F6501FF9000 | |
20 | + | |
21 | +edit Hstring $HostRand$ ;Host challenge | |
22 | +edit $HostRand$ = 1BAD288F2F19780D | |
23 | +send 8050 00 00 08 $HostRand$ | |
24 | + edit Hstring $SWResult$ ;卡片响应值 | |
25 | + edit Hstring $KeyDivData$ ;Key diversification data 8bytes | |
26 | + edit Hstring $KeyInfo$ ;Key information 2bytes | |
27 | + edit Hstring $SeqCNTR$ ;Sequence Counter 2bytes | |
28 | + edit Hstring $CardRand$ ;Card challenge 6bytes | |
29 | + edit Hstring $CardCrypt$ ;Card cryptogram 8bytes | |
30 | + edit Hstring $DerivationData$ | |
31 | + edit Hstring $SessionKey$ | |
32 | + edit Hstring $SCSKey$ ;安全信道静态密钥 | |
33 | + edit Hstring $SMACKey$ | |
34 | + edit Hstring $SENCKey$ | |
35 | + edit Hstring $DESPadding$ | |
36 | + edit Hstring $InputData$ ;要加密数据 | |
37 | + edit Hstring $ICV$ | |
38 | + edit $SWResult$ = g_GETSW() | |
39 | + watch $SWResult$ | |
40 | + edit $SeqCNTR$ = g_GETSTR($SWResult$,12,2) | |
41 | + watch $SeqCNTR$ | |
42 | + edit $CardRand$ = g_GETSTR($SWResult$,14,6) | |
43 | + watch $CardRand$ | |
44 | + edit $DerivationData$ = 0182 $SeqCNTR$ 000000000000000000000000 | |
45 | + watch $DerivationData$ | |
46 | + edit $SCSKey$ = 404142434445464748494A4B4C4D4E4F | |
47 | + edit $ICV$ = 0000000000000000 | |
48 | + edit $SessionKey$ =g_TDESCBC(1 , $ICV$, $SCSKey$ , $DerivationData$) | |
49 | + watch $SessionKey$ | |
50 | + edit $InputData$ = $HostRand$ $SeqCNTR$ $CardRand$ | |
51 | + watch $InputData$ | |
52 | + edit $ICV$ = 0000000000000000 | |
53 | + edit $CardCrypt$ = g_ISO9797(1 , 2 ,$ICV$, $SessionKey$ , $InputData$) | |
54 | + watch $CardCrypt$ | |
55 | + watch $SWResult$ | |
56 | + ;host Crypt | |
57 | + edit $InputData$ = $SeqCNTR$ $CardRand$ $HostRand$ | |
58 | + watch $InputData$ | |
59 | + ;计算验证密文时ICV不需要加密 | |
60 | + edit Hstring $HostCrypt$ | |
61 | + edit $HostCrypt$ = g_ISO9797(1 , 2 ,$ICV$, $SessionKey$ , $InputData$) | |
62 | + watch $HostCrypt$ | |
63 | + edit Hstring $CMACResult$ | |
64 | + edit Hstring $SMACKey$ | |
65 | + edit $SMACKey$ = 404142434445464748494A4B4C4D4E4F | |
66 | + watch $SMACKey$ | |
67 | + edit $DerivationData$ = 0101 $SeqCNTR$ 000000000000000000000000 | |
68 | + watch $DerivationData$ | |
69 | + edit $SessionKey$ = g_TDESCBC(1 ,$ICV$, $SMACKey$ , $DerivationData$) | |
70 | + watch $SessionKey$ | |
71 | + edit $InputData$ = 8482000010$HostCrypt$ | |
72 | + watch $InputData$ | |
73 | + ;Singal DES plus Final 3DES MAC | |
74 | + edit $ICV$ = 0000000000000000 | |
75 | + edit $CMACResult$ = g_ISO9797(3 , 2 ,$ICV$, $SessionKey$ , $InputData$) | |
76 | + watch $CMACResult$ | |
77 | + | |
78 | +send 8482 00 00 10 $HostCrypt$$CMACResult$ | |
79 | +assert 9000 | |
80 | + | |
81 | +;################################################################################################### | |
82 | +;### 删除应用和安装应用 | |
83 | +;################################################################################################### | |
84 | +;删除地利集团园区应用 | |
85 | +SEND 80E4000012 4F10 D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3 | |
86 | +;ASSERT 6A88|009000 | |
87 | + | |
88 | +;安装地利集团园区应用 | |
89 | +;SEND 80E60C004C 0FF168656400636974796170706C6574 10F168656400636974796170706C657401 10D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3 0104 16C914 F2 3F00 4000 40 000000 15 31 00 00 0F03 F300 F70300 00 | |
90 | +;ASSERT 009000 | |
91 | +SEND 80E60C004E 0FF168656400636974796170706C6574 10F168656400636974796170706C657401 10D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3 0104 18C916 F2 3F00 4000 40 000000 15 31 00 00 0F03 F300 F70300 F90400 | |
92 | +ASSERT 009000 | |
93 | + | |
94 | +;################################################################################################### | |
95 | +;### 个人化地利集团园区应用 | |
96 | +;################################################################################################### | |
97 | +; 选择地利集团园区应用 | |
98 | +SEND 00A4040010 D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3 | |
99 | +ASSERT 6F148410D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3A5009000 | |
100 | + | |
101 | +;外部认证 | |
102 | +edit Hstring $Random$ | |
103 | +edit Hstring $DESKey$ | |
104 | +edit Hstring $SourceData$ | |
105 | +edit Hstring $DESResult$ | |
106 | +edit Hstring $MACInit$ | |
107 | + | |
108 | +SEND 0084000008 | |
109 | +edit $Random$=g_GETSW() | |
110 | +watch $Random$ | |
111 | +;3-DES | |
112 | +edit $DESKey$ = 00000000000000000000000000000000 | |
113 | + | |
114 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
115 | +watch $Random$ | |
116 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
117 | +watch $DESResult$ | |
118 | +send 0082000008 $DESResult$ | |
119 | +assert 9000 | |
120 | + | |
121 | +;开启快速个人化 | |
122 | +SEND 80E5000000 | |
123 | +ASSERT 9000 | |
124 | + | |
125 | +; 创建0010安全文件 | |
126 | +SEND 80E0000B08 0010 0090 00 33 0000 | |
127 | +ASSERT 9000 | |
128 | +; 创建0001 Dir文件(变长记录) 明文+MAC(DCMK1) | |
129 | +SEND 80E000050E 0001 0050 0000 00 20 0000 0000 00 01 | |
130 | +ASSERT 9000 | |
131 | +; 创建0005基本信息文件(二进制文件)明文+MAC(DCMK1) | |
132 | +SEND 80E000030D 0005 00FA 00 00 20 0000 0000 00 01 | |
133 | +ASSERT 9000 | |
134 | +;创建0006保留文件(二进制文件)明文+MAC(DCMK2) | |
135 | +SEND 80E000030D 0006 00FA 00 00 20 0000 0000 00 02 | |
136 | +ASSERT 9000 | |
137 | + | |
138 | +;****************装载密钥**************** | |
139 | +;主控DCCK | |
140 | +SEND 80D40100 13 000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 | |
141 | +ASSERT 9000 | |
142 | +;DCMK1和DCMK2 | |
143 | +SEND 80D40010 18 0101000000000300 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 | |
144 | +ASSERT 9000 | |
145 | +SEND 80D40010 18 0102000000000300 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 | |
146 | +ASSERT 9000 | |
147 | +;DIRK1~3 | |
148 | +SEND 80D40010 18 1C01010000000300 00000000000000000000000000000000 | |
149 | +ASSERT 9000 | |
150 | +SEND 80D40010 18 1C02010000000300 00000000000000000000000000000000 | |
151 | +ASSERT 9000 | |
152 | +SEND 80D40010 18 1C03010000000300 00000000000000000000000000000000 | |
153 | +ASSERT 9000 | |
154 | + | |
155 | +;--------------------------------DF01地利在线平台应用----------------------------- | |
156 | +SEND 00A4000002 3F00 | |
157 | +ASSERT 6F148410D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3A5009000 | |
158 | + | |
159 | +SEND 0084000008 | |
160 | +edit $Random$=g_GETSW() | |
161 | +watch $Random$ | |
162 | +;3-DES | |
163 | +edit $DESKey$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 | |
164 | + | |
165 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
166 | +watch $Random$ | |
167 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
168 | +watch $DESResult$ | |
169 | +send 0082000008 $DESResult$ | |
170 | +assert 9000 | |
171 | + | |
172 | +;开启快速个人化 | |
173 | +SEND 80E5000000 | |
174 | +ASSERT 9000 | |
175 | + | |
176 | +;创建DF01:地利在线平台应用 | |
177 | +SEND 80E00002 1D DF01 07FF 00 000000 15 B9 00 01 03 B5D8C0FBD4DACFDF | |
178 | +ASSERT 9000 | |
179 | + | |
180 | +; 创建0010安全文件 | |
181 | +SEND 80E0000B08 0010 0200 00 33 0000 | |
182 | +;****************装载密钥**************** | |
183 | +;主控 | |
184 | +SEND 80D40100 13 000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 | |
185 | +ASSERT 9000 | |
186 | +;维护 DAMK1 DAMK2 | |
187 | +SEND 80D40010 18 0101000000000300 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 | |
188 | +ASSERT 9000 | |
189 | +SEND 80D40010 18 0102000000000300 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 | |
190 | +ASSERT 9000 | |
191 | +;外部认证DEAK | |
192 | +SEND 80D40010 18 00010000 0000 03AA FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 | |
193 | +ASSERT 9000 | |
194 | + | |
195 | +; 创建0015卡务信息文件 读(外部认证)写(明文+MAC,DAMK1) | |
196 | +SEND 80E000030D 0015 00FA 00 00 20 00AA 0000 00 01 | |
197 | +ASSERT 9000 | |
198 | +SEND 00D69500 FA FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
199 | +ASSERT 9000 | |
200 | +; 创建0016持卡人数据文件 读(自由)写(明文+MAC,DAMK2) | |
201 | +SEND 80E000030D 0016 00FA 00 00 20 0F11 0000 00 02 | |
202 | +ASSERT 9000 | |
203 | +SEND 00D69600 FA FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
204 | +ASSERT 9000 | |
205 | + | |
206 | +; 创建0019(复合)文件(明文+MAC,DAMK2) | |
207 | +SEND 80E000050E 0019 0119 0000 00 20 0000 0000 00 02 | |
208 | +ASSERT 9000 | |
209 | + | |
210 | + | |
211 | +;--------------------------------DF02地利扩展预留应用----------------------------- | |
212 | +SEND 00A4000002 3F00 | |
213 | +ASSERT 6F148410D6C7D0C5C8DAB4B4D4B0C7F8D3A6D3C3A5009000 | |
214 | + | |
215 | +SEND 0084000008 | |
216 | +edit $Random$=g_GETSW() | |
217 | +watch $Random$ | |
218 | +;3-DES | |
219 | +edit $DESKey$ = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 | |
220 | + | |
221 | +edit $Random$ = g_GETSTR($Random$,0,8) | |
222 | +watch $Random$ | |
223 | +edit $DESResult$ = g_TDES(1 , $DESKey$ , $Random$) | |
224 | +watch $DESResult$ | |
225 | +send 0082000008 $DESResult$ | |
226 | +assert 9000 | |
227 | + | |
228 | +;开启快速个人化 | |
229 | +SEND 80E5000000 | |
230 | +ASSERT 9000 | |
231 | + | |
232 | +;创建DF02:地利扩展预留应用 | |
233 | +SEND 80E00002 1D DF02 07FF 00 000000 15 B9 00 01 03 B5D8C0FBC7AEB0FC | |
234 | +ASSERT 9000 | |
235 | + | |
236 | +; 创建0010安全文件 | |
237 | +SEND 80E0000B08 0010 0200 00 33 0000 | |
238 | +;****************装载密钥**************** | |
239 | +;主控 | |
240 | +SEND 80D40100 13 000000 88888888888888888888888888888888 | |
241 | +ASSERT 9000 | |
242 | + | ... | ... |
doc/卡片情况.xlsx
No preview for this file type
doc/打印机/amovie.ocx.zip
0 → 100644
No preview for this file type
doc/智信融创/m1卡/NXP-Mifare1技术说明.pdf
0 → 100644
No preview for this file type
doc/智信融创/m1卡/复旦FM11RF08-8KBits-EEPROM-非接触式射频卡芯片-功能说明书.pdf
0 → 100644
No preview for this file type
doc/硬件卡片总体需求/卡片基本信息字段和初始秘钥说明.docx
No preview for this file type