commit 40b6856fff8e7973da225b0730dffd40c5921c0a Author: cheney Date: Fri May 22 17:19:03 2026 +0800 first commit diff --git a/INCLUDE/IC_API.h b/INCLUDE/IC_API.h new file mode 100644 index 0000000..79b2906 --- /dev/null +++ b/INCLUDE/IC_API.h @@ -0,0 +1,29 @@ +#ifndef _IC_API_H_ +#define _IC_API_H_ + + +int Read_hsm_model(char * data_out,char * data_len); +int Read_role_type(char * data_out,char * data_len); +int CARD_format(char* hsm_model); +int CARD_PRESSENT(void); +int IC_PIN_change(char * PIN_new, unsigned char new_len); +int IC_PIN_verify(char * PIN_str, unsigned char PIN_len); +int IC_crypt_change(char*key); +int IC_int_change(char*key); +int write_trans_key(char *index_str,unsigned char str_len,char * data_in,unsigned short in_len); +int read_trans_key(char *index_str,unsigned char str_len,char * data_out,unsigned short *out_len); +int write_memery_data(unsigned short offset,char * data_in, unsigned short in_len); +int read_memery_data(unsigned short offset,char * data_out, unsigned short out_len); +int reg_cardholder(char* role_type); +int reg_dev(char record_num,char* HSM); +int read_reg(char data_out[0x10][0x10]); +int IC_poweron(void); +int Publish_Card(char* hsm_model); +void Check_LRC(unsigned char *BCD,unsigned short LEN); +int chk8024(void); +int IC_SUPIN_verify(char * PIN_str,unsigned char PIN_len); +int IC_SUPIN_change(char * PIN_new,unsigned char new_len); + + +#endif + diff --git a/INCLUDE/SJL19.h b/INCLUDE/SJL19.h new file mode 100644 index 0000000..8f61422 --- /dev/null +++ b/INCLUDE/SJL19.h @@ -0,0 +1,281 @@ +#ifndef _SJL19_h_ +#define _SJL19_h_ + +#define PCI_DEVNAME "/dev/SJK1117Card0" +#define PCI_KEY 0x400 + +#define ERR_RESPOND_LEN -1 +#define ERR_PARAM_FAILED -2 +#define ERR_RESPOND_TIMEOUT -3 +#define ERR_DEAL_CHK -4 + +#define ERR_PARAM -7 +#define ERR_OPENDEV -8 +#define ERR_FORK -9 + +#define CI_NOCI 0xFF +#define CI_DES 0x10 +#define CI_3DES 0x20 +#define CI_IDEA 0x30 +#define CI_SEA 0x40 +#define CI_SP02 0x50 +#define CI_RSA128 0x60 +#define CI_RSA256 0x70 + +#define KI_ZMK 0 +#define KI_ZPK 1 +#define KI_ZAK 2 +#define KI_ZEK 3 +#define KI_TMK 4 +#define KI_TPK 5 +#define KI_TAK 6 +#define KI_TEK 7 +#define KI_PVK 8 +#define KI_CVK 9 +#define KI_RAK 10 +#define KI_PEK 11 +#define KI_PMK 12 +#define KI_ICKEY 13 +//加解密PIN BLOCK的PIK +#define KI_PIK 49 + +#ifndef HAVE_ +#define HAVE_ +typedef struct _DEV_HANDLE { + int handle; + int msgqid; + int pid; + }DevHandle; +#endif + +/* +ZMK: LMK0 +ZPK: LMK1 +ZAK: LMK2 +ZEK: LMK3 +TMK: LMK4 +TPK: LMK5 +TAK: LMK6 +TEK: LMK7 +PVK: LMK8 +CVK: LMK9 +RAK: LMK10 +PEK: LMK11 +PMK: LMK12 +IC_KEY:LMK13(旧IC卡,除交易签名密钥外的其他IC卡密钥) +IC_KEY:LMK14(旧IC卡,IC卡交易签名密钥) +PCK: LMK15 +IC_KEY:LMK16(新IC卡,所有密钥) +RPK: LMK17 +*/ + +struct SJL19_Head +{ + unsigned char head[32]; + unsigned char command; + unsigned char cipher; + unsigned char datalen_h; + unsigned char datalen_l; +}; + + +#define ERR_RESPOND_LEN -1 +#define ERR_PARAM_FAILED -2 +#define ERR_RESPOND_TIMEOUT -3 +#define ERR_DEAL_CHK -4 + +#define PUTU32(ct, st) \ + { (ct)[0] = (unsigned int8_t)((st) >> 24); \ + (ct)[1] = (unsigned int8_t)((st) >> 16); \ + (ct)[2] = (unsigned int8_t)((st) >> 8); \ + (ct)[3] = (unsigned int8_t)(st); } +extern int GetCRC(unsigned char *data, int len, unsigned char crc[2]); +/* +状态管理指令集(Group=1) +编号 功能 代码 函数名称 +1加密卡硬件自检 0x10 int SJL19_SelfTest(int hPCI) +2加密卡初始化 0x11 int SJL19_CardInit(int hPCI) +3取得加密卡状态 0x12 +*/ +extern int SJL19_SelfTest(int hPCI); +extern int SJL19_CardInit(int hPCI); +extern int SJL19_GetCardInfo(int hPCI, + unsigned char CardSerial[8], + unsigned char CardVersion[4], + unsigned char LMKCheckString[16], + unsigned char *CardState, + unsigned char LoginState[3]); + +/* +2.2 安全管理指令集(Group=2) +编号 指令内容 指令代码 函数定义 +1 管理员登录 0x20 int SJL19_OperLogin(int hPCI,unsigned char OperIndex,unsigned char OperPasswd[8]) +2 退到正常状态 0x21 int SJL19_LogoutToNormal(int hPCI) +3 退到未登录状态 0x22 int SJL19_LogoutToNologin(int hPCI) +4 修改管理员口令 0x23 int SJL19_ChangePassword(int hPCI,unsigned char OperIndex,unsigned char OldPwd[8],unsigned char NewPwd[8]) +*/ +extern int SJL19_OperLogin(int hPCI, unsigned char OperIndex, unsigned char OperPasswd[8]); +extern int SJL19_LogoutToNormal(int hPCI); +extern int SJL19_LogoutToNologin(int hPCI); +extern int SJL19_ChangePassword(int hPCI, unsigned char OperIndex, unsigned char OldPwd[8], unsigned char NewPwd[8]); +extern int SJL19_GenerateRand(int hPCI, unsigned char rand[16]); +extern int SJL19_ReadFlash(int hPCI, unsigned int address, unsigned char *data, unsigned int datalen); +extern int SJL19_SetLmkToTemp(int hPCI, unsigned char lmk[800]); +extern int SJL19_MoveLmkToWork(int hPCI); +extern int SJL19_ConvertDataByLMK_TempToWork(int hPCI, int Cipher, int Index, unsigned char Data[16]); +extern int SJL19_ConvertDataByLMK_WorkToTemp(int hPCI, int Cipher, int Index, unsigned char Data[16]); +extern int SJL19_EncryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len); +extern int SJL19_DecryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len); +extern int SJL19_EncryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len); +extern int SJL19_DecryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len); +/*用工作密钥(密文)加密数据*/ +extern int SJL19_EncryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher, + unsigned char WorkKey[16], unsigned char *Data, + unsigned int data_len); +/*用工作密钥(密文)解密数据*/ +extern int SJL19_DecryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher, + unsigned char WorkKey[16], unsigned char *Data, + unsigned int data_len); +/* 产生RSA密钥对(私钥明文)*/ +extern int SJL19_GenerateRsaKey(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]); +/* 产生RSA密钥对(私钥密文)*/ +extern int SJL19_GenerateRsaEncKey(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]); +/* 用RSA公钥加密数据*/ +extern int SJL19_EncryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len); +/* 用RSA公钥解密数据*/ +extern int SJL19_DecryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥明文加密数据*/ +extern int SJL19_EncryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥明文解密数据*/ +extern int SJL19_DecryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥密文加密数据*/ +extern int SJL19_EncryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥密文加密数据*/ +extern int SJL19_DecryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/*数据由LMK加密转换为用工作密钥(密文)加密*/ +extern int SJL19_EncryptBy_LMKToEncWorkkey(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len); +/*数据由工作密钥(密文)加密转换为用LMK加密*/ +extern int SJL19_EncryptBy_EncWorkkeyToLMK(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len); +/*数据由工作密钥一(密文)加密转换为用工作密钥二(密文)加密*/ +extern int SJL19_EncryptBy_EncWorkkey1ToEncWorkkey2(int hPCI, int Cipher, int Index1, int Index2, + int LMKCipher, + unsigned char WorkKey1[16], + unsigned char WorkKey2[16], + unsigned char *Data, int data_len); +/*数据在同一LMK下进行加密算法转换*/ +extern int SJL19_ConvertByLMK(int hPCI, int Index, + int LMKCipher1, int LMKCipher2, + unsigned char *Data, int data_len); +/*数据在同一工作密钥(密文)下进行加密算法转换*/ +extern int SJL19_ConvertByWorkKey(int hPCI, int Index, + int LMKCipher, int KeyCipher1, int KeyCipher2, + unsigned char WorkKey[16], + unsigned char *Data, int data_len); +/*PINBLOCK由工作密钥一(密文)加密转为PIN用工作密钥二(密文)加密*/ +extern int SJL19_PinblockToPin(int hPCI, int Cipher, int Index1, int Index2, + int LMKCipher, unsigned char PINFormat, + unsigned char WorkKey1[16], unsigned char WorkKey2[16], + unsigned char PAN[8], unsigned char PINBLOCK[8]/*PinBlock(In)Pin(Out)*/); + +/* PIN用工作密钥一(密文)转为PINBLOCK用工作密钥二(密文)加密*/ +extern int SJL19_PinToPinblock(int hPCI, int Cipher, int Index1, int Index2, + int LMKCipher, unsigned char PINFormat, + unsigned char WorkKey1[16], unsigned char WorkKey2[16], + unsigned char PAN[8], unsigned char PINBLOCK[8]/*Pin(In)PinBlock(Out)*/); +extern int SJL19_MD5(int hPCI, unsigned char *Data, unsigned int data_len, unsigned char Code[16]); +extern int GetCRC(unsigned char *data, int len, unsigned char crc[2]); +/* +2.1 状态管理指令集(Group=1) +编号 功能 代码 函数名称 +1 加密卡硬件自检 0x10 int SJL19_SelfTest(int hPCI) +2 加密卡初始化 0x11 int SJL19_CardInit(int hPCI) +3 取得加密卡状态 0x12 +*/ +extern int SJL19_SelfTest(int hPCI); +extern int SJL19_CardInit(int hPCI); +extern int SJL19_GetCardInfo(int hPCI, + unsigned char CardSerial[8], + unsigned char CardVersion[4], + unsigned char LMKCheckString[16], + unsigned char *CardState, + unsigned char LoginState[3] ); + +/* +2.2 安全管理指令集(Group=2) +编号 指令内容 指令代码 函数定义 +1 管理员登录 0x20 int SJL19_OperLogin(int hPCI,unsigned char OperIndex,unsigned char OperPasswd[8]) +2 退到正常状态 0x21 int SJL19_LogoutToNormal(int hPCI) +3 退到未登录状态 0x22 int SJL19_LogoutToNologin(int hPCI) +4 修改管理员口令 0x23 int SJL19_ChangePassword(int hPCI,unsigned char OperIndex,unsigned char OldPwd[8],unsigned char NewPwd[8]) +*/ +extern int SJL19_OperLogin(int hPCI, unsigned char OperIndex, unsigned char OperPasswd[8]); +extern int SJL19_LogoutToNormal(int hPCI); +extern int SJL19_LogoutToNologin(int hPCI); +extern int SJL19_ChangePassword(int hPCI, unsigned char OperIndex, unsigned char OldPwd[8], unsigned char NewPwd[8]); +extern int SJL19_GenerateRand(int hPCI, unsigned char rand[16]); +extern int SJL19_ReadFlash(int hPCI, unsigned int address, unsigned char *data, unsigned int datalen); +extern int SJL19_WriteFlash(int hPCI, unsigned int address, unsigned char *data, unsigned int datalen); +extern int SJL19_SetLmkToTemp(int hPCI, unsigned char lmk[800]); +extern int SJL19_MoveLmkToWork(int hPCI); +extern int SJL19_ConvertDataByLMK_TempToWork(int hPCI, int Cipher, int Index, unsigned char Data[16]); +extern int SJL19_ConvertDataByLMK_WorkToTemp(int hPCI, int Cipher, int Index, unsigned char Data[16]); +extern int SJL19_EncryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len); +extern int SJL19_DecryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len); +extern int SJL19_EncryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len); +extern int SJL19_DecryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len); +/*用工作密钥(密文)加密数据*/ +extern int SJL19_EncryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher, + unsigned char WorkKey[16], unsigned char *Data, + unsigned int data_len); +/*用工作密钥(密文)解密数据*/ +extern int SJL19_DecryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher, + unsigned char WorkKey[16], unsigned char *Data, + unsigned int data_len); +/* 产生RSA密钥对(私钥明文)*/ +extern int SJL19_GenerateRsaKey(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]); +/* 产生RSA密钥对(私钥密文)*/ +extern int SJL19_GenerateRsaEncKey(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]); +/* 用RSA公钥加密数据*/ +extern int SJL19_EncryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len); +/* 用RSA公钥解密数据*/ +extern int SJL19_DecryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥明文加密数据*/ +extern int SJL19_EncryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥明文解密数据*/ +extern int SJL19_DecryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥密文加密数据*/ +extern int SJL19_EncryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/* 用RSA私钥密文加密数据*/ +extern int SJL19_DecryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len); +/*数据由LMK加密转换为用工作密钥(密文)加密*/ +extern int SJL19_EncryptBy_LMKToEncWorkkey(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len); +/*数据由工作密钥(密文)加密转换为用LMK加密*/ +int SJL19_EncryptBy_EncWorkkeyToLMK(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len); +/*数据由工作密钥一(密文)加密转换为用工作密钥二(密文)加密*/ +extern int SJL19_EncryptBy_EncWorkkey1ToEncWorkkey2(int hPCI, int Cipher, int Index1, int Index2, + int LMKCipher, + unsigned char WorkKey1[16], + unsigned char WorkKey2[16], + unsigned char *Data, int data_len); +/*数据在同一LMK下进行加密算法转换*/ +extern int SJL19_ConvertByLMK(int hPCI, int Index,int LMKCipher1, int LMKCipher2,unsigned char *Data, int data_len); + +/*数据在同一工作密钥(密文)下进行加密算法转换*/ +extern int SJL19_ConvertByWorkKey(int hPCI, int Index,int LMKCipher, int KeyCipher1, int KeyCipher2, + unsigned char WorkKey[16],unsigned char *Data, int data_len); + +/*PINBLOCK由工作密钥一(密文)加密转为PIN用工作密钥二(密文)加密*/ +extern int SJL19_PinblockToPin(int hPCI, int Cipher, int Index1, int Index2, + int LMKCipher, unsigned char PINFormat, + unsigned char WorkKey1[16], unsigned char WorkKey2[16], + unsigned char PAN[8], unsigned char PINBLOCK[8]//PinBlock(In)Pin(Out) + ); +/* PIN用工作密钥一(密文)转为PINBLOCK用工作密钥二(密文)加密*/ +extern int SJL19_PinToPinblock(int hPCI, int Cipher, int Index1, int Index2, + int LMKCipher, unsigned char PINFormat, + unsigned char WorkKey1[16], unsigned char WorkKey2[16], + unsigned char PAN[8], unsigned char PINBLOCK[8]//Pin(In)PinBlock(Out) + ); +extern int SJL19_MD5(int hPCI, unsigned char *Data, unsigned int data_len, unsigned char Code[16]); + +#endif diff --git a/INCLUDE/asc16.h b/INCLUDE/asc16.h new file mode 100644 index 0000000..7af2a09 --- /dev/null +++ b/INCLUDE/asc16.h @@ -0,0 +1,119 @@ +#ifndef _ASC16_H_ +#define _ASC16_H_ + +extern unsigned char ASC16_Begin; + +/* 8*16点阵数字 */ +extern unsigned char ASC16_Num[10][16]; + +/*8*16点阵斜杠符号*/ +extern unsigned char ASC16_Slash[16]; + +/* 8*16点阵星号*/ +extern unsigned char ASC16_Star[16]; +/* 8*16点阵小数点*/ +extern unsigned char ASC16_Dot[16]; +/* 8*16点阵逗号*/ +extern unsigned char ASC16_Comma[16]; +/* 8*16点阵空格*/ +extern unsigned char ASC16_Space[16]; +/* 8*16点阵减号*/ +extern unsigned char ASC16_Sub[16]; +/* 8*16点阵实心左箭头*/ +extern unsigned char ASC16_Arrow[16]; +/* 8*16点阵大于号*/ +extern unsigned char ASC16_Above[16]; +/* 8*16点阵小于号*/ +extern unsigned char ASC16_Below[16]; +/* 8*16点阵惊叹号*/ +extern unsigned char ASC16_Claim[16]; +/* 8*16点阵冒号*/ +extern unsigned char ASC16_Colon[16]; +/* 8*16点阵左括号*/ +extern unsigned char ASC16_LBrack[16]; +/* 8*16点阵右括号*/ +extern unsigned char ASC16_RBrack[16]; +/* 8*16点阵对勾*/ +//unsigned char ASC16_Right[16]={0x80,0x00,0x00,0x00,0x80,0xC0,0x60,0x00,0x01,0x03,0x06,0x03,0x01,0x00,0x00,0x00}; +/* 8*16点阵问号*/ +extern unsigned char ASC16_What[16]; +/* 8*16点阵左方括号*/ +extern unsigned char ASC16_LFBrack[16]; +/* 8*16点阵右方括号*/ +extern unsigned char ASC16_RFBrack[16]; +/*8*16点阵 I */ +extern unsigned char ASC16_IChar[16]; +/*8*16点阵 P */ +extern unsigned char ASC16_PChar[16]; +/*8*16点阵D*/ +extern unsigned char ASC16_DChar[16]; +/*8*16点阵N*/ +extern unsigned char ASC16_NChar[16]; +/*8*16点阵S*/ +extern unsigned char ASC16_SChar[16]; +/*8*16点阵T*/ +extern unsigned char ASC16_TChar[16]; +/*8*16点阵a*/ +extern unsigned char ASC16_aChar[16]; +/*8*16点阵g*/ +extern unsigned char ASC16_gChar[16]; +/*8*16点阵x*/ +extern unsigned char ASC16_xChar[16]; +/*8*16点阵A*/ +extern unsigned char ASC16_A_Char[16]; +/*8*16点阵B*/ +extern unsigned char ASC16_BChar[16]; +/*8*16点阵B*/ +extern unsigned char ASC16_B_Char[16]; +/*8*16点阵C*/ +extern unsigned char ASC16_CChar[16]; +/*8*16点阵D*/ +extern unsigned char ASC16_D_Char[16]; +/*8*16点阵E*/ +extern unsigned char ASC16_EChar[16]; +/*8*16点阵E*/ +extern unsigned char ASC16_E_Char[16]; +/*8*16点阵F*/ +extern unsigned char ASC16_F_Char[16]; +/*8*16点阵U*/ +extern unsigned char ASC16_U_Char[16]; +/*8*16点阵K*/ +extern unsigned char ASC16_K_Char[16]; +/*8*16点阵M*/ +extern unsigned char ASC16_M_Char[16]; +/*8*16点阵L*/ +extern unsigned char ASC16_L_Char[16]; +/*8*16点阵G*/ +extern unsigned char ASC16_G_Char[16]; +/*8*16点阵W*/ +extern unsigned char ASC16_WChar[16]; +/*8*16点阵O*/ +extern unsigned char ASC16_OChar[16]; +/*8*16点阵X*/ +extern unsigned char ASC16_X_Char[16]; +/*8*16点阵Y*/ +extern unsigned char ASC16_Y_Char[16]; +/*8*16点阵Z*/ +extern unsigned char ASC16_Z_Char[16]; +/*8*16点阵R*/ +extern unsigned char ASC16_R_Char[16]; +/* *8*16点阵'N' */ +extern unsigned char ASC16_N_Char[16]; +/* *8*16点阵'S' */ +extern unsigned char ASC16_S_Char[16]; +/* *8*16点阵'J' */ +extern unsigned char ASC16_J_Char[16]; +/* *8*16点阵'H' */ +extern unsigned char ASC16_H_Char[16]; +/* *8*16点阵'r' */ +extern unsigned char ASC16_r_Char[16]; +/* *8*16点阵'd' */ +extern unsigned char ASC16_d_Char[16]; +/* *8*16点阵'L' */ +extern unsigned char ASC16_L_Char[16]; +/* *8*16点阵'V' */ +extern unsigned char ASC16_V_Char[16]; + +extern unsigned char ASC16_End; + +#endif /* ASC16_H_ */ diff --git a/INCLUDE/asc8.h b/INCLUDE/asc8.h new file mode 100644 index 0000000..a361da8 --- /dev/null +++ b/INCLUDE/asc8.h @@ -0,0 +1,29 @@ +#ifndef _ASC8_H_ +#define _ASC8_H_ + +/* 6*8点阵数字*/ +unsigned char ASC8_Num[16][6]; +/* 6*8点阵小数点*/ +unsigned char ASC8_Dot[6]; +/* 6*8点阵逗号*/ +unsigned char ASC8_Comma[6]; +/* 6*8点阵空格*/ +unsigned char ASC8_Space[6]; +/* 6*8点阵减号*/ +//unsigned char ASC8_Sub[6]; +/* 6*8点阵星号*/ +unsigned char ASC8_Star[6]; +/* 6*8点阵下划线*/ +unsigned char ASC8_Line[6]; +/* 6*8点阵冒号*/ +unsigned char ASC8_Colon[6]; +/* 6*8点阵对勾*/ +//unsigned char ASC8_Right[6]={0x10,0x20,0x10,0x08,0x04,0x02}; +/* 6*8点阵叉号*/ +//unsigned char ASC8_Cross[6]={0x42,0x24,0x18,0x18,0x24,0x42}; +/* 6*8点阵斜线*/ +unsigned char ASC8_Bias[6]; + + +#endif + diff --git a/INCLUDE/common.h b/INCLUDE/common.h new file mode 100644 index 0000000..07e805f --- /dev/null +++ b/INCLUDE/common.h @@ -0,0 +1,157 @@ +#ifndef __COMMON_H__ +#define __COMMON_H__ + +#include +#include + + + +void PrintHex(char *prompt,unsigned char * data,int len); +void PrintHex_1(unsigned char *data,int len); +void PrintAscii(unsigned char *data,int len); +void trim(char *str); +int my_getdate( char date[9] ); +int my_getyear(); +int my_getmonth(); +int my_getwday(); +int my_getday(); +int my_gethour(); +int my_getmin(); +int my_getsec(); +void my_swap4byte(char text[4]); +unsigned int my_getrnd(int cnt); +int CalcLenByDir(char *dir); +void my_GenerateMK(unsigned char *rand,int len); +int my_checkdate(char date[8]); +int alltrim(char *s); +void byte_not(unsigned char *desc,unsigned char *src,int len); +void byte_xor(unsigned char *desc,unsigned char *src,int len); +void byte_sub(unsigned char *desc,unsigned char *src,int len); +void byte_add(unsigned char *desc,unsigned char *src,int len); +void getcrc_one(unsigned char *crc,unsigned char *data,int len); +void GetErrMsg(int ErrNo,char *msg); +char * GetLogTime(void); + +int SystemCmd(char * cmd); +FILE * PopenCmd(char * cmd,char * flag); +int FindProcess(char * name); +void signal_set(); + +//函数功能接口定义区 + +void read_ini_file(); + + + + +//按密钥结构将密钥内容写文件 +int WritekeyToFile(unsigned char *keyfile, + unsigned char *key_organizationnum, + unsigned char *key_type, + unsigned char *key_serialnum, + unsigned int key_len, + unsigned char *key_cryptograph, + unsigned char *key_mac, + unsigned char *key_starttime, + unsigned char *key_endtime, + unsigned char * key_index, + unsigned char * key_algid); + +//从某个密钥文件中按密钥结构取该密钥的内容 +int ReadkeyFromFile(unsigned char *keyfile, + unsigned char *key_organizationnum, + unsigned char *key_type, + unsigned char *key_serialnum, + unsigned int *key_len, + unsigned char *key_cryptograph, + unsigned char *key_mac, + unsigned char *key_starttime, + unsigned char *key_endtime, + unsigned char * key_index, + unsigned char * key_algid); + +//从某个密钥文件中取该密钥所属的机构号 +int GetKeyOrganizationnumFromFile(unsigned char *keyfile, unsigned char *key_organizationnum, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥所属的类型 +int GetKeyTypeFromFile(unsigned char *keyfile, unsigned char *key_type, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥的编号 +int GetKeySerialnumFromFile(unsigned char *keyfile, unsigned char *key_serialnum, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥的长度 +int GetKeylenFromFile(unsigned char *keyfile, unsigned char *key_len, unsigned char *Key_Value, int *keylen); + +//从某个密钥文件中取该密钥的密文值 +int GetKeyCryptographFromFile(unsigned char *keyfile, unsigned char *key_cryptograph, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥明文md5_MAC +int GetKeyMacFromFile(unsigned char *keyfile, unsigned char *key_mac, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥的起始生命周期 +int GetKeyStarttimeFromFile(unsigned char *keyfile, unsigned char *key_starttime, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥的截至生命周期 +int GetKeyEndtimeFromFile(unsigned char *keyfile, unsigned char *key_endtime, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥主密钥加密索引 +int GetKeyIndexFromFile(unsigned char *keyfile, unsigned char *key_index, unsigned char *Key_Value); + +//从某个密钥文件中取该密钥的算法模式 +int GetKeyAlgidFromFile(unsigned char *keyfile, unsigned char *key_algid, unsigned char *Key_Value); + + +//执行某个linux指令的函数 +int MSystemCmd(char * cmd); + +//创建密钥文件夹 +int SetKeyDir(unsigned char *dir, unsigned char *key_organizationnum, unsigned char *key_type); + +//获取当前密钥类型目录字符串 以及 字符串的长度 +int GetKeyDir(unsigned char *dir, unsigned char *key_organizationnum, unsigned char *key_type); + +//文件名约束函数 +int select_dir(const struct dirent *dir); + +void get_system_time(); +void set_system_time(char * time); + +unsigned char GetKey(void); +unsigned char WaitKeyin(void); +unsigned char WaitKeyin_Combine_key(); + +int GetKeyValueFile(char *filename, char* Key, char *KeyValue); +int SetKeyValueFile(char *file_name, char *key_name, char *key_value); +void append_key(char * file_name,char * key,char * value); + +#define E_SYS_USER 0x70 +#define E_SYS_PWD_ERROR 0x71 + +int check_sys_pwd(const char *pwdtext); +void modify_sys_pwd_behave(char * user_name ,char * pwd); +void modify_sys_pwd(int old_pwd_len,char * old_pwd,int new_pwd_len,char * new_pwd); +void system_login(unsigned char * pwd, int pwd_len); +void sysUsecTime(long * sec, long *usec); + + +int CheckHex(int length, unsigned char *hex); +int CheckDec(int length, unsigned char *dec); +int GetDecLen(int length, unsigned char *dec); +int GetHexLen(int length, unsigned char *Hex); +int CheckLen(int inlen, int length); +int CheckDataLen(int inlen, int length); + +int check_K(int length, unsigned char *hex); +void AddOddParity(int len, unsigned char *key); +int VerifyOddParity(int len, unsigned char *key); +char variant(unsigned char ch); +int check_N(unsigned char len,unsigned char *data); +void ScanDec(int len, unsigned char *inBuf, unsigned char *outBuf); +void ScanDecForCSC(int len, unsigned char *inBuf, unsigned char *outBuf); +void bcd_to_dsp(char * bcd, int len, char *dsp); +void read_ini_file(); +void reduced_bcd_to_dsp(char * bcd, int len, char *dsp); +void vip_dsp_to_bcd(char * dsp, int len, char *bcd); + + +#endif diff --git a/INCLUDE/ctranscode.h b/INCLUDE/ctranscode.h new file mode 100644 index 0000000..54a525d --- /dev/null +++ b/INCLUDE/ctranscode.h @@ -0,0 +1,12 @@ +#ifndef __CTRANSCODE_H__ +#define __CTRANSCODE_H__ + + +void Byte2String(int len, unsigned char *InBuf, unsigned char *OutBuf); +void String2Byte(int len, unsigned char *InBuf, unsigned char *OutBuf); +void hextoasc(unsigned char *asc,unsigned char *hex,int len); +void asctohex(unsigned char *hex,unsigned char *asc,int len); + + + +#endif diff --git a/INCLUDE/custom.h b/INCLUDE/custom.h new file mode 100644 index 0000000..3aacbe5 --- /dev/null +++ b/INCLUDE/custom.h @@ -0,0 +1,24 @@ +#ifndef __CUSTOM__H__ +#define __CUSTOM__H__ + + + + +#include "ctranscode.h" +#include "asc16.h" +#include "asc8.h" +#include "hzk16.h" +#include "lcddisplay.h" +#include "paneldeal.h" +#include "global.h" +#include "common.h" +#include "serial.h" +#include "error_no.h" +#include "SJL19.h" +#include "sham.h" +#include "usboperate.h" +#include "IC_API.h" +#include "utils.h" +#include "usb.h" +#include "define.h" +#endif diff --git a/INCLUDE/define.h b/INCLUDE/define.h new file mode 100644 index 0000000..5f7cabc --- /dev/null +++ b/INCLUDE/define.h @@ -0,0 +1,1506 @@ +#ifndef __DEFINE__H__ +#define __DEFINE__H__ + +#include + + +#include +#include +#include +#include +#include "asc16.h" +#include "asc8.h" +#include "hzk16.h" +#include "lcddisplay.h" +#include +#include "utils.h" +#include "sham.h" +#include "serial.h" +#include +#include "IC_API.h" +#define OPEN_HYK16_FAIL 0x10 //打开并初始化HYK16卡失败 +#define RESET_HYK16_FAIL 0x11 //重置核验卡失败 +#define CHECK_HYK16_SELF_FAIL 0x12 //卡自检失败 +#define GET_HYK16_ID_FAIL 0x13 //获取卡的序列号失败 +#define GET_HYK16_MK_FAIL 0x14 //生成银行MK失败 +#define READ_HYK16_MK_FAIL 0x15 //读入银行MK失败 +#define HYK16_Check_Key_Pay_FAIL 0x16 //card 核验失败 +#define HYK16_Add_Key_Pay_FAIL 0x17 //增发支付密码器失败 +#define HYK16_Update_MK_FAIL 0x18 //更新主密钥失败 +#define HYK16_Conver_MK_FAIL 0x19 //转换银行主密钥失败 + + +//#define thread_num 64 +#define thread_num 20 +#define thread_num_speedtest 64 + +//#define EX_thread_num 32 +#define EX_thread_num 16 +#define EX_thread_num_speedtest 64 + +#define EX_SM4_NUM 8 +#define EX_AES_NUM 4 +#define EX_DES_NUM 4 //DES 3DES公用 + + + + + +#define FUNC_MODE 0 //function test mode +#define DIAG_MODE 1 + +#define SN_TEST 0 +#define HRNG_FAST_TEST 1 +#define HRNG_ALL_TEST 2 +#define ALG_TEST 3 +#define SDRAM_TEST 4 +#define SRAM_RD_TEST 5 +#define SRAM_WR_TEST 6 +#define FLASH_RD_TEST 7 +#define FLASH_WR_TEST 8 +#define ALG_SM1_TEST 10 +#define ALG_SSF33_TEST 11 +#define ALG_SM4_TEST 12 +#define ALG_AES_TEST 13 +#define ALG_DES_TEST 14 +#define ALG_TDES_TEST 15 +#define ALG_IDEA_TEST 16 +#define ALG_RSA_TEST 17 +#define ALG_SM2_TEST 18 +#define ALG_SM3_TEST 19 + + +#define _ECCref_MAX_BITS 512 +#define _ECCref_MAX_LEN ((_ECCref_MAX_BITS+7)/8) +#define _ECCref_MAX_DATALEN 5120 + +//接口相关的定义 + +typedef struct _version_struct{ + unsigned char software_version[64]; + unsigned char check[8]; + unsigned char hardware_version[32]; + unsigned char SN_id[32]; +}version_struct; + +typedef struct _S_TRAN_ARG{ + unsigned char *idata; + unsigned char*odata; + unsigned int ilen; + unsigned int olen; + unsigned int rlen; + unsigned int chan; +}S_TRAN_ARG; +typedef struct _cos_struct{ + unsigned char HSC32K1Number; + unsigned char SSX1510Number; + unsigned char FreeData1; + unsigned char FreeData2; +}cos_struct; +typedef struct _EXAR_STRUCT{ + uint8_t bridge0; + uint8_t bridge1; + uint8_t SM4; + uint8_t AES; + uint8_t DES; +}exar_struct; + + +typedef struct _THREAD_ARG{ + int fd; + unsigned int thread_no; + unsigned int Arith; + unsigned int arith_mode; + unsigned int datalen; +}THREAD_ARG; + + +#define STANDARD_919 0x00 +#define STANDARD_99 0x01 +#define STANDARD_UNIONPAY 0x02 + +#define MAX_PCIBUF_SIZE (8192*2) +#define PCI_PACKAGE_HEAD_LEN (32) + +//----算法定义----// + + + + +#define ARITH_SM1_SPEED 0x01 +#define ARITH_SSF33_SPEED 0x02 +#define ARITH_SM4_SPEED 0x03 +#define ARITH_DES_SPEED 0x04 +#define ARITH_3DES_SPEED 0x05 +//soft arith +#define ARITH_IDEA_SPEED 0x06 +#define ARITH_AES_SPEED 0x07 + +//----算法定义----// +#define ARITH_DES 0x01 +#define ARITH_3DES 0x02 +#define ARITH_IDEA 0x03 +#define ARITH_SM1 0x04 +#define ARITH_AES 0x05 +#define ARITH_SM4 0x06 +#define ARITH_SSF33 0x07 + +#define W_NET ARITH_SM1 +#define W_NET_2 ARITH_3DES +#define S_NET ARITH_SM1 +#define S_NET_2 ARITH_3DES +#define N_NET 0x00 + + +#define ARITH_DES_LEN 0x04 +#define ARITH_3DES_LEN 0x05 + +#define CMD_SM4 0x801 +#define CMD_AES 0x802 +#define CMD_DES 0x803 +#define CMD_TDES 0x804 + +/* Cmd1 命令类型*/ +#define PCI_SYMMETRY_ED 0x01//对称算法加解密 +#define PCI_ASYMMETRY_ED 0x02//非对称算法加解密 +#define PCI_HASH 0x03//哈希算法 +#define PCI_SYMTOSYM_ENC 0x04//对称算法转加密 +#define PCI_SYMTOASYM_ENC 0x05//对称与非对称算法转加密 +#define PCI_ARITHMETIC_TEST 0x06//算法正确性检验 +#define PCI_SYMKEY_GENERATION 0x07//对称密钥随机生成 +#define PCI_ASYMKEY_GENERATION 0x08//非对称密钥随机生成 +#define PCI_SYMKEY_INPORT_EXPORT 0x09//对称密钥导入导出 +#define PCI_ASYMKEY_INPORT_EXPORT 0x0A//非对称密钥导入导出 +#define PCI_SIGN_SIGNCHECK 0x0B//雷卡体系签名验签 +#define PCI_PIN_DEAL 0x0C//PIN处理 +#define PCI_DEVICE_MANAGE 0x0D//设备管理 +#define PCI_LMK_MANAGE 0x0E//主密钥管理 +#define PCI_HARDWARE_DETECTION 0x0F//硬件自检 +#define PCI_SM2_SYNC 0x13//密钥协商 +#define PCI_AN_PIN 0x81//专用指令:AN_PIN +#define PCI_ICBC 0x82//工总行指令 + + + + +/* Cmd2 对称算法加解密*/ +#define PCI_DES_ENCRYPT 0x11 //DES加密 +#define PCI_DES_DECRYPT 0x12 //DES解密 +#define PCI_DES3_ENCRYPT 0x13 // 3DES加密 +#define PCI_DES3_DECRYPT 0x14 // 3DES解密 +#define PCI_IDEA_ENCRYPT 0x15 //IDEA加密 +#define PCI_IDEA_DECRYPT 0x16 //IDEA解密 +#define PCI_AES_ENCRYPT 0x17 //AES加密 +#define PCI_AES_DECRYPT 0x18 //AES解密 +#define PCI_SM4_ENCRYPT 0x19 //SM4加密 +#define PCI_SM4_DECRYPT 0x1A //SM4解密 +#define PCI_SM1_ENCRYPT 0x1B //SM1加密 +#define PCI_SM1_DECRYPT 0x1C //SM1解密 + +/* Cmd2 非对称算法加解密*/ +#define SM2_ENCRYPT 0x21//SM2公钥加密 +#define SM2_DECRYPT 0x22//SM2私钥解密 +#define RSA_ENCRYPT 0x23//RSA公钥加密 +#define RSA_DECRYPT 0x24//RSA 私钥解密 + +/* Cmd2 哈希*/ +#define SM3_HASH 0x31//用SM3做哈希 +#define SHA1_HASH 0x32 +#define SHA256_HASH 0x33 +#define MD5_HASH 0x34 +#define SM3_USERID_HASH 0x35 + + + + + +/* Cmd2 对称算法转加密*/ +#define SYMTOSYM_ENC 0x41 + +/* Cmd2 对称与非对称算法转加密*/ +#define SYMTOSM2_ENC 0x51//对称算法到SM2算法转加密 +#define SYMTORSA_ENC 0x52//对称算法到RSA算法转加密 +#define SM2TOSYM_ENC 0x53//SM2到对称算法 +#define RSATOSYM_ENC 0x54//RSA到对称算法 + +/* Cmd2 */ +#define SM4_ENCRYPT_TEST 0x61//SM4加密测试 +#define SM4_DECRYPT_TEST 0x62//SM4解密测试 + +/* Cmd2 对称密钥随机生成*/ +#define SYMKEY_GENERATION 0x71 + +/* Cmd2 非对称密钥随机生成*/ +#define SM2KEY_GENERATION 0x81//SM2公私钥对生成 +#define RSAKEY_GENERATION 0x82//RSA公私钥对生成 + +/* Cmd2 对称密钥导入导出*/ +#define SYMKEY_CIPHER_INPORT 0x91//对称密钥密文导入 +#define SYMKEY_CIPHER_EXPORT 0x92//对称密钥密文导出 + + + + +/* Cmd2 非对称密钥导入导出*/ +#define SM2PUBCKEY_CLEAR_INPORT 0xA1//SM2公钥明文导入 +#define SM2PUBKEY_CLEAR_EXPORT 0xA2//SM2公钥明文导出 +#define SM2PRIKEY_CIPHER_INPORT 0xA3//SM2私钥密文导入 +#define SM2PRIKEY_CIPHER_EXPORT 0xA4//SM2私钥密文导出 +#define SM2KEY2_INPORT 0xA5//SM2密钥对导入 +#define SM2KEY2_EXPORT 0xA6//SM2密钥对导出 +#define RSAPUBCKEY_CLEAR_INPORT 0xA7//RSA公钥明文导入 +#define RSAPUBKEY_CLEAR_EXPORT 0xA8//RSA公钥明文导出 +#define RSAPRIKEY_CIPHER_INPORT 0xA9//RSA私钥密文导入 +#define RSAPRIKEY_CIPHER_EXPORT 0xAA//RSA私钥密文导出 +#define RSAKEY2_INPORT 0xAB//RSA密钥对导入 +#define RSAKEY2_EXPORT 0xAC//RSA密钥对导出 + +/* Cmd2 雷卡体系签名验签*/ +#define RSA_SIGN_GENERATION 0xB1//RSA签名 +#define RSA_SIGN_CHECK 0xB2//RSA验签 +#define SM2_SIGN_GENERATION 0xB3//SM2签名 +#define SM2_SIGN_CHECK 0xB4//SM2验签 + +/* Cmd2 PIN处理*/ +#define PINBLOCK_CHANGE_ENC 0xC1//PINBLOCK转加密 +#define PVV_CALCULATION 0xC2//PVV计算 +#define CVV_CHCEK 0xC3//PVV验证 +#define PIN_OFFSET_CALCULATION 0xC4//PIN offset计算 +#define PIN_OFFSET_CHECK 0xC5//PIN offset验证 +#define PIN_PINBLOCK_CALCULATION 0xC6//生成PIN及PINBLOCK +#define PIN_PRINT 0xC7//PIN打印 + +/* Cmd2 设备管理*/ +#define DEVICE_INITIALIZE 0xD1//设备初始化 +#define DEVICE_ACCESS_LIMIT 0xD2//设备访问权限 +#define DEVICE_DETECTION 0xD3//设备自检 +#define SM2_CURVE_NITIALIZE 0xD4//SM2曲线初始化 +#define RANDOM_GENERATION 0xD5//生成随机数 +#define WRITE_DEVICE_INFORMATION 0xD6//写设备信息 +#define READ_DEVICE_INFORMATION 0xD7//读设备信息 +#define READ_VERSION_INFORMATION 0xD8//读版本信息 +#define READ_COS_INFORMATION 0xDF//读硬件设备信息 + +/* Cmd2 主密钥管理*/ +#define GENERATE_COMPONENT 0XE0 +#define LMK_GENERATION 0xE1//生成系统主密钥 +#define LMK_LOAD 0xE2//装载系统主密钥 +#define LMK_BACKUP 0xE3//备份系统主密钥 +#define LMK_RECOVER 0xE4//恢复系统主密钥 +#define LMK_SEED_DESTORY 0xE5//销毁系统主密钥种子 +#define CKEY_DISPERSE 0xE6//通信密钥分散成n个分量 +#define DISFACTOR_KEY_DISPERSE 0xE7//带分散因子密钥分散 +#define CKEY_CLEARCOMPONENT_COMBINE 0xE8//通信密钥n个明文分量合成 +#define COMBINEFACTOR_COMPONENT_COMBINE 0xE9//带合成因子分量合成 +#define S_COMPONENT_DFACTOR_DISPERSE 0xEA//单分量带分散因子分散 +#define LMK_REPLACE 0xEB//主密钥更新 +#define TEST_LMK_LOAD 0xEC//加载测试主密钥 +#define WORKSPACE_LMKSTATUS_CHECK 0xED//工作区主密钥自检 +#define TEMPAREA_LMKSTATUS_CHECK 0xEE//临时区主密钥自检 +#define LMK_DESTORY 0xEF//销毁主密钥 + +/* AN_PIN */ +#define AN_PIN_GENERATION 0X01//AN-PIN生成 +#define AN_PIN_DECRYPT 0X02//AN-PIN解密 + +/* Cmd2 硬件自检*/ +#define HARDWARE_DETECTION 0xF1//硬件自检 +#define ARITHINTERFACE_SYMM 0xF2//对称算法接口 +#define ARITHINTERFACE_SM2 0xF3//SM2算法接口 +#define ARITHINTERFACE_RSA 0xF4//RSA算法接口 +#define PCICOMMUNICATION 0xF5//PCI通讯测试 +#define STORE_TESET_CMD2 0xF6//存储设备读写测 + +/* Cmd2 工总行指令*/ // 20141107 add by sgf +#define ICBC_CALC_KCV 0x01 //计算KCV +#define ICBC_TRANSTOICBC 0x02 //转加密到ICBC格式 +#define ICBC_TRANSFROMICBC 0x03 //从ICBC转加密到自有格式 +#define ICBC_IMPORTDISP 0x04 //导入分量 +#define ICBC_IMPORTLMK 0x05 //导入ICBC主密钥 +#define ICBC_LMKTEST_CUR 0x06 //ICBC主密钥检测 + +/*加密或者解密*/ +#define ENCRYPT 1 +#define DENCRYPT 0 + +/*加密模式*/ +#define INVALID 0x00 //无效模式 +#define ECB 0x01 //ECB模式 +#define CBC 0x02 //CBC 模式 +#define CFB 0x03 //CFB 模式 +#define OFB 0x04 //OFB模式 + + + +#define _Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y)))) + + + +//20141008 sgf +//----模式定义----// // for SymmArithinterface +#define ECB_ENC 0x00 +#define ECB_DEC 0x01 +#define CBC_ENC 0x02 +#define CBC_DEC 0x03 +#define CFB_ENC 0x04 +#define CFB_DEC 0x05 +#define OFB_ENC 0x06 +#define OFB_DEC 0x07 + +#define _RSAref_MAX_BITS 2048 +#define _RSAref_MAX_LEN ((_RSAref_MAX_BITS + 7)/8) +#define _RSAref_MAX_PBITS ((_RSAref_MAX_BITS + 1)/2) +#define _RSAref_MAX_PLEN ((_RSAref_MAX_PBITS + 7)/8) + + +typedef struct +{ + unsigned int bits; + unsigned char modulus[_RSAref_MAX_LEN]; + unsigned char exponent[_RSAref_MAX_LEN]; +}RSArefPubKey_st; + +typedef struct +{ + unsigned int bits; + unsigned char modulus[_RSAref_MAX_LEN]; + unsigned char publicExponent[_RSAref_MAX_LEN]; + unsigned char exponent[_RSAref_MAX_LEN]; + unsigned char prime[2][_RSAref_MAX_PLEN]; + unsigned char primeExponent[2][_RSAref_MAX_PLEN]; + unsigned char coefficient[_RSAref_MAX_PLEN]; +}RSArefPriKey_st; + + +typedef struct +{ + RSArefPubKey_st PubKey; + RSArefPriKey_st PriKey; +}RSArefKeyPair_st; + + + + + +typedef struct tTransSymmAsymm +{ + unsigned char LMKIndex; // 主密钥索引 + unsigned char ProtectArith; // 保护算法 + unsigned char *SymmKeyOrIndex; // 指向对称密钥或其索引(SymmKeyLen=4) + unsigned char SymmKeyLen; // 对称密钥长度 + unsigned char SymmArith; // 对称算法 + unsigned char AppMode; + unsigned char Scheme; + unsigned char *AsymmKeyOrIndex; + unsigned char AsymmKeyLen; + unsigned char *DataIn; + unsigned int DataInLen; + unsigned char *IV; + unsigned char *DataOut; + unsigned int DataOutLen; +}tTransSymmAsymm; + +typedef struct // ECC(SM2)签名 +{ + unsigned int len; + unsigned char r[_ECCref_MAX_LEN]; // 签名的r部分 + unsigned char s[_ECCref_MAX_LEN]; // 签名的s部分 +}ECCSignnature_st; + +typedef struct // RSA签名 +{ + unsigned int Len; + unsigned char SignValue[_RSAref_MAX_LEN]; +}RSArefSignData_st; + + + + +/*Device Managing*/ +typedef struct _DEVICEINFO{ + unsigned char IssuerName[40]; + unsigned char DeviceName[16]; + unsigned char DeviceSerial[16]; + unsigned int DeviceVersion; + unsigned int StandardVersion; + unsigned int AsymAlgAbility[2]; + unsigned int SymAlgAbility; + unsigned int HashAlgAbility; + unsigned int BufferSize; +}DEVICEINFO; + + + + + + + +//------------------------------------------------// + + + + +typedef struct _S_DES_ARG{ + unsigned char *key; + unsigned char *idata; + unsigned char *odata; + unsigned char *iv; + unsigned int key_len; + unsigned int len; + unsigned int rlen; + unsigned int key_index; //for key in key ram of card when 0 key form outside, when 1-256 key from key ram + unsigned int enc; // 1 enc : 0 dec + unsigned int mode; // 1 CBC : 0 ECB + unsigned int chan; +}S_EX_ARG; + +//结构体定义 +typedef struct +{ + unsigned int bits; + unsigned char x[_ECCref_MAX_LEN]; // ECC公钥参数x + unsigned char y[_ECCref_MAX_LEN]; // ECC公钥参数y +}ECCrefPublicKey_st; + +typedef struct +{ + unsigned int bits; // 密钥位长(256位) + unsigned char K[_ECCref_MAX_LEN]; // ECC私钥 +}ECCrefPrivateKey_st; + +typedef struct // ECC(SM2)密钥对 +{ + ECCrefPublicKey_st PubKey; + ECCrefPrivateKey_st PriKey; +}ECCrefKeyPair_st; + +// sgf 2014.5.7 增加SM2算法密文结构体 +typedef struct +{ + unsigned char x[_ECCref_MAX_LEN]; + unsigned char y[_ECCref_MAX_LEN]; + unsigned char M[32]; + unsigned int L; + unsigned char C[_ECCref_MAX_DATALEN]; // C不 能 大 于 1 36字节 +}ECCCipher_st; + + + + +// 曲线定义 +#define _USER_Fp 0x0000 // 用户指定的曲线参数,存放于RAM接口 +#define _ISTECC_Fp_160 0x0001 // 信安推荐的160位曲线 +#define _NIST_Fp_192 0x0002 // NIST推荐的192位曲线 +#define _NIST_Fp_224 0x0003 // NIST推荐的224位曲线 +#define _NIST_Fp_256 0x0004 // NIST推荐的256位曲线 +#define _OSCCA_Fp_192 0x0005 // 国家密码局针对WAPI推荐的192位曲线 +#define _OSCCA_Fp_256_Old 0x0006 // 国家密码局较早推荐的256位曲线 +#define _OSCCA_Fp_256_New 0x0007 // 国家密码局最新推荐的256位曲线 + + +/*错误代码*/ +#define RET_PCI_SUCCESS (0x00) +#define ERR_PCI_CARDTIMEOUT (0x6A) //密押卡处理超时 +#define ERR_CARDWRITE 0x6B //写密押卡错误 +#define ERR_CARDREAD 0x6C //读密押卡错误 +#define ERR_CARDBANKNO 0x6D //行号已满 +#define ERR_OPENPCI 0x6E //密押卡打开失败 +#define ERR_CARDLEN 0x6F //卡数据长度错误 +#define ERR_DATACRC 0x68 //数据包CRC错误 +#define ERR_API_INPARA 0x69 //API输入参数错误 +#define ERR_MODE_OR_IVLEN 0x6A //模式与向量长度不匹配 +#define ERR_HW_TEST 0x67 //自检 + + + +// 随机数头文件 +#define RANDOM_RANDOMNESS_CIRCLE 1000 +#define RANDOM_RANDOMNESS_LEN 1024 //1024bit +#define RANDOM_RANDOMNESS_BLOCK 977 //8*8 //8*8*1024bit +#define RANDOM_RANDOMNESS_TOTAL_LEN (RANDOM_RANDOMNESS_LEN*RANDOM_RANDOMNESS_BLOCK) +#define RANDOM_SPEED_CIRCLE 10000 +#define RANDOM_SPEED_LEN 128 +#define RANDOM_SPEED_BUFF_LEN (1024*124) + +//判断是否是雷卡体系与金卡体系 +#define RACAL_CARD +#define LMK_GC_DEFAULT_PROTECT_INDEX 1 //本地保护LMK金卡默认索引号 + + +extern int g_hPCI1; +extern int g_hPCI2; + +extern int mutual_speedtest_card0; +extern int mutual_speedtest_card1; + + +//define ErrCode +#define ERR_RLEN -11 //rlen from api err but it should not happen +#define ERR_DATA -12 //data cmp err +#define ERR_STD -13 //standard test fail +#define ERR_SPD -14 //speed too low +#define ERR_RAND -15 //randomness not ok + + + +#define RANDOM_RANDOMNESS_LEVEL 0.97 //0.97 for factory 0.981 for GM test + + + + +#define SYMALG_RUN_CIRCLE 50 +//#define SYMALG_RUN_CIRCLE 10000 +#define SYMALG_SPEED_CIRCLE 2000 +#define EX_SYMALG_SPEED_CIRCLE 20000 + +#define SYMALG_MAX_CIRCLE 5000 + + +//#define SYMALG_MAX_LEN (0x800-256) //modify by grn 0321 +#define SYMALG_MAX_LEN (1024*11+512) //modify by grn +#define SYMALG_MAX_MOD (SYMALG_MAX_LEN+1) + +//#define EX_SYMALG_MAX_LEN (4096-128) +#define EX_SYMALG_MAX_LEN (8192) + +#define RSA_RUN_CIRCLE 1000 +#define RSA_SPEED_CIRCLE 1000 + +#ifdef CARD_DEBUG +#define RSA_MAX_CIRCLE 5000 +#else +#define RSA_MAX_CIRCLE 3000 //modify by grn 0321 +#endif + +#define SM2_RUN_CIRCLE 500 +#define SM2_SPEED_CIRCLE 5000 +//#define SM2_SPEED_CIRCLE 10000 + +#ifdef CARD_DEBUG +#define SM2_MAX_CIRCLE 10000 +#else +#define SM2_MAX_CIRCLE 10000 //modify by grn 0321 +#endif + +#define HASHALG_MAX_LEN (4096) +#define HASHALG_MAX_MOD (HASHALG_MAX_LEN+1) + +#define HASHALG_RUN_CIRCLE 1000 + +#ifdef CARD_DEBUG +#define HASHALG_MAX_CIRCLE 1000 +#else +#define HASHALG_MAX_CIRCLE 1000000 +#endif +#define HASHALG_SPEED_CIRCLE 1000 + + + + + + /* ----------SPEED_TH-------------- */ + +#define RSA1024_DEC_SPEED_TH 5700//5703//2300.0 //2600 | need to set this param to 2300 when SSX41 working at 105MHz +#define RSA1024_ENC_SPEED_TH 35000//37501//5500.0 + +#define RSA1408_DEC_SPEED_TH 1000//1094//30.0 +#define RSA1408_ENC_SPEED_TH 29000//30042//700.0 + +#define RSA1536_DEC_SPEED_TH 2400//2470//25.0 +#define RSA1536_ENC_SPEED_TH 25000//26276//600.0 + +#define RSA1984_DEC_SPEED_TH 0//10.0 +#define RSA1984_ENC_SPEED_TH 0//350.0 + +#define RSA2048_DEC_SPEED_TH 1200//1254//400.0 //450.0 | need to set this param to 400 when SSX41 working at 105MHz +#define RSA2048_ENC_SPEED_TH 14000//15916//300.0 + +#define SM2_DEC_SPEED_TH 8000 +#define SM2_ENC_SPEED_TH 8000 + +#define SM2_SIGN_SPEED_TH 30000 +#define SM2_VERIFY_SPEED_TH 30000 + + +#define SM3_SPEED_TH 0 +//软算法 +#define IDEA_SPEED_TH 60 //95 +#define AES_SPEED_TH 110 //204 + + +//0个盾芯片 +#define SM1_SPEED_TH_0 0 // 0 +#define SM4_SPEED_TH_0 100 // 120 +#define DES_SPEED_TH_0 110 // 130 +#define TDES_SPEED_TH_0 50 // 60 +#define SSF33_SPEED_TH_0 0 // 0 + + +//32盾芯片 +#define SM1_SPEED_TH_32 180 //220 +#define SM4_SPEED_TH_32 180 //220 +#define DES_SPEED_TH_32 180 //220 +#define TDES_SPEED_TH_32 180 //200 +#define SSF33_SPEED_TH_32 180 //220 + + +//64盾芯片 +#define SM1_SPEED_TH_64 265 //4//337 +#define SM4_SPEED_TH_64 265 //341 +#define DES_SPEED_TH_64 265 //345 +#define TDES_SPEED_TH_64 265 //343 +#define SSF33_SPEED_TH_64 265 //337 + + +//EX_ARITH +#define EX_SM4_SPEED_7035 4212 //4680.98*0.9//5800 +#define EX_AES_SPEED_7035 2157 //2930*0.9//4000 +#define EX_DES_SPEED_7035 4115 //5513.18*0.9//5800 +#define EX_TDES_SPEED_7035 3328 //3698*0.9//4400 + +#define EX_SM4_SPEED_7030 3000 //33340*0.9//3200 +#define EX_AES_SPEED_7030 2049 //2277*0.9//2500 +#define EX_DES_SPEED_7030 2440 //2399*0.9//2600 +#define EX_TDES_SPEED_7030 990 //951*0.9//1000 + + + + +#define WORD "=" + +#define PING1 "ping -I 192.168.1.1 192.168.1.11 -c 5 -w 30" +#define PING2 "ping -I 192.168.1.2 192.168.1.22 -c 5 -w 30" +#define PING3 "ping -I 192.168.2.1 192.168.2.11 -c 5 -w 30" +#define PING4 "ping -I 192.168.2.2 192.168.2.22 -c 5 -w 30" +#define PING5 "ping -I 192.168.3.1 192.168.3.11 -c 5 -w 30" +#define PING6 "ping -I 192.168.3.2 192.168.3.22 -c 5 -w 30" +#define PING7 "ping -I 192.168.4.1 192.168.4.11 -c 5 -w 30" +#define PING8 "ping -I 192.168.4.2 192.168.4.22 -c 5 -w 30" +#define PING9 "ping -I 192.168.5.1 192.168.5.11 -c 5 -w 30" +#define PING10 "ping -I 192.168.5.2 192.168.5.22 -c 5 -w 30" +#define PING11 "ping -I 192.168.6.1 192.168.6.11 -c 5 -w 30" +#define PING12 "ping -I 192.168.6.2 192.168.6.22 -c 5 -w 30" +#define PING1_IPV6 "ping6 ::192.168.10.8 -c 5 -w 30" +#define PING2_IPV6 "ping6 ::192.168.11.8 -c 5 -w 30" +#define PING3_IPV6 "ping6 ::192.168.12.8 -c 5 -w 30" +#define PING4_IPV6 "ping6 ::192.168.13.8 -c 5 -w 30" +#define PING5_IPV6 "ping6 ::192.168.14.8 -c 5 -w 30" +#define PING6_IPV6 "ping6 ::192.168.15.8 -c 5 -w 30" +#define PING7_IPV6 "ping6 ::192.168.16.8 -c 5 -w 30" +#define PING8_IPV6 "ping6 ::192.168.17.8 -c 5 -w 30" +#define PING9_IPV6 "ping6 ::192.168.18.8 -c 5 -w 30" +#define PING10_IPV6 "ping6 ::192.168.19.8 -c 5 -w 30" +#define PING11_IPV6 "ping6 ::192.168.20.8 -c 5 -w 30" +#define PING12_IPV6 "ping6 ::192.168.21.8 -c 5 -w 30" + + +/***********************单片机处理出现的错误,非密押机发送过来的错误***********/ +#define R_ACK_PWD_ERROR 0xC1 //确认口令错误 // +#define CHECK_IP_RESULT_ERROR 0xC2 //IP地址格式错误 // +#define CHECK_MASK_RESULT_ERROR 0xC6 //掩码格式错误 // +#define CHECK_GATEWAY_RESULT_ERROR 0xC7 //网关格式错误 // +#define CHECK_DNS_RESULT_ERROR 0xC8 //DNS格式错误 // +#define CHECK_TIME_RESULT_ERROR 0xC9 //日期格式错误 // +#define INIT_IC_CARD_FAILURE 0xCA //初始化IC卡失败 +#define R_ACK_SYSTEM_BANK_KEY_ERROR 0xCB //确认系统行号错误 +#define IP_SET_ERROR 0xff //网关错误 +#define INIT_IC_CARD_FAILURE 0xCA //初始化IC卡失败 +#define CHECK_IP_SAME 0xCC //不能设置为本机IP + +#define OPT_NUM_TWO 2 +#define OPT_NUM_FOUR 4 + + +#define BUFFISZE 1024 +#define KEYVALLEN 100 + + +//常用变量的宏定义 + +#define NO_ERROR 0 +#define ERROR_FALSE -1 +#define ERROR_SYSTEM -2 +#define MAX_PATH_LEN 128 +#define MAX_STR_LEN 128 +#define MAX_BUFFER_LEN 8192 +#define MAX_SEPERATE_NUM 100 + +#define MSG_LEN_MAX 4096 +#define MSG_HEAD_L 8 +#define MSG_LEN_L 2 +#define MSG_CMD_L 2 +#define MSG_TAIL_L 2 +#define MSG_CRC_L 2 +#define MSG_NODATA_L (MSG_HEAD_L+MSG_TAIL_L+MSG_LEN_L+MSG_CMD_L+MSG_CRC_L) //减去数据位长度的报文长度 + + +#define SYS_IP_LEN 16 +#define KEY_COUNT 24 +#define SYS_SN_LEN 13 +#define PCI_DEVNO_LEN 32 + +#define INQ_REPLY_LEN 96 +#define INQ_CMD_CODE 0x12 +#define INQ_CMD_LEN 6 + + +#define MAX_FILE_DESCRPT 20000 /** 最大文件描述符个数,也即可以处理的最大设备连接数*/ +#define MAX_ONLINE_CLIENT 6000 /** 最大在线客户端连接数*/ + +#define MAX_THREAD_PRIORITY 5 /*线程优先级*/ +#define REFRESH_CLIENT_TIME (36*60*60) /** 刷新客户端连接时间间隔*/ + +#define TCP_DATA_LENGTH 8192 + +#define PRINT_DATA_LENGTH 2048 + +#define PRINTER_READY 0 +#define PRINTER_NOT_READY 1 + +#define E_TYPE_SYS 0x01 //系统错误 + +#define MAX_MSG_COUNT 600 + +#define MAX_ICBCCOMMAND_COUNT 11 +#define ICBCCOMMAND_LENGTH 7 +#define ICBC_HEAD_LENTH 32 +#define HSM_HEAD_LENGTH 32 + +#define COMMON_MSG 0 +#define ICBC_MSG 1 + +#define HIGH_PROPERTY 1 + +#define LISTEN_FD 1 +#define SOCKET_FD 2 + +//#define THREAD_NUM 20 +#define MAX_MACDATA_LENGTH 1024 //最大MAC数据长度 +#define MAX_INPUTDATA_LENGTH 1024 //最大输入数据长度 +#define MAX_OUTPUTDATA_LENGTH 1024 //最大输出数据长度 + + +#define SCSI_TIMEOUT 2000 +#define SCSI_WRITE10_CMD 0x2A +#define SCSI_READ10_CMD 0x28 + +#define KEY_INPUT_ERROR 0x02 + +#define KEY_0 0x00 +#define KEY_1 0x01 +#define KEY_2 0x02 +#define KEY_3 0x03 +#define KEY_4 0x04 +#define KEY_5 0x05 +#define KEY_6 0x06 +#define KEY_7 0x07 +#define KEY_8 0x08 +#define KEY_9 0x09 +#define KEY_A 0x0A +#define KEY_B 0x0B +#define KEY_C 0x0C +#define KEY_D 0x0D +#define KEY_E 0x0E +#define KEY_F 0x0F +#define KEY_POWER 0x11 +#define KEY_FUNC 0x12 +#define KEY_DEL 0x13 + +#define KEY_UP 0x04 +#define KEY_DOWN 0x01 +#define KEY_ESC 0x02 +#define KEY_ENTER 0x03 + +#define KEY_FUNC_3S 0x18 +#define KEY_ERROR 0xFF + +#define BANDRATE 115200 //波特率 +#define RESEND 5 //未收到的重发次数 +#define PRE_DELAY 4 //每次发送接收之间的时间间隔,4ms + +//报文层 +#define STX 0x02 +#define ETX 0x03 + +//应用层 +#define REQUEST 0x00 //请求 +#define RESPONSE 0x80 //响应 +// TAG +#define TAG_GENERATE_LMK 0x01 //生成系统主密钥 +#define TAG_SYSTEM_SHUTDOWN 0x02 //系统关机 +#define TAG_DISP_INFO 0x03 //显示警告、错误信息 +#define TAG_QUERY_STATUS 0x04 //查询程序、密押机状态 +#define TAG_IC_STATUS_QUERY 0x05 //IC卡状态查询 +#define TAG_CHECK_PWD_STATUS 0x06 //密码核对状态 +#define TAG_LOGIN_SYSTEM 0x07 //登录系统 +#define TAG_ACK_INIT 0x08 //确认初始化 +#define TAG_BACK_N_IC 0x09 //备份n号IC卡 +#define TAG_START_MOR_SERVER 0x0A //进入编核压服务 +#define TAG_N_OPER_LOGIN 0x0B //n号安控员登陆 +#define TAG_OPER_LOGIN 0x0C //管理员登陆 +#define TAG_AUTHORIZATION_LOGIN 0x3F //授权登录 +#define TAG_CHECK_INT 0x0D //初始化... +#define TAG_QUERY_CONN_NO 0x0E //查询编核押连接数 +#define TAG_GOTO_ADMIN 0x0F //从编核压返回管理模式 +#define TAG_QUERY_CONN_STATUS 0x10 //查询编核押连接状态 +#define TAG_MYJ_MONIOR 0x65 //查询密押机状态 + +#define TAG_LOGOUT 0x11 //退出登录 +#define TAG_IC_COPY 0x12 //IC卡拷贝 +#define TAG_CHANGE_IC_CARD_PWD 0x13 //更改管理员IC口令 +#define TAG_INIT_IC_CARD 0x14 //初始化IC卡 +#define TAG_SET_SYS_PARA 0x15 //系统参数设置 +#define TAG_SET_SYS_VERIFYCODE 0x16 //远程控制标识设置 + +#define TAG_ADD_CLIENT_IP 0x17 //增加客户IP +#define TAG_DELETE_CLIENT_IP 0x18 //删除客户IP +#define TAG_GET_CLIENT_IP 0x19 //获取客户IP列表 +#define TAG_MODIFY_ETH_N 0x1A //网卡n参数设置 +#define TAG_RESTORE_FACTORY_SETTINGS 0x1B //恢复出厂设置 +#define TAG_MODIFY_SYS_PWD 0x1C //更改系统口令 +#define TAG_SERIALPORT_SETTINGS 0x1D //密钥管理端串口设置 +#define TAG_SERIALPORT_GETTINGS 0x43 +#define TAG_ADD_SYNC_IP 0x1E //增加同步IP +#define TAG_DELETE_SYNC_IP 0x1F //删除同步IP +#define TAG_GET_SYNC_IP 0x20 //获取同步IP列表 + +#define TAG_RESTORE_N_IC_MASK_KEY 0x21 //恢复nIC卡系统主密钥 +#define TAG_ENTER_RES_POWERON 0x22 //按确认键重新启动 +#define TAG_GET_ETH_N_PARAM 0x23 //网卡n参数获取 +#define TAG_GET_SYS_PARAM 0x24 //获取系统参数 +#define TAG_OUT_WORK_FLIE 0x25 //导出工作日志 +#define TAG_GET_SYSTEM_TIME 0x26 //获取系统时间 +#define TAG_SET_SYSTEM_TIME 0x27 //设置系统时间 +#define TAG_IC_CARD_UPDATE 0X28 //管理员IC卡升级 +#define TAG_GET_VERIFYCODE 0x29 //获取远程控制标识 +#define TAG_UPDATE_SYSTEM_BYUSB 0x2A //USB系统升级 +#define TAG_GENERATE_DEVKEY 0x2B //产生设备密钥 +#define TAG_DEVKEY_BACK 0x2C //备份设备密钥 +//#define TAG_IC_STATUS_QUERY 0x2D //判断IC卡状态 +#define TAG_PORT_SETTINGS 0x2E //设置端口号 +#define TAG_SERIALPORT_SERVICE_START 0x2F //开启PC端串口服务 +#define TAG_SERIALPORT_SERVICE_STOP 0x30 //关闭PC端串口服务 +#define TAG_SYSTEM_UPGRADE 0x31 //系统升级 +#define TAG_IC_MAKE_NET 0x32 //制作网络管理员IC卡 +#define TAG_IC_MAKE_OPERATOR 0x33 //制作串口管理员IC卡 +#define TAG_IC_MAKE_WINDICATE 0x34 //制作普通操作员IC卡 +#define TAG_IC_PASTE 0x35 //IC卡粘贴 +#define TAG_IC_HSM_REGISTER 0x36 //IC卡注册加密机 +#define TAG_IC_HSM_CANCEL 0x45 //IC卡注销加密机 +#define TAG_GET_SYS_PORT 0x37 //获取网络交易端口号 +#define TAG_SET_SYS_PORT 0x38 //设置网络交易端口号 +#define TAG_GET_SYS_LOG 0x39 //获取系统日志 +#define TAG_SET_SYS_LOG 0x3A //设置系统日志 +#define TAG_DISPERSE_LMK 0x3B //分散系统主密钥种子 +#define TAG_LMK_BACK 0x3C //备份系统主密钥种子分量 +#define TAG_LMK_RECOVER 0x3D //恢复系统主密钥种子分量 +#define TAG_MOVE_LMK 0x3E //加载主密钥 +#define TAG_LMK_TEST 0x41 //加载主密钥 +#define TAG_GET_HSMCODE 0x40 //获取加密机设备号 +#define TAG_GET_LMK_GENERATE_FLAG 0x42 //获取加密机产生主密钥状态 +#define TAG_WORK_TO_TMP 0x44 //工作密钥由工作区主密钥到临时去主密钥转加密 + +#define TAG_KEY_ORGAN_ADD 0x46 //增加机构 +#define TAG_KEY_ORGAN_DEL 0x47 //删除机构 +#define TAG_KEY_ORGAN_QUE 0x48 //查看机构 +#define TAG_KEY_TYPE_ADD 0x49 //增加类型 +#define TAG_KEY_TYPE_DEL 0x4A //删除类型 +#define TAG_KEY_TYPE_QUE 0x4B //查看类型 +#define TAG_KEY_QUERY_BYMORE 0x4C //查看批量密钥 +#define TAG_KEY_QUERY_BYONE 0x4D //查看单个密钥 +#define TAG_KEY_ISSUE2 0x4E //密钥分发中的密钥合成 +#define TAG_KEY_BACKUPS 0x4F //密钥备份 +#define TAG_KEY_RECOVER 0x50 //密钥恢复 +#define TAG_KEY_STOP_BYMORE 0x51 //停用批量密钥 +#define TAG_KEY_STOP_BYONE 0x52 //停用单个密钥 +#define TAG_KEY_DEL_BYMORE 0x53 //删除批量密钥 +#define TAG_KEY_DEL_BYONE 0x54 //删除单个密钥 +#define TAG_CARDKEY_MOVE 0x55 //加载卡片主控密钥 +#define TAG_PACKET_FIELD_SET 0x56 //报文域设置 +#define TAG_SET_OLD_KEYNUM 0x57 //设置保留老密钥的个数 +#define TAG_KEY_CHANGE_BYMORE 0x58 //批量更新密钥 +#define TAG_KEY_CHANGE_BYONE 0x59 //单个更新密钥 +#define TAG_KEY_PRINT 0x60 //打印对称密钥分量 +#define TAG_KEY_GENERATE_SYMMETRY 0x61 //产生对称密钥 +#define TAG_KEY_GENERATE_RSA 0x62 //产生RSA密钥 +#define TAG_KEY_GENERATE_SM2 0x63 //产生SM2密钥 +#define TAG_KEY_ISSUE 0x64 //先锋主控密钥合成 + +#define TAG_UMAKE_MANAGE_FIRST 0x70 //制作管理员一级盾 +#define TAG_UMAKE_MANAGE_SECOND 0x71 //制作管理员二级盾 +#define TAG_UMAKE_MANAGE_THIRD 0x72 //制作管理员三级盾 +#define TAG_UMAKE_BACKUP 0x73 //备份盾制作 +#define TAG_UMAKE_ISSUE 0x74 //发行盾制作 +#define TAG_ICMAKE_ISSUE 0x75 //发行卡制作 +#define TAG_ICCARD_DEBLOCK 0x77 //IC卡解锁 +#define TAG_UKEY_DEBLOCK 0x78 //U盾解锁 +#define TAG_UKEY_CHANGE_PWD 0x76 //更改U盾口令 +#define TAG_UKEY_CHANGE_MPWD 0x7D //更改U盾管理口令 +#define TAG_IC_CHANGE_MPWD 0x7E //更改IC卡管理口令 + +#define TAG_UKEY_OUT_SYMMETRY 0x79 //U盾导出对称密钥分量 +#define TAG_UKEY_IN_SYMMETRY 0x7A //U盾分量合成对称密钥 +#define TAG_UKEY_OUT_DENVELOPE 0x7B //U盾导出数字信封 +#define TAG_UKEY_IN_DENVELOPE 0x7C //U盾导入数字信封 +#define TAG_ADD_ROUTE 0x80 //添加路由 + +#define TAG_DELETE_ROUTE 0x81 //删除路由 + +#define TAG_QUERY_ROUTE 0x82 //查询路由 +#define TAG_LMK_ISSUE 0x83 //LMK固定分量录入 +#define TAG_LMK_ISSUE3 0x84 //LMK固定分量录入 +#define TAG_PACKET_TYPE_SET 0x85 //报文类型设置 +#define TAG_PACKET_TYPE_GET 0x86 //获取报文类型 + +#define TAG_INIT_FUNCMANAGEUSER 0x87 //本地用户状态初始化 + +//U盾备份所有应用密钥 +//U盾恢复所有应用密钥 + + +//表2:错误类别定义 +#define E_TYPE_SYS 0x01 //系统错误 +#define E_TYPE_IC 0x02 //IC卡操作错误 +#define E_TYPE_IC_RW 0x03 //IC卡读写错误 +#define E_TYPE_TRANS 0x04 //传输错误 +#define E_TYPE_HANDLE 0x05 //处理错误 +#define E_TYPE_ENCRYPT_CARD 0x06 //密押卡操作错误 +#define E_TYPE_ENCRYPT_RW 0x07 //密押卡读写错误 +#define E_TYPE_FILE_RW 0x08 //文件读写错误 + +//(1)运行、处理结果 +#define R_NO_RESPONSE 0xFC //无响应 +#define R_TX_ERR 0xFB //STX ETX 错误 +#define R_LEN_ERR 0xFA //LEN 错误 +#define R_ERROR 0xF9 //处理出错,错误码在数据域中 +#define R_SUCCESS 0xF8 //成功处理请求数据 +#define R_BUSY 0xF7 //程序/设备忙 +#define R_SYS_ERR 0xF6 //系统错误 +#define R_PWD_ERR 0xF5 //密码错误 +#define R_LRC_ERR 0xF4 //LRC错误 +#define R_TAG_ERR 0xF3 //TAG不匹配 +#define R_PWD_LOCK 0xF2 //口令已锁 + +//(2)警告信息 +#define W_SYS_FAILURE 0xEF //系统故障警告 +#define W_CONFIG_FILE_LOST 0xEE //配置文件丢失警告 +#define W_PROGRAM_FAILURE 0xED //程序运行异常 + +//(3)IC状态 +#define IC_NOT_EXIST 0xE9 //IC卡不存在 +#define IC_EXIST 0xE8 //IC卡存在 +#define IC_READ_ERR 0xE7 //读取IC卡错误 +#define IC_WRITE_ERR 0xE6 //写IC卡失败 +#define IC_NO_ERR 0xE5 //登陆号码不对 + +//(4)主密钥生成 +#define KEY_MASTER_BUILD_FAILED 0xE0 //系统主密钥生成失败 +#define KEY_MASTER_NOT_BUILD_INT 0xDF //未生成主密钥 + +//(5)程序运行状态 +#define S_PROGRAM_OK_CARD_OK 0xDE //程序运行正常,密押机正常 +#define S_PROGRAM_OK_CARD_UNINIT 0xDD //程序运行正常,密押机未初始化 +#define S_PROGRAM_ERR_CARD_UNKNOW 0xDC //程序运行异常,需重启。密押机状态未知 + +//(6)安控员登陆 +#define S_ADMIN_NO_ERR 0xD5 //管理员号错误 +#define S_ADMIN_AGAIN 0xD4 //管理员已登录 +#define S_ADMIN_ERROR_TIMEOUT 0xD3 //登录失败( 卡处理超时 ) +#define S_ADMIN_SYS_ERROR 0xD2 //登录失败( 系统错误 ) +#define S_IC_NOT_INVALID 0xD1 //IC卡无效 +#define S_ADMIN_PWD_LEN_ERR 0xD0 //密码长度错误 + +//(7) 查询连接状态 +#define S_WAIT_CONN 0x01 //等待连接 +#define S_SERVERING 0x02 //服务中 +#define S_CONN_ON 0x03 //有连接数 + +//(8)动作标识 +#define IC_COPY_TO 0x01 //复制 +#define IC_PASTE_TO 0x02 //粘贴 +#define IC_COPY_CANCEL 0x03 //取消本次拷贝 +#define IC_COPY_AUTH 0X04 //复制管理员IC卡时验证口令 + +//(9)更改管理员IC口令 +#define R_IC_MODIFY_ERR 0xC5 //更改失败 +#define R_IC_NOT_OPER 0xC4 //非管理员IC卡 +#define R_IC_OLD_PIN_ERR 0xC3 //原口令错误 + +//(10)IC卡类型 +#define IC_TYPE_OPER 0x01 //系统管理员卡 +#define IC_TYPE_ENCRYPT_BACK 0x02 //密钥备份卡 + +//(11) 客户IP设置 +#define R_CLIENT_IP_EXIST 0xbf //IP地址已存在 +#define R_CLIENT_IP_NOT_EXIST 0xbc //IP地址不存在 +#define R_CLIENT_IP_FOMATE 0xbb //IP地址格式错误 +#define R_CLIENT_IP_LIST_START 0xaf //下标超过范围 + +#define R_CLIENT_IP_FULL 0xb9 //客户IP已满(当前已存的IP>=MAX_CLIENT_IP(99)) +#define CHECK_IP_SAME 0xCC //不能设置为本机IP + +//(12) 网卡n参数设置 +#define R_NEC_PARAM 0xb7 //网卡参数错误 +#define R_NEC_PARAM_SET_ERR 0xb6 //网卡参数设置失败 +#define R_NEC_BUSY 0xb5 //网卡设备忙 +#define R_IMPORT_KEY2 0xb1 //密钥生成失败 +#define SET_IP_SAME 0xb4 //IP不能设置同一网段 + +#define R_GRENTE_KEY_CMD_ERR 0xb0 //密钥生成失败,命令非法 +#define R_GRENTE_KEY_LINE_FULL 0xaf //行号已满 +#define R_IC_NOT_THIS_SYS 0xae //非本系统IC卡 +#define R_KEYINFO_NOT_EXIST 0xac //KeyInfo文件不存在 +#define R_IC_NO_ERR 0xab //卡号错误 +#define R_NEC_ROUTE_EXITE 0x16 //该目标IP路由已存在 +#define R_NEC_ROUTE_ADD 0x17 //路由添加失败 +#define R_NEC_ROUTE_DEL 0x18 //路由删除失败 +#define R_NEC_ROUTE_QUE 0x19 //路由删除失败 + +//(15) +//定义见err_no.h + +//(16) +#define R_PORT_ERR 0x99 //端口号错误 +#define R_WORK_LOG_FLAG_ERR 0x98 //工作日志标识错误 +//(17) +#define R_ISSUE_KEY_ERR_NO 0x96 //密钥发行失败(无此行号) +//(18) +#define R_LOWER_BANK_KEY_FILE_NO_ERR 0x95 //下级行密钥文件行号错误 +#define R_ENCRYPT_IC_NO_ERR 0x94 //密钥发行IC卡行号错误 + +//(19) +#define R_BANK_NO_ERR 0x93 //银行号不存在 +#define R_OPEN_BACK_FILE_ERR 0x92 //打开备份文件失败 +#define R_UPDATE_KEY_INFO_ERR 0x91 //KeyInfo文件更新失败 + +//(20) +#define R_START_OVER_FLOW 0x90 //下标超过范围 +#define R_PARAM_ERR 0x89 //参数错误 + +//(21) +#define R_IC_NOT_1_OPER 0x85 //非系统管理员一卡 +#define R_IC_NOT_2_OPER 0x84 //非系统管理员二卡 +#define R_IC_NOT_3_OPER 0x83 //非系统管理员三卡 +#define R_RESTORE_MASTER_KEY_3_FAILED 0x82 //恢复主密钥分量三失败 + + + +//0x61 命令失败只会返回此错误码!! +#define R_SET_TIME_ERR 0x79//设置系统时间失败 +//单位 +#define UNIT_T 5 +#define UNIT_G 4 +#define UNIT_M 3 +#define UNIT_K 2 +#define UNIT_B 1 + + + +#define ACCNUM 64 +#define BATCHNUM 99 +#define MANNUM 23 +#define MANSIZE 22 +#define ACCSIZE 96 +#define RECSIZE 44 + +#define NORMAL 0 //正显 +#define REVERSE 1 //反显 + +/******************用于6*8字符的上下位置显示***************/ +#define CENTER 0x02 //6*8点阵的字符串上下对中到6*16的中间位置 +#define UPHALF 0x02 +#define DOWNHALF 0x04 +/********************************************************/ +#define MY_DATE_NUM_1 0x20 +#define MY_DATE_NUM_2 0x40 +#define MY_DATE_NUM_3 0x60 +#define MY_DATE_NUM_4 0x80 // 数据查询中密钥X启用/停用日期 +#define INPUT_OR_OUTPUT_MY_NUM 0x10 //导入或导出多少个行密钥 + + +#define USB_UPDATE_OPT_DIR "/opt" + +#define HSM_TEST_DIR "/opt/hsm_test/bin" +/**************** 用于格式化字符串显示********************/ +#define INPUT 0xC0 //前加"请输入" 在圈存时作为收到结果数据的返回值 +#define SELECT 0xD0 //前加"请选择" +#define COLON 0x08 //后加冒号 第4位 +#define CLAIM 0x04 //后加叹号 第3位 +/*******************************************************/ + + +#define MAX_PARTITIONS 64 +#define MAX_PARTITIONS_NAME 20 +#define PREFIX "/dev/" +#define PREFIX_LEN strlen(PREFIX) + +//(22) +#define R_LOG_NO_EXIST 0x7e //log不存在或者大小为0 +#define R_UPAN_NO_EXIST 0x7d //U盘不存在 +#define R_UPAN_READ_ERR 0x7c //写U盘失败 +#define R_UPAN_FULL 0x7b //U盘已满 +#define R_OUT_ERR 0x7a //导出失败 + +#define MOUNT_POINT "/mnt/usb" + +/* Start Modify by yt.chen 2016-09-12 SN:88888888 Des:SJJ1316-B拷机兼容性修改 */ +#define USB_UPDATE_BIN_DIR "/home/sunyard_tmp" +#define LOG_NAME "log" +#define USB_START_NAME "start.sh" +#define USB_CONFIG_NAME "config.sh" +/* End Modify by yt.chen 2016-09-12 SN:88888888 */ + +#define CONFINE_SYS "Encrypt.ini" +#define CONFINE_CLIENT_IP "ListIp.ini" +#define CONFINE_SYNC_IP "SyncIp.ini" +#define CONFINE_MYJ_IP "MYJIP.ini" +#define CONFINE_COMMUNICATION_KEY "CommunicationKey" +#define CONFINE_Packet_Field_Set "Packet.ini" +//log file define +#define LOG_FILE_ERR "ServerTrace.log" +#define LOG_FILE_TCP "Tcp.log" + +#define MONTER_TYPE_TTY 1 +#define MONTER_TYPE_WEB 2 +#define MONTER_TYPE_CLIENT 1 //获取交易IP +#define MONTER_TYPE_MYJ 0 //获取管理IP + +#define KEY_DIR "manage_key" +#define KEYMANAGE_DB_PATH "./db/keymanage.db" +#define ORGAN_INFO "Organization.ini" +#define TYPE_INFO "Type.ini" +#define TYPE_NUM "TypeKeyNum.ini" + +/****************************************** +* 管理员权限状态1 +******************************************/ +#define ADMIN_CFG 0x0001 // 配置管理员 +#define ADMIN_KEY1 0x0002 // 密钥管理员一 +#define ADMIN_KEY2 0x0004 // 密钥管理员二 +#define ADMIN_SUPPER1 0x0008 // 超级管理员一 +#define ADMIN_SUPPER2 0x0010 // 超级管理员二 +#define ADMIN_SUPPER3 0x0020 // 超级管理员三 +#define ADMIN_RELEASE 0x0040 // 发行状态 +#define ADMIN_BACKUP 0x0080 // 备份状态 + +#define ADMIN_SUPPER 0x0038 // 超级权限(ADMIN_SUPPER1 & ADMIN_SUPPER2 & ADMIN_SUPPER3) +#define ADMIN_KEY 0x0006 // 密钥权限(ADMIN_KEY1 & ADMIN_KEY2) + +/***************************************** +* 管理员权限状态2 +******************************************/ +#define LEVEL_CFG0 0x0000 // 无配置管理员登录 +#define LEVEL_KEY0 0x0000 // 无密钥管理员登录 +#define LEVEL_SUPPER0 0x0000 // 无超级管理员登录 +#define LEVEL_SUPPER12 0x0018 // 超级管理员一二登录 +#define LEVEL_SUPPER23 0x0030 // 超级管理员二三登录 +#define LEVEL_SUPPER13 0x0028 // 超级管理员一三登录 + + +#define MAX_ADMIN_NUMBER 6 +#define MAX_NO_LENGTH 9 + + +/***************************************** +* 日志相关定义 +******************************************/ +#define OPERLOG_SUPPER 0x31 // 超级管理员日志 +#define OPERLOG_KEY 0x32 // 密钥管理员日志 +#define OPERLOG_CFG 0x33 // 配置管理员日志 + +#define OPERLOG_FLAG_C 0 // IC 卡日志 +#define OPERLOG_FLAG_U 1 // U 盾日志 + +#define UKEY_LEVEL_KEY1 0 +#define UKEY_LEVEL_KEY2 1 +#define UKEY_LEVEL_SUPPER1 2 +#define UKEY_LEVEL_SUPPER2 3 +#define UKEY_LEVEL_SUPPER3 4 +#define UKEY_LEVEL_CFG1 5 + + +/**************************************************************** +* 用户管理状态: 远端管理,本地管理,交易管理 +* semid_ManageUser 记录该状态 +*****************************************************************/ +#define MANAGE_USER_NONE 0 // 无用户状态 +#define MANAGE_USER_LOCAL 1 // 本地管理用户状态 +#define MANAGE_USER_REMOTE 2 // 远端管理用户状态 +#define MANAGE_USER_TRADE 3 // 交易管理用户状态 + + + +//数据定义区 +#define MAXKEYLEN 32 + + + +//参数的宏定义 + + +//#define IC_DEBUG +#define default_pin_str "\x08\x08\x08\x08\x08\x08\x08\x08" +#define TAG 'T' +#define INFO_END 0x100 +#define INDEX_END 0x1000 +#define DATA_END 0x3000 + + +/*命令*/ +#define ASC_MSG_ST "ST" +#define ASC_MSG_ED "ED" +/*响应*/ +#define ASC_MSG_SO "SO" +#define ASC_MSG_SU "SU" +#define PREFIX "/dev/" +#define PREFIX_LEN strlen(PREFIX) +#define DEBUG1 + + + +//配置文件的宏定义 +#define CONFIG_INI "./Encrypt.ini" //配置文件 +#define SERIAL_INI "./Serial.ini" //串口参数配置 +#define CHECK_LOG "./check.log" +#define CARD_INI "./card.ini" +#define CLOCK_INI "./clock.ini" + +/* + * 基本类型定义 + */ +#ifndef MFC +typedef void VOID; +typedef const void CVOID; +#endif + +typedef void * PVOID; +typedef const void * PCVOID; + +typedef char CHAR; +typedef CHAR * PCHAR; +typedef const CHAR CCHAR; +typedef const CHAR * PCCHAR; + +typedef int INT; +typedef INT * PINT; +typedef const INT CINT; +typedef const INT * PCINT; + +typedef short SHORT; +typedef SHORT * PSHORT; +typedef const SHORT CSHORT; +typedef const SHORT * PCSHORT; + +typedef long LONG; +typedef LONG * PLONG; +typedef const LONG CLONG; +typedef const LONG * PCLONG; + +typedef float FLOAT; +typedef FLOAT * PFLOAT; +typedef const FLOAT CFLOAT; +typedef const FLOAT * PCFLOAT; + +typedef double DOUBLE; +typedef DOUBLE * PDOUBLE; +typedef const DOUBLE CDOUBLE; +typedef const DOUBLE * PCDOUBLE; + +typedef unsigned char UCHAR; +typedef UCHAR * PUCHAR; +typedef const UCHAR CUCHAR; +typedef const UCHAR * PCUCHAR; + +typedef unsigned int UINT; +typedef UINT * PUINT; +typedef const UINT CUINT; +typedef const UINT * PCUINT; + +typedef unsigned short USHORT; +typedef USHORT * PUSHORT; +typedef const USHORT CUSHORT; +typedef const USHORT * PCUSHORT; + +typedef unsigned long ULONG; +typedef ULONG * PULONG; +typedef const ULONG CULONG; +typedef const ULONG * PCULONG; + + + +typedef char STR; +typedef STR * PSTR; +typedef const STR CSTR; +typedef const STR * PCSTR; + +typedef unsigned char BYTE; +typedef BYTE * PBYTE; +typedef const BYTE CBYTE; +typedef const BYTE * PCBYTE; +/* +typedef unsigned short WORD; +typedef WORD * PWORD; +typedef const WORD CWORD; +typedef const WORD * PCWORD; +*/ +typedef int RESULT; +typedef RESULT * PRESULT; +typedef const RESULT CRESULT; +typedef const RESULT * PCRESULT; + +typedef void * HANDLE; +typedef HANDLE * PHANDLE; +typedef const HANDLE CHANDLE; +typedef const HANDLE * PCHANDLE; + + +typedef unsigned char uchar; + + + +/*串口*/ +typedef struct _sys_serial +{ + int com; + int baudrate; //波特率 + char parity; //校验位 + int databits; //数据位 + int stopbits; //停止位 +} sys_serial; + +typedef struct card_config +{ + int h; + int HYK16; + int SYD1308; + int e; + int n_w; + int n_w_1; + int n_s; + int r; +}card_t; + + +typedef struct _sys_config +{ + int LMK_check_enable; //是否启用加密卡主密钥检测功能 + int pci_checkself_enable; //是否启用加密卡自检功能 + int pci_getdevNO_enable; //是否启用获取机具号功能 + int clock_check_enable; //是否启用时钟校验功能 + int ip_check_enable; //是否启用IP校验功能 + int sdf_enable; + int stress_enable; + int sys_perf_enable; + int pcicard_check_enable; // + int exar_card_check_enable;//是否启动外购卡校验功能 + char stress_duration[8]; + char perf_duration[8]; + int ratio_throughput; + unsigned char sn1[SYS_SN_LEN]; //机具号1 + unsigned char sn2[SYS_SN_LEN]; //机具号2 + int netnum_start; //网络测试循环的开始值 + struct timeval clock_set; //时钟检验设置的时间(从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止) + long switch_time_sec; //加密机重启一次所花时间(时间限制:秒) + + char ip_set_eth0[SYS_IP_LEN]; //网卡一默认设置IP + char ip_set_eth1[SYS_IP_LEN]; //网卡二默认设置IP + char ip_set_eth2[SYS_IP_LEN]; //网卡三默认设置IP + char ip_set_eth3[SYS_IP_LEN]; //网卡四默认设置IP + char ip_set_eth4[SYS_IP_LEN]; //网卡五默认设置IP + char ip_set_eth5[SYS_IP_LEN]; //网卡六默认设置IP + char ip_set_eth6[SYS_IP_LEN]; //网卡七默认设置IP + char ip_set_eth7[SYS_IP_LEN]; //网卡八默认设置IP + char ip_set_eth8[SYS_IP_LEN]; //网卡八默认设置IP + char ip_set_eth9[SYS_IP_LEN]; //网卡八默认设置IP + char ip_set_eth10[SYS_IP_LEN]; //网卡八默认设置IP + char ip_set_eth11[SYS_IP_LEN]; //网卡八默认设置IP +} sys_config; + + + +typedef struct _test_type{ + unsigned char name[20]; + int (*func)(int); +}test_type; + +typedef struct _key_type{ + unsigned char name[10]; + int id; +}key_type; + +typedef struct _T_PCCmd +{ + unsigned char CLA; + unsigned char INS; + unsigned char P1; + unsigned char P2; + unsigned short LC; + unsigned short LE; +}TPCCmd; + +//respond +typedef struct _T_Respond +{ + short SW; +}TRespond; + +#define CMD_HEAD_LEN sizeof(TPCCmd) + +struct my_msg{ + long mtype; + char mtext[TCP_DATA_LENGTH]; +}; + +typedef struct struDataPA +{ + unsigned short commandcode; + int len; + int FormatDefined; + unsigned char data[MAX_INPUTDATA_LENGTH]; +}struDataPA; + +typedef struct struPrintBuf +{ + char pin_key1[49]; + char pin_key2[49]; + char reference1[17]; + char reference2[13]; + char account1[17]; + char account2[7]; + char field[16][81]; + +}struPrintBuf; + + +//布尔量 +typedef enum _BOOL +{ + FALSE=0, TRUE, +} BOOL; + + +/* +**Hash 算法标准数据 +*/ +#define SM3_MESSAGE 0x61,0x62,0x63 +#define SM3_RESULT 0x66,0xc7,0xf0,0xf4,0x62,0xee,0xed,0xd9,0xd1,0xf2,0xd4,0x6b,0xdc,0x10,0xe4,0xe2, \ + 0x41,0x67,0xc4,0x87,0x5c,0xf2,0xf7,0xa2,0x29,0x7d,0xa0,0x2b,0x8f,0x4b,0xa8,0xe0 + +#define SHA1_MESSAGE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, \ + 0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56 +#define SHA1_RESULT 0x12,0x06,0xe0,0xc0,0x23,0xdc,0x4b,0x25,0x5b,0x24,0xc6,0x80,0xf1,0x79,0x49,0x52,0x6d,0xf2,0x8e,0xd9 + +#define MD5_MESSAGE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, \ + 0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56 +#define MD5_RESULT 0x6a,0x46,0x26,0x9d,0xba,0xdd,0xec,0x9f,0xfe,0xa3,0xeb,0xe1,0xd4,0x4c,0x28,0x01 \ + +#define SHA256_MESSAGE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, \ + 0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56 +#define SHA256_RESULT 0x41,0xba,0x69,0x6b,0xc2,0x82,0x29,0x24,0xf7,0xcb,0xa0,0xce,0x21,0x1b,0xfd,0xdf, \ + 0xe6,0x53,0xce,0xb3,0xc9,0x81,0x25,0x5a,0x17,0x75,0xbe,0xbf,0x11,0x0b,0xf4,0x2d + +#endif + + + + diff --git a/INCLUDE/error_no.h b/INCLUDE/error_no.h new file mode 100644 index 0000000..0ee3fb6 --- /dev/null +++ b/INCLUDE/error_no.h @@ -0,0 +1,671 @@ +#ifndef _ERROR_NO_H_ +#define _ERROR_NO_H_ + +#define RET_SUCCESS 0x00 + +#define ERR_CARD_SELFTEST 0x01 //卡自检硬件错误 +#define ERR_NOLMK 0x02 //卡中LMK数据无效 +#define ERR_FPGA_SELFTEST 0x03 //FPGA自检错误 +#define ERR_TIMECHIP 0x04 //时钟芯片异常 + +#define ERR_CARDCMD 0x10 //命令代码错误 +#define ERR_CARDDATA_LEN 0x11 //数据长度错误 +#define ERR_CARDDATA_CRC 0x12 //数据包CRC校验错误 + +#define ERR_OPER_ID 0x20 //管理员ID号错误 +#define ERR_OPER_PWD 0x21 //管理员口令错误 +#define ERR_OPER_CHK0 0x22 //管理员口令容错次数为0 +#define ERR_NOAUTH 0x23 //非二人登录(非授权状态) +#define ERR_NOLOGIN 0x24 //无管理员登录(未登录状态) +#define ERR_ALREADY_LOGIN 0x25 //管理员已经登录 + +#define ERR_AIRTHMETIC 0x30 //指定的算法无效 +#define ERR_DATALEN_8 0x31 //数据长度错误,不能被8整除 +#define ERR_DATALEN_16 0x32 //数据长度错误,不能被16整除 +#define ERR_DATALEN_128 0x33 //数据长度错误,不能被128整除 +#define ERR_DATALEN_256 0x34 //数据长度错误,不能被256整除 +#define ERR_AUTH_LMK 0x35 //指定索引的LMK被禁止 + +#define ERR_FLASH_ADD 0x40 //数据FLASH读写地址越界 +#define ERR_FLASH_WRITE 0x41 //写数据FLASH异常 +#define ERR_RANDCHIP 0x42 //随机数芯片操作异常 +#define ERR_CENCCHIP 0x43 //国密算法芯片操作异常 + +#define ERR_KEY_DATE 0x50 //密钥日期错误 +#define ERR_ADMINNO 0x51 //管理员号错误 +#define ERR_ADMINAGIN 0x52 //管理员已登录 +#define ERR_ADMINPWD 0x53 //管理员口令错误 +#define ERR_CHECKTAG 0x54 //Tag校验错误 +#define ERR_CHECKDAC 0x55 //DAC校验错误 +#define ERR_KEYFLAG 0x56 //密钥标志错误 +#define ERR_BANKNO 0x57 //银行行号错误 +#define ERR_DATALEN 0x58 //加密数据长度错误 +#define ERR_LOGINTWO 0x59 //登录的管理员人数少于两人 +#define ERR_SELFTEST 0x5A //自检失败 +#define ERR_ENCODE 0x5B //密押错误 +#define ERR_LOGINTHREE 0x5C //登录的管理员人数少于三人 +#define ERR_CHECKLMK 0x5D //系统主密钥较验错误 +#define ERR_COMMAND 0x5E //未知命令 +#define ERR_KEYAGIN 0x5F //密钥已设置 + +#define ERR_LENGTH 0x66 //数据包长度错误 +#define ERR_DATAFORMAT 0x67 //数据包格式错误 +#define ERR_DATACRC 0x68 //数据包CRC错误 +#define ERR_BANKNO_ISEMPTY 0x69 //行号为空 + +#define ERR_CARDTIMEOUT 0x6A //密押卡处理超时 +#define ERR_CARDWRITE 0x6B //写密押卡错误 +#define ERR_CARDREAD 0x6C //读密押卡错误 +#define ERR_CARDBANKNO 0x6D //行号已满 +#define ERR_OPENPCI 0x6E //密押卡打开失败 +#define ERR_CARDLEN 0x6F //卡数据长度错误 + +#define ERR_SYSTEM 0x73 //系统调用错误 +#define ERR_MSGSEND 0x74 //msgsnd系统调用失败 +#define ERR_MSGRECV 0x75 //msgrcv系统调用失败 +#define ERR_TCPLEN 0x76 //TCP数据包长度错误 + +#define ERR_INVAILD_KEY 0x77 //密钥过期 +#define ERR_FUTURE_KEY 0x78 //密钥未启用 + +#define ERR_CHECK_VALUE_NOT_EXIST 0x88 +#define ERR_KEY_EMPTY 0xA0 //没有任何密钥 +#define ERR_PORT_SAME 0xA2 //端口相同 +#define ERR_ALREADY_EXIST 0xA3 //密钥已启用 +#define ERR_IMPORT_OLD_KEY1 0xA4 //分量一导入失败 +#define ERR_IMPORT_OLD_KEY2 0xA8 //分量二密钥导入失败 +#define ERR_NOT_MANAGE 0xA5 //非管理状态 +#define ERR_NOT_LISTEN 0xA6 //非编核押状态 +#define ERR_WRITE_OFF_OLD_KEY 0xA9 //旧密钥注销失败 +#define ERR_SET_OLD_KEY 0XAA +#define ERR_OLD_KEY_NOT_EXIST 0xCE //旧密钥不存在 + +#define ERR_IC_POWERON 0x01 +#define ERR_IC_PRESSENT 0x02 +#define ERR_IC_PASSWD 0x03 +#define ERR_IC_GET_HSMMODEL 0x04 +#define ERR_IC_SET_HSMMODEL 0x05 +#define ERR_IC_GET_CARDHOLDER 0x06 +#define ERR_IC_SET_CARDHOLDER 0x07 +#define ERR_IC_WRITE 0x08 +#define ERR_IC_READ 0x09 +#define ERR_IC_INIT 0x0A +#define ERR_IC_NOTSYSICCARD 0x0B +#define ERR_IC_LMK_ONE 0x0D +#define ERR_IC_LMK_TWO 0x0E +#define ERR_IC_LMK_THREE 0x0F +#define ERR_ROLE_NOTLMK 0x10 +#define ERR_ROLE_NOTCOM 0x11 +#define ERR_ROLE_NOTOPR 0x12 +#define ERR_IC_GET_REGISTER_HSM 0x13 +#define ERR_IC_HSM_REGISTERED 0x14 +#define ERR_IC_HSM_REGISTERE 0x15 +#define ERR_IC_COM_ONE 0x20 +#define ERR_IC_COM_TWO 0x21 +#define ERR_IC_OPR_ONE 0x22 +#define ERR_IC_REGISTER_LOCAL 0X23 +#define ERR_IC_NOT_REGISTER_HSM 0x24 +#define ERR_IC_NO_CARD 0x25 +#define ERR_IC_NO_ISSUE 0x26 +#define ERR_IC_HSM_CANCEL 0x27 +#define ERR_IC_CANCEL_LOCAL 0X28 +#define ERR_IC_NOT_CLEAR 0x29 +#define ERR_IC_REGISTERE_FULL 0x2A + +#define ERR_LMK_GENERATE 0x30 +#define ERR_LMK_DISPERSE 0x31 +#define ERR_LMK_MOVE 0x32 +#define ERR_LMK_BACK 0x33 +#define ERR_LMK_RECOVER 0x34 +#define ERR_LMK_RMSEED 0x35 +#define ERR_LMK_NOSEED 0x36 +#define ERR_LMK_INEXISTENCE 0x37 +#define ERR_LMK_TEST 0x38 +#define ERR_LMK_LOCK 0x39 +#define ERR_LMK_TMP_TEST 0x3A //临时去主密钥异常 +#define ERR_LMK_DESTROY 0x3B ///*销毁主密钥*/ + +#define ERR_LOG_SETING 0x40 +#define ERR_GET_HSM_CODE 0x41 +#define ERR_GET_HSM_VERSIONS 0x42 +#define ERR_GETLMK_GENERATE_FLAG 0x43 + +#define ERR_GENERATE_TMPKEY 0x50 +#define ERR_ENCRYPT_BYTMPKEY 0x51 +#define ERR_TMPKEY_TOLMK 0x52 +#define ERR_LMK_WORK_TO_TMP 0x53 //主密钥工作区到临时去转机密失败 + +#define ERR_OPEN_SERIALPORT 0x60 +#define ERR_SET_SERIALPORT 0x61 +#define ERR_FORK_PID 0x62 +#define ERR_CLOSE_SERIALPORT 0x63 +#define ERR_KILL_PID 0x64 +#define ERR_COM_NO 0x65 +#define ERR_BOTT_NO 0x66 +#define ERR_GET_COM_NO 0x67 +#define ERR_GET_BOTT_NO 0x68 +#define ERR_GET_BINDIR 0x69 //获取工作目录失败 +#define ERR_NOT_KEYDIR 0x6A //密钥管理目录不存在 +#define ERR_OPGAN_NOT_EXIST 0x6B //机构号不存在 +#define ERR_GET_KEY 0x6C //获取密钥失败 +#define ERR_GENERATE_KEYMAC 0x6D //计算密钥MAC失败 +#define ERR_CHECK_MAC 0x6E //密钥MAC校验失败 +#define ERR_SAVE_KEY 0x6F //保存密钥失败 +#define ERR_INIFILE_NOT_EXIST 0x70 //文件不存在 +#define ERR_FILE_BACK 0x71 //文件备份失败 +#define ERR_FILE_RECOVER 0x72 //文件恢复失败 +#define ERR_FILE_GET 0x73 //文件获取失败 +#define ERR_FILE_SAVE 0x74 //文件保存失败 +#define ERR_SYS_CMD 0x75 //指令错误 +#define ERR_COM_TIME_OUT 0x76 //等待客户端连接超时 +#define ERR_HAVE_INIT 0x77 //IC卡已被初始化过 + +#define ERR_COM_TIME_FORM 0xB0 //日期格式错误 +#define ERR_KEYDB_OPEN_FAIL 0xB1 //数据库打开失败 +#define ERR_KEYDB_OPERATE_FAIL 0xB2 //数据库操作失败 +#define ERR_ENCRYPTCARD_OPERATE_FAIL 0xB3 //操作加密卡失败 +#define ERR_ORGAN_NOT_EXIST 0x8D//0xB4 //机构号不存在 +#define ERR_TYPE_NOT_EXIST 0xB5 //密钥类型不存在 +#define ERR_KEYSERIAL_EXIST 0x8E//0xBC //密钥已存在 + +#define ERR_ORGAN_SERIAL_EXIST 0xB9 //机构号已存在 +#define ERR_TYPE_SERIAL_EXIST 0xBA //密钥类型已存在 +#define ERR_KEY_CPS_FAIL 0x8F//0xBC //合成密钥失败 +#define ERR_KEY_PASSWD_FAIL 0xBD //传输密钥口令错误 +#define ERR_IMPORT_KEY_DIF 0xBE //分量录入不一致 +#define ERR_IMPORT_CHECK 0x8C//0xBF //分量校验失败 + +#define ERR_PACKET_LEN 0x9A ///*报文头应小于32:*/ +#define ERR_PACKET_TAIL_BYTES 0x9B /*报文尾应小于256:*/ +#define ERR_PACKET_FIELD_GET 0x9C //报文域设置失败 +#define ERR_COM_TIME_END 0x9D //截止日期错误 +#define ERR_COM_TIME_START 0x9E //启用日期错误 +#define ERR_PACKET_TYPE 0x9F//报文类型设置失败 + + +#define ERR_COM_GET_BINDIR 0x01 //获取工作目录失败 +#define ERR_COM_GET_KEYDIR 0x02 //获取密钥管理目录失败 +#define ERR_COM_NOT_KEYDIR 0x03 //密钥管理目录不存在 +#define ERR_COM_CREAT_ORGANINFO 0x04 //创建机构信息文件失败 +#define ERR_COM_OPEN_TORGANINFO 0x05 //打开机构信息文件失败 +#define ERR_COM_CREAT_TYPEINFO 0x06 //创建密钥类型信息文件失败 +#define ERR_COM_OPEN_TYPEINFO 0x07 //打开密钥类型信息文件失败 +#define ERR_COM_OPGAN_EXIST 0x08 //机构号已存在 +#define ERR_COM_OPGAN_NOT_EXIST 0x09 //机构号不存在 +#define ERR_COM_TYPE_EXIST 0x0A //密钥类型已存在 +#define ERR_COM_TYPE_NOT_EXIST 0x0B //密钥类型不存在 +#define ERR_COM_CREAT_OPGAN 0x0C //创建机构目录失败 +#define ERR_COM_CREAT_TYPE 0x0D //创建密钥类型目录失败 +#define ERR_COM_TYPEKEY_EXIST 0x0E //密钥类型已存在密钥 +#define ERR_COM_CREAT_RSA 0x0F //创建RSA密钥类型目录失败 +#define ERR_COM_CREAT_SM2 0x10 //创建SM2密钥类型目录失败 +#define ERR_COM_OPEN_TYPE_NUM 0x11 //打开类型密钥编号文件 +#define ERR_COM_WRITE_TYPE_NUM 0x12 //写类型密钥编号文件 +#define ERR_COM_TMKTYPE_NOT_EXIST 0x13 //通讯密钥类型不存在 +#define ERR_COM_CREAT_TYPE_NUM 0x15 //创建类型密钥编号文件 + +#define ERR_COM_GENERATE_KEY 0x20 //产生对称密钥失败 +#define ERR_COM_GENERATE_KEYMAC 0x21 //计算密钥MAC失败 +#define ERR_COM_SAVE_KEY 0x22 //保存密钥失败 +#define ERR_COM_DISPERSE_KEY 0x23 //对称密钥分散失败 +#define COM_DISPERSE_KEY_OK 0x24 //对称密钥分散成功 +#define COM_PRINT_COMPOSE_OK 0x25 //打印分量N完成 +#define ERR_COM_PRINT_NOT_PAPER 0x26 //打印机无打印纸 +#define ERR_COM_PRINT 0x27 //打印失败 +#define COM_PRINT_OK 0x28 //打印所有分量完成 +#define ERR_COM_COMPOSE 0x29 //密钥合成失败 +#define ERR_COM_GET_KEYNO 0x2A //获取密钥编号失败 +#define ERR_COM_UPDATE_KEYNO 0x2B //更新密钥编号失败 +#define ERR_COM_GENERATE_SM2 0x2C //产生SM2密钥失败 +#define ERR_COM_KEY_EXIST 0x2D //密钥已存在 +#define ERR_COM_CREAK_TMPFILE 0x2E //创建通信密钥临时文件失败 +#define ERR_COM_GET_TMPFILE 0x38 //获取通信密钥临时文件失败 +#define ERR_COM_TMK_ENCRYPT 0x2F //通信密钥加密失败 +#define ERR_COM_TMK_DECRYPT 0x30 //通信密钥解密失败 +#define ERR_COM_ASYMMETRYKEY_ENCRYPT 0x31 //非对称密钥加密失败 +#define ERR_COM_ASYMMETRYKEY_DECRYPT 0x32 //非对称密钥解密失败 +#define ERR_COM_CHECK_MAC 0x33 //密钥MAC校验失败 +#define ERR_COM_CHECK_CRC 0x34 //密钥CRC校验失败 +#define ERR_COM_GENERATE_MAC 0x35 //计算MAC失败 +#define ERR_COM_KEY_NOT_EXIST 0x36 //密钥不存在 +#define ERR_COM_GET_KEY 0x37 //获取密钥失败 +#define COM_INPUT_TMK1_OK 0x39 //分量一导入成功 +#define COM_OUTPUT_TMK1_OK 0x3D //分量一导出成功 +#define ERR_COM_TMK_NOT_EXIST 0x3A //通信密钥不存在 +#define ERR_COM_DATA_FILL 0x3B //填充数据失败 +#define ERR_COM_DATA_TRIM 0x3C //剔除数据失败 +#define ERR_COM_GENERATE_RSA 0x3E //产生RSA密钥失败 +#define ERR_COM_NOT_IC1 0x3F //非分量一IC卡 +#define ERR_COM_NOT_IC2 0x40 //非分量二IC卡 +#define ERR_COM_NOT_CLEAR_IC 0x41 //非空白IC卡 +#define ERR_COM_TMK_NOT16 0x42 //通讯密钥非16字节长度密钥 + +#define ERR_COM_IC_POWERON 0x50 //IC卡上电失败 +#define ERR_COM_IC_PRESSENT 0x51 //IC卡状态异常 +#define ERR_COM_IC_PASSWD 0x52 //IC卡原口令错误 +#define ERR_COM_IC_PIN_CHANGE 0x53 //IC卡更改口令失败 +#define ERR_COM_IC_WRITE 0x54 //IC卡写数据失败 +#define ERR_COM_IC_READ 0x55 //IC卡读数据失败 +#define ERR_COM_IC_WRITE_KEY 0x56 //IC卡写密钥失败 +#define ERR_COM_IC_READ_KEY 0x57 //IC卡读密钥失败 +#define ERR_COM_IC_NOT_SPACE 0x58 //IC卡空间已满 +#define ERR_COM_IC_CHECK_CRC 0x59 //IC卡数据CRC校验失败 +#define ERR_COM_IC_NEXT 0x5A //有后续IC卡 +#define ERR_COM_IC_NOT_NUMBER 0x5B //非NIC卡 +#define ERR_COM_IC_GET_ORGANIZA 0x5C //获取IC卡机构信息失败 +#define ERR_COM_IC_NO_CARD 0x5D //IC卡不存在 +#define ERR_COM_IC_NO_ISSUE 0x5E //IC卡未发卡 +#define ERR_COM_UNKNOWN 0x60 //未知错误 +#define ERR_USB_NOT_EXIST 0x86 //U盘不存在 +#define ERR_KEY_NOT_EXIST 0x87 //密钥不存在 +#define ERR_UPDATE_KEY 0x91 //密钥更新失败 +#define ERR_GET_OLD_KEYNUM 0x94 //获取旧密钥个数失败 +#define ERR_KEY_GENERATE_KEY 0x95 //产生对称密钥失败 +#define ERR_KEY_GENERATE_KEYMAC 0x96 //计算密钥MAC失败 +#define ERR_KEY_SCHEME 0x97 //密钥方案错误 +#define ERR_NOT_FUC 0x98 //此功能不支持 + +#define ERR_UPDATE_FILE_NOT_EXIST 0xEA //提示升级文件不存在 +#define ERR_ADMIN 0xD6 //管理员角色值不合法 +#define ERR_MANAGEUSER 0xD7 //用户状态值不合法 +#define ERR_REMOTEMANAGE 0xD8 //远程管理已占用 +#define ERR_FUNCMANAGE 0xD9 //本地管理已占用 + + +#define ERR_LMK_SHEME 0xC0 //导入LMK变种分量失败 +#define ERR_LMK_IESSUE 0xCD //导入主密钥分量失败 + + + +#define ERR_CMD_NOT_EXIST 0x0100 //网络命令不存在 +#define ERR_HEX_ERR 0x0101 //非十六进制字符 +#define ERR_DEC_ERR 0x0102 //非十进制字符 +#define ERR_MODE_ERR 0x0103 //模式错误 +#define ERR_KEYTYPE_ERR 0x0104 //密钥类型错误 +#define ERR_KEYSCHEME_ERR 0x0105 //密钥方案错误 +#define ERR_LEN_ERR 0x0106 //数据长度错误 +#define ERR_ZMK_NUMBER 0x0107 //密钥成份错误 +#define ERR_SAFEFLAG_ERR 0x0108 //安全机制错误 +#define ERR_ID_ERR 0x0109 //方案ID错误 +#define ERR_DISNUM_ERR 0x010A //离散次数错误 +#define ERR_ALGORITHM_ERR 0x010B //算法错误 +#define ERR_PINLEN_ERR 0x010C //最大密码长度错误 +#define ERR_PINFORMAT_ERR 0x010D //PIN格式错误 +#define ERR_PVKI_ERR 0x010E //PIN校验密钥编号 +#define ERR_DELIMITER_NOT_EXIST 0x010F //缺少分隔符号";" +#define ERR_HASHFLAG_ERR 0x0110 //哈希算法标识错误 +#define ERR_FILLMODE_ERR 0x0111 //填充标识错误 +#define ERR_KEYMODE_ERR 0x0112 //获取密钥方式错误 +#define ERR_PARAM_NULL 0x0113 //入参为空 +#define ERR_PINTRANSLATE_ERR 0x0114 //PIN格式转化错误 +#define ERR_VERIFICATION_ERR 0x0115 //验证失败 +#define ERR_FILE_NOT_EXIST 0x0116 //配置文件不存在 +#define ERR_FILE_READ_FAIL 0x0117 //读取文件失败 +#define ERR_FILE_WRITE_FAIL 0x0118 //写文件失败 +#define ERR_ENLMK_ERR 0x0119 //LMK加密失败 +#define ERR_DELMK_ERR 0x011A //LMK解密失败 +#define ERR_ENWORKKEY_ERR 0x011B //工作密钥加密失败 +#define ERR_DEWORKKEY_ERR 0x011C //工作密钥解密失败 +#define ERR_MD5_ERR 0x011D //MD5失败 +#define ERR_GENRSA_ERR 0x011E //产生RSA失败 +#define ERR_PKCSSIGN_ERR 0x011F //产生签名失败 +#define ERR_PKCSVERIFYSIGN_ERR 0x0120 //签名生成摘要失败 +#define ERR_ENRSAPUBLICKEY_ERR 0x0121 //公钥加密失败 +#define ERR_DERSAPUBLICKEY_ERR 0x0122 //公钥解密失败 +#define ERR_ENRSAPRIKEY_ERR 0x0123 //私钥加密失败 +#define ERR_DERSAPRIKEY_ERR 0x0124 //私钥加密失败 +#define ERR_GETPUBLICINDEX_ERR 0x0125 //根据索引获取公钥失败 +#define ERR_GETPRIINDEX_ERR 0x0126 //根据索引获取私钥失败 + +//交易错误码集 +#define FDCM_SUCCESS 0x0000 + +#define FDCM_PARAM_NULL 0x1000 //交易入参为空 +#define FDCM_FILLMODE_ERR 0x1001 +#define FDCM_PCIWRITE_ERR 0x1002 +#define FDCM_PCIREAD_ERR 0x1003 +#define FDCM_PCILEN_ERR 0x1004 +#define FDCM_DATACRC_ERR 0x1005 +#define FDCM_MACTYPE_ERR 0x1006 +#define FDCM_CMPMAC_ERR 0x1007 +#define FDCM_CMPPVV_ERR 0x1008 +#define FDCM_CMPOFFSET_ERR 0x1009 +#define FDCM_CMPCVV_ERR 0x100A +#define FDCM_CMPCSC1_ERR 0x100B +#define FDCM_CMPCSC2_ERR 0x100C +#define FDCM_CMPCSC3_ERR 0x100D +#define FDCM_MSGLEN_ERR 0x100E +#define FDCM_MSGSEND_ERR 0x100F +#define FDCM_MSGRCV_ERR 0x1010 +#define FDCM_LOGTYPE_ERR 0x1011 +#define FDCM_OPENDIR_ERR 0x1012 +#define FDCM_STAT_ERR 0x1013 +#define FDCM_SCANDIR_ERR 0x1014 +#define FDCM_FILE_NOT_EXIST 0x1015 +#define FDCM_OPENFILE_ERR 0x1016 +#define FDCM_READFILE_ERR 0x1017 +#define FDCM_STATETYPE_ERR 0x1018 +#define FDCM_POPEN_ERR 0x1019 +#define FDCM_USBWRITE_ERR 0x101A +#define FDCM_USBREAD_ERR 0x101B +#define FDCM_CARDSTATE_ERR 0x101C +#define FDCM_CHECKHEX_ERR 0x101D +#define FDCM_CMD_ERR 0x101E +#define FDCM_APPMODE_ERR 0x101F +#define FDCM_PKINDEX_ERR 0x1020 +#define FDCM_PKALGORITHM_ERR 0x1021 +#define FDCM_CHECKDEC_ERR 0x1022 +#define FDCM_8LEN_ERR 0x1023 +#define FDCM_KEYFLAG_ERR 0x1024 +#define FDCM_CHECKLEN_ERR 0x1025 +#define FDCM_SALGORITHM_ERR 0x1026 +#define FDCM_SPKINDEX_ERR 0x1027 +#define FDCM_SPKALGORITHM_ERR 0x1028 +#define FDCM_SKEYFALG_ERR 0x1029 +#define FDCM_DALGORITHM_ERR 0x102A +#define FDCM_DPKINDEX_ERR 0x102B +#define FDCM_DPKALGORITHM_ERR 0x102C +#define FDCM_DKEYFLAG_ERR 0x102D +#define FDCM_ALGORITHM_ERR 0x102E +#define FDCM_DISALGORITHM_ERR 0x102F +#define FDCM_DISPKINDEX_ERR 0x1030 +#define FDCM_DISPKALGORITHM_ERR 0x1031 +#define FDCM_DISKEYFLAG_ERR 0x1032 +#define FDCM_FLAG_ERR 0x1033 +#define FDCM_PVKFLAG_ERR 0x1034 +#define FDCM_PVKI_ERR 0x1035 +#define FDCM_PINFORMAT_ERR 0x1036 +#define FDCM_ZPKALGORITHM_ERR 0x1037 +#define FDCM_ZPKLEN_ERR 0x1038 +#define FDCM_ZPKFLAG_ERR 0x1039 +#define FDCM_USERIDLEN_ERR 0x1040 +#define FDCM_4LEN_ERR 0x1041 +#define FDCM_CURVEPARA_ERR 0x1042 +#define FDCM_CURVELEN_ERR 0x1043 +#define FDCM_SEMICOLONS_ERR 0x1044 +#define FDCM_HASHTYPE_ERR 0x1045 +#define FDCM_NUMBEROFZMK_ERR 0x1046 +#define FDCM_KEYLEN_ERR 0x1047 +#define FDCM_CMPCSC_ERR 0x1048 +#define FDCM_RANDOM_ERR 0x1049 +#define FDCM_WRITE_ERR 0x1050 +#define FDCM_PCISTATE_ERR 0x1051 +#define FDCM_NOT_AUTHORISEC_ERR 0x1052 +#define FDCM_AUTHORISEC_ERR 0x1053 +#define FDCM_PINLEN_ERR 0x1054 +#define FDCM_RANDOMLEN_ERR 0x1055 +#define FDCM_DATALEN_ERR 0x1056 +#define FDCM_MAC_ERR 0x1057 +#define FDCM_ROLE_ERR 0x1058 +//交易错误码集工行 +//******************************************************* +#define ICBC_ID_ERR 0x9000 //通用指令 指令ID不正确 +#define ICBC_KEYCLASS_ERR 0x9001 //通用指令 密钥种类错误 +#define ICBC_KEYTYPE_ERR 0x9002//通用指令 密钥类型错误 +#define ICBC_KEYLEN_ERR 0x9003 //通用指令 密钥长度错误 +//2015,4,21 add +#define ICBC_KEYTEXT_ERR 0x9004//通用指令 密钥密文含有非法字符 +#define ICBC_KEYKCI_ERR 0x9005//通用指令密钥的KCI 校验不过 +#define ICBC_DATA_ERR 0x9006//通用指令数据含有非法字符 +#define ICBC_DATA_LEN_OVER_ERR 0x9007//通用指令数据长度值超过报文8K ,表示少于8k 的数据长度不能支持时才报错. +#define ICBC_DATALEN_ERR 0x9008//通用指令 数据包长度异常 +#define ICBC_MSGLEN_OVER_RANGE 0x9009//通用指令 数据包长度异常超过报文8K, 断开连接 +#define ICBC_MSGLEN_OVER 0x9010//通用指令 实际接收的报文比数据包长度域长,断开连接 +#define ICBC_SNDRCV_TIMEOUT 0x9011//通用指令 实际接收的报文比数据包长度域短,加密机超时,断开连接 + +//#define ICBC_IDLEN_ERR 0x9020//ID长度错误 +#define ICBC_KEYUSE_ERR 0x9021//密钥用途错误 +#define ICBC_INCOMPLETE_KEY_ERR 0x9022//非完整密钥 + + +//2015/05/16 nifei add start +#define ICBC_VERIFYSIGN_ERR 0x1501//验证签名失败 +#define ICBC_SIGN_ERR 0x1502//签名失败 +#define ICBC_SIGNDATALEN_ERR 0x1503//签名数据原文长度错误 +#define ICBC_SM2MODE_ERR 0x1504//SM2密钥产生模式错误 +#define ICBC_SM3HASHMODE_ERR 0x1505//SM3杂凑模式错误 +#define ICBC_IDLEN_ERR 0x1506//ID长度错误 +#define ICBC_SIGNLEN_ERR 0x1601//签名值长度错误 +#define ICBC_GENSM2KEY_ERR 0x1602//产生SM2 密钥对错误 +#define ICBC_SM3HASH_ERR 0x1603//产生SM3 HASH 错误 +#define ICBC_GENCSR_ERR 0x1604//产生SM2 证书请求错误 +#define ICBC_CERTFORMAT_ERR 0x1605//证书格式错误 +#define ICBC_CERTPUBKEY_ERR 0x1606//证书公钥和私钥的公钥部分不匹配 +#define ICBC_IPFALG_ERR 0x1701//IP格式标识错误 +#define ICBC_IPFORMAT_ERR 0x1702//IP格式错误 +#define ICBC_IPISEXIST_ERR 0x1703//IP已存在 +#define ICBC_IPCNTISOVER_ERR 0x1704//IP白名单个数已超过上限 +#define ICBC_IPWHITEISNULL_ERR 0x1705//IP白名单为空 +#define ICBC_IPNOTMATCH_ERR 0x1706//IP地址不匹配 +#define ICBC_GETVERSIONINFO_ERR 0x1707//获取加密机版本信息失败 +#define ICBC_USERRIGTH_ERR 0x1708//用户权限错误 +#define ICBC_MNGIPDEL_ERR 0x1709//管理员IP不可删除 + +//2015/05/16 nifei add end + + +#define ICBC_PTR_FORMAT_ERR 0x1001 //D2S_PTR和S2D_PTR,DES_PTR PINBLOCK格式错误,字典只有0,4 +#define ICBC_PTR_SPAN_ERR 0x1002 //D2S_PTR和S2D_PTR,DES_PTR 转换前PAN未输入 +#define ICBC_PTR_NPAN_ERR 0x1003 //D2S_PTR和S2D_PTR,DES_PTR 转换后PAN未输入 +#define ICBC_PTR_END_ERR 0x1004 //D2S_PTR和S2D_PTR,DES_PTR 结尾符号不是; +#define ICBC_PTR_CARDNO_ERR 0x1005 //D2S_PTR和S2D_PTR,DES_PTR卡号不是12-19位 +#define ICBC_PASSWDLEN_ERR 0x1006 //DES_RPG 密码长度错 +#define ICBC_PASSWD_PINBLOCK_ERR 0x1007//DES_EPD,DES_PTR,DES_PVG 密码,pinblock错或为空 +#define ICBC_FORMAT_PAN_ERR 0x1008 //当pin格式不为1时pan不为空 +#define ICBC_FORMAT_PAN_DATA_ERR 0x1009 //pin包含非法字符 + +#define ICBC_FILL_ERR 0x1101 //SM4_MAG和SM4_MAV DES_MPG,MAC数据补位方式错误,字典只有0,1 +#define ICBC_DATAFLAG_ERR 0x1102 //SM4_MAG和SM4_MAV DES_MPG,MAC数据块标识错误,字典只有0,1,2,3 +#define ICBC_DATA_LENGTH_OVER 0x1103 +#define ICBC_MAC_CHECK_ERR 0x1105//DES_MAV,MAC校验失败 +#define ICBC_IV_ERR 0x1106//DES_MAG,DES_MAV,SM4_CTT,初始向量错或者所需iv 错误 +#define ICBC_DATA_FLAG_ERR 0x1107//DES_MPG,DES_MAG,DES_MAV,DES_ENC,DES_DEC,SM4_MAG,SM4_MAV,SM4_CTT,报文块1,2时,mac 数据不是8/16字节的整数倍(国密为16字节,国际为8字节),或者是补位模式为0- none 或者分组为1-非最后的一个分组时,数据长度不为分组长度的整数倍. +#define ICBC_MAC_CHECK_LEN_ERR 0x1109//SM4_MAV,DES_MAV 国密算法指明MAC校验长度错误,具体字典为4,6,8,0,国际算法指明MAC校验长度错误,具体字典为4,6,8 +#define ICBC_ENC_MODE_ERR 0x1201//DES_ENC,DES_DEC,SM4_CTT,加密模式错 +#define ICBC_ENC_DATA_ERR 0x1202//DES_ENC,DES_DEC,加密数据错误 +#define ICBC_FILL_MODE_ERR 0x1203//DES_ENC,DES_DEC,SM4_CTT补位模式错 +#define ICBC_GROUP_MODE_ERR 0x1204//DES_ENC,分组模式错 或者加密数据分组标识错误,字典只有0,1,2 + +#define ICBC_DKG_USE_ERR 0x1301//KGK 密钥密文中密钥用途第5位到第8位是0080 ,表示KGK +#define ICBC_TEMP_KEY_USE_FIRST_BIT_ERR 0x1302//DES_KPI中间密钥密钥用途第一位为非9 +#define ICBC_DISPERSED_DATA_ERR 0x1303//DES_DKG分散数据异常,长度异常或含有非法字符. +#define ICBC_KEY_USE_BIT_ERR 0x1304//DES_KEXKEK 密钥用途第5-8位为非’0000’时,需被导出的密钥的密钥类型与KEK 密钥用途第5-8位不一致 +#define ICBC_COMP_ERR 0x1305//DES_KPI ,SM4_KPI分量表示错误,字典只有0,1,2 +#define ICBC_COMP_0_TEMP_KEY_ERR 0x1306//DES_KPI ,SM4_KPI分量为0时 ,中间密钥不为全0. +#define ICBC_KEY_TYPE_VALID 0x1307//ZTL key type failed +#define ICBC_KEY_LEN_VALID 0x1308// key len failed +#define ICBC_KEY_TYPE_ERR 0x1401//SM4_KXG 密钥类型错误,字典只有0050,0070 + +#define ICBC_MAC_NO_MAC 0x0004 //标识MAC 未校验 +#define ICBC_MAC_MAG_ERR 0x0006 //MAC生成错误 + + +#define ICBC_DESHASH_ALGORITHM_ERR 0x1220 //散列算法错误 +#define ICBC_DESGROUP_DESCRIBE_ERR 0x1221 //分组描述错误只有0,1,2 +#define ICBC_INDEX_ERR 0x1108//密钥索引值超出范围 +#define ICBC_GENERATE_RANDOM_ERR 0x1222//生成随机数错误 +#define ICBC_GENERTE_RANDOM_KEY_ERR 0x1223//产生随机密钥错误 + +#define ICBC_TRANS_TO_ICBC_ERR 0x1801//把本地密钥转换为ICBC错误 +#define ICBC_TRANS_TO_DEFAULT_ERR 0x1802//把工行密钥转换为本地错误 +#define ICBC_LMK_TO_KEK_ERR 0x1803//lmk转换为kek错误 +#define ICBC_LMK_TO_LMK_ERR 0x1804//lmk转换为lmk错误 +#define ICBC_KEK_TO_LMK_ERR 0x1805//kek转换为lmk错误 +#define ICBC_ENC_ERR 0x1806//加密错误 +#define ICBC_DEN_ERR 0x1807//解密错误 +#define ICBC_CPT_KEY_ERR 0x1808//分量合成错误 +#define ICBC_GENERATE_KCI_ERROR 0x1809//生成KCI错误 +#define ICBC_SEARCH_KEY_ERR 0x1810//查找工行主密钥失败 +#define ICBC_SET_KEY_ERR 0x1811//设置工行主密钥错误 +#define ICBC_COM_DISPERSE_ERR 0x1812//分散ID卡子密钥错误 +#define ICBC_HASH_ERR 0x1813//计算hash错误(主要用于SHA_OWH) + +#define ICBC_SHA_CHAIN_VERCTORY_ERR 0x1901//SHA 的CHAIN VERCTORY值错误 +#define ICBC_CARD_ID_ERR 0x1902//卡号+卡序列号数据长度错误或者含有非法字符 +#define ICBC_CARD_ATC_ERR 0x1903//ATC含有非法字符 +#define ICBC_CARD_ARQC_ERR 0x1904//ARQC含有非法字符 +#define ICBC_CARD_ARC_ERR 0x1905//ARC含有非法字符 + +//非对称算法错误标识 +//#define ICBC_SM2_MODE_ERR 0x1600//sm2 mode模式错误,数据字典只有0,1,2 +//#define ICBC_SM2_HASH_FLAG_ERR 0x1601//sm2 HASH标识错误,数据字典只有0,1 +//*******************************************************/ +/**************************************************************** +#define ICBC_KEY_CHECK_ERR 0x9004 //通用指令 密钥校验 +#define ICBC_DATA_ERR 0x9005 //通用指令 数据包异常 + +#define ICBC_PTR_PAN_ERR 0x1006 //D2S_PTR和S2D_PTR PAN格式错误 +#define ICBC_PTR_ACCOUNT_ERR 0x1007 //D2S_PTR和S2D_PTR 转换前PINBLOCK账号校验错误 +#define ICBC_PTR_PINBLOCK_ERR 0x1008 //D2S_PTR和S2D_PTR PINBLOCK转换错误 + +#define ICBC_SM4MAC_DATALENOVER_ERR 0x1103 //SM4_MAG和SM4_MAV 数据长度值超过报文8K +#define ICBC_SM4MAC_DATALEN_ERR 0x1104 //SM4_MAG和SM4_MAV 数据包长度异常 +#define ICBC_SM4MAC_MAV_ERR 0x1105 //SM4_MAV MAC校验失败 + +#define ICBC_SM4MAC_MAG_ERR 0x1106 //SM4_MAV MAC生成错误 +#define ICBC_SM4MAC_NO_MAC 0x0004 //标识MAC 未校验 + +#define ICBC_DES_DATALEN_ERR 0x1201 //DES和3DES数据包长度异常 +#define ICBC_DESMAC_FILL_ERR 0x1202 //DES_MAG和DES_MAV MAC数据补位方式错误,字典只有0,1 +#define ICBC_DESMAC_DATAFLAG_ERR 0x1203 //DES_MAG和DES_MAV MAC数据块标识错误,字典只有0,1,2,3 +#define ICBC_DESMAC_DATALENOVER_ERR 0x1204 //DES_MAG和DES_MAV 数据长度值超过报文8K +#define ICBC_PASSWD_LEN_ERR 0x1205 //随机密码长度错误 +#define ICBC_PASSWD_PIN_LEN_ERR 0x1206 //输入密码PIN长度不是4-12 +#define ICBC_PASSWD_PIN_END_ERR 0x1207 //输入密码PIN结束符不是; +#define ICBC_DESMAC_MAG_ERR 0x1208 //DES_MAV MAC生成错误 +#define ICBC_DESMAC_MAV_ERR 0x1209 //DES_MAV MAC校验失败 +#define ICBC_DESMAC_NO_MAC 0x0004 //标识MAC 未校验 +#define ICBC_ENC_TO_PINBLOCK_ERR 0x1210 //密码使用PIK密钥加密为PINBLOCK失败 +#define ICBC_DEC_PINBLOCK_TO_PLAINTEXT_ERR 0x121A //PINBLOCK密文解密为明文失败 +#define ICBC_DESENC_MODE_ERR 0x121B//加密模式错误 +#define ICBC_DESFILL_MODE_ERR 0x121C//补位模式错误 +#define ICBC_DESGROUP_DESCRIBE_ERR 0x121D//分组描述错误 +#define ICBC_DESCOMP_LEN_ERR 0x121E//分量长度错误 +#define ICBC_DESCOMP_FLAG_ERR 0x121F//DES分量标识错误 +#define ICBC_DESHASH_ALGORITHM_ERR 0x1220 //散列算法错误 +#define ICBC_DESLENGTH_ERR 0x1221//指定的随机密码长度不正确 + +#define ICBC_SM4_DATALEN_ERR 0x1107//SM4数据包长度异常 +#define ICBC_SM4KEY_INDEX_ERR 0x1108//密钥索引值超出范围 +#define ICBC_SM4LEN_ERR 0x1109//SM4分量长度超出范围 +#define ICBC_SM4COMP_FLAG_ERR 0x110A//SM4分量标识错误 +**********************************************************************************/ + +//*************PCI ERROR CODE****************/ +//如果加密卡支持奇偶校验不过,仍然返回结果 +//那么定义该宏为0x3121,例如工银国际版本 +#define ERR_PCI_ODD_CHECK_ERR 0x3121 +//如果加密卡奇偶校验不过直接报错 +//那么定义该宏为-1 +//#define ERR_PCI_ODD_CHECK_ERR -1 +//*********** Racal Error Code **************/ + +#define NO_ERRORS 0x00 +#define ERR_VERIFICATION_FAILURE 0x01 +#define ERR_VERIFICATION_PIN 0x02 +#define ERR_KEYDATA_LENGTH 0x02 +#define ERR_INVALID_MESSAGE_TYPE_CODE 0x03 +#define ERR_INVALID_KEY_TYPE_CODE 0x04 +#define ERR_INVALID_KEY_LENGTH_FLAG 0x05 // 根据标准而来,不可改dwb +#define ERR_INVALID_MESSAGE_BLOCK_NUMBER 0x05 // 根据标准而来,不可改 fuck zcb +#define ERR_INVALID_KEY_LENGTH_CODE 0x06 +#define ERR_SOURCE_KEY_PARITY 0x10 +#define ERR_DEST_KEY_PARITY 0x11 +#define ERR_USER_STORAGE 0x12 +#define ERR_MASTER_KEY_PARITY 0x13 +#define ERR_LMK_PIN_BLOCK_INVALID 0x14 +#define ERR_INPUT_DATA_INVALID 0x15 +#define ERR_PRINTER_NOT_READY 0x16 +#define ERR_HSM_NOT_AUTHORISED 0x17 +#define ERR_FORMAT_NOT_DEFINITION 0x18 +#define ERR_DIEBOLD_TABLE_INVALID 0x19 +#define ERR_PIN_BLOCK 0x20 +#define ERR_USER_STORAGE_INDEX 0x21 +#define ERR_ACCOUNT_NUMBER_INVALID 0x22 +#define ERR_PIN_FORMAT_INVALID 0x23 +#define ERR_INVALID_PIN_LENGTH 0x24 +#define ERR_DEC_TABLE 0x25 +#define ERR_INVALID_KEY_SCHEMA 0x26 +#define ERR_INVALID_KEY_LENGTH 0x27 +#define ERR_INVALID_KEY_TYPE 0x28 + +#define ERR_INVALID_REFERENCE_NUMBER 0x30 +#define ERR_SAME_PIN 0X75 +#define ERR_INVALID_PRIVATAKEYLENGTH 0x78 +#define ERR_DSP_ERR 0x47 + +#define ERR_DATA_LENGTH 0x80 +#define ERR_TRADECMD_NOT_EXIST 0x81 //交易命令不存在 +#define ERR_INVALID_DATALENGTH 0x92 +#define ERR_DATA_THAN_MODULUS_BIG 0x98 //数据比模大 + + +//***2015-11-11 11:11工银国际M6返回码******************* +#define ERR_INVALID_MODE_FLAG 0x02 +#define ERR_INVALID_INPUT_FORMAT 0x03 +#define ERR_INVALID_MAC_ALGORITHM 0x04 +#define ERR_INVALID_KEY_TYPE_M6 0x05 +#define ERR_INVALID_KEY_LENGTH_M6 0x06 +#define ERR_INVALID_PADDING_METHOD 0x09 + +//****************************************************** + +//0x80~0xc0 +//83,84,85,89,90,92,93,99,a1,a7,ab,ac,ad,ae... +#define ERR_USB_NOT_EXIST1 0x83 //U盾不存在 +#define ERR_UKEY_LOGIN 0x84 //U盾登录失败 +#define ERR_UKEY_MAKE 0x85 //U盾制作失败 +#define ERR_UKEY_CZSB 0x89 //操作失败 +#define ERR_JSSB 0x90 //解锁失败 +#define ERR_KLCW 0x92 //口令错误 +#define ERR_YKLCW 0x93 //原口令错误 +#define ERR_GHKLSB 0xA1 //口令更改失败 +#define ERR_UKEY_FILENULL 0xA7 //密钥备份文件不存在 +#define ERR_UKEY_DEEXIST 0x8A//0xAB //数字信封已存在 +#define ERR_RKEY_UNABLED 0xAC //非本机发行盾 +#define ERR_BKEY_UNABLED 0xAD //非本机备份盾 +#define ERR_BKEY_NULL 0xAE //该盾未备份密钥 + +#define ERR_UKEY_ILLEGAL 0xAF //非法U盾 +#define ERR_UKEY_NONEMPTY 0x8B//0x86 //非空盾 + + +/*********** 20141104 nifei add start(工银亚洲) **************/ +#define ERR_MEM_ALLOC_FAIL 0x41 //内存申请失败 +#define ERR_ZPK_PARITY 0x10 //ZPK错误 +#define ERR_ENC_PIN 0x14 //error in encrypted pin +#define ERR_INVALID_SES_KEY 0x08 //invalid message session key or iv +#define ERR_INVALID_NEW_SES_KEY 0x09 //invalid New message session key or iv +#define ERR_KEY_LEN 0x27 //密钥长度错误 +#define ERR_NUMERIC_FLAG 0x06 //invalid Numeric Flag +#define ERR_UPPERCASE_FLAG 0x07 //invalid Uppercase Flag +#define ERR_INVALID_AN_PIN_LEN 0x04 //invalid AN-PIN Length +#define ERR_INVALID_AN_PIN_VER_FLAG 0x76 //invalid AN-PIN Verification Flag +#define ERR_INVALID_PRI_KEY_INDEX 0x03 //invalid Private Key index +#define ERR_INVALID_MES_SES_KEY_LEN 0x71 //incorrect Message Session Key Length +#define ERR_SECRET_KEY_LEN 0x78 //secret key length error +#define ERR_INVALID_PUBKEY_ENC_TYPE 0x03 //Invalid public key encoding type +#define ERR_PUB_EXP_LEN 0x06 //Public exponent length error +#define ERR_SUP_PUB_EXP_IS_EVEN 0x08 //Supplied public exponent is even + +/*********** 20141104 nifei add end(工银亚洲) **************/ + + +/***********20141013 ywn add(工银国际E0指令错误码)***********/ + +#define ERR_DATA_FLAG_ERR 0x01//非法报文块标识域 +#define ERR_ALGORITHM_MODE_ERR 0x02//非法算法操作模式域 +#define ERR_INPUT_FLAG_ERR 0x03//非法输入数据格式域 +#define ERR_OUTPUT_FLAG_ERR 0x04//非法输入数据格式域 +#define ERR_KEY_TYPE_ERR 0x05//非法密钥类型域 +#define ERR_DATA_LEN_ERR 0x06//非法保温长度域 +#define ERR_ENC_FLAG_ERR 0x07//非法加解密标识域 +#define ERR_FILL_MODE_ERR 0x08//非法填充模式域 +#define ERR_FILL_CNT_FLAG_ERR 0x08//非法填充计数模式域 +#define ERR_FILL_CHAR_ERR 0x09//填充字符域错误 + +#define ERR_KEY_SCHEMA_ERR 0x26//密钥方案错误 +/***********20141013 ywn add(工银国际E0指令错误码)***********/ + +#endif + diff --git a/INCLUDE/global.h b/INCLUDE/global.h new file mode 100644 index 0000000..af3813c --- /dev/null +++ b/INCLUDE/global.h @@ -0,0 +1,347 @@ +#ifndef _GLOBAL_H_ +#define _GLOBAL_H_ + +#include + +#define KEY_0 0x00 +#define KEY_1 0x01 +#define KEY_2 0x02 +#define KEY_3 0x03 +#define KEY_4 0x04 +#define KEY_5 0x05 +#define KEY_6 0x06 +#define KEY_7 0x07 +#define KEY_8 0x08 +#define KEY_9 0x09 +#define KEY_A 0x0A +#define KEY_B 0x0B +#define KEY_C 0x0C +#define KEY_D 0x0D +#define KEY_E 0x0E +#define KEY_F 0x0F +#define KEY_POWER 0x11 +#define KEY_FUNC 0x12 +#define KEY_DEL 0x13 + +#define KEY_UP 0x04 +#define KEY_DOWN 0x01 +#define KEY_ESC 0x02 +#define KEY_ENTER 0x03 + +#define KEY_FUNC_3S 0x18 +#define KEY_ERROR 0xFF //多重按键错误 + +#define ITEM_1 7 //菜单项的Menu-ITEM?可以定位到0xF5-0xFF +#define ITEM_2 8 +#define ITEM_3 9 +#define ITEM_4 10 +#define ITEM_5 11 +#define ITEM_6 12 +#define ITEM_7 13 //菜单项的Menu-ITEM?可以定位到0xF5-0xFF +#define ITEM_8 14 +#define ITEM_9 15 +#define ITEM_10 16 +#define ITEM_11 17 +#define ITEM_12 18 +#define ITEM_13 19 +#define ITEM_14 20 +#define ITEM_15 21 +#define ITEM_16 22 + +#define DEALOK 0 + +#define Admin 0 +#define Operator 1 +#define Menu_Init_Kao 0x01 +#define Menu_Kao_Frame1 0x02 +#define Menu_Kao_Frame2 0x03 +#define Menu_EXAR 0x04 +#define Menu_HYK16Test 0x05 +#define Menu_1308Test 0x06 +#define Menu_SYD1308_Test_1 0x07 +#define Menu_SYD1308_Test_2 0x08 +#define Menu_SYD1308_device_manage_1 0x09 +#define Menu_SYD1308_device_manage_2 0x0a +#define Menu_SYD1308_lmk_manager_1 0x0b +#define Menu_Kao_Frame3 0xf4 +#define Menu_Kao_Frame4 0xf5 +#define Menu_CardTest_1 0xf6 +#define Menu_CardTest_2 0xf7 +#define Menu_Flash 0xf8 +#define Menu_Sram 0xf9 +#define Menu_Kai_Test 0xfA +#define Menu_Kao_Frame5 0xfB +#define Menu_CardTest 0xFC +#define Menu_CardTest_3 0xFD +#define Menu_Main_LOG 0xFE +#define Menu_Init_Test 0xFF + +#define Menu_Login_Manage 0x04 +#define Menu_Login_Server 0x05 +#define Menu_Manage_AsymmetricalKey 0x06 +#define Menu_Manage_ClientIP 0x07 + +#define Menu_Manage_LMK 0x08 +#define Menu_Manage_Operator_1 0x09 +#define Menu_Manage_Operator_2 0x0A +#define Menu_Manage_Operator_3 0xB2 + +#define Menu_Manage_System_1 0x0B +#define Menu_Manage_System_2 0x0C +#define Menu_Manage_Modify_Ethx 0x0D +#define Menu_Manage_SerialPort 0x0E +#define Menu_Manage_Organ 0x68 +#define Menu_Manage_KeyType 0x69 +#define Menu_Manage_KeyQuery 0x6A +#define Menu_Manage_KeyGenerate 0x99 +#define Menu_Manage_KeyGenerate_1 0xA1 +#define Menu_Manage_KeyGenerate_2 0xA2 +#define Menu_Manage_KeyGenerate_3 0xA3 +#define Menu_Manage_KeyGenerate_4 0xA4 +#define Menu_Manage_KeyIssue1 0xA5 +#define Menu_Manage_KeyIssue2 0xA6 +#define Menu_Manage_KeyIssue3 0xA7 +#define Menu_Manage_KeyIssue4 0xA8 +#define Menu_Manage_KeyChange1 0xA9 +#define Menu_Manage_KeyChange2 0xAA +#define Menu_Manage_KeyChange3 0xAB +#define Menu_Manage_KeyInit 0xB3 +#define Menu_Manage_LMKIssue 0xC7 +#define Menu_Manage_LMKIssue1 0xC8 +#define Menu_Manage_LMKIssue2 0xC9 +#define Menu_Manage_LMKIssue3 0xCA +#define Packet_Field_Set1 0xCB +#define Menu_Manage_System_3 0xCC +#define Menu_Manage_ClientIP_Menu 0xCD + +#define UKey_Make_1 0xB4 +#define UKey_Make_2 0xB5 +#define UKey_Make_LMK_From_IC_1 0xBC +#define UKey_Make_LMK_From_IC_2 0xBD +#define UKey_Or_IC_ChangePwd_1 0xB6 +#define UKey_Or_IC_ChangePwd_2 0xB7 +#define UKey_Or_IC_ChangePwd_2l 0xBC +#define UKey_Or_IC_Deblock_1 0xB8 +#define UKey_Or_IC_Deblock_2 0xB9 +#define UKey_Manage_Operate_1 0xBA +#define UKey_Manage_Operate_2 0xBB + +#define Menu_Manage_KeyBackups 0x7A +#define Menu_Manage_KeyChange 0xA0 +#define Menu_Manage_KeyStop 0x7B +#define Menu_Manage_KeyDel 0x7C +#define Menu_Manage_Key_1 0x7D +#define Menu_Manage_Key_2 0x7E +#define Menu_Manage_Key_3 0x98 +#define Menu_Manage_Key_4 0xAD +#define UD_Make_Manage 0xAC +#define UD_Make_Operator 0xAE +#define UD_Make_Windicate 0xAF + +#define Dev_Key_Back_1 0x0F +#define Dev_Key_Back_2 0x10 +#define Dev_Key_Back_3 0x11 +#define Dev_Key_Back_4 0x12 +#define Dev_Key_Recover_1 0x13 +#define Dev_Key_Recover_2 0x14 +#define Dev_Key_Recover_3 0x15 +#define Dev_Key_Generate_1 0x16 +#define Dev_Key_Generate_2 0x17 +#define Dev_PublicKey_Inport 0x18 +#define Dev_PublicKey_Outport_1 0x19 +#define Dev_PublicKey_Outport_2 0x1A +#define Dev_UsbKey_Register 0x1B + +#define IC_Init_1 0x1C +#define IC_Init_2 0x1D +#define IC_Card_Copy_1 0x1E +#define IC_Card_Copy_2 0x1F +#define IC_Card_Copy_3 0x20 +#define IC_Card_Copy_4 0x21 +#define IC_Card_Copy_5 0x22 +#define IC_Card_Copy_6 0x23 +//#define IC_Change_Oper_Passwd_1 0x24 +//#define IC_Change_Oper_Passwd_2 0x25 +#define IC_Init_Passwd 0x26 +#define IC_Make_Net 0x27 +#define IC_Make_Operator 0x28 +#define IC_Make_Operator_1 0x61 +#define IC_Make_Windicate 0x29 +#define IC_HSM_Register_1 0x2A +#define IC_HSM_Register_2 0x2B +#define IC_HSM_Cancel_1 0x66 +#define IC_HSM_Cancel_2 0x67 + +#define Init 0x2C +#define Init_1 0x2D +#define Init_2 0x2E +#define Init_3 0x2F +#define Init_4 0x30 + +#define LMK_Generate 0x31 +#define LMK_Move 0x32 +#define LMK_Move_1 0x62 +#define LMK_Recover_1 0x33 +#define LMK_Recover_2 0x34 +#define LMK_Recover_3 0x35 +#define LMK_Bak_1 0x36 +#define LMK_Bak_2 0x37 +#define LMK_Bak_3 0x38 +#define LMK_Bak_4 0x39 +#define LMK_Bak_5 0x60 + +#define Login_Admin_1 0x3A +#define Login_Admin_2 0x3B +#define Login_Operator_1 0x3C +#define Login_Operator_2 0x3D +#define Login_Windicate_1 0x3E +#define Login_Windicate_2 0x3F +#define Login_Net_1 0x63 +#define Login_Net_2 0x64 +#define FLogout 0x40 + +#define System_start 0x41 +#define System_Modify_Ethx_1 0x42 +#define System_Modify_Ethx_2 0x43 +#define System_Modify_Ethx_3 0xC0 +#define System_Modify_Ethx_4 0xC1 +#define System_Modify_Ethx_5 0xC2 +#define System_Modify_Ethx_6 0xC3 +#define System_Modify_Ethx_7 0xC4 +#define System_Modify_Ethx_8 0xC5 +#define System_Modify_Ethx_9 0xC6 + +#define System_Port 0x44 +#define System_Version_Query 0x46 +#define System_LMK_KCV_Query 0x9A //查询lmk kcv +#define System_Time_Settings 0x47 +#define System_Change_Passwd 0x48 + +#if 1 +#define System_Restore_Factory_1 0x49 +#define System_Restore_Factory_2 0x4A +#define System_Restore_Factory_3 0x4B +#define System_Restore_Factory_4 0x4C +#endif + +#define System_SerialPort_Settings 0x4D + +#define System_SerialPort_Settings_S 0x74 + +#define System_Upgrade_1 0x4E +#define System_Upgrade_2 0x4F +#define System_Upgrade_3 0x50 +#define System_Upgrade_4 0x51 +#define System_Power_Off_1 0x52 +#define System_Power_Off_2 0x53 +#define System_Succeed_Message 0x54 +#define System_Fail_Message 0x55 +#define System_ClientIP_Add 0x56 +#define System_ClientIP_Del_1 0x57 +#define System_ClientIP_Del_2 0x58 +#define System_ClientIP_Que 0x59 +#define SerialPort_Service 0x5A +#define Machine_No_Query 0x5B +#define Network_Service_1 0x5C +#define Network_Service_2 0x5D +#define Network_Service_3 0xBF +#define Network_Service_4 0xBE + +#define LMK_Sys_Login 0x5E +#define System_Log 0x5F +#define Work_To_Tmp 0x65 +#define KEK_RECOVER 0x66 +#define Key_Organ_Add 0x6B +#define Key_Organ_Del 0x6C +#define Key_Organ_Que 0x6D +#define Key_Type_Add 0x6E +#define Key_Type_Del 0x6F +#define Key_Type_Que_1 0x70 +#define Key_Type_Que_2 0x7F +#define Key_Query_ByOne_1 0x71 +#define Key_Query_ByOne_2 0x81 +#define Key_Query_ByMore_1 0x72 +#define Key_Query_ByMore_2 0x80 +#define Key_Issue_1 0x73 +//#define Key_Backups 0x74 +//#define Key_Recover 0x75 +#define Key_Stop_ByOne 0x76 +#define Key_Stop_ByMore 0x77 +#define Key_Del_ByOne 0x78 +#define Key_Del_ByMore 0x79 +#define CardKey_Move_1 0X82 // 83 +#define CardKey_Move_2 0x83 +#define CardKey_Move_3 0x84 +#define CardKey_Move_4 0x85 +#define Key_Start_ByOne 0x86 +#define Key_Start_ByMore 0x87 +#define Key_Issue_2 0x91 +#define Key_Issue_3 0x92 +#define Key_Issue_4 0x93 +#define Key_Issue_5 0x94 +#define Packet_Field_Set 0x95 +#define Part_Combine_Key 0x96 +#define Part_Combine_PIN 0x97 + +extern int card_flag; + +extern unsigned char Frame; //画面号 +extern unsigned int MenuItem; //光标所在菜单项 +extern unsigned int FreshItem; //记录上一个item +extern unsigned char TO_ADMIN_OR_MOR_FLAG; //初始化后,进入管理程序或编核押程序标志 1 管理程序 0 编核押 +extern unsigned char ADMIN_LOCATE_FLAG; //安控员登录定位标志 0:安控员一登录界面 1:安控员二登录界面 2:管理菜单管理员登录界面 + +extern unsigned char UKEY_MAKE_FLAG; +extern unsigned char MANAGE_UMAKE_FLAG; +extern unsigned char SUPPER_UMAKE_FLAG; +extern unsigned char UKEY_OPERATE_FLAG; +extern unsigned char DEBLOCK_FLAG; +extern unsigned char PWD_CHANGE_FLAG; + +extern unsigned char NETLOGIN_FLAG; //网络服务登录1:普通交易登录2:授权状态登录 +extern unsigned char LMK_RECOVER_FLAG; //恢复主密钥定位标记1:恢复分量一2:恢复分量二3:恢复分量二 +extern unsigned char LMK_BAK_FLAG; //备份主密钥定位标记1:备份分量一2:备份分量二3:备份分量三 +extern unsigned char LMK_GENERATE_FLAG; //产生主密钥方式1:新生成2:分量恢复 +extern unsigned char LMK_FLAG; //判断LMK 是否正常0:正常1:不正常 +extern unsigned char MAKE_OPR_FLAG; //制作密钥管理员1:密钥管理员一2:密钥管理员二 +extern unsigned char AUTHORIZATION_LOGIN; //网络交易授权状态1:授权登录0:配置管理员登录 +extern unsigned char NetService_Change; //交易状态切换0,非切换状态1,普通到授权,2,授权到普通 +extern unsigned char cmp_combine; + +extern unsigned char MenuItem_num; //返回到上一帧菜单项被选中号,优先级高 +extern unsigned char EXIT_Frame; //返回到上一帧界面号 比Function优先级高 +extern unsigned char EXIT_Frame_Flag[8]; //存放一个功能菜单的EXIT_Frame +extern unsigned char MenuItem_num_Flag[8]; //存放一个功能菜单的MenuItem_num 返回到上一帧菜单项被选中号 +extern unsigned char NETWARE_NUM; //网卡号 +extern unsigned char XTZMY_Function_Num; //区分是第一次开机生成系统主密钥 0 /管理菜单选择生成系统主密钥 1 +extern unsigned char Store_Card_Num; //备份下级行密钥的IC卡编号 默认为1 +extern unsigned char TIMEOUT; //串口数据传输超时标志位 TIMEOUT=1表示超时 +extern unsigned int TIMENUM_NUM; //超时时间倍数计数 +extern unsigned int Timenum; //超时时间倍数计数 +extern unsigned char INPUT_OR_OUTPUT_KEY_BIT; //导入或导出的密钥位数 2:两位 3:三位 +extern int ExData; //全局变量,单字节共享时用 +extern int totalnum; +extern unsigned int QueryCnt, QueryPtr, DispAddr; +extern unsigned char LED_STATUS; +extern unsigned char LED_ERROR; +extern unsigned char LEDSTATE; +// extern unsigned char *Buffer[22]; //用户行显示内容的指针全局变量 +extern unsigned char *Buffer[44]; //用户行显示内容的指针全局变量 +extern unsigned char DataTmp[256]; //全局变量,多字节共享 +extern unsigned char Buf[256]; +extern unsigned char inbuf[20]; +extern unsigned char Int_flag; +extern unsigned char NUM_SERIER_REV; +extern int tlock; +extern unsigned char func_3s_flag; +extern unsigned char keybuff[20]; +extern int bufindex; +extern int AllKeyLen; +extern unsigned char *g_key_buff; +extern unsigned char power; +extern int SerialPort_PID; //密钥管理串口进程ID +extern int PCfd; +extern unsigned char IC_Copy_tmp[12 * 1024]; +extern char IC_Copy_role[17]; +extern char IC_Copy_roleLen; +#endif /* GLOBAL_H_ */ diff --git a/INCLUDE/hzk16.h b/INCLUDE/hzk16.h new file mode 100644 index 0000000..8367ee6 --- /dev/null +++ b/INCLUDE/hzk16.h @@ -0,0 +1,2284 @@ +#ifndef HZK16_H_ +#define HZK16_H_ + +/******************* 格式化字符串序列 *******************************/ +/*空白行*/ +extern unsigned char *STR_KBH[16]; +/*系统错误!*/ +extern unsigned char *STR_XTCW[5]; +/*增加密押机*/ +extern unsigned char *STR_ZJMYJ[5]; +/*查看删除密押机*/ +extern unsigned char *STR_CKSCMYJ[7]; + +/*系统启动中... */ +extern unsigned char *STR_XTQDZ[8]; +/*密押机管理*/ +extern unsigned char *STR_MYJGL[5]; +/*启动管理程序*/ +extern unsigned char *STR_QIGLCX[6]; +/*关机*/ +extern unsigned char *STR_GJ[2]; +/*>>>> 信息 <<<<*/ +extern unsigned char *STR_Title[12]; +/*是否需要关机?*/ +extern unsigned char *STR_SFXYGJ[7]; +/*请按确认关机,取消重*/ +extern unsigned char *STR_QAQRGJ[10]; +/*新返回运行...*/ +extern unsigned char *STR_XFHYX[8]; +/*关机中...*/ +extern unsigned char *STR_GJZ[6]; +/*启用中...*/ +extern unsigned char *STR_QYZ[6]; +/*系统管理*/ +extern unsigned char *STR_XTGL[4]; +/*数据查询*/ +extern unsigned char *STR_SJCX[4]; +/*系统主密钥无效!*/ +extern unsigned char *STR_XTZMYWX[8]; +/*密钥管理*/ +extern unsigned char *STR_MYGL[4]; +/*密押机初始化*/ +extern unsigned char *STR_MYJCSH[6]; +/*输入完毕按确认进入*/ +extern unsigned char *STR_SRWBAQRJR[9]; +/*密码错误!!!*/ +extern unsigned char *STR_MMCW[7]; +/*请重新输入正确密码*/ +extern unsigned char *STR_QCXSRZQMM[9]; +/*此操作将清空原有密*/ +extern unsigned char *STR_CCZJQYKYM[9]; +/*押信息!!!*/ +extern unsigned char *STR_YXX[6]; +/*按确认继续 退出取消*/ +extern unsigned char *STR_AQRJXTCQX[10]; +/*初始化...*/ +extern unsigned char *STR_CSH[6]; +/*系统主密钥生成成功!*/ +extern unsigned char *STR_XTZMYSCCG[10]; +/*系统主密钥生成失败!*/ +extern unsigned char *STR_XTZMYSCSB[10]; +/*按确认执行下一步*/ +extern unsigned char *STR_AQRZXXYB[8]; +/*请插入第一张IC卡进 */ +extern unsigned char *STR_QCRDYZICKJ[10]; +/*行备份!*/ +extern unsigned char *STR_XBF[4]; +/*请插入第二张IC卡进 */ +extern unsigned char *STR_QCRDEZICKJ[10]; +/*请插入第三张IC卡进 */ +extern unsigned char *STR_QCRDSZICKJ[10]; +/*初始化成功!*/ +extern unsigned char *STR_CSHCG[6]; +/*按确认进入编核押服务*/ +extern unsigned char *STR_AQRJRBHYFW[10]; + +/*管理员<1>登录*/ +extern unsigned char *STR_GLYIYDL[8]; +/*管理员<2>登录*/ +extern unsigned char *STR_GLYEDL[8]; +/*管理员<3>登录*/ +extern unsigned char *STR_GLYSDL[8]; + + +/*请插入IC卡... */ +extern unsigned char *STR_QCRICK[9]; +/*请输入密码:*/ +extern unsigned char *STR_QSRMA[6]; +/*管理员一登录成功!*/ +extern unsigned char *STR_GLYYDLCG[9]; +/*管理员二登录成功!*/ +extern unsigned char *STR_GLYEDLCG[9]; +/*管理员三登录成功!*/ +extern unsigned char *STR_GLYSDLCG[9]; + +/*请插入管理员一IC卡 */ +extern unsigned char *STR_QCRGLYYICK[10]; + +/*请取出管理员一IC卡 */ +extern unsigned char *STR_QQCGLYYICK[10]; +/*并插入管理员二IC卡 */ +extern unsigned char *STR_BCRGLYEICK[10]; +/*请取出管理员二IC卡 */ +extern unsigned char *STR_QQCGLYEICK[10]; +/*并插入管理员三IC卡 */ +extern unsigned char *STR_BCRGLYSICK[10]; +/*安控员<2>登录*/ +extern unsigned char *STR_AYKEDL[8]; +/*编核押服务程序*/ +//extern unsigned char *STR_BHYFWCX[7]; +/*网络服务程序*/ +extern unsigned char *STR_WLFWCX[6]; +/*等待连接...*/ +extern unsigned char *STR_DDLJ[7]; +/*串口服务中...*/ +extern unsigned char *STR_CKFWZ[8]; +/*连接数:*/ +extern unsigned char *STR_LJS[4]; +/*【工作状态】正常*/ +extern unsigned char *STR_GZZTZC[9]; +/*【普通状态】正常*/ +extern unsigned char *STR_PTZTZC[9]; +/*【授权状态】正常*/ +extern unsigned char *STR_SQZTZC[9]; +/*向下键进业务量统计*/ +extern unsigned char *STR_XXJJYWLTJ[9]; +/*业务量统计(笔数)*/ +extern unsigned char *STR_YWTJLBS[11]; +/*前一分钟:*/ +extern unsigned char *STR_QYFZ[5]; +/*一小时内:*/ +extern unsigned char *STR_YXSN[5]; +/*24小时内:*/ +extern unsigned char *STR_ESXSN[6]; +/*IC卡复制 */ +extern unsigned char *STR_ICKFZ[5]; +/*更换IC卡口令*/ +extern unsigned char *STR_GHICKKL[7]; +/*初始化IC卡*/ +extern unsigned char *STR_CSHICK[6]; +/*管理员登录*/ +extern unsigned char *STR_GLYDL[5]; +/*退出登录*/ +extern unsigned char *STR_TCDL[4]; +/*系统参数设置*/ +extern unsigned char *STR_XTCSSZ[6]; +//WEB和服务端口相同 +extern unsigned char *STR_WEBHFWDKXT[10]; +/*设置中...*/ +extern unsigned char *STR_SZZ[6]; +/*设置成功!*/ +//extern unsigned char *STR_SZCG[5]; +/*设置失败!*/ +extern unsigned char *STR_SZSB[5]; +/*客户IP设置*/ +extern unsigned char *STR_KHIPSZ[6]; +/*WEB IP设置*/ +extern unsigned char *STR_WEBIPSZ[8]; +/*系统网络设置*/ +extern unsigned char *STR_XTWLSZ[6]; +/*恢复出厂设置*/ +extern unsigned char *STR_HFCCSZ[6]; +/*修改系统口令*/ +extern unsigned char *STR_XGXTKL[6]; +/*导出工作日志*/ +extern unsigned char *STR_DCGZRZ[6]; +/*系统时钟设置*/ +extern unsigned char *STR_XTSZSZ[6]; +/*系统修改为管理员标识*/ +extern unsigned char *STR_XTHH[5]; +/*时钟设置成功!*/ +extern unsigned char *STR_SZSZCG[7]; +//设置系统时钟失败 +extern unsigned char *STR_SZXTSZSB[9]; +/*请插入U盘*/ +extern unsigned char *STR_QCRUP[5]; +/*请勿拔出U盘*/ +extern unsigned char *STR_QWBCUP[6]; +/*应用程序灌装中...*/ +extern unsigned char *STR_YYCXGZZDDD[10]; + +/*灌装U盘不存在!*/ +extern unsigned char *STR_GZUPBCZ[7]; +extern unsigned char * STR_UPBCZ[5]; + +/*写U盘失败!*/ +extern unsigned char *STR_XUPSB[6]; +/*U盘空间不足!*/ +extern unsigned char *STR_UPKJBZ[7]; +/*U盘已满!*/ +//extern unsigned char *STR_UPYM[5]; +/*日志文件不存在*/ +extern unsigned char *STR_RZWJBCZ[8]; +/*导出失败!*/ +extern unsigned char *STR_DCSB[5]; +/*请插入要复制的源IC*/ +extern unsigned char *STR_QCRYFZDYIC[10]; +/*卡...*/ +extern unsigned char *STR_KDDD[4]; +/*按确认键进行复制*/ +extern unsigned char *STR_AQRJJXFZ[8]; +/*源卡复制中...*/ +extern unsigned char *STR_YKFZZ[8]; +/*读卡出错!!!*/ +extern unsigned char *STR_DKCC[7]; +/*读源卡成功,请取出源*/ +extern unsigned char *STR_DYKCGQQCY[10]; +/*IC卡,插入空白IC卡*/ +extern unsigned char *STR_ICKCRKBICK[11]; +/*IC卡复制中...*/ +extern unsigned char *STR_ICKFZZ[9]; +/*请勿拔出IC卡*/ +extern unsigned char *STR_QWBCICK[7]; +/*IC卡复制成功!*/ +extern unsigned char *STR_ICKFZCG[8]; +/*拷贝成功!*/ + +extern unsigned char * STR_KBCG[5]; + +/*请插入管理员IC卡*/ +extern unsigned char *STR_QCRGLYICK[9]; +/*请输入原口令*/ +extern unsigned char *STR_QSRYKL[6]; +/*请输入新口令*/ +extern unsigned char *STR_QSRXKL[6]; +/*请确认新口令*/ +extern unsigned char *STR_QCRXKL[6]; +/*请确认行号*/ +extern unsigned char *STR_QQRHH[5]; +/*更换口令成功!*/ +extern unsigned char *STR_GHKLCG[7]; +//非管理员IC卡 +extern unsigned char *STR_FGLYICK[8]; + +//非超级管理员一IC卡 +extern unsigned char *STR_FCJGLYYICK[11]; +//非超级管理员二IC卡 +extern unsigned char *STR_FCJGLYEICK[11]; +//非超级管理员三IC卡 +extern unsigned char *STR_FCJGLYSICK[11]; +//非密钥管理员一IC卡 +extern unsigned char *STR_FMYGLYYICK[11]; +//非密钥管理员二IC卡 +extern unsigned char *STR_FMYGLYEICK[11]; +//非配置管理员IC卡 +//extern unsigned char *STR_FPZGLYICK[10]; + +//管理员号错误 +extern unsigned char *STR_GLYHCW[7]; +//密钥过期! +extern unsigned char *STR_MYGQ[5]; +//密钥未启用 +extern unsigned char *STR_MYWQY[6]; +//更改失败 +extern unsigned char *STR_GGSB[5]; +/*原口令错误!*/ +extern unsigned char *STR_YKLCW[6]; +/*新口令错误!*/ +//extern unsigned char *STR_XKLCW[6]; +/*确认口令错误!*/ +extern unsigned char *STR_QRKLCW[7]; +/*确认行号错误!*/ +extern unsigned char *STR_QRHHCW[7]; +/* 非 会员行密钥发行卡*/ +extern unsigned char *STR_FHYHMYFXK[9]; +/* 非 会员行密钥备份卡*/ +extern unsigned char *STR_FHYHMYBFK[9]; +/* 非 老密钥备份卡 */ +extern unsigned char *STR_FLMYBFK[7]; +/*初始化IC卡中...*/ +extern unsigned char *STR_CSHICKZ[10]; +/*备份中...*/ +extern unsigned char *STR_BFZ[6]; +/*导入中...*/ +extern unsigned char *STR_DRZ[6]; +/*导出中...*/ +extern unsigned char *STR_DCZ[6]; +/*导出成功!*/ +extern unsigned char *STR_DCCG[5]; +/*请取出U盘*/ +extern unsigned char *STR_QQCUP[5]; +/*非密钥发行卡*/ +//extern unsigned char *STR_FMYFXK[6]; +/*非密钥备份卡*/ +//extern unsigned char *STR_FMYBFK[6]; +//登录失败! +extern unsigned char *STR_DLSB[5]; +//非本系统IC卡 +extern unsigned char *STR_FBXTICK[8]; +/*初始化IC卡成功!*/ +extern unsigned char *STR_CSHICKCG[9]; +/*初始化IC卡失败!*/ +extern unsigned char *STR_CSHICKSB[9]; +/*登录成功!*/ +extern unsigned char *STR_DLCG[5]; +/*管理员已登录!*/ +extern unsigned char *STR_GLYYDL[7]; +/*无管理员登录!*/ +extern unsigned char *STR_WGLYDL[7]; +/*登录失败!*/ +//extern unsigned char *STR_DLSB[5]; +/*按确认退出登录*/ +extern unsigned char *STR_AQRTCDL[7]; +/*所有管理员已退出!*/ +extern unsigned char *STR_SYGLYYTC[9]; +/*服务监听端口*/ +extern unsigned char *STR_FWJTDK[6]; +/*WEB 监听端口*/ +extern unsigned char *STR_WEBJTDK[8]; +/*记录工作日志:[是]*/ +extern unsigned char *STR_JLGZRZS[11]; +/*记录工作日志:[否]*/ +extern unsigned char *STR_JLGZRZF[11]; +/*设置成功!*/ +extern unsigned char *STR_SZCG[5]; +/*端口值不在范围内!*/ +extern unsigned char *STR_DKZBZFWN[9]; +//工作日志标识错误 +extern unsigned char *STR_GZRZBSCW[9]; +//日志大小约 +extern unsigned char *STR_RZDXY[5]; +/*客户IP地址管理*/ +extern unsigned char *STR_KHIPDZGL[8]; +/*WEB IP地址管理*/ +extern unsigned char *STR_WEBIPDZGL[10]; +/*增加IP地址*/ +extern unsigned char *STR_ZJIPDZ[6]; +/*删除IP地址*/ +extern unsigned char *STR_SCIPDZ[6]; +/*查看IP地址*/ +extern unsigned char *STR_CKIPDZ[6]; +/*请输入IP地址:*/ +extern unsigned char *STR_QSRIPDZ[8]; +/*IP地址格式不正确!*/ +extern unsigned char *STR_IPDZGSBZQ[10]; +//PIN格式错误 +extern unsigned char *STR_PINGSCW[8]; +/*掩码格式不正确!*/ +extern unsigned char *STR_YMGSBZQ[8]; +/*网关格式不正确!*/ +extern unsigned char *STR_WGGSBZQ[8]; +/*DNS格式不正确 !*/ +//extern unsigned char *STR_DNSGSBZQ[9]; +//日期格式不正确! +extern unsigned char *STR_RQGSBZQ[8]; +//日期: +extern unsigned char *STR_RQ[3]; +/*时间:*/ +extern unsigned char *STR_SJ[3]; +/*按确认重新输入*/ +extern unsigned char *STR_AQRCXSR[7]; +/*是否要删除此IP地址? */ +extern unsigned char *STR_SFYSCCIPDZ[11]; +/*按确认删除,退出取消*/ +extern unsigned char *STR_AQRSCTCQX[10]; +/*请选择网卡:*/ +extern unsigned char *STR_QXZWK[6]; +/*网卡一*/ +extern unsigned char *STR_WYK[3]; +/*网卡二*/ +extern unsigned char *STR_WKE[3]; +//密押卡处理出错 +extern unsigned char *STR_MYKCLCC[8]; +//密押卡硬件操作错误 +extern unsigned char *STR_MYYKJCZCW[10]; +/*IP地址:*/ +extern unsigned char *STR_IPDZ[5]; +/*掩码:*/ +extern unsigned char *STR_YM[3]; +/*网关:*/ +extern unsigned char *STR_WG[3]; +/*DNS:*/ +//extern unsigned char *STR_DNS[4]; +/*IP设置成功!*/ +extern unsigned char *STR_IPSZCG[7]; +/*IP设置失败!*/ +extern unsigned char *STR_IPSZSB[7]; +/*网关设置失败!*/ +extern unsigned char * STR_WGSZSB[7]; +//IP地址已存在 +extern unsigned char *STR_IPDZYCZ[8]; +//IP地址已满 +extern unsigned char *STR_IPDZYM[7]; +/*IP地址不能为同一个网段*/ +extern unsigned char * STR_IPDZBNWTYGWD[10]; +//IP地址不存在 +extern unsigned char *STR_IPDZBCZ[8]; +/*IP地址增加成功!*/ +extern unsigned char *STR_IPDZZJCG[9]; +/*密押机增加成功!*/ +extern unsigned char *STR_MYJZJCG[8]; +/*保留工作日志?确认键*/ +extern unsigned char *STR_BLGZRZQRJ[10]; +/*保留,指令键不保留,*/ +extern unsigned char *STR_BLZLJBBL[10]; +/*退出键取消*/ +extern unsigned char *STR_TCJQX[5]; +/*请输入系统密码:*/ +extern unsigned char *STR_QSRXTMM[8]; +/*恢复中...*/ +extern unsigned char *STR_HFZ[6]; +/*请输入原密码*/ +extern unsigned char *STR_QSRYMM[6]; +/*请输入新密码*/ +extern unsigned char *STR_QSRXMM[6]; +/*请确认新密码*/ +extern unsigned char *STR_QCRXMM[6]; +/*原密码错误!*/ +extern unsigned char *STR_YMMCW[6]; +/*确认密码错误!*/ +extern unsigned char *STR_QRMMCW[7]; + +/*非三人登录!*/ +extern unsigned char *STR_FSRDL[6]; +/*密钥生成失败!*/ +extern unsigned char *STR_MYSCSB[7]; +/*请插入空白备份IC卡*/ +extern unsigned char *STR_QCRKBBFICK[10]; +/*IC卡编号[1]*/ +extern unsigned char *STR_ICKBH[9]; +/*备份成功!*/ +extern unsigned char *STR_BFCG[5]; +//打开备份文件失败 +extern unsigned char *STR_DKBFWJSB[9]; +//文件不存在 +extern unsigned char *STR_WJBCZ[6]; +//文件更新失败 +extern unsigned char *STR_WJGXSB[7]; +//序号不存在 +extern unsigned char *STR_XHBCZ[6]; +/*非两人登录!*/ +extern unsigned char *STR_FLRDL[6]; +/*IC卡编号错误!*/ +extern unsigned char *STR_ICKBHCW[8]; +/*备份失败!*/ +extern unsigned char *STR_BFSB[5]; +/*保留原有密钥文件? */ +extern unsigned char *STR_BLYYMYWJ[9]; +/*按确认键保留,指令键*/ +extern unsigned char *STR_AQRJBLZLJ[10]; +/*不保留,退出键取消*/ +extern unsigned char *STR_BBLTCJQX[9]; +/*请插入密钥备份IC卡*/ +extern unsigned char *STR_QCRMYBFICK[10]; +/*按确认键重新启动!*/ +extern unsigned char *STR_AQRJCXQD[9]; +/*恢复成功!*/ +extern unsigned char *STR_HFCG[5]; +/*恢复失败!*/ +extern unsigned char *STR_HFSB[5]; +/*发行口令*/ +extern unsigned char *STR_FXKL[4]; +/*插入密钥发行IC卡*/ +extern unsigned char *STR_CRMYFXICK[9]; + +extern unsigned char *STR_WCHH[6]; +//数据接收错误 +extern unsigned char *STR_SJJSCW[7]; +//数据包错误 +extern unsigned char *STR_SJBCW[6]; +/*密钥导入成功!*/ +extern unsigned char *STR_MYDRCG[7]; +/*行号错误!*/ + +extern unsigned char *STR_HHYM[5]; +/*处理出错!*/ +extern unsigned char *STR_CLCC[5]; +/*DAC校验错误*/ +extern unsigned char *STR_DACXYCW[8]; +//系统主密钥较验错误 +extern unsigned char *STR_XTZMYXYCW[10]; +//密钥已设置 +extern unsigned char *STR_MYYSZ[6]; +//密押错误 +extern unsigned char *STR_MYCW[5]; +//自检失败 +extern unsigned char *STR_ZJSB[5]; +/*错误码:*/ +extern unsigned char *STR_CWM[4]; +//密钥日期错误 +extern unsigned char *STR_MYRQCW[7]; +//密钥标志错误 +extern unsigned char *STR_MYBZCW[7]; +//加密数据长度错误 +extern unsigned char *STR_JMSJCDCW[9]; +/*密钥日期更改成功!*/ +extern unsigned char *STR_MYRQGGCG[9]; +/*此操作将导入所有下*/ +extern unsigned char *STR_CCZJDRSYX[9]; + +/*生成系统主密钥*/ +//extern unsigned char *STR_SCXTZMY[7]; +/*恢复系统主密钥*/ +extern unsigned char *STR_HFXTZMY[7]; +/*分量一*/ +extern unsigned char *STR_FLY[3]; +/*分量二*/ +extern unsigned char *STR_FLE[3]; +/*分量三*/ +extern unsigned char * STR_FLS[3]; +/*请插入管理员一的IC*/ +extern unsigned char *STR_QCRGLYYDIC[10]; +/*卡准备恢复密钥...*/ +extern unsigned char *STR_KZBHFMY[10]; +/*按确认键恢复*/ +extern unsigned char *STR_AQRJHF[6]; +/*管理员一的IC卡*/ +extern unsigned char *STR_GLYYDICK[8]; +/*恢复主密钥成功!*/ +extern unsigned char *STR_HFZMYCG[8]; +/*请插入管理员二的IC*/ +extern unsigned char *STR_QCRGLYEDIC[10]; +/*管理员二的IC卡*/ +extern unsigned char *STR_GLYEDICK[8]; +/*请插入管理员三的IC*/ +extern unsigned char *STR_QCRGLYSDIC[10]; +/*管理员三的IC卡*/ +extern unsigned char *STR_GLYSDICK[8]; +/*启动编核押服务*/ +extern unsigned char *STR_QDBHYFW[7]; +//编核押通信错误 +extern unsigned char *STR_BHYTXCW[8]; +/*IC卡不存在*/ +extern unsigned char *STR_ICKBCZ[7]; +/*写IC卡失败!*/ +extern unsigned char *STR_XICKCW[7]; +/*登录号码不对*/ +extern unsigned char *STR_DLHMBD[7]; +/* add by mukesong 2011-01-20 (beigin) */ +/* 密押机升级 */ +extern unsigned char * STR_MYJSHJ[6]; +/* 密押机升级中 */ +extern unsigned char * STR_MYJSHJZ[7]; +/* 升级成功 */ +extern unsigned char * STR_SHJCG[5]; + +/*按确认键注销,按取消*/ +extern unsigned char *STR_AQRJZX[10]; +/*键退出*/ +extern unsigned char *STR_JTC[3]; + + + + + +/*请插入密钥U盘*/ +extern unsigned char *STR_QCRMYUP[7]; + +/*密钥一启用日期*/ +extern unsigned char *STR_MYYQYRQ[7]; + +/*请输入分量一口令*/ + extern unsigned char *STR_QSRFLYKL[8]; + +/*请输入分量二口令*/ +extern unsigned char *STR_QSRFLEKL[8]; + +/*分量一密钥导入失败!*/ +extern unsigned char *STR_FLYMYDRSB[10]; + +/*分量二密钥导入失败!*/ +extern unsigned char *STR_FLEMYDRSB[10]; + + + +/*私钥解密错误!*/ +extern unsigned char *STR_SYJMCW[7]; + +/*私钥不存在!*/ +extern unsigned char *STR_SYBCZ[6]; + +extern unsigned char *STR_GYBCZ[6]; + + +/*行号不存在!*/ +extern unsigned char *STR_HHBCZ[6]; + +/*按确认进行下一步*/ +extern unsigned char *STR_AQRJXXYB[8]; + +/*密钥文件不存在!*/ +extern unsigned char *STR_MYWJBCZ[8]; + + + +/* 请输入标识 */ +extern unsigned char * STR_QSRBS[5]; + +/* 请确认标识 */ +extern unsigned char * STR_QQRBS[5]; + +extern unsigned char * STR_SJKBZ[5]; + +/* 设置密钥日期已过期!*/ +extern unsigned char *STR_SZMYRQYGQ[10]; + +//升级文件不存在 +extern unsigned char *STR_SJWJBCZ[8]; + +extern unsigned char *STR_GZWJBCZ[7]; + +/*共有***个密钥*/ +extern unsigned char * STR_GTGMY[8]; + +/*IP地址删除成功!*/ +extern unsigned char *STR_IPDZSCCG[9]; + +/* 批量导出清算行号*/ +extern unsigned char *STR_PLDCQSHH[8]; + + + /*清算行号导出成功!*/ +extern unsigned char *STR_QSHHDCCG[9] ; + + + /*保留原有系统文件? */ +extern unsigned char * STR_BLYYXTWJ[9]; + + +/* U盘密钥文件格式错误 */ +extern unsigned char *STR_UPMYWJGSCW[10]; + +/*非本机管理员卡!*/ +extern unsigned char *STR_FBJGLYK[8]; + +/*管理员IC卡升级*/ +extern unsigned char *STR_GLYICKSJ[8]; + + /*升级...*/ + extern unsigned char *STR_BSJ[6]; + +/*升级成功!*/ +extern unsigned char *STR_SJCG[5]; + +/*IC卡升级中...*/ +extern unsigned char *STR_ICKSJZ[9]; +/*按确认键升级*/ +extern unsigned char *STR_AQRJSJ[6]; +/*请插入管理员IC卡准*/ +extern unsigned char *STR_QCRGLYICKZ[10]; + +/*管理员卡已升级!*/ +extern unsigned char *STR_GLYYKSJ[8]; + +/*按确认键继续*/ +extern unsigned char *STR_AQRJJX[6]; +/*按退出键取消*/ +extern unsigned char *STR_ATCJQX[6]; +/*文件读写错误!*/ +extern unsigned char *STR_WJDXCW[7]; +/*集群密押机IP管理*/ +extern unsigned char *STR_JQMYJIPGL[9]; + +/*导出工作日志*/ +extern unsigned char *STR_DCGZRZ[6]; +/*导出管理日志*/ +extern unsigned char *STR_DCGLRZ[6]; + +/*导出日志*/ +extern unsigned char *STR_DCRZ[4]; +extern unsigned char *STR_FATC[4]; +/*启动网络服务*/ +extern unsigned char *STR_QDWLFW[6]; +/*启动串口服务*/ +extern unsigned char *STR_QDCKFW[8]; +/*数码科技*/ +extern unsigned char *STR_SMKJ[9]; + +/*设备公私钥备份*/ +extern unsigned char *STR_SBGSYBF[7]; +/*初始口令*/ +extern unsigned char *STR_CSKL[5]; +/*输入口令*/ +extern unsigned char *STR_SRKL[5]; +/*确认口令*/ +extern unsigned char *STR_QRKL[5]; +/*设备公私钥恢复*/ +extern unsigned char *STR_SBGSYHF[7]; +/*请插入备份IC卡*/ +extern unsigned char *STR_QCRBFICK[8]; +/*导入设备公钥*/ +extern unsigned char *STR_DRSBGY[6]; +/*请插入备份IC卡*/ +extern unsigned char *STR_QCRBFICK[8]; +/*按确认键导入*/ +extern unsigned char *STR_AQRJDR[6]; +/*导出设备公钥*/ +extern unsigned char *STR_DCSBGY[6]; +/*按确认键确定*/ +extern unsigned char *STR_AQRJQD[6]; +/*制作交易管理员*/ +extern unsigned char *STR_ZZJYGLY[7]; +/*制作配置管理员*/ +extern unsigned char *STR_ZZPZGLY[7]; +/*制作密钥管理员*/ +extern unsigned char *STR_ZZMYGLYY[8]; +/*制作密钥管理员*/ +extern unsigned char *STR_ZZMYGLYE[8]; +/*制作一级管理员盾*/ +extern unsigned char *STR_ZZYJGLYD[8]; +/*制作二级管理员盾*/ +extern unsigned char *STR_ZZEJGLYD[8]; +/*制作三级管理员盾*/ +extern unsigned char *STR_ZZSJGLYD[8]; +/*加载系统主密钥*/ +extern unsigned char *STR_JZXTZMY[7]; +/*生成系统主密钥*/ +extern unsigned char *STR_SCXTZMY[7]; +/*生成后请加载主密*/ +extern unsigned char *STR_SCHQJZZM[8]; +/*钥,使其生效!!*/ +extern unsigned char *STR_YSQSX[8]; +/*加载将覆盖原主密钥*/ +extern unsigned char *STR_JZJFGYZMY[10]; +/*所有主机端被主密钥*/ +extern unsigned char *STR_SYZJDBZMY[9]; +/*加密的密钥必需更新*/ +extern unsigned char *STR_JZDMYBXGX[9]; +/*终端认证USBkey注册*/ +extern unsigned char *STR_ZDRZZC[6]; +/*设置系统端口号*/ +extern unsigned char *STR_SZXTDKH[7]; +/*端口号一:*/ +extern unsigned char *STR_DKHY[5]; +/*端口号二:*/ +extern unsigned char *STR_DKHE[5]; +/*请输入系统口令:*/ +extern unsigned char *STR_QSRXTKL[8]; +/*串口设置*/ +extern unsigned char *STR_CKSZ[4]; +/*串口号:*/ +extern unsigned char *STR_CKH[5]; +/*波特率:*/ +extern unsigned char *STR_BTL[5]; +/*U盾注册*/ +extern unsigned char *STR_UDZC[4]; +/*请插入终端认证*/ +extern unsigned char *STR_QCRZDRZ[7]; +/*U盾!!!*/ +extern unsigned char *STR_UD[5]; +/*按确认键注册*/ +extern unsigned char *STR_AQRJZZ[6]; +/*主密钥生成成功!*/ +extern unsigned char * STR_ZMYSCCG[8]; +/*超级管理员登录*/ +extern unsigned char * STR_CJGLYDL[7]; +/*密钥管理员登录*/ +extern unsigned char * STR_MYGLYDL[7]; +/*配置管理员登录*/ +extern unsigned char * STR_PZGLYDL[7]; +/*系统主密钥管理*/ +extern unsigned char * STR_XTZMYGL[7]; +/*设备公私钥管理*/ +extern unsigned char * STR_SBGSYGL[7]; +/*操作员管理*/ +extern unsigned char * STR_CZYGL[5]; +/*系统时间设置*/ +extern unsigned char * STR_XTSJSZ[6]; +/*串口配置*/ +extern unsigned char * STR_XTCKPZ[6]; + + +/*管理员退出登录*/ +extern unsigned char * STR_GLYTCDL[7]; +/*初始化口令*/ +extern unsigned char * STR_CSHKL[5]; +/*系统版本号查询*/ +extern unsigned char * STR_XTBBHCX[7]; +/*系统登录口令修改*/ +extern unsigned char * STR_XTKLXG[6]; +/*系统版本升级*/ +extern unsigned char * STR_XTBBSJ[6]; +/*系统端口号设置*/ +extern unsigned char * STR_XTDKHSZ[7]; +/*系统资源查询*/ +extern unsigned char * STR_XTZYCX[7]; +/*IC卡口令初始化*/ +extern unsigned char * STR_ICKKLCSH[8]; +//行号已存在 +extern unsigned char * STR_HHYCZ[6]; +/* 不能设置本机IP */ +extern unsigned char *STR_BNSZBJIP[9]; +/*备份设备密钥*/ +extern unsigned char * STR_BFSBMY[6]; +/*恢复设备密钥*/ +extern unsigned char * STR_HFSBMY[6]; +/*请插入设备分量一IC*/ +extern unsigned char * STR_QCRSBFLYIC[10]; +/*请插入设备分量二IC*/ +extern unsigned char * STR_QCRSBFLEIC[10]; +/*请插入设备分量三IC*/ +extern unsigned char * STR_QCRSBFLSIC[10]; +/*设备分量一IC卡*/ +extern unsigned char * STR_SBFLYICK[8]; +/*设备分量二IC卡*/ +extern unsigned char * STR_SBFLEICK[8]; +/*设备分量三IC卡*/ +extern unsigned char * STR_SBFLSICK[8]; +/*密押机初始化管理*/ +extern unsigned char * STR_MYJCSHGL[8]; +/*生成设备密钥*/ +extern unsigned char * STR_SCSBMY[6]; +/*查看设备信息*/ +extern unsigned char * STR_CKSBXX[6]; +/*请插入IC卡进 */ +extern unsigned char * STR_QCRICKJ[11]; +/*产生设备密钥*/ +extern unsigned char * STR_CSSBMY[6]; +/*按确认键产生*/ +extern unsigned char * STR_AQRJCS[6]; +/*设备密钥产生*/ +extern unsigned char * STR_SBMYCS[11]; +/* PC端密钥管理*/ +extern unsigned char * STR_PCDMYGL[7]; +/*系统升级中...*/ +extern unsigned char * STR_XTSJZ[8]; +/*请耐心等待*/ +extern unsigned char * STR_QNXDD[5]; +/*查看设备机具号*/ +extern unsigned char * STR_CKSBJJH[7]; +/*查看设备机具号*/ +extern unsigned char * STR_CKKSNH[6]; +/*按确认键进行初始化*/ +extern unsigned char * STR_AQRJJXCSH[9]; +/*注册集群加密机*/ +extern unsigned char * STR_ZCJQJMJ[7]; +/*注销集群加密机*/ +extern unsigned char * STR_ZXJQJMJ[7]; +/*更新工作密钥*/ +extern unsigned char * STR_GXGZMY[6]; +/*系统日志管理*/ +extern unsigned char * STR_XTRZGL[6]; +/*设备号*/ +extern unsigned char * STR_SBH[4]; +/*版本号*/ +extern unsigned char * STR_BBH[4]; +/*输入初始口令:*/ +extern unsigned char * STR_SRCSKL[5]; +/*空白卡复制中...*/ +extern unsigned char * STR_KBKFZZ[9]; +/* 设备信息*/ +extern unsigned char * STR_SBXX[4]; + /*交易正确日志:[是]*/ +extern unsigned char * STR_JYZQRZS[10]; + /*交易正确日志:[否]*/ +extern unsigned char * STR_JYZQRZF[10]; +/*TCP日志:[是]*/ +extern unsigned char * STR_TCPRZS[9]; +/*TCP日志:[否]*/ +extern unsigned char * STR_TCPRZF[9]; +/*IC卡成功*/ +extern unsigned char * STR_ICKCG[5]; +/*注册集群加密机成功*/ +extern unsigned char * STR_ZCJQJMJCG[9]; +/*注销集群加密机成功*/ +extern unsigned char * STR_ZXJQJMJCG[9]; +/*第一张IC卡备份成功! */ +extern unsigned char * STR_DYZICKBFCG[11]; +/*第二张IC卡备份成功! */ +extern unsigned char * STR_DEZICKBFCG[11]; +/*第三张IC卡备份成功! */ +extern unsigned char * STR_DSZICKBFCG[11]; +/*注册成功!*/ +extern unsigned char * STR_ZCCG[5]; +/*输入设备号:*/ +extern unsigned char * STR_SRSBH[6]; +/*主密钥装载成功!*/ +extern unsigned char * STR_ZMYZZCG[8]; +/*按确认备份主密钥*/ +extern unsigned char * STR_AQRBFZMY[8]; +/*普通交易登录*/ +extern unsigned char * STR_PTJYDL[6]; +/*授权状态登录*/ +extern unsigned char * STR_SQZTDL[6]; +/*配置管理员登录成功!*/ +extern unsigned char * STR_PZGLYDLCG[10]; +/*取出配置管理员IC卡 */ +extern unsigned char * STR_QCPZGLYICK[10]; +/*插入密钥管理员IC卡 */ +extern unsigned char * STR_CRMYGLYICK[10]; +/*请输入IC卡口令:*/ +extern unsigned char * STR_QSRICKKL[9]; +/*串口服务停止*/ +extern unsigned char * STR_CKFWTZ[6]; +/*工作密钥更新中...*/ +extern unsigned char * STR_GZMYGXZ[10]; +/*请勿做其他操作*/ +extern unsigned char * STR_QWCQTCZ[7]; +/*密钥管理员一登录成功!*/ +extern unsigned char * STR_MYGLYYDLCG[9]; +/*取出密钥管理员一IC卡 */ +extern unsigned char * STR_QCMYGLYYICK[9]; +/*插入密钥管理员IC卡 */ +extern unsigned char * STR_CRMYGLYICKE[9]; +/*密钥机构管理*/ +extern unsigned char *STR_MYJGGL[6]; +/*密钥类型管理*/ +extern unsigned char *STR_MYLXGL[6]; +/*密钥查询*/ +extern unsigned char *STR_MYCX[4]; +/*密钥分发*/ +extern unsigned char *STR_MYFF[4]; +/*密钥产生*/ +extern unsigned char *STR_MYCS[4]; +/*密钥更新*/ +extern unsigned char *STR_MYGX[4]; +/*密钥备份*/ +extern unsigned char *STR_MYBF[4]; +/*密钥停用*/ +extern unsigned char *STR_MYTY[4]; +/*密钥销毁*/ +extern unsigned char *STR_MYXH[4]; +/*增加密钥机构*/ +extern unsigned char *STR_ZJMYJG[6]; +/*删除密钥机构*/ +extern unsigned char *STR_SCMYJG[6]; +/*查看密钥机构*/ +extern unsigned char *STR_CKMYJG[6]; +/*增加密钥类型*/ +extern unsigned char *STR_ZJMYLX[6]; +/*删除密钥类型*/ +extern unsigned char *STR_SCMYLX[6]; +/*查看密钥类型*/ +extern unsigned char *STR_CKMYLX[6]; +/*密钥批量查询*/ +extern unsigned char *STR_MYPLCX[6]; +/*密钥单个查询*/ +extern unsigned char *STR_MYDGCX[6]; +/*U盘密钥备份*/ +extern unsigned char *STR_UPMYBF[6]; +/*U盘密钥恢复*/ +extern unsigned char *STR_UPMYHF[6]; +/*密钥批量停用*/ +extern unsigned char *STR_MYPLTY[6]; +/*密钥单个停用*/ +extern unsigned char *STR_MYDGTY[6]; +/*密钥批量销毁*/ +extern unsigned char *STR_MYPLXH[6]; +/*密钥单个销毁*/ +extern unsigned char *STR_MYDGXH[6]; +/*请输入机构号:*/ +extern unsigned char *STR_QSRJGH[7]; +/*请输入类型号:*/ +extern unsigned char *STR_QSRLXH[7]; +/*请输秘钥索引:*/ +extern unsigned char *STR_QSMYSY[7]; + +/*先锋加载传输密钥*/ +extern unsigned char *STR_XFJZCSMY[8]; +/*先锋主控密钥合成*/ +extern unsigned char *STR_XFZKMYHC[8]; +/*中银分量合成PIN*/ +extern unsigned char *STR_ZYFLHCPIN[9]; +/*中银分量合成密钥*/ +extern unsigned char *STR_ZYFLHCMY[8]; + + +/*输入密钥*/ +extern unsigned char *STR_SRZKMY[4]; +/*产生随机对称密钥*/ +extern unsigned char *STR_CSSJDCMY[8]; +/*产生RSA密钥对*/ +extern unsigned char *STR_CSRSAMYD[8]; +/*产生SM2密钥对*/ +extern unsigned char *STR_CSSM2MYD[8]; +/*密钥模长1024*/ +extern unsigned char *STR_MYMC1024[9]; +/*密钥模长2048*/ +extern unsigned char *STR_MYMC2048[9]; +/*密钥指数65537*/ +extern unsigned char *STR_MYZS65537[10]; +/*密钥指数3*/ +extern unsigned char *STR_MYZS3[6]; +/*空白*/ +extern unsigned char *STR_KONGGE[10]; + +/*请选择串口:*/ +extern unsigned char *STR_QXZCK[6]; +/*COM1*/ +extern unsigned char *STR_COM1[4]; +/*COM2*/ +extern unsigned char *STR_COM2[4]; + +/*制作密钥备份盾*/ +extern unsigned char *STR_ZZMYBFD[7]; +/*制作密钥发行卡*/ +extern unsigned char *STR_ZZMYFXK[7]; +/*制作密钥发行盾*/ +extern unsigned char *STR_ZZMYFXD[7]; + +/*初始化IC卡盾*/ +extern unsigned char *STR_CSHICKD[6]; + + +/*解锁成功*/ +extern unsigned char *STR_JSCG[5]; + +/*----------错误提示信息----------*/ +/*IC卡上电失败!*/ +extern unsigned char * STR_ICKSDSB[8]; +/*IC卡状态不可用!*/ +extern unsigned char * STR_ICKZTBYK[9]; +/*读IC卡设备号错误!*/ +extern unsigned char * STR_DICKSBHCW[10]; +/*写IC卡设备号错误!*/ +extern unsigned char * STR_XICKSBHCW[10]; +/*读IC卡角色错误!*/ +extern unsigned char * STR_DICKJSCW[9]; +/*写IC卡角色错误!*/ +extern unsigned char * STR_XICKJSCW[9]; +/*写IC卡数据错误!*/ +extern unsigned char * STR_XICKSJW[9]; +/*读IC卡数据错误!*/ +extern unsigned char * STR_DICKSJW[9]; +/*初始化IC卡失败!*/ +extern unsigned char * STR_CSHICKSB[9]; +/*非本机IC卡!*/ +extern unsigned char * STR_FBJICK[7]; +/*IC卡数据错误!*/ +extern unsigned char * STR_ICKSJCW[8]; +/*非超级管理员IC卡!*/ +extern unsigned char * STR_FCJGLYICK[10]; +/*非密钥管理员IC卡!*/ +extern unsigned char * STR_FMYGLYICK[10]; +/*非配置管理员IC卡!*/ +extern unsigned char * STR_FPZGLYICK[10]; +/*产生主密钥失败!*/ +extern unsigned char * STR_CSZMYSB[8]; +/*分散主密钥失败!*/ +extern unsigned char * STR_FSZMYSB[8]; +/*备份主密钥失败!*/ +extern unsigned char * STR_BFZMYSB[8]; +/*恢复主密钥失败!*/ +extern unsigned char * STR_HFZMYSB[8]; +/*销毁种子失败!*/ +extern unsigned char * STR_XHZZSB[7]; +/*无主密钥种子!*/ +extern unsigned char * STR_WZMYZZ[7]; +/*请插入正确IC卡*/ +extern unsigned char * STR_QCRZQICK[8]; +/*获取注册加密机失败!*/ +extern unsigned char * STR_QZCJMJSB[9]; +/*该加密机已注册!*/ +extern unsigned char * STR_JMJYZC[7]; +/*注册失败!*/ +extern unsigned char * STR_ZCSB[5]; +/*注销失败!*/ +extern unsigned char * STR_ZXSB[5]; +/*获取日志信息错误!*/ +extern unsigned char * STR_HQRZXXCW[9]; +/*获取设备号错误!*/ +extern unsigned char * STR_HQSBHCW[8]; +/*获取软件版本号错误!*/ +extern unsigned char * STR_HQRJBBHCW[10]; +/*产生临时密钥错误!*/ +extern unsigned char * STR_CSLSMYCW[9]; +/*临时密钥加密错误!*/ +extern unsigned char * STR_LSMYJMCW[9]; +/*主密钥转加密错误!*/ +extern unsigned char * STR_ZMYZJMCW[9]; +/*不能注册本机IC卡!*/ +extern unsigned char * STR_BNZCBJICK[10]; +/*不能注销本机IC卡!*/ +extern unsigned char * STR_BNZXBJICK[10]; +/*获取主密钥状态失败!*/ +extern unsigned char * STR_HQZMYZTSB[10]; +/*主密钥状态异常!*/ +extern unsigned char * STR_ZMYZTYC[8]; +/*获取加载方式错误*/ +extern unsigned char * STR_HQJZFSCW[9]; +/*打开串口失败!*/ +extern unsigned char * STR_DKCKSB[7]; +/*配置串口失败!*/ +extern unsigned char * STR_PZCKSB[7]; +/*创建子进程失败!*/ +extern unsigned char * STR_CJZJCSB[8]; +/*关闭串口失败!*/ +extern unsigned char * STR_GBCKSB[7]; +/*结束子进程失败!*/ +extern unsigned char * STR_JSZJCSB[8]; +/*串口号超出范围!*/ +extern unsigned char * STR_CKHCCFW[8]; +/*波特率超出范围!*/ +extern unsigned char * STR_BTLCCFW[8]; +/*获取串口号失败!*/ +extern unsigned char * STR_HQCKHSB[8]; +/*获取波特率失败!*/ +extern unsigned char * STR_HQBTLSB[8]; +/*密钥锁异常!*/ +extern unsigned char * STR_MYSYC[6]; +/*主密钥转加密失败!*/ +extern unsigned char *STR_ZMYZJMSB[9]; +/*获取工作目录失败!*/ +extern unsigned char *STR_HQGZMLSB[9]; +/*密钥管理目录不存在!*/ +extern unsigned char *STR_MYGLMLBCZ[10]; +/*机构号不存在!*/ +extern unsigned char *STR_JGHBCZ[7]; +/*密钥类型不存在*/ +extern unsigned char *STR_MYLXBCZ[8]; +/*密钥类型已存在*/ +extern unsigned char *STR_MYYCZ[6]; +/*获取密钥失败!*/ +extern unsigned char *STR_HQMYSB[7]; +/*计算密钥MAC失败!*/ +extern unsigned char *STR_JSMYJYZSB[10]; +/*密钥MAC校验失败!*/ +extern unsigned char *STR_MYJYSB[7]; +/*保存密钥失败!*/ +extern unsigned char *STR_BCMYSB[7]; +/*临时区主密钥异常!*/ +extern unsigned char *STR_LSQZMYYC[9]; +/*销毁主密钥!*/ +extern unsigned char *STR_XHZMY[6]; +/*配置文件不存在!*/ +extern unsigned char *STR_PZWJBCZ[8]; +/*文件备份失败!*/ +extern unsigned char *STR_WJBFSB[7]; +/*文件恢复失败!*/ +extern unsigned char *STR_WJHFSB[7]; +/*文件获取失败!*/ +extern unsigned char *STR_WJHQSB[7]; +/*文件保存失败!*/ +extern unsigned char *STR_WJBCSB[7]; +/*指令错误!*/ +extern unsigned char *STR_ZLCW[5]; +/*等待客户端连接超时!*/ +extern unsigned char *STR_DDKHDLJCS[10]; +/*IC卡未发卡!*/ +extern unsigned char *STR_ICKWFK[7]; +/*该机具号未注册!*/ +extern unsigned char *STR_JJHWZC[7]; +/*非空白IC卡!*/ +extern unsigned char *STR_FKBICK[7]; +/*串口号设置错误!*/ +extern unsigned char *STR_CKHCW[7]; +/*此IC卡被初始化过*/ +extern unsigned char *STR_CICKBCSHG[9]; +/*不能重复初始化*/ +extern unsigned char *STR_BNCFCSH[7]; +/*恢复管理员密钥*/ +extern unsigned char *STR_HFGLYMY[7]; +/*密钥不存在*/ +extern unsigned char *STR_MYBCZ[6]; +/*密钥备份成功*/ +unsigned char *STR_MYBFCG[7]; +/*密钥恢复成功*/ +unsigned char *STR_MYHFCG[7]; +/*新旧标识*/ +extern unsigned char *STR_XJBS[5]; +/*密钥状态*/ +extern unsigned char *STR_MYZT[5]; +/*方案*/ +extern unsigned char *STR_FA[3]; +/*起始日期*/ +extern unsigned char *STR_QSRQ[5]; +/*截止日期*/ +extern unsigned char *STR_JZRQ[5]; +/*停用*/ +extern unsigned char *STR_TY[2]; +/*启用*/ +extern unsigned char *STR_QY[2]; +/*未知*/ +extern unsigned char *STR_WZ[2]; +/*合成密钥分量长度*/ +extern unsigned char *STR_HCMYFLCD[8]; +/*合成密钥分量长度*/ +extern unsigned char *STR_HCMYFLGS[8]; +/*起始日期错误*/ +extern unsigned char *STR_QSRQCW[7]; +/*截止日期错误*/ +extern unsigned char *STR_JZRQCW[7]; +/*日期格式错误*/ +extern unsigned char *STR_RQGSCW[7]; +/*数据库打开失败*/ +extern unsigned char *STR_DKSJKCW[8]; +/*数据库操作失败*/ +extern unsigned char *STR_CZSJKCW[8]; +/*操作加密卡失败*/ +extern unsigned char *STR_CZJMKCW[8]; +/*机构号已存在*/ +extern unsigned char *STR_JGHYCZ[6]; +/*密钥类型已存在*/ +extern unsigned char *STR_MYLXYCZ[8]; +/*合成密钥失败*/ +extern unsigned char *STR_HCMYSB[7]; +/*删除机构成功*/ +extern unsigned char *STR_SCJGCG[7]; +/*增加机构成功*/ +extern unsigned char *STR_ZJJGCG[7]; +/*删除密钥类型成功*/ +extern unsigned char *STR_SCMYLXCG[9]; +/*增加密钥类型成功*/ +extern unsigned char *STR_ZJMYLXCG[9]; +/*密钥启用停用*/ +extern unsigned char *STR_MYTYQY[6]; +/*密钥批量启用*/ +extern unsigned char *STR_MYPLQY[6]; +/*密钥单个启用*/ +extern unsigned char *STR_MYDGQY[6]; +/*操作成功*/ +extern unsigned char *STR_CZCG[5]; +/*长度域字节数:*/ +extern unsigned char *STR_CDYZJS[7]; +/*报文头字节数:*/ +extern unsigned char *STR_BWTZJS[7]; +/*报文尾字节数:*/ +extern unsigned char *STR_BWWZJS[7]; +/*只能输入123*/ +//unsigned char *STR_ZNSR123[8]= {CH_ZHI_1,CH_NENG_1,CH_SHU_1,CH_RU_1,ASC16_Num[1],ASC16_Num[2],ASC16_Num[3],ASC16_Dot}; +/*设置完成*/ +extern unsigned char *STR_SZWC[5]; +/*报文头应小于32:*/ +extern unsigned char *STR_BWWYXY32[8]; +/*报文尾应小于256:*/ +extern unsigned char *STR_BWWYXY256[9] ; +//EBCDIC ASCII +extern unsigned char *STR_BMGSEBCDIC[11]; +/*编码格式ASCII */ +extern unsigned char *STR_BMGSASCII[10]; +/*获取报文域设置失败*/ +extern unsigned char *STR_HQBWYSZSB[9]; +extern unsigned char *STR_BWYSZCG[8]; +extern unsigned char *STR_BWYSZ[5]; +/*合成密钥错误*/ +extern unsigned char *STR_HCMYCW[7]; + +extern unsigned char *STR_KONGGE[10]; +/*打印对称密钥分量*/ +extern unsigned char *STR_DYDCMYFL[8]; +/*2-9个分量合成密钥*/ +extern unsigned char *STR_SRFLHCDCMY[6]; +/*U盾导出密钥分量*/ +extern unsigned char *STR_UDDCMYFL[8]; +/*U盾导入密钥分量*/ +extern unsigned char *STR_UDDRMYFL[8]; +/*U盾导出数字信封*/ +extern unsigned char *STR_UDDCSZXF[8]; +/*U盾导入数字信封*/ +extern unsigned char *STR_UDDRSZXF[8]; +/*U盾密钥备份*/ +extern unsigned char *STR_UDMYBF[6]; +/*U盾密钥恢复*/ +extern unsigned char *STR_UDMYHF[6]; +/*请输入分量个数:*/ +extern unsigned char *STR_QSRFLGS[8]; +/*校验值:*/ +extern unsigned char *STR_JYZ[4]; +/*旧密钥个数设置*/ +extern unsigned char *STR_JMYGSSS[7]; +/*单个更新*/ +extern unsigned char *STR_DGGX[4]; +/*批量更新*/ +extern unsigned char *STR_PLGX[4]; +/*需保留*/ +extern unsigned char *STR_XBL[3]; +/*个旧密钥*/ +extern unsigned char *STR_GJMY[4]; +/*新密钥启用日期*/ +extern unsigned char *STR_XMYQYRQ[8]; +/*新密钥停用日期*/ +extern unsigned char *STR_XMYTYRQ[8]; +/*旧密钥停用日期*/ +extern unsigned char *STR_JMYTYRQ[8]; +/*设备初始化*/ +extern unsigned char * STR_SBCSH[5]; +/*初始化U盾*/ +extern unsigned char * STR_CSHUD[5]; +/*请插入U盾*/ +extern unsigned char * STR_QCRUD[8]; +/*初始化U盾中...*/ +extern unsigned char * STR_CSHUDZ[9]; +/*请勿拔出U盾*/ +extern unsigned char * STR_QWBCUD[6]; +/*密钥更新失败*/ +extern unsigned char *STR_MYGXSB[6]; +/*获取旧密钥个数失败*/ +extern unsigned char *STR_HQJMYGSSB[9]; +/*计算密钥MAC失败*/ +extern unsigned char *STR_JSMYMACSB[9]; +/*产生密钥失败*/ +extern unsigned char *STR_CSMYSB[6]; +/*密钥方案错误*/ +extern unsigned char *STR_MYFACW[6]; +/*此功能暂未开放*/ +extern unsigned char *STR_CGNZWKF[8]; +/*按确认键关机!*/ +extern unsigned char *STR_AQRJGJ[7]; +/*系统关机中... */ +extern unsigned char * STR_XTGJZ[8]; +/*传输密钥口令错误*/ +extern unsigned char * STR_CSMYKLCW[8]; +/*密押卡状态:*/ +extern unsigned char * STR_MYKZT[6]; +/*工作正常:*/ +extern unsigned char * STR_GZZC[4]; +/*工作异常:*/ +extern unsigned char * STR_GZYC[4]; +/*正常:*/ +extern unsigned char * STR_ZC[2]; +/*异常:*/ +extern unsigned char * STR_YC[2]; +/*核心模块状态:*/ +extern unsigned char * STR_HMKZT[7]; +//MB +extern unsigned char *STR_MB[2]; +//% +extern unsigned char *STR_BFH[1]; +//CPU 可用 +extern unsigned char *STR_CPUYK[6]; +//内存可用 +extern unsigned char *STR_NCYK[5]; +//硬盘可用 +extern unsigned char *STR_YPYK[5]; +//系统可用资源 +extern unsigned char *STR_XTYKZY[6]; + +/*管理员<1>U盾制作*/ +extern unsigned char *STR_GLYYUDZZ[10]; +/*管理员<2>U盾制作*/ +extern unsigned char *STR_GLYEUDZZ[10]; +/*管理员<3>U盾制作*/ +extern unsigned char *STR_GLYSUDZZ[10]; + +/*U盾制作成功!*/ +extern unsigned char *STR_UDZZCG[7]; +/*请取出管理员二U盾*/ +extern unsigned char *STR_QQCGLYEUD[9]; +/*并插入管理员三U盾*/ +extern unsigned char *STR_BCRGLYSUD[9]; +/*请取出管理员一U盾*/ +extern unsigned char *STR_QQCGLYYUD[9]; +/*并插入管理员二U盾*/ +extern unsigned char *STR_BCRGLYEUD[9]; +/*发行盾制作*/ +extern unsigned char *STR_FXDZZ[5]; +/*备份盾制作*/ +extern unsigned char *STR_BFDZZ[5]; +/*发行卡制作*/ +extern unsigned char *STR_FXKZZ[5]; + +/*更换U盾口令*/ +extern unsigned char *STR_GHUDKL[6]; +/*请输入管理员口令:*/ +extern unsigned char *STR_QSRGLYKL[9]; + +/*更改IC卡口令*/ +extern unsigned char * STR_GGICKKL[7]; +/*更改IC卡管理口令*/ +extern unsigned char * STR_GGICKGLKL[9]; +/*更改U盾口令*/ +extern unsigned char * STR_GGUDKL[6]; +/*更改U盾管理口令*/ +extern unsigned char * STR_GGUDGLKL[8]; +/*IC卡解锁*/ +extern unsigned char * STR_ICKJS[5]; +/*U盾解锁*/ +extern unsigned char * STR_UDJS[4]; +//更换口令失败 +extern unsigned char * STR_GHKLSB[7]; + +//数字信封已存在 +extern unsigned char * STR_SZXFYCZ[8]; +//非本机发行盾 +extern unsigned char * STR_FBJFXD[7]; +//非本机备份盾 +extern unsigned char * STR_FBJBFD[7]; + +/*U盾不存在!*/ +extern unsigned char *STR_UDBCZ[6]; +/*U盾登录失败*/ +extern unsigned char *STR_UDDLSB[7]; +/*U盾制作失败*/ +extern unsigned char *STR_UDZZSB[7]; +/*操作失败*/ +extern unsigned char *STR_CZSB[5]; +/*解锁失败*/ +extern unsigned char *STR_JSSB[5]; + +/*请等待...*/ +extern unsigned char *STR_QDD[6]; + + +//U盾未备份密钥 +extern unsigned char * STR_GDWBFMY[8]; + +// 非有效U 盾! +unsigned char *STR_FFUD[6]; +// 非空白盾请先初始化 +unsigned char *STR_FKBDQCSH[9] ; + +/* '零' */ +extern unsigned char CH_LING_1[18]; +/* '一' */ +extern unsigned char CH_YI_1[18]; +/* '二' */ +extern unsigned char CH_ER_1[18]; +/* '三' */ +extern unsigned char CH_SAN_1[18]; +/* '四' */ +extern unsigned char CH_SI_1[18]; +/* '五' */ +extern unsigned char CH_WU_1[18]; +/* '六' */ +extern unsigned char CH_LIU_1[18]; +/* '七' */ +extern unsigned char CH_QI_1[18]; +/* '八' */ +extern unsigned char CH_BA_1[18]; +/* '九' */ +extern unsigned char CH_JIU_1[18]; + +/* '分' */ +extern unsigned char CH_FEN_1[18]; +/* '量' */ +extern unsigned char CH_LIANG_1[18]; +/* '合' */ +extern unsigned char CH_HE_1[18]; +/* '成' */ +extern unsigned char CH_CHENG_1[18]; +/* '密' */ +extern unsigned char CH_MI_1[18]; +/* '钥' */ +extern unsigned char CH_YAO_1[18]; +/* '请' */ +extern unsigned char CH_QING_1[18]; +/* '输' */ +extern unsigned char CH_SHU_1[18]; +/* '入' */ +extern unsigned char CH_RU_1[18]; +/* '个' */ +extern unsigned char CH_GE_1[18]; +/* '数' */ +extern unsigned char CH_SHU_2[18]; +/* '按' */ +extern unsigned char CH_AN_1[18]; +/* '确' */ +extern unsigned char CH_QUE_1[18]; +/* '认' */ +extern unsigned char CH_REN_1[18]; +/* '键' */ +extern unsigned char CH_JIAN_1[18]; +/* '定' */ +extern unsigned char CH_DING_1[18]; +/* '方' */ +extern unsigned char CH_FANG_1[18]; +/* '案' */ +extern unsigned char CH_AN_2[18]; +/* '左' */ +unsigned char CH_ZUO_1[18]; +/* '右' */ +extern unsigned char CH_YOU_1[18]; +/* '明' */ +extern unsigned char CH_MING_1[18]; +/* '文' */ +extern unsigned char CH_WEN_1[18]; +/* '长' */ +extern unsigned char CH_CHANG_1[18]; +/* '度' */ +extern unsigned char CH_DU_1[18]; +/* '域' */ +extern unsigned char CH_YU_1[18]; +/* '字' */ +extern unsigned char CH_ZI_1[18]; +/* '节' */ +extern unsigned char CH_JIE_1[18]; +/* '只' */ +extern unsigned char CH_ZHI_1[18]; +/* '能' */ +extern unsigned char CH_NENG_1[18]; +/* '对' */ +extern unsigned char CH_DUI_1[18]; +/* '称' */ +extern unsigned char CH_CHEN_1[18]; +/* '校' */ +extern unsigned char CH_JIAO_1[18]; +/* '验' */ +extern unsigned char CH_YAN_1[18]; +/* '值' */ +extern unsigned char CH_ZHI_2[18]; +/* '生' */ +extern unsigned char CH_SHENG_1[18]; +/* '错' */ +extern unsigned char CH_CUO_1[18]; +/* '误' */ +extern unsigned char CH_WU_2[18]; +/* '报' */ +extern unsigned char CH_BAO_1[18]; +/* '头' */ +extern unsigned char CH_TOU_1[18]; +/* '尾' */ +extern unsigned char CH_WEI_1[18]; +/* '设' */ +extern unsigned char CH_SHE_1[18]; +/* '置' */ +extern unsigned char CH_ZHI_3[18]; +/* '完' */ +extern unsigned char CH_WAN_1[18]; +/* '大' */ +extern unsigned char CH_DA_1[18]; +/* '于' */ +extern unsigned char CH_YU_2[18]; +/* '小' */ +extern unsigned char CH_XIAO_1[18]; +/* '应' */ +extern unsigned char CH_YING_1[18]; +/* '加' */ +extern unsigned char CH_JIA_1[18]; +/* '的' */ +extern unsigned char CH_DE_1[18]; +/* '扰' */ +extern unsigned char CH_RAO_1[18]; +/* '码' */ +extern unsigned char CH_MA_1[18]; +/* '偏' */ +extern unsigned char CH_PIAN_1[18]; +/* '移' */ +extern unsigned char CH_YI_2[18]; +/* '模' */ +extern unsigned char HZ_MU1[18]; +/* '印' */ +extern unsigned char HZ_YIN3[18]; +/* '封' */ +extern unsigned char HZ_FENG[18]; +/* '变' */ +extern unsigned char CH_BIAN1[18]; +/* '种' */ +extern unsigned char CH_ZHONG1[18]; +/* '否' */ +extern unsigned char CH_FOU1[18]; +/* '是' */ +extern unsigned char CH_SHI7[18]; + +/* '库' */ +extern unsigned char HZ_KU[18]; + +/* '光' */ +extern unsigned char HZ_GUANG[18]; + +/* '环' */ +extern unsigned char HZ_HUAN[18]; + +/* '形' */ +extern unsigned char HZ_XING[18]; + +/* '线' */ +extern unsigned char HZ_XIAN2[18]; + +/* '插' */ +extern unsigned char HZ_CHA1[18]; + +/* '入' */ +extern unsigned char HZ_RU1[18]; + +/* '所' */ +extern unsigned char HZ_SUO1[18]; + +/* '有' */ +extern unsigned char HZ_YOU1[18]; + +/* '按' */ +extern unsigned char HZ_AN1[18]; + +/* '确' */ +extern unsigned char HZ_QUE1[18]; + +/* '认' */ +extern unsigned char HZ_REN1[18]; + +extern unsigned char HZ_JIAN1[18]; +extern unsigned char HZ_JI2[18]; +extern unsigned char HZ_XU3[18]; +extern unsigned char HZ_QI4[18]; +extern unsigned char HZ_TA[18]; +extern unsigned char HZ_FAN1[18]; +extern unsigned char HZ_HUI1[18]; +extern unsigned char HZ_QING1[18]; +extern unsigned char HZ_JIAN4[18]; +extern unsigned char HZ_CHA2[18]; +extern unsigned char HZ_WANG1[18]; +extern unsigned char HZ_LUO[18]; +extern unsigned char HZ_SHI5[18]; +/* '暂' */ +extern unsigned char HZ_ZAN[18]; +/* '放' */ +extern unsigned char HZ_FANG1[18]; + +/*查看路由信息*/ +extern unsigned char *STR_CKLYXX[6]; + +/*网关设置失败!*/ +extern unsigned char *STR_WGSZSB[7]; + +/*IP地址不能为同一个网段*/ +extern unsigned char *STR_IPDZBNWTYGWD[10]; + +/*路由已存在*/ +extern unsigned char *STR_BIPLYYCZ[9]; + +/*路由添加失败*/ +extern unsigned char *STR_LYTJSB[7]; + +/*路由删除失败*/ +extern unsigned char *STR_LYSCSB[7]; + +/*路由删除失败*/ +extern unsigned char *STR_LYCXSB[7]; + +/*IP设置*/ +extern unsigned char *STR_IPSZ[4]; + +/*路由设置*/ +extern unsigned char *STR_LYSZ[4]; + +/*添加路由*/ +extern unsigned char *STR_TJLY[4]; + +/*删除路由*/ +extern unsigned char *STR_SCLY[4]; + +/*查询路由*/ +extern unsigned char *STR_CXLY[4]; + +/*删除成功*/ +extern unsigned char *STR_SCCG[5]; + +/*添加成功*/ +extern unsigned char *STR_TJCG[5]; + + +/*LMK变种分量录入*/ +extern unsigned char * STR_LMKBZFLLR[9]; + +/*LMK分量录入*/ +extern unsigned char * STR_LMKFLLR[7]; + +/*本地主密钥管理*/ +extern unsigned char * STR_BDZMYGL[7]; + +/*请录入变种分量:*/ +extern unsigned char * STR_QLRBZFL[8]; +/*请重新录入变种分量:*/ +extern unsigned char * STR_QCXLRBZFL[10]; + +/*导入变种分量失败*/ +extern unsigned char *STR_DRBZFLSB[9]; +/*导入LMK分量失败*/ +extern unsigned char *STR_DRLMKFLSB[10]; +/*报文类型设置*/ +extern unsigned char *STR_BWLXSZ[6]; +/*报文类型设置失败*/ +extern unsigned char *STR_BWLXSZSB[9]; +/*ICBC报文格式*/ +unsigned char *STR_ICBCBWGS[8]; +/*通用报文格式*/ +unsigned char *STR_TYBWGS[6]; +/*管理客户IP设置*/ +extern unsigned char *STR_GLKJIPSZ[8]; +/*交易客户IP设置*/ +extern unsigned char *STR_JYKJIPSZ[8]; +/*分量校验失败!*/ +extern unsigned char *STR_FLJYSB[7]; +/*分量录入不一致!*/ +extern unsigned char *STR_FLLRBYZ[8]; +//交易连接数 +extern unsigned char *STR_JYLJS[6]; +/*请再次输入*/ +extern unsigned char *STR_QZCSR[5]; +/*按指令键修改*/ +extern unsigned char * STR_AZLJXG[6]; +/*管理员角色值不合法*/ +extern unsigned char *STR_GLYJSZBHF[10]; +/*用户状态值不合法*/ +extern unsigned char *STR_YHZTZBHF[9]; +/*远程管理已占用*/ +extern unsigned char *STR_YCGLYZY[8]; +/*本地管理已占用*/ +extern unsigned char *STR_BDGLYZY[8]; +/*注册区已满!*/ +extern unsigned char *STR_ZCQYM[6]; +/*主密钥校验值*/ +unsigned char *STR_ZMYJYZ[7]; +/*当前为普通状态*/ +unsigned char *STR_DQWPTZT[7]; +/*当前为授权状态*/ +unsigned char *STR_DQWSQZT[7]; +/*是否更换到授权状态?*/ +unsigned char *STR_SFGHDSQZT[10]; +/*是否更换到普通状态?*/ +unsigned char *STR_SFGHDPTZT[10]; +/*按确认键更换*/ +unsigned char *STR_AQRJGH[6]; + + +/*加密机生产测试*/ +extern unsigned char *STR_JMJSCCS[10]; +extern unsigned char *STR_ZCMS[4]; +extern unsigned char *STR_QZMS[4]; +/*已烤机时间*/ +extern unsigned char *STR_YKJSJ[5];//wangchao add + +/*灌装应用程序*/ +extern unsigned char *STR_GZYYCX[6]; +/*文件拷贝失败*/ +extern unsigned char *STR_WJKBSB[6]; +/* Start Add by yt.chen 2016-12-16 SN:88888888 Des:升级灌装应用 */ +/*灌装文件错误*/ +unsigned char *STR_GZWJCW[6]; +/* End Add by yt.chen 2016-12-16 SN:88888888 */ +/*增加权限失败*/ +extern unsigned char *STR_ZJQXSB[6]; +/*灌装应用成成功*/ +extern unsigned char *STR_GZYYCG[6]; +/*按确认键启动应用程序*/ +extern unsigned char * STR_AQRJQDYYCX[10]; +/*退出返回测试确认启动应用*/ +extern unsigned char *STR_TCFHQRQDYY[11]; + +/*按退出键返回测试*/ +extern unsigned char *STR_ATCJFHCS[8]; + +extern unsigned char *STR_JMKA[4]; +extern unsigned char *STR_JMKB[4]; + +/*SYD1118卡测试*/ +extern unsigned char *STR_SYD1118KCS[10]; +/*核验卡测试*/ +extern unsigned char *STR_HYKCS[5]; +/*读取核验卡版本*/ +extern unsigned char *STR_DQHYKBB[7]; +/*核验卡功能测试*/ +extern unsigned char *STR_HYKGNCS[7]; +/*核验卡性能测试*/ +extern unsigned char *STR_HYKXNCS[7]; +/*核验卡检测中*/ +extern unsigned char *STR_HYKJCZ[6]; +/*加密卡版本*/ +extern unsigned char *STR_JMKBB[5]; +/*串口通信测试*/ +extern unsigned char *STR_CKTXCS[6]; +/*网络通信测试*/ +extern unsigned char *STR_WLTXCS[6]; + +/*液晶面板测试*/ +extern unsigned char *STR_YJMBCS[6]; + +/*销毁系统主密钥*/ +extern unsigned char *STR_XHXTZMY[7]; +/*生成SRAM*/ +extern unsigned char *STR_SCSRAM[6]; +/*读取SRAM*/ +extern unsigned char *STR_DQSRAM[6]; +/*获取系统时间*/ +extern unsigned char *STR_HQXTSJ[6]; + +/*USB写操作*/ +extern unsigned char *STR_USBXCZ[6]; + +/*USB读操作*/ +extern unsigned char *STR_USBDCZ[6]; +/*并口通信测试*/ +extern unsigned char *STR_BKTXCS[6]; + +/*加密机功能测试*/ +extern unsigned char *STR_JMJGNCS[7]; + +/*加密机拷机测试*/ +extern unsigned char *STR_JMJKJCS[7]; + +/*加密机拷机程序测试*/ +extern unsigned char * STR_KJCXCS[6]; +extern unsigned char * STR_GGZFMMXT[9]; +extern unsigned char * STR_SZM04ZFMMXT[7]; +extern unsigned char * STR_SZM04ZFMMXT1[8]; + +extern unsigned char * STR_VPNAQWG[11]; +extern unsigned char * STR_SYD5108[10]; +extern unsigned char * STR_V100[5]; +extern unsigned char * STR_V300[5]; +extern unsigned char * STR_SYD1888[9]; +extern unsigned char * STR_QMYQFWQ[7]; +/*加密机开关机程序测试*/ +extern unsigned char * STR_KGJCXCS[7]; +/*加密机开关机程序测试中*/ + +extern unsigned char * STR_KGJCXCSZD[7] ; +extern unsigned char * STR_KGJCXCSZDD[8] ; +extern unsigned char * STR_KGJCXCSZDDD[9] ; +extern unsigned char * STR_KGJCSSB[9]; + +/* 液晶版本 */ + unsigned char* STR_YJBB[4]; +/*算法测试*/ + +extern unsigned char *STR_SFCS[4]; +/*FLASH测试*/ +extern unsigned char *STR_FLASHCS[7]; +/*SDRAM测试*/ +extern unsigned char *STR_SDRAMCS[7]; +/*密钥RAM测试*/ +extern unsigned char *STR_MYRAMCS[7]; +/*随机数快检*/ +extern unsigned char *STR_SJSKJ[5]; +/*随机数检测*/ +extern unsigned char *STR_SJSJC[5]; +/*读测试*/ +extern unsigned char *STR_DCS[3]; +/*写测试*/ +extern unsigned char *STR_XCS[3]; +/*拷机失败*/ +extern unsigned char *STR_KJSB[5]; +/*拷机成功*/ +extern unsigned char *STR_KJCG[5]; +/*U盾写操作*/ +extern unsigned char *STR_UKXCZ[5]; +/*U盾读操作*/ +extern unsigned char *STR_UKDCZ[5]; +/* IP */ +extern unsigned char *STR_IP[4]; +/* IP信息 */ +unsigned char *STR_IP_[3]; +/* MAC */ +unsigned char *STR_MAC[4]; +/*BIOS*/ +extern unsigned char *STR_BIOS[6]; +/* 其他信息 */ +extern unsigned char * STR_QTXX[4]; +/* neicun信息 */ +extern unsigned char * STR_NCXX[4]; +/* 主板信息 */ +extern unsigned char * STR_ZBXX[4]; +/* CPU信息 */ +extern unsigned char * STR_CPUXX[5]; +//U盾测试 +extern unsigned char* STR_UKCS[4]; +/*U盾初始化*/ +extern unsigned char * STR_UKCSH[5]; +/*U盾初始化成功*/ +extern unsigned char * STR_UKCSHCH[7]; +//U盾不存在 +extern unsigned char* STR_UKCCZ[5]; +//输入测试数据 +extern unsigned char* STR_SRCSSJ[12]; +/* 密码数字显示 */ +extern unsigned char SHOW_NUM[12]; +//写数据成功 +extern unsigned char* STR_XSJCG[13]; +//写数据失败 +extern unsigned char* STR_XSJSB[13]; +//读出数据为: +extern unsigned char* STR_USBSJS[6]; +//读出数据失败! +extern unsigned char* STR_DSJSB[7]; +/* 一键查看信息 */ +extern unsigned char * STR_YJCKXX[6]; +/* raid */ +extern unsigned char * STR_RAID[6]; +/* raid级别: */ +extern unsigned char * STR_RAIDJB[7]; +/* 设备状态: */ +extern unsigned char * STR_SBZT[5]; +/* 设备数量: */ +extern unsigned char * STR_SBSL[5]; +/* 失败 */ +extern unsigned char * STR_SB[2]; +/* 成功 */ +extern unsigned char * STR_CG[2]; +/* 恢复 */ +extern unsigned char * STR_HF[2]; +/* 选择光口类型: */ +extern unsigned char * STR_XZGKLX[7]; +/* 选择EXAR卡数量: */ +extern unsigned char * STR_XZEXSL[10]; +/* 选择H卡数量: */ +extern unsigned char * STR_XZHCSL[7]; +/* 选择RAID卡: */ +extern unsigned char * STR_XZRAIDK[8]; +/* 0张 */ +extern unsigned char * STR_ZERO[2]; +/* 1张 */ +extern unsigned char * STR_ONE[2]; +/* 2张 */ +extern unsigned char * STR_TWO[2]; +/* 千兆网卡 */ +extern unsigned char * STR_QZWK[4]; +/* 4口千兆网卡 */ +extern unsigned char * STR_4KQZWK[6]; +/* 2口千兆网卡 */ +extern unsigned char * STR_2KQZWK[6]; +/* 万兆网卡 */ +extern unsigned char * STR_WZWK[4]; +/* 4口万兆网卡 */ +extern unsigned char * STR_4KWZWK[6]; +/* 2口万兆网卡 */ +extern unsigned char * STR_2KWZWK[6]; +/* 无 */ +extern unsigned char * STR_WU[1]; +/* 有 */ +extern unsigned char * STR_YOU[1]; + + + +extern unsigned char * STR_SRZQQSD[8]; +extern unsigned char * STR_SHRBZQ[6]; + +extern unsigned char *STR_WL12CS[8]; +extern unsigned char *STR_WL34CS[8]; +extern unsigned char *STR_WL56CS[8]; +extern unsigned char *STR_WL78CS[8]; + +/* 12*16 点阵全角字母 */ +/* 'A' */ +extern unsigned char QJ_A[18]; +/* 'B' */ +extern unsigned char QJ_B[18]; +/* 'C' */ +extern unsigned char QJ_C[18]; +/* 'D' */ +extern unsigned char QJ_D[18]; +/* 'E' */ +extern unsigned char QJ_E[18]; +/* 'F' */ +extern unsigned char QJ_F[18]; +/* 'G' */ +extern unsigned char QJ_G[18]; +/* 'H' */ +extern unsigned char QJ_H[18]; +/* 'I' */ +extern unsigned char QJ_I[18]; +/* 'J' */ +extern unsigned char QJ_J[18]; +/* 'K' */ +extern unsigned char QJ_K[18]; +/* 'L' */ +extern unsigned char QJ_L[18]; +/* 'M' */ +extern unsigned char QJ_M[18]; +/* 'N' */ +extern unsigned char QJ_N[18]; +/* 'O' */ +extern unsigned char QJ_O[18]; +/* 'P' */ +extern unsigned char QJ_P[18]; +/* 'Q' */ +extern unsigned char QJ_Q[18]; +/* 'R' */ +extern unsigned char QJ_R[18]; +/* 'S' */ +extern unsigned char QJ_S[18]; +/* 'T' */ +extern unsigned char QJ_T[18]; +/* 'U' */ +extern unsigned char QJ_U[18]; +/* 'V' */ +extern unsigned char QJ_V[18]; +/* 'W' */ +extern unsigned char QJ_W[18]; +/* 'X' */ +extern unsigned char QJ_X[18]; +/* 'Y' */ +extern unsigned char QJ_Y[18]; +/* 'Z' */ +extern unsigned char QJ_Z[18]; + +/* '0' */ +extern unsigned char QJ_0[18]; +/* '1' */ +extern unsigned char QJ_1[18]; +/* '2' */ +extern unsigned char QJ_2[18]; +/* '3' */ +extern unsigned char QJ_3[18]; +/* '4' */ +extern unsigned char QJ_4[18]; + +/* SJK1117H_Card0 */ +extern unsigned char *STR_H_ENC_Card0[11]; +/* SJK1117H_Card1 */ +extern unsigned char *STR_H_ENC_Card1[11]; +/* EXAR_DX2040 */ +extern unsigned char *STR_EXAR_DX2040[11]; +/* HYK16 */ +extern unsigned char *STR_HYK16[12]; +/*开关机模式选择*/ +extern unsigned char *STR_KGJMSXZ[7]; + +/*模式1*/ +extern unsigned char *STR_MS1[11]; + +/*模式2*/ +extern unsigned char *STR_MS2[14]; + +/* 加密卡DX2040 测试中 */ +extern unsigned char *STR_DX2040BB[8]; +/* 加密卡DX2040 测试中 */ +extern unsigned char *STR_DX2040CS[8]; + + +/* 加密卡DX2040 测试中 */ +extern unsigned char *STR_DX2040CSZ[9]; +/* 加密卡DX2040 测试成功 */ +extern unsigned char *STR_DX2040CSCG[10]; +/* 加密卡DX2040 测试失败 */ +extern unsigned char *STR_DX2040CSSB[10]; + +/*系统版本*/ +extern unsigned char *STR_XTJXBB[6]; +/*系统版本*/ +extern unsigned char *STR_XTSJBB[6]; +/*串口测试*/ +extern unsigned char *STR_CKJC[4]; +/*串口测试中*/ +extern unsigned char *STR_CKJCZ[5]; +/*串口测试成功*/ +extern unsigned char *STR_CKJCCG[6]; +/*串口测试失败*/ +extern unsigned char *STR_CKJCSP[6]; +/*加密卡版本*/ +extern unsigned char *STR_DQJMKBB[7]; +/*液晶面板测试*/ +extern unsigned char *STR_YJMBCS[6]; +/* LCD测试 */ +extern unsigned char* STR_LCDTS[5]; +/* 按键测试 */ +extern unsigned char* STR_KEYTS[4]; +/*一键导出日志*/ +extern unsigned char *STR_YJDCRZ[6]; +extern unsigned char *STR_XTCQZ[5]; + +/*硬盘容量*/ +extern unsigned char *STR_YBRL[4]; +/* 选择核验卡数量: */ +extern unsigned char * STR_XZHYKSL[8]; +/* 按任意键退出 */ +extern unsigned char *STR_ARYJTC[12]; + +/* 核验卡自检: */ +extern unsigned char * STR_HYKZJ[6]; +/* 生成MK: */ +extern unsigned char * STR_SCMK[5]; +/* 读入MK: */ +extern unsigned char * STR_DQMK[5]; +/* 核验卡核验: */ +extern unsigned char * STR_HYKHY[6]; +/* 核验卡增发: */ +extern unsigned char * STR_HYKZF[6]; +/* 更新主密钥: */ +extern unsigned char * STR_GXZMY[6]; +/* 转换主密钥: */ +extern unsigned char * STR_ZHZMY[6]; +/* OK */ +extern unsigned char * STR_OK[2]; +/* FAIL */ +extern unsigned char * STR_FAIL[4]; +/*核验卡性能测试成功*/ +extern unsigned char *STR_HYKXNCSCG[9]; +/*核验卡性能测试失败*/ +extern unsigned char *STR_HYKXNCSSP[9]; +/* 选择SYD1308卡数量: */ +extern unsigned char * STR_XZSYD1308KSL[13]; +/*加密卡测试*/ +extern unsigned char *STR_JMKCS[5]; +/* SYD1308_Card0 */ +extern unsigned char *STR_SYD1308_Card0[13]; +/*SYD1308卡测试*/ +extern unsigned char *STR_SYD1308KCS[10]; +/*主密钥管理*/ +extern unsigned char *STR_ZMYGL[5]; +/* 2口万兆网卡数量 */ +extern unsigned char * STR_2KWZWKSL[9]; +/*获取设备信息*/ +extern unsigned char * STR_HQSBXX[6]; +/*获取设备状态*/ +extern unsigned char * STR_HQSBZT[6]; +/* 设备自检*/ +extern unsigned char * STR_SBZJ[4]; +/*设备序列号*/ +extern unsigned char * STR_SBXLH[5]; +/*设备版本*/ +extern unsigned char * STR_SBBB[13]; +/*工作主频*/ +extern unsigned char * STR_GZZP[4]; +/*板卡温度*/ +extern unsigned char * STR_BKWD[13]; +/*恢复出厂设置中*/ +extern unsigned char * STR_HFCCSZZ[7]; +/* 设备自检成功*/ +extern unsigned char * STR_SBZJCG[6]; +/* 设备自检失败*/ +extern unsigned char * STR_SBZJSB[6]; +/*恢复出厂设置成功*/ +extern unsigned char * STR_HFCCSZCG[8]; +/*恢复出厂设置失败*/ +extern unsigned char * STR_HFCCSZSB[8]; +/*请稍候...*/ +extern unsigned char * STR_QSH[6]; +/*算法测试中*/ +extern unsigned char * STR_SFCSZ[5]; +/*算法测试正确*/ +extern unsigned char * STR_SFCSZQ[6]; +/*算法测试错误*/ +extern unsigned char * STR_SFCSCW[6]; +//正在测试加密卡 +extern unsigned char* STR_ZZCSJMK[11]; +//系统正在读加密卡SN号 +extern unsigned char* STR_XTZZDJMKSN[13]; +//读加密卡序列号OK. +extern unsigned char* STR_DJMKSNOK[10]; +//读加密卡序列号错误. +extern unsigned char* STR_DJMKSNCW[10]; +//按退出键返回 +extern unsigned char* STR_ATCJFH[9]; + + +//正在测试加密卡芯片 +extern unsigned char* STR_ZZCSJMKXP[11]; + +//正在测试SM1 +extern unsigned char* STR_ZZCSSM1[12]; +//正在测试SM2 +extern unsigned char* STR_ZZCSSM2[11]; +//正在测试SM3 +extern unsigned char* STR_ZZCSSM3[11]; +//正在测试SM4 +extern unsigned char* STR_ZZCSSM4[11]; +//正在测试AES +extern unsigned char* STR_ZZCSAES[11]; +//正在测试DES +extern unsigned char* STR_ZZCSDES[11]; +//正在测试TDES +extern unsigned char* STR_ZZCS3DES[11]; +//正在测试SSF33 +extern unsigned char* STR_ZZCSSSF33[11]; +//正在测试IDEA +extern unsigned char* STR_ZZCSIDEA[11]; +//正在测试RSA +extern unsigned char* STR_ZZCSRSA[11]; +extern unsigned char* STR_SPACE_LINE[12]; + +extern unsigned char ASC8_a[8]; +extern unsigned char ASC8_b[8]; +extern unsigned char ASC8_c[8]; +extern unsigned char ASC8_d[8]; +extern unsigned char ASC8_e[8]; +extern unsigned char ASC8_f[8]; +extern unsigned char ASC8_g[8]; +extern unsigned char ASC8_h[8]; +extern unsigned char ASC8_i[8]; +extern unsigned char ASC8_j[8]; +extern unsigned char ASC8_k[8]; +extern unsigned char ASC8_l[8]; +extern unsigned char ASC8_m[8]; +extern unsigned char ASC8_n[8]; +extern unsigned char ASC8_o[8]; +extern unsigned char ASC8_p[8]; +extern unsigned char ASC8_q[8]; +extern unsigned char ASC8_r[8]; +extern unsigned char ASC8_s[8]; +extern unsigned char ASC8_t[8]; +extern unsigned char ASC8_u[8]; +extern unsigned char ASC8_v[8]; +extern unsigned char ASC8_w[8]; +extern unsigned char ASC8_x[8]; +extern unsigned char ASC8_y[8]; +extern unsigned char ASC8_z[8]; +extern unsigned char ASC8_space[8]; + +//冒号 +extern unsigned char ASC8_colon[8]; +//句号 +extern unsigned char ASC8_ponit[8]; +//逗号 +extern unsigned char ASC8_comma[8]; +//感叹号 +extern unsigned char ASC8_exclam[8]; +//分号 +extern unsigned char ASC8_semicolon[8]; +//单引号 +extern unsigned char ASC8_sin_quotes[8]; +//下划线 +extern unsigned char ASC8_down_line[8]; + + + +//斜线 +extern unsigned char ASC8_slope[8]; +//横线 +extern unsigned char ASC8_horiz[8]; +//竖线 +extern unsigned char ASC8_vert[8]; +//十字线 +extern unsigned char ASC8_across[8]; + + + +extern unsigned char ASC8_lefttop_corner[8]; +extern unsigned char ASC8_righttop_corner[8]; +extern unsigned char ASC8_leftbottom_corner[8]; +extern unsigned char ASC8_rightbottom_corner[8]; + + +extern unsigned char ASC8_0[8]; +extern unsigned char ASC8_1[8]; +extern unsigned char ASC8_2[8]; +extern unsigned char ASC8_3[8]; +extern unsigned char ASC8_4[8]; +extern unsigned char ASC8_5[8]; +extern unsigned char ASC8_6[8]; +extern unsigned char ASC8_7[8]; +extern unsigned char ASC8_8[8]; +extern unsigned char ASC8_9[8]; + +//测试错误 +extern unsigned char* STR_CSCW[12]; +//测试正确 +extern unsigned char* STR_CSZQ[12]; +//测试报告 +extern unsigned char* STR_CSBG[4]; +//测试报告 +extern unsigned char* STR_CKCSBG[6]; +extern unsigned char* STR_HEAD[12]; +extern unsigned char* STR_SCXTSJ[6]; +extern unsigned char* STR_SJSZCG[10]; +extern unsigned char* STR_SJGSCW[11]; +extern unsigned char* STR_QRXTSJ[6]; +extern unsigned char* STR_DQSJS[11]; + +extern unsigned char* STR_ZMYDU[5]; +extern unsigned char* STR_ZMYDUCG[11]; +extern unsigned char* STR_ZMYYC[11]; +extern unsigned char* STR_ZMYSC[5]; +extern unsigned char* STR_ZMYSCSB[11]; + +extern unsigned char *STR_KJCG2[12]; +extern unsigned char *STR_KJSB2[12]; + +extern unsigned char* STR_USBCS[6]; +extern unsigned char* STR_DKUSBSBSB[12]; + +//测试报告 +extern unsigned char* STR_WLCSBG[6]; +//硬件错误 +extern unsigned char* STR_WLCW[12]; +//测试正确 +extern unsigned char* STR_WLCSZ[12]; +extern unsigned char * STR_HHXSCRWX[12]; +extern unsigned char * STR_AQRJJX_1[12]; +extern unsigned char *STR_AQTJFH_1[12]; +extern unsigned char *STR_QJCWL[12]; + +/*生成主密钥*/ +extern unsigned char *STR_SCZMY[5]; +/*生成主密钥成功*/ +extern unsigned char *STR_SCZMYCG[7]; +/*生成主密钥失败*/ +extern unsigned char *STR_SCZMYSB[7]; +/*加载主密钥*/ +extern unsigned char *STR_JZZMY[5]; +/*加载主密钥成功*/ +extern unsigned char *STR_JZZMYCG[7]; +/*加载主密钥失败*/ +extern unsigned char *STR_JZZMYSB[7]; +/*校验主密钥*/ +extern unsigned char *STR_JYZMY[5]; +/*主密钥校验成功*/ +extern unsigned char * STR_ZMYJYCG[7]; +/*获取中*/ +extern unsigned char * STR_HQZ[3]; +/* 设备初始化成功*/ +extern unsigned char * STR_SBCSHCG[7]; +/* 设备初始化失败*/ +extern unsigned char * STR_SBCSHSB[7]; +/* 设备初始化中*/ +extern unsigned char * STR_SBCSHZ[6]; +/*生成主密钥中*/ +extern unsigned char *STR_SCZMYZ[6]; +/*加载主密钥中*/ +extern unsigned char *STR_JZZMYZ[6]; +/*校验主密钥中*/ +extern unsigned char *STR_JYZMYZ[6]; +/* 设备自检中*/ +extern unsigned char * STR_SBZJZ[5]; +/*----------错误提示信息----------*/ +#endif /* HZK16_H_ */ diff --git a/INCLUDE/lcddisplay.h b/INCLUDE/lcddisplay.h new file mode 100644 index 0000000..be3992a --- /dev/null +++ b/INCLUDE/lcddisplay.h @@ -0,0 +1,58 @@ +#ifndef _LCD_DISPLAY_H_ +#define _LCD_DISPLAY_H_ + + +void buffer_init(); +void buffer_flush(unsigned char LineBit); +//void write_databyte(unsigned char databyte); +void write_databyte(unsigned int databyte); + +void LcdSetPage(unsigned char Page); +void LcdSetCol(unsigned char Col); +void LcdClear(); + +void initLcdSystem(void); +void PrintASC8(unsigned char Page,unsigned char Col,unsigned char *Asc8,unsigned char Flag); +void PrintASC16(unsigned char Page,unsigned char Col,unsigned char *Asc16,unsigned char Flag); +void PrintHANZI(unsigned char Page,unsigned char Col,unsigned char *HanZi,unsigned char Flag); +void PrintString8(unsigned char Page,unsigned char Col,unsigned char * *ValBuf,unsigned char Num,unsigned char Flag); +void PrintString16(unsigned char Page,unsigned char Col,unsigned char * *ValBuf,unsigned char Num,unsigned char Flag); +void PrintFormatStr(unsigned char Page,unsigned char Col,unsigned char * *CodeStr,unsigned char Num,unsigned char Flag); + +void SetItemCursor(unsigned int * CurItem,unsigned int AllItem,unsigned char Key); +void SetItemCursor_DownAndUp(unsigned int * CurItem,unsigned int AllItem,unsigned char Key); +void PrintEmptyLine(unsigned char Line,unsigned char Type); +void DispPrefix(unsigned char ItemCnt,unsigned int first_Item,unsigned char start_page,unsigned char place_len,unsigned char start_col); +void DispPrefix_NoDot(unsigned char ItemCnt,unsigned int first_Item,unsigned char start_page,unsigned char place_len,unsigned char start_col); +void DispPrefix_oneormore_col(unsigned int ItemCnt,unsigned int first_Item,unsigned char start_page,unsigned char start_col); +void ExitToMenu(); +void DispDigits(unsigned char Page,unsigned char Col,unsigned char * Value,unsigned char Len,unsigned char Flag); +void DispVersion(unsigned char Page,unsigned char Col,unsigned char * Value,unsigned char Len,unsigned char Flag); +void DISP_TURN_ON_FLAG(unsigned char page,unsigned char col,unsigned char * FLAG,unsigned char REVERSE_Flag); +void ASCToBIN(unsigned char *ASCBuf,unsigned char ASCLen,unsigned char *BINBuf); +void BINToASC(unsigned char *BINBuf,unsigned char BINLen,unsigned char *ASCBuf); +void BCDToBIN(unsigned char *BCDBuf,unsigned char BCDLen,unsigned char *BINBuf); +void BINToBCD(unsigned char *BINBuf,unsigned char BINLen,unsigned char *BCDBuf); +void RefreshArrowPos(unsigned char CurSel,unsigned char AllSel,unsigned char first_page,unsigned char second_page); +void AddIntoBuf(unsigned char *ValBuf,unsigned char BufLen,unsigned char *CurLen,unsigned char Key); +void DelFromBuf(unsigned char *ValBuf,unsigned char BufLen,unsigned char *CurLen); +void Disp_error_no(void); +void Disp_digit_number(unsigned char * addr,unsigned char disp_len,unsigned char page,unsigned char col); +unsigned char Check_IP_Result(unsigned char * IP_value,unsigned char FLAG); +void Disp_IP_ADDR(unsigned char page,unsigned char col,unsigned char * IP_addr,unsigned char FLAG,unsigned char REVERSE_Flag); +void DISP_SYNC_FLAG(unsigned char page,unsigned char col,unsigned char * FLAG,unsigned char REVERSE_Flag); +void Display_Date(unsigned char page,unsigned char col,unsigned char * Date,unsigned char FLAG,unsigned char REVERSE_Flag); +void Display_Time(unsigned char page,unsigned char col,unsigned char * Time,unsigned char FLAG,unsigned char REVERSE_Flag); +void DispDigits_Reverse(unsigned char Page,unsigned char Col,unsigned char * Value,unsigned char Len,unsigned char Flag,unsigned char REVERSE_FLAG); +void Disp_LogSize(unsigned char Page,unsigned char Col,unsigned char * Value); +void Disp_num_failure(unsigned char Page,unsigned char Col,unsigned char * Value); +unsigned char Right_Or_Error_Time(unsigned char * time_value); +unsigned char Right_Or_Error_LongTime(unsigned char * time_value); +unsigned char Right_Or_Error_HourAndMinute(unsigned char * time_value); +void function_key_3s(unsigned char Key,unsigned char * key_flag_addr); +void function_key_first(unsigned char * key_flag_addr); +void Rev_Error_dealwith(int len); +void DispDigits2(unsigned char Page,unsigned char Col, unsigned char *Value,unsigned char Len); + + +#endif /* LCD_DIS_H_ */ diff --git a/INCLUDE/paneldeal.h b/INCLUDE/paneldeal.h new file mode 100644 index 0000000..4b87ac0 --- /dev/null +++ b/INCLUDE/paneldeal.h @@ -0,0 +1,24 @@ +#ifndef __PANEL_DEAL_H__ +#define __PANEL_DEAL_H__ + + + +void chip_main(); +void chip_main_reset(); +unsigned int get_lrc(unsigned char * send_data,int len); +void rsp_ok_common(unsigned char rsp_ok_data); +void rsp_ok_data(unsigned char * rev_data,int len); +void rsp_ok(void); +void rsp_err(unsigned char type,unsigned char error); +void rsp_err_data(unsigned char type,unsigned char * buff,int len); +int chip_request(unsigned char tag,unsigned char * send_data,int len,unsigned char * ack); +void serialSendRsp(); +void rsp_ok_common(unsigned char response_data); +void Frame_Menu_Manage_LMKIssue(); +void Frame_Menu_Manage_LMKIssue1(); +void Frame_Menu_Manage_LMKIssue2(); +void Frame_Menu_Manage_LMKIssue3(); + + +#endif + diff --git a/INCLUDE/public.h b/INCLUDE/public.h new file mode 100644 index 0000000..29e793f --- /dev/null +++ b/INCLUDE/public.h @@ -0,0 +1,71 @@ +#ifndef __PUBLIC_H__ +#define __PUBLIC_H__ + +/* + * 公共包含的头文件 + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "define.h" + + + + + + + + + + + + +#ifdef MEMWATCH +#include "memwatch.h" +#endif + +#endif diff --git a/INCLUDE/serial.h b/INCLUDE/serial.h new file mode 100644 index 0000000..9304d52 --- /dev/null +++ b/INCLUDE/serial.h @@ -0,0 +1,27 @@ +#ifndef _SERIAL_C_ +#define _SERIAL_C_ + +//错误代码 + +#define E_UART_SIZE 0x50 //Unsupported data size +#define E_UART_parity 0x51 //Unsupported parity +#define E_UART_stop 0x52 //Unsupported stop bits +#define E_UART_Setup1 0x53 //SetupSerial 1 +#define E_UART_Setup3 0x54 //SetupSerial 3 +#define E_UART_OPEN 0x55 //Serial OPEN Error +#define E_UART_SPEED 0x56 //Serial OPEN Error + +extern int icdev; + +int serial_open(int baud_rate); +int serial_write(unsigned char * data,int len); +int serial_read(unsigned char * data,int len); +int serial_read_once(unsigned char * data,int len); +int serial_flush(unsigned char LineBit); +//int serial_write_buff(unsigned char page,unsigned char col,unsigned char dat); +int serial_write_buff(unsigned int page,unsigned int col,unsigned int dat); +int serial_buff_init(); +int get_hmi_version(unsigned char *data, int len); +int serial_buff_black(); +int serial_buff_init(); +#endif diff --git a/INCLUDE/sham.h b/INCLUDE/sham.h new file mode 100644 index 0000000..3035c2a --- /dev/null +++ b/INCLUDE/sham.h @@ -0,0 +1,13 @@ +#ifndef _SHAM_H_ +#define _SHAM_H_ + +int InitKeyCard(int semid); +int initsem(int *semid, key_t semkey); +int V(int Semid, int flag); +int P(int Semid, int flag, int senconds); +int CreateIpc(); +int DeleteIpc(); +int get_efd_lock(void); +int put_efd_lock(void); +#endif + diff --git a/INCLUDE/usb.h b/INCLUDE/usb.h new file mode 100644 index 0000000..7bedfa3 --- /dev/null +++ b/INCLUDE/usb.h @@ -0,0 +1,13 @@ +#ifndef __USB_H__ +#define __USB_H__ + + +int usbWrite(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut); + +int usbRead(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut); + +#endif + + + + diff --git a/INCLUDE/usboperate.h b/INCLUDE/usboperate.h new file mode 100644 index 0000000..85f0eb3 --- /dev/null +++ b/INCLUDE/usboperate.h @@ -0,0 +1,15 @@ +#ifndef _USB_OPERATE_H_ +#define _USB_OPERATE_H_ + #include "define.h" + +int OpenUDisk(int id, int * fd); +int scsi_inquiry(int sg_fd, unsigned char * pData); +int CD_SendPackage(int sg_fd, TPCCmd tPCCmd, unsigned char * pData); +int CD_RecvPackage(int sg_fd, unsigned char * pData, unsigned int * lRecvLen); +int CloseUsb(int fd); +int USBRead(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut); +int USBWrite(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut); + + +#endif + diff --git a/INCLUDE/utils.h b/INCLUDE/utils.h new file mode 100644 index 0000000..ed91638 --- /dev/null +++ b/INCLUDE/utils.h @@ -0,0 +1,15 @@ + +#ifndef _UTILS_H +#define _UTILS_H + +#include "public.h" + +int killprg(char *prgname,int sig); +int CreateIdFile(char* pszProgName); +void stopPrg(char* pszProgName); +int TestPrgStat(char* pszProgName); +int DaemonStart(); +int ScanDir(const char *pszDirName, struct dirent ***pstruDirentList); + +#endif + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2ce25ef --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +#鐢熸垚鐩爣 +OBJ :=ggdisplay + +OUTPATH :=./OBJ +SRC_PATH :=./API\ + ./USER + +HEAD_PATH :=./INCLUDE\ + ./USER +#鎵惧埌鎵�鏈�.c鏂囦欢 +SRC_FILE :=$(foreach tmp,$(SRC_PATH),$(wildcard $(tmp)/*.c)) +#鎶婃墍鏈�.c鏂囦欢鎹㈡垚.o鏂囦欢 +SRC_OFILE :=$(patsubst %.c,%.o,$(SRC_FILE)) +OFILE :=$(notdir $(SRC_OFILE)) +DIR_OFILE :=$(patsubst %,$(OUTPATH)/%,$(OFILE)) +#鍖呭惈澶存枃浠惰矾寰� +INCLUDE :=$(patsubst %,-I %,$(HEAD_PATH)) + +VPATH := $(SRC_PATH) + + +$(OBJ):$(DIR_OFILE) + gcc $^ -o $@ +$(DIR_OFILE):$(OUTPATH)/%.o:%.c + gcc $(INCLUDE) -c $< -o $@ +clean: + rm ggdisplay $(OUTPATH)/*.o +echo: + @echo "OUTPATH"== $(OUTPATH) diff --git a/USER/IC_API.c b/USER/IC_API.c new file mode 100644 index 0000000..c8bd10d --- /dev/null +++ b/USER/IC_API.c @@ -0,0 +1,1022 @@ +#include "public.h" +#include "define.h" +#include "common.h" +#include "usboperate.h" +#include "ctranscode.h" + +extern int icdev; +unsigned char MAIN_KEY[16]; +unsigned char bufw[8192]; +unsigned char bufr[8192]; +//IC卡的唯一标识 +unsigned char IC_Number[32]; +void Check_LRC(unsigned char *BCD,unsigned short LEN); +#if 0 +static int write_main_key(char*key) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x18+5; //LEN + + bufw[pos++]=0x80; //CLA + bufw[pos++]=0xD4; //INS + bufw[pos++]=0x00; //P1 + bufw[pos++]=0x00; //P2 + bufw[pos++]=0x18; //Lc + bufw[pos++]=0x00; //KID + bufw[pos++]=0x01; //版本 + bufw[pos++]=0x00; //标示 + bufw[pos++]=0x08; //用途 + bufw[pos++]=0x0F; //使用权限 + bufw[pos++]=0x0F; //后续状态 + bufw[pos++]=0xFF; //修改权限 + bufw[pos++]=0x88; //错误记数 + memcpy(bufw+pos,key,0x10); + pos+=0x10; + + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("write_main_key:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw + +} + + +#endif +void Check_LRC(unsigned char *BCD,unsigned short LEN) +{ + unsigned short i; + unsigned short Si=0,Qi=0; + + for(i=0;i>8; + *(BCD+LEN+1)=Si; +} + +int chk8024(void) +{ + int ret,pos=0; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x45; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x01; //LEN + + bufw[pos++]=0x00; //poweron + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("IC_poweron:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write sdb failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read hid failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + return 0; +} +/**************************************************** + ** Funcname: poweron + ** Function: IC卡上电 + ** Input: + ** Output: 无 + ** Returning Values: 无 + ** Author: + ** Amendment Record: + ***************************************************/ +int poweron(unsigned char *ATR) +{ + int ret,pos=0; + int len = 0; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x43; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x01; //LEN + + //bufw[pos++]=0x00; //poweron + bufw[pos++]=0x02; //reset + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("IC_poweron:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0) + { + printf("write sdb failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0) + { + printf("read hid failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00) + { + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + len = bufr[6]*0x100+bufr[7]-1; + memcpy(ATR,(bufr+9),len); + return 0; +} + + +int select_EF(char file_name[2]) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x07; //LEN + + bufw[pos++]=0x00; //CLA + bufw[pos++]=0xA4; //INS + bufw[pos++]=0x02; //P1 + bufw[pos++]=0x00; //P2 + bufw[pos++]=0x02; //Lc + bufw[pos++]=file_name[0]; //data + bufw[pos++]=file_name[1]; //data + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("select_EF:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw +} + +static int read_binary(unsigned short offset,char *data_out,unsigned char* data_len) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x05; //LEN + + bufw[pos++]=0x00; //CLA + bufw[pos++]=0xB0; //INS + bufw[pos++]=((offset>>8)&0x7F); //P1 + bufw[pos++]=(unsigned char)offset; //P2 + bufw[pos++]=*data_len; //Lc + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("read_binary:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + *data_len=read_data_len-3; + memcpy(data_out,bufr+9,*data_len); + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw +} + +static int update_binary(unsigned short offset,char * Data_in,unsigned char Data_len) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=Data_len+5; //LEN + + bufw[pos++]=0x00; //CLA + bufw[pos++]=0xD6; //INS + bufw[pos++]=((offset>>8)&0x7F); //P1 + bufw[pos++]=(unsigned char)offset; //P2 + bufw[pos++]=Data_len; //Lc + memcpy(bufw+pos,Data_in,Data_len); + pos+=Data_len; + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("update_binary:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw +} + +static int get_challenge(char Data_len,char *out_data) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x05; //LEN + + bufw[pos++]=0x00; //CLA + bufw[pos++]=0x84; //INS + bufw[pos++]=0x00; //P1 + bufw[pos++]=0x00; //P2 + bufw[pos++]=Data_len; //Lc + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("get_challenge:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + memcpy(out_data,bufr+9,Data_len); + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw +} +#if 0 +static int get_response(unsigned char Data_len,char *out_data) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x05; //LEN + + bufw[pos++]=0x00; //CLA + bufw[pos++]=0xC0; //INS + bufw[pos++]=0x00; //P1 + bufw[pos++]=0x00; //P2 + bufw[pos++]=Data_len; //Lc + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("get_response:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + memcpy(out_data,bufr+9,Data_len); + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw +} +#endif +static int Verify(unsigned char*Pin,unsigned char PinLen) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=PinLen+5; //LEN + + bufw[pos++]=0x00; //CLA + bufw[pos++]=0x20; //INS + bufw[pos++]=0x00; //P1 + bufw[pos++]=0x03; //P2 + bufw[pos++]=PinLen; //Lc + memcpy(bufw+pos,Pin,PinLen); + pos+=PinLen; + + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("verify:\t\n",bufw,pos); +#endif + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw + +} + + + +static int change_crypt_key(char*key) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=0x18+5; //LEN + + bufw[pos++]=0x80; //CLA + bufw[pos++]=0xD4; //INS + bufw[pos++]=0x01; //P1 + bufw[pos++]=0x00; //P2 + bufw[pos++]=0x18; //Lc + bufw[pos++]=0x02; //KID // //////////////////////////////////////////////////////////////////////////////////// + bufw[pos++]=0x01; //版本 + bufw[pos++]=0x00; //标示 + bufw[pos++]=0x0A; //用途 + bufw[pos++]=0x33; //使用权限 + bufw[pos++]=0x00; //后续状态//无效 + bufw[pos++]=0x3F; //修改权限 + bufw[pos++]=0x88; //错误记数 + memcpy(bufw+pos,key,0x10); + pos+=0x10; + + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("change_crypt_key:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw + +} + + +static int change_pin(unsigned char*Pin,unsigned char PinLen) +{ + int ret,pos=0; + int read_data_len; + + memset(bufr,0,sizeof(bufr)); + memset(bufw,0,sizeof(bufw)); + memcpy(bufw,"\x55\xaa\x88\x66",4); + pos=4; + bufw[pos++]=0x00; //SEQ + bufw[pos++]=0x44; //TAG + bufw[pos++]=0x00; //LEN + bufw[pos++]=PinLen+8+5; //LEN + + bufw[pos++]=0x80; //CLA + bufw[pos++]=0xD4; //INS + bufw[pos++]=0x01; //P1 + bufw[pos++]=0x00; //P2 + bufw[pos++]=PinLen+8; //Lc + bufw[pos++]=0x03; //KID // //////////////////////////////////////////////////////////////////////////////////// + bufw[pos++]=0x01; //版本 + bufw[pos++]=0x00; //标示 + bufw[pos++]=0x0B; //用途 + bufw[pos++]=0x0F; //使用权限 + bufw[pos++]=0x03; //后续状态 + bufw[pos++]=0x3F; //修改权限 + bufw[pos++]=0x88; //错误记数 + memcpy(bufw+pos,Pin,PinLen); + pos+=PinLen; + + Check_LRC(bufw+4,pos-4); + pos+=2; + bufw[pos++]=3; +#ifdef IC_DEBUG + PrintHex("change_pin:\t\n",bufw,pos); +#endif + + ret = USBWrite(icdev,bufw,pos,SCSI_TIMEOUT); + if(ret<0){ + printf("write failed!\n"); + return -1; + } + ret = USBRead(icdev,bufr,1200,SCSI_TIMEOUT); + if(ret<0){ + printf("read failed! ret = %d",ret); + return -1; + } +#ifdef IC_DEBUG + PrintHex("ret:\t\n",bufr,bufr[6]*0x100+bufr[7]+11); +#endif + + if(bufr[8]!=0x00){ + printf("ret code failed! ret = %d\n",bufr[8]); + return -1; + } + read_data_len=bufr[6]*0x100+bufr[7]; + return bufr[6+read_data_len]*0x100+bufr[7+read_data_len]; //return sw + +} + +int write_memery_data(unsigned short offset,char * data_in, unsigned short in_len) +{ + unsigned short i; + + if(in_len == 0) + return -1; + + for(i=0; i 0x10) + return -1; + if(in_len == 0) + return -1; + + + read_len=0x10; + if(read_binary(0x00,(char *)head, &read_len)!=0x9000) + return -3; + + TOTAL=head[0]*0x100+head[1]; + INDEX_TAIL=head[2]*0x100+head[3]; + DATA_TAIL=head[4]*0x100+head[5]; + + counter_indexed_tag=0; + index_adr=INFO_END; + data_adr=INDEX_END; + for(;counter_indexed_tag 0xff) + break; + if(pkg_counter+1+1+pkg[pkg_counter+1] > 0xff) + break; + if(counter_indexed_tag >= TOTAL) + break; + if(pkg[pkg_counter] != TAG) + return -5; + data_adr=pkg[pkg_counter+2]*0x100+pkg[pkg_counter+3]; + data_len=pkg[pkg_counter+4]*0x100+pkg[pkg_counter+5]; + if(pkg[pkg_counter+1]-4 == str_len){ + if(memcmp(pkg+pkg_counter+6,index_str,str_len) == 0){ //找到索引 + if(data_len != in_len) + return -6; //目标数据长度与写入数据长度不等, + goto _finded; + } + } + data_adr += data_len; + pkg_counter+= pkg[pkg_counter+1] +2; + counter_indexed_tag++; + } + } + TOTAL++; + head[0]=TOTAL/0x100; + head[1]=TOTAL%0x100; + + if(INDEX_TAIL !=index_adr) + return -72; + INDEX_TAIL=index_adr+6+str_len; + if(INDEX_TAIL > INDEX_END-0x100) + return -7; + head[2]=INDEX_TAIL/0x100; + head[3]=INDEX_TAIL%0x100; + + if(DATA_TAIL !=data_adr) + return -71; + DATA_TAIL=data_adr+in_len; + if(DATA_TAIL > DATA_END-0x100) + return -8; + head[4]=DATA_TAIL/0x100; + head[5]=DATA_TAIL%0x100; + + if(update_binary(0x00,(char *)head,0x10)!=0x9000) + return -10; + + index_input[0]=TAG; + index_input[1]=4+str_len; + index_input[2]=(data_adr)/0x100; + index_input[3]=(data_adr)%0x100; + index_input[4]=(in_len)/0x100; + index_input[5]=(in_len)%0x100; + memcpy(index_input+6,index_str,str_len); + + if(update_binary(index_adr,(char *)index_input,index_input[1]+2)!=0x9000) + return -12; +_finded: + for(i=0;i 0x10) + return -1; + + + read_len=0x10; + if(read_binary(0x00,(char *)head, &read_len)!=0x9000) + return -3; + + TOTAL=head[0]*0x100+head[1]; +// INDEX_TAIL=head[2]*0x100+head[3]; +// DATA_TAIL=head[4]*0x100+head[5]; + + counter_indexed_tag=0; + index_adr=INFO_END; + data_adr=INDEX_END; + for(;counter_indexed_tag 0xff) + break; + if(pkg_counter+1+1+pkg[pkg_counter+1] > 0xff) + break; + if(counter_indexed_tag >= TOTAL) + break; + if(pkg[pkg_counter] != TAG) + return -5; + if(pkg[pkg_counter+1]-4 == str_len){ + if(memcmp(pkg+pkg_counter+6,index_str,str_len) == 0){ //找到索引 + data_adr=pkg[pkg_counter+2]*0x100+pkg[pkg_counter+3]; + *out_len=pkg[pkg_counter+4]*0x100+pkg[pkg_counter+5]; + for(i=0; i<*out_len/0x80; i++){ + read_len = 0x80; + if(read_binary(data_adr+i*0x80,data_out+i*0x80,&read_len)!=0x9000) + return -6; + } + read_len = *out_len%0x80; + if(read_len != 0){ + if(read_binary(data_adr+i*0x80,data_out+i*0x80,&read_len)!=0x9000) + return -6; + } + return 0; + } + } + pkg_counter+= pkg[pkg_counter+1] +2; + counter_indexed_tag++; + } + } + return -7; +} +/**************************************************** + ** Funcname: IC_poweron + ** Function: 更改口令 + ** Input: 新口令 + ** Output: 无 + ** Returning Values: 0-success + ** Author: + ** Amendment Record: + ***************************************************/ +int IC_poweron(void) +{ + int ret; + unsigned char ATR[32]={0}; + int IC_ID=0; + unsigned char i = 0; + + if(chk8024() < 0) + return -1; //no card + if(poweron(ATR) < 0) + return -2; //poweron fail + + memset(IC_Number, 0, sizeof(IC_Number)); + //memcpy(IC_Number, ATR, sizeof(ATR)); + Byte2String(8, ATR + 8, IC_Number); +#if 0 +int l= 0; +printf("IC_poweron start\n"); +for(l = 0; l < sizeof(bufr); l++) +{ + printf("%02x ", bufr[l]); +} +printf("IC_poweron end\n"); + +printf("ATR start\n"); +for(l = 0; l < 32; l++) +{ + printf("%02x ", ATR[l]); +} +printf("ATR end\n"); +#endif + ret = select_EF("\xEF\x02"); + if((ret != 0x9000)&&((ret &0x6100)!=0x6100)) + return -3; //card err//卡片结构异常 + for(i=0;i<4;i++) + { + IC_ID *= 0x100; + IC_ID += ATR[12+i]; + } + return IC_ID; +} + +/**************************************************** + ** Funcname: CARD_PRESSENT + ** Function: 更改口令 + ** Input: 新口令 + ** Output: 无 + ** Returning Values: 0-success + ** Author: + ** Amendment Record: + ***************************************************/ +int CARD_PRESSENT(void) +{ + char card_challenge[8]; + + memset(card_challenge,0,8); + if(get_challenge(4,card_challenge)!=0x9000) + return -1; + return 0; +} +/**************************************************** + ** Funcname: IC_crypt_change + ** Function: 更改数据加密密钥 + 通过用户口令认证或管理口令认证才能使用 + ** Input: 加密密钥明文,16字节 + ** Output: + ** Returning Values: 0-success + ** Author: + ** Amendment Record: + ***************************************************/ +int IC_crypt_change(char*key) +{ + if(change_crypt_key(key)!=0x9000) + return -1; + else + return 0; +} +int IC_PIN_verify(char * PIN_str, unsigned char PIN_len) +{ + int ret = 0; + if((PIN_len >6 )||(PIN_len < 2)) + return -1; + ret = Verify((unsigned char *)PIN_str,PIN_len); + if(ret == 0x6983) + return -2;//locked + if(ret == 0x9000) + return 0; + if((ret &0xFFF0) == 0x63C0) + return (ret&0x0F); + return 0; + + +} + +/**************************************************** + ** Funcname: IC_init + ** Function: IC卡上电复位 + ** Input: none + ** Output: 加密机型号、角色类型 + ** Returning Values: 0-success + ** Author: + ** Amendment Record: + ***************************************************/ +int Read_hsm_model(char * data_out,char * data_len) +{ + *data_len=0x10; + + if(read_binary(0x10,data_out,(unsigned char *)data_len)!= 0x9000) + return -1; + return 0; +} +int Read_role_type(char * data_out,char * data_len) +{ + *data_len=0x10; + + if(read_binary(0x20,data_out,(unsigned char *)data_len)!= 0x9000) + return -1; + return 0; +} +int CARD_format(char* hsm_model) +{ + //unsigned char main_key_new[16]; + + char zero[0x80]; + //int i,ret = 0; + + if(change_pin((unsigned char *)default_pin_str,6)!=0x9000) + return -2; + + memset(zero,0,0x80); + //for(i=0;i<0x3D00/0x80;i++){ + //if(update_binary(i*0x80,zero,0x80) != 0x9000) //必须写过后才能读操作 + // return -1; + // } + + if(update_binary(0x10,hsm_model,0x10) != 0x9000) + return -1; + + + if(update_binary(0x00,"\x00\x00\x01\x00\x10\x00",0x06) != 0x9000) + return -1; + + + return 0; +} +int reg_cardholder(char* role_type) +{ + if(update_binary(0x20,role_type,0x10)!=0x9000) + return -1; + + return 0; +} + +int reg_dev(char record_num,char* HSM) +{ + if((record_num >= 0x0D)||(record_num < 0x00)) + return -3; + + if(update_binary((record_num+3)*0x10,HSM,0x10)!=0x9000) + return -1; + return 0; +} + +int read_reg(char data_out[0x0D][0x10]) +{ + unsigned char data_len=0; + + data_len=0xD0; + if(read_binary(0x30,data_out[0],&data_len)!=0x9000) + return -1; + return 0; +} + + diff --git a/USER/asc16.c b/USER/asc16.c new file mode 100644 index 0000000..a74b0c9 --- /dev/null +++ b/USER/asc16.c @@ -0,0 +1,179 @@ +__attribute__((section(".data"))) unsigned char ASC16_Begin=0x00; + + + +/* 8*16锟斤拷锟斤拷锟斤拷锟斤拷 */ +__attribute__((section(".data"))) unsigned char ASC16_Num[10][16]= +{ + {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00}, /* '0' */ + {0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00}, /* '1' */ + {0x30,0x18,0x08,0x08,0x88,0xF8,0x70,0x00,0x18,0x1C,0x16,0x13,0x11,0x18,0x18,0x00}, /* '2' */ + {0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00}, /* '3' */ + {0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24}, /* '4' */ + {0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00}, /* '5' */ + {0xC0,0xE0,0xB0,0x98,0x88,0x88,0x00,0x00,0x0F,0x1F,0x10,0x10,0x10,0x1F,0x0F,0x00}, /* '6' */ + {0x18,0x18,0x08,0x88,0xC8,0x78,0x38,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00}, /* '7' */ + {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00}, /* '8' */ + {0x70,0xF8,0x88,0x88,0x88,0xF8,0xF0,0x00,0x00,0x10,0x10,0x18,0x0C,0x07,0x03,0x00} /* '9' */ +}; +/* 8*16锟斤拷锟斤拷锟角猴拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Star[16]={0x20,0x80,0xC0,0xE0,0xC0,0x80,0x20,0x00,0x09,0x03,0x07,0x0F,0x07,0x03,0x09,0x00}; +/*8*16锟斤拷锟斤拷斜锟杰凤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Slash[16]={0x00,0x00,0x00,0x80,0x70,0x08,0x00,0x00,0x00,0x10,0x0E,0x01,0x00,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷小锟斤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Dot[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00}; +/* 8*16锟斤拷锟襟逗猴拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Comma[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1C,0x0C,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷崭锟�*/ +__attribute__((section(".data"))) unsigned char ASC16_Space[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟斤拷锟�*/ +__attribute__((section(".data"))) unsigned char ASC16_Sub[16]={0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_across[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}; +/* 8*16锟斤拷锟斤拷实锟斤拷锟斤拷锟酵�*/ +__attribute__((section(".data"))) unsigned char ASC16_Arrow[16]={0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F}; +/* 8*16锟斤拷锟斤拷锟斤拷诤锟�*/ +__attribute__((section(".data"))) unsigned char ASC16_Above[16]={0x00,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x18,0x0C,0x06,0x03,0x01,0x00,0x00}; +/* 8*16锟斤拷锟斤拷小锟节猴拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Below[16]={0x00,0x80,0xC0,0x60,0x30,0x18,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x18,0x00,0x00}; +/* 8*16锟斤拷锟斤拷叹锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Claim[16]={0x00,0x00,0x00,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷冒锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_Colon[16]={0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_LBrack[16]={0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,0x00,0x00,0x0F,0x1F,0x30,0x20,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_RBrack[16]={0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x20,0x30,0x1F,0x0F,0x00,0x00}; +/* 8*16锟斤拷锟斤拷怨锟�*/ +//__attribute__((section(".data"))) unsigned char ASC16_Right[16]={0x80,0x00,0x00,0x00,0x80,0xC0,0x60,0x00,0x01,0x03,0x06,0x03,0x01,0x00,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟绞猴拷*/ +__attribute__((section(".data"))) unsigned char ASC16_What[16]={0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_LFBrack[16]={0x00,0x00,0x00,0xFC,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x3F,0x20,0x20,0x00,0x00}; +/* 8*16锟斤拷锟斤拷锟揭凤拷锟斤拷锟斤拷*/ +__attribute__((section(".data"))) unsigned char ASC16_RFBrack[16]={0x00,0x00,0x04,0x04,0xFC,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x00,0x00,0x00}; +/*8*16锟斤拷锟斤拷 I */ +__attribute__((section(".data"))) unsigned char ASC16_IChar[16]={0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}; +/*8*16锟斤拷锟斤拷 P */ +__attribute__((section(".data"))) unsigned char ASC16_PChar[16]={0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00}; +/*8*16锟斤拷锟斤拷D*/ +__attribute__((section(".data"))) unsigned char ASC16_DChar[16]={0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00}; +/*8*16锟斤拷锟斤拷N*/ +__attribute__((section(".data"))) unsigned char ASC16_NChar[16]={0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00}; +/*8*16锟斤拷锟斤拷S*/ +__attribute__((section(".data"))) unsigned char ASC16_SChar[16]={0x00,0x60,0x90,0x10,0x10,0x30,0x00,0x00,0x00,0x18,0x10,0x11,0x11,0x0E,0x00,0x00}; +/*8*16锟斤拷锟斤拷T*/ +__attribute__((section(".data"))) unsigned char ASC16_TChar[16]={0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00}; +/*8*16锟斤拷锟斤拷a*/ +__attribute__((section(".data"))) unsigned char ASC16_aChar[16]={0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20}; +/*8*16锟斤拷锟斤拷g*/ +__attribute__((section(".data"))) unsigned char ASC16_gChar[16]={0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00}; +/*8*16锟斤拷锟斤拷x*/ +__attribute__((section(".data"))) unsigned char ASC16_xChar[16]={0x00,0x40,0xC0,0x00,0x00,0xC0,0x40,0x00,0x00,0x10,0x18,0x07,0x07,0x18,0x10,0x00}; +/*8*16锟斤拷锟斤拷A*/ +__attribute__((section(".data"))) unsigned char ASC16_A_Char[16]={0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};//{0x00,0x00,0xC0,0x30,0xC0,0x00,0x00,0x00,0x10,0x1C,0x13,0x02,0x13,0x1C,0x10,0x00}; +/*8*16锟斤拷锟斤拷B*/ +__attribute__((section(".data"))) unsigned char ASC16_BChar[16]={0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00}; +/*8*16锟斤拷锟斤拷B*/ +__attribute__((section(".data"))) unsigned char ASC16_B_Char[16]={0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00}; +/*8*16锟斤拷锟斤拷C*/ +__attribute__((section(".data"))) unsigned char ASC16_CChar[16]={0xE0,0x10,0x08,0x08,0x08,0x08,0x10,0x00,0x0F,0x10,0x20,0x20,0x20,0x20,0x10,0x00}; +/*8*16锟斤拷锟斤拷D*/ +__attribute__((section(".data"))) unsigned char ASC16_D_Char[16]={0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00}; +/*8*16锟斤拷锟斤拷E*/ +__attribute__((section(".data"))) unsigned char ASC16_EChar[16]={0x00,0xF8,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x3F,0x21,0x21,0x21,0x21,0x20,0x00}; +/*8*16锟斤拷锟斤拷E*/ +__attribute__((section(".data"))) unsigned char ASC16_E_Char[16]={0x00,0xFC,0x84,0x84,0x84,0x84,0x04,0x00,0x00,0x1F,0x10,0x10,0x10,0x10,0x10,0x00}; +/*8*16锟斤拷锟斤拷F*/ +__attribute__((section(".data"))) unsigned char ASC16_F_Char[16]={0x04,0xFC,0x84,0x84,0xE4,0x04,0x04,0x00,0x10,0x1F,0x10,0x10,0x03,0x00,0x00,0x00}; +/*8*16锟斤拷锟斤拷U*/ +__attribute__((section(".data"))) unsigned char ASC16_U_Char[16]={0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00}; +/*8*16锟斤拷锟斤拷K*/ +__attribute__((section(".data"))) unsigned char ASC16_K_Char[16]={0x00,0x10,0xF0,0x90,0x40,0x30,0x10,0x00,0x00,0x10,0x1F,0x11,0x03,0x1C,0x10,0x00}; +/*8*16锟斤拷锟斤拷M*/ +__attribute__((section(".data"))) unsigned char ASC16_M_Char[16]={0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x01,0x3E,0x01,0x3F,0x20,0x00}; +/*8*16锟斤拷锟斤拷G*/ +__attribute__((section(".data"))) unsigned char ASC16_G_Char[16]={0xE0,0x18,0x04,0x04,0x04,0x1C,0x00,0x00,0x03,0x0C,0x10,0x10,0x11,0x0F,0x01,0x00}; +/*8*16锟斤拷锟斤拷W*/ +__attribute__((section(".data"))) unsigned char ASC16_WChar[16]={0x08,0xF8,0x00,0xF8,0x00,0xF8,0x08,0x00,0x00,0x03,0x3E,0x01,0x3E,0x03,0x00,0x00}; +/*8*16锟斤拷锟斤拷O*/ +__attribute__((section(".data"))) unsigned char ASC16_OChar[16]={0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00}; +/*8*16锟斤拷锟斤拷K*/ +__attribute__((section(".data"))) unsigned char ASC16_KChar[16]={0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00}; +/*8*16锟斤拷锟斤拷_*/ +__attribute__((section(".data"))) unsigned char ASC16_DnLine[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00}; +/*8*16锟斤拷锟斤拷X*/ +__attribute__((section(".data"))) unsigned char ASC16_X_Char[16]={0x08,0x18,0x68,0x80,0x68,0x18,0x08,0x00,0x10,0x18,0x16,0x01,0x16,0x18,0x10,0x00}; +/*8*16锟斤拷锟斤拷Y*/ +__attribute__((section(".data"))) unsigned char ASC16_Y_Char[16]={0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00}; +/*8*16锟斤拷锟斤拷Z*/ +__attribute__((section(".data"))) unsigned char ASC16_Z_Char[16]={0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00}; +/*8*16锟斤拷锟斤拷R*/ +__attribute__((section(".data"))) unsigned char ASC16_R_Char[16]={0x10,0xF0,0x90,0x90,0x90,0x60,0x00,0x00,0x10,0x1F,0x10,0x01,0x06,0x18,0x10,0x00}; +/*8*16锟斤拷锟斤拷L*/ +__attribute__((section(".data"))) unsigned char ASC16_L_Char[16]={0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00}; +/* *8*16锟斤拷锟斤拷'N' */ +__attribute__((section(".data"))) unsigned char ASC16_N_Char[16]={0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00};//{0x13,0xc7,0x20,0x13,0xc1,0x00,0x41,0xf4,0x03,0x31,0xf0,0x00,0x00,0x00,0x00,0x00}; + +/* *8*16锟斤拷锟斤拷'S' */ +__attribute__((section(".data"))) unsigned char ASC16_S_Char[16]={0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00}; + +/* *8*16锟斤拷锟斤拷'J' */ +__attribute__((section(".data"))) unsigned char ASC16_J_Char[16]={0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x40,0x80,0x80,0x80,0x7F,0x00,0x00,0x00}; + +/* *8*16锟斤拷锟斤拷'H' */ +__attribute__((section(".data"))) unsigned char ASC16_H_Char[16]={0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20}; + +/* *8*16锟斤拷锟斤拷'r' */ +__attribute__((section(".data"))) unsigned char ASC16_r_Char[16]={0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x20,0x3F,0x21,0x20,0x00,0x01,0x00}; + +/* *8*16锟斤拷锟斤拷'd' */ +__attribute__((section(".data"))) unsigned char ASC16_d_Char[16]={0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20}; + +/* 'V' */ +__attribute__((section(".data"))) unsigned char ASC16_V_Char[16]={0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00}; + +/* *8*16锟斤拷锟斤拷'o' */ +__attribute__((section(".data"))) unsigned char ASC16_o_Char[16]={0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00}; + +/* *8*16锟斤拷锟斤拷'm' */ +__attribute__((section(".data"))) unsigned char ASC16_m_Char[16]={0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F}; + +/* *8*16锟斤拷锟斤拷'a' */ +__attribute__((section(".data"))) unsigned char ASC16_a_Char[16]={0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x19,0x24,0x24,0x12,0x3F,0x20,0x00}; + +/* *8*16锟斤拷锟斤拷'l' */ +__attribute__((section(".data"))) unsigned char ASC16_l_Char[16]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}; + +/* *8*16锟斤拷锟斤拷'e' */ +__attribute__((section(".data"))) unsigned char ASC16_e_Char[16]={0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x24,0x24,0x24,0x24,0x17,0x00}; + +/* *8*16锟斤拷锟斤拷'n' */ +__attribute__((section(".data"))) unsigned char ASC16_n_Char[16]={0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20}; + +/* *8*16锟斤拷锟斤拷't' */ +__attribute__((section(".data"))) unsigned char ASC16_t_Char[16]={0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x10,0x00}; + +/* *8*16锟斤拷锟斤拷'y' */ +__attribute__((section(".data"))) unsigned char ASC16_y_Char[16]={0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x81,0x86,0x78,0x18,0x06,0x01,0x00}; + +/* 'S' */ +__attribute__((section(".data"))) unsigned char ASC12_S_Char[16]={0x00,0x0E,0x11,0x10,0x10,0x10,0x1C,0x00,0x00,0x1C,0x04,0xC4,0x38,0x00,0x00,0x00}; +/* 'Z' */ +__attribute__((section(".data"))) unsigned char ASC12_Z_Char[16]={0x00,0x00,0x00,0x7E,0x84,0x04,0x08,0x08,0x10,0x20,0x20,0x42,0x42,0xFC,0x00,0x00}; +/* 'M' */ +__attribute__((section(".data"))) unsigned char ASC12_M_Char[16]={0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x50,0x50,0x00,0x00,0x00,0x00}; +/* '0' */ +__attribute__((section(".data"))) unsigned char ASC12_0_Char[16]={0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x50,0x50,0x00,0x00,0x00,0x00}; +/* '4' */ +__attribute__((section(".data"))) unsigned char ASC12_4_Char[16]={0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x50,0x50,0x00,0x00,0x00,0x00}; +/* '-' */ +__attribute__((section(".data"))) unsigned char ASC12_sub_Char[16]={0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x50,0x50,0x00,0x00,0x00,0x00}; +/* 'B' */ +__attribute__((section(".data"))) unsigned char ASC12_B_Char[16]={0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x50,0x50,0x00,0x00,0x00,0x00}; + + + + +__attribute__((section(".data"))) unsigned char ASC16_End=0xFF; + diff --git a/USER/asc8.c b/USER/asc8.c new file mode 100644 index 0000000..9618173 --- /dev/null +++ b/USER/asc8.c @@ -0,0 +1,129 @@ +/* 6*8点阵数字*/ +unsigned char ASC8_Num[16][6]= +{ + {0x3E,0x41,0x41,0x41,0x3E,0x00}, /*'0'*/ + {0x00,0x42,0x7F,0x40,0x00,0x00}, /*'1'*/ + {0x62,0x51,0x49,0x49,0x66,0x00}, /*'2'*/ + {0x22,0x49,0x49,0x49,0x36,0x00}, /*'3'*/ + {0x18,0x14,0x12,0x7F,0x10,0x00}, /*'4'*/ + {0x2F,0x49,0x49,0x49,0x31,0x00}, /*'5'*/ + {0x3C,0x4A,0x49,0x49,0x30,0x00}, /*'6'*/ + {0x03,0x71,0x09,0x05,0x03,0x00}, /*'7'*/ + {0x36,0x49,0x49,0x49,0x36,0x00}, /*'8'*/ + {0x06,0x49,0x49,0x29,0x1E,0x00}, /*'9'*/ + {0x60,0x1C,0x0B,0x1C,0x60,0x00}, /*'A'*/ + {0x00,0x7F,0x49,0x49,0x36,0x00}, /*'B'*/ + {0x1C,0x22,0x41,0x41,0x22,0x00}, /*'C'*/ + {0x7F,0x41,0x41,0x22,0x1C,0x00}, /*'D'*/ + {0x7F,0x49,0x49,0x49,0x41,0x00}, /*'E'*/ + {0x7F,0x09,0x09,0x09,0x01,0x00} /*'F'*/ +}; +/* 6*8点阵小数点*/ +unsigned char ASC8_Dot[6]={0x00,0x60,0x60,0x00,0x00,0x00}; +/* 6*8点阵逗号*/ +unsigned char ASC8_Comma[6]={0x00,0x40,0x30,0x10,0x00,0x00}; +/* 6*8点阵空格*/ +unsigned char ASC8_Space[6]={0x00,0x00,0x00,0x00,0x00,0x00}; +/* 6*8点阵减号*/ +//unsigned char ASC8_Sub[6]={0x08,0x08,0x08,0x08,0x08,0x00}; +/* 6*8点阵星号*/ +unsigned char ASC8_Star[6]={0x2A,0x1C,0x3E,0x1C,0x2A,0x00}; +/* 6*8点阵下划线*/ +unsigned char ASC8_Line[6]={0x80,0x80,0x80,0x80,0x80,0x00}; +/* 6*8点阵冒号*/ +unsigned char ASC8_Colon[6]={0x00,0x00,0x66,0x66,0x00,0x00}; +/* 6*8点阵对勾*/ +//unsigned char ASC8_Right[6]={0x10,0x20,0x10,0x08,0x04,0x02}; +/* 6*8点阵叉号*/ +//unsigned char ASC8_Cross[6]={0x42,0x24,0x18,0x18,0x24,0x42}; +/* 6*8点阵斜线*/ +unsigned char ASC8_Bias[6]={0x40,0x20,0x10,0x08,0x04,0x02}; + +__attribute__((section(".data"))) unsigned char ASC8_a[8]={0x06,0x60,0x54,0x54,0x54,0x7C,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_b[8]={0x06,0x7F,0x48,0x48,0x48,0x30,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_c[8]={0x05,0x38,0x44,0x44,0x44,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_d[8]={0x06,0x30,0x48,0x48,0x48,0x7F,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_e[8]={0x06,0x38,0x54,0x54,0x54,0x58,0x00,0x00}; + +__attribute__((section(".data"))) unsigned char ASC8_f[8]={0x04,0x08,0xFF,0x09,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_g[8]={0x06,0x98,0xA4,0xA4,0xA4,0x78,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_h[8]={0x05,0x7F,0x08,0x08,0x78,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_i[8]={0x02,0x7A,0x00,0x00,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_j[8]={0x03,0x80,0xFA,0x00,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_k[8]={0x06,0x7F,0x10,0x28,0x48,0x44,0x00,0x00}; + + +__attribute__((section(".data"))) unsigned char ASC8_l[8]={0x03,0x7F,0x40,0x00,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_m[8]={0x06,0x7C,0x04,0x78,0x04,0x7C,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_n[8]={0x05,0x7C,0x04,0x04,0x7C,0x00,0x00,0x00}; + + +__attribute__((section(".data"))) unsigned char ASC8_o[8]={0x06,0x38,0x44,0x44,0x44,0x38,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_p[8]={0x06,0xFC,0x24,0x24,0x24,0x18,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_q[8]={0x06,0x18,0x24,0x24,0x24,0xFC,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_r[8]={0x04,0x7C,0x08,0x04,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_s[8]={0x05,0x48,0x54,0x54,0x64,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_t[8]={0x04,0x04,0x7E,0x44,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_u[8]={0x05,0x7C,0x40,0x40,0x7C,0x00,0x00,0x00}; + +__attribute__((section(".data"))) unsigned char ASC8_v[8]={0x06,0x1C,0x20,0x40,0x20,0x1C,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_w[8]={0x06,0x3C,0x60,0x1C,0x60,0x3C,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_x[8]={0x06,0x44,0x28,0x10,0x28,0x44,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_y[8]={0x05,0x9C,0xA0,0x60,0x1C,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_z[8]={0x06,0x44,0x64,0x54,0x4C,0x44,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_space[8]={0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; + +//逗号 +__attribute__((section(".data"))) unsigned char ASC8_comma[8]={0x04,0x80,0x60,0x00,0x00,0x00,0x00,0x00}; +//句号 +__attribute__((section(".data"))) unsigned char ASC8_ponit[8]={0x04,0x00,0x40,0x00,0x00,0x00,0x00,0x00}; +//冒号 +__attribute__((section(".data"))) unsigned char ASC8_colon[8]={0x04,0x00,0x24,0x00,0x00,0x00,0x00,0x00}; +//感叹号 +__attribute__((section(".data"))) unsigned char ASC8_exclam[8]={0x04,0x00,0x5E,0x00,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_slope[8]={0x04,0x80,0x70,0x1C,0x03,0x00,0x00,0x00}; + +//下划线 +__attribute__((section(".data"))) unsigned char ASC8_down_line[8]={0x06,0x80,0x80,0x80,0x80,0x80,0x00,0x00}; + + + +//分号 +__attribute__((section(".data"))) unsigned char ASC8_semicolon[8]={0x04,0x80,0x50,0x00,0x00,0x00,0x00,0x00}; +//单引号 +__attribute__((section(".data"))) unsigned char ASC8_sin_quotes[8]={0x03,0x08,0x0E,0x00,0x00,0x00,0x00,0x00}; +//横线 +__attribute__((section(".data"))) unsigned char ASC8_horiz[8]={0x04,0x08,0x08,0x08,0x08,0x00,0x00,0x00}; +//横上线 +__attribute__((section(".data"))) unsigned char ASC8_horiz_up[8]={0x04,0x08,0x0F,0x08,0x08,0x00,0x00,0x00}; +//横下线 +__attribute__((section(".data"))) unsigned char ASC8_horiz_down[8]={0x04,0x08,0xF8,0x08,0x08,0x00,0x00,0x00}; + +//竖线 +__attribute__((section(".data"))) unsigned char ASC8_vert[8]={0x04,0x00,0xFF,0x00,0x00,0x00,0x00,0x00}; +//竖左线 +__attribute__((section(".data"))) unsigned char ASC8_vert_right[8]={0x04,0x08,0xFF,0x00,0x00,0x00,0x00,0x00}; +//竖右线 +__attribute__((section(".data"))) unsigned char ASC8_vert_left[8]={0x04,0x00,0xFF,0x08,0x08,0x00,0x00,0x00}; +//十字线 +__attribute__((section(".data"))) unsigned char ASC8_across[8]={0x04,0x08,0xFF,0x08,0x08,0x00,0x00,0x00}; + + +__attribute__((section(".data"))) unsigned char ASC8_lefttop_corner[8]={0x04,0x00,0xF8,0x08,0x08,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_righttop_corner[8]={0x04,0x08,0xF8,0x00,0x00,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_leftbottom_corner[8]={0x04,0x00,0x0F,0x08,0x08,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_rightbottom_corner[8]={0x04,0x08,0x0F,0x00,0x00,0x00,0x00,0x00}; + + +__attribute__((section(".data"))) unsigned char ASC8_0[8]={0x06,0x7E,0x81,0x81,0x81,0x7E,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_1[8]={0x06,0x00,0x81,0xFF,0x80,0x00,0x00,0x00}; +//__attribute__((section(".data"))) unsigned char ASC8_2[8]={0x06,0xC2,0xA1,0x91,0x8E,0x00,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_2[8]={0x06,0xC2,0xA1,0x91,0x89,0x86,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_3[8]={0x06,0x42,0x89,0x89,0x89,0x76,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_4[8]={0x06,0x38,0x24,0x22,0xFF,0x20,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_5[8]={0x06,0x4F,0x89,0x89,0x89,0x70,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_6[8]={0x06,0x7E,0x89,0x89,0x89,0x72,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_7[8]={0x06,0x01,0x81,0x61,0x19,0x07,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_8[8]={0x06,0x76,0x89,0x89,0x89,0x76,0x00,0x00}; +__attribute__((section(".data"))) unsigned char ASC8_9[8]={0x06,0x4E,0x91,0x91,0x91,0x7E,0x00,0x00}; + diff --git a/USER/ctranscode.c b/USER/ctranscode.c new file mode 100644 index 0000000..a647a10 --- /dev/null +++ b/USER/ctranscode.c @@ -0,0 +1,130 @@ +/*** + * @文件名称: ctranscode.c + * @系统名称: 公共库 + * @模块名称: 底层函数库 + * @功能说明: 编码转换函数 + * @当前版本: 1.0.0 + * @修改说明: 创建文件 + */ + +#include "public.h" +#include "define.h" + +//static BYTE szHexByte[] = +//{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9','A', 'B', 'C', 'D', 'E', 'F'}; + +int Table_ASC_HEX[]={ + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, + 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, + 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, + 0x40,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f + }; + + +const char HexToAsc1[]="0123456789ABCDEF"; + +void Byte2String(int len, unsigned char *InBuf, unsigned char *OutBuf) +{ + for(; len>0; len--) + { + (*OutBuf++) = HexToAsc1[((*InBuf)>>4)&0xf]; + (*OutBuf++) = HexToAsc1[(*InBuf++)&0xf]; + } +} + +void String2Byte(int len, unsigned char *InBuf, unsigned char *OutBuf) +{ + for(; len>0; len-=2, InBuf+=2) + { + (*OutBuf++) = (Table_ASC_HEX[(*InBuf)]<<4)|Table_ASC_HEX[*(InBuf+1)]; + } +} + + + + +void hextoasc(unsigned char *asc,unsigned char *hex,int len) +{ + int i; + int ch; + + for(i=0;i>4; + if(ch>=0&&ch<=9) + { + asc[i*2]=ch+'0'; + } + if(ch>=0xA&&ch<=0xF) + { + asc[i*2]=ch-0xa+'A'; + } + + + ch=hex[i]&0x0F; + if(ch>=0&&ch<=9) + { + asc[i*2+1]=ch+'0'; + } + if(ch>=0xA&&ch<=0xF) + { + asc[i*2+1]=ch-0xa+'A'; + } + } +} + +void asctohex(unsigned char *hex,unsigned char *asc,int len) +{ + int i; + unsigned char ch; + + for(i=0;i='0'&&ch<='9') + { + ch-='0'; + } + if(ch>='a'&&ch<='f') + { + ch=ch-'a'; + ch=ch+10; + } + if(ch>='A'&&ch<='F') + { + ch=ch-'A'; + ch=ch+10; + } + + if(i%2==0) + { + hex[i/2]=ch<<4; + }else + { + hex[i/2]=hex[i/2]|ch; + } + + } +} + +void asctoebcd(unsigned char *ebcd,unsigned char *asc,int len) +{ + int i; + + for(i=0;i='0') && (asc[i]<='9')) + ebcd[i]=asc[i]-'0' + 0xF0; + if((asc[i]>='A') && (asc[i]<='F')) + ebcd[i]=asc[i]-'A' + 0xC1; + if((asc[i]>='a') && (asc[i]<='f')) + ebcd[i]=asc[i]-'a' + 0xC1; + } + +} + + diff --git a/USER/global.c b/USER/global.c new file mode 100644 index 0000000..d5d1c64 --- /dev/null +++ b/USER/global.c @@ -0,0 +1,65 @@ + +unsigned char Frame; //画面号 +unsigned int MenuItem; //光标所在菜单项 +unsigned int FreshItem = 0; + +int card_flag = 0x00; + +unsigned char TO_ADMIN_OR_MOR_FLAG; //初始化后,进入管理程序或编核押程序标志 2串口服务1 管理程序 0 编核押 +unsigned char ADMIN_LOCATE_FLAG; //安控员登录定位标志 0:安控员一登录界面 1:安控员二登录界面 2:管理菜单管理员登录界面 + + +unsigned char MANAGE_UMAKE_FLAG; //管理员盾制作标志0:安控员一制作界面1:安控员二制作界面3:安控员三制作界面 +unsigned char DEBLOCK_FLAG; //0;IC卡解锁1;U盾解锁 +unsigned char UKEY_MAKE_FLAG; //管理员盾制作标志0:制作一级管理员盾1;制作二级管理员盾2;制作三级管理员盾3;制作密钥备份盾4;制作密钥发行盾5;发行卡制作 +unsigned char SUPPER_UMAKE_FLAG; // 管理员盾制作标志 0 : 超级管理员 1: 非超级管理员( 针对超级管理员,需要插卡录入 ) +unsigned char UKEY_OPERATE_FLAG; //0;U盾导出对称密钥分量1;U盾分量合成对称密钥2;U盾导出数字信封3;U盾导入数字信封 +unsigned char PWD_CHANGE_FLAG; //0:IC卡口令1:IC卡管理口令 2:U盾口令 3:U盾管理口令 + +unsigned char NETLOGIN_FLAG; //网络服务登录1:普通交易登录2:授权状态登录 +unsigned char LMK_RECOVER_FLAG; //恢复主密钥定位标记1:恢复分量一2:恢复分量二3:恢复分量三 +unsigned char LMK_BAK_FLAG; //备份主密钥定位标记1:备份分量一2:备份分量二3:备份分量三 +unsigned char LMK_GENERATE_FLAG; //产生主密钥方式1:新生成2:分量恢复 +unsigned char LMK_FLAG; //判断LMK 是否正常0:正常1:不正常 +unsigned char MAKE_OPR_FLAG; //制作密钥管理员1:密钥管理员一2:密钥管理员二 +unsigned char AUTHORIZATION_LOGIN; //网络交易授权状态1:授权登录0:配置管理员登录 +unsigned char NetService_Change; //交易状态切换0,非切换状态1,普通到授权,2,授权到普通 +unsigned char cmp_combine;//对比错误 + +unsigned char MenuItem_num; //返回到上一帧菜单项被选中号,优先级高 +unsigned char EXIT_Frame; //返回到上一帧界面号 比Function优先级高 +unsigned char EXIT_Frame_Flag[8]; //存放一个功能菜单的EXIT_Frame +unsigned char MenuItem_num_Flag[8]; //存放一个功能菜单的MenuItem_num 返回到上一帧菜单项被选中号 +unsigned char NETWARE_NUM; //网卡号 +unsigned char XTZMY_Function_Num; //区分是第一次开机生成系统主密钥 0 /管理菜单选择生成系统主密钥 1 +unsigned char Store_Card_Num; //备份下级行密钥的IC卡编号 默认为1 +unsigned char TIMEOUT; //串口数据传输超时标志位 TIMEOUT=1表示超时 +unsigned int TIMENUM_NUM; //超时时间倍数计数 +unsigned int Timenum; //超时时间倍数计数 +unsigned char INPUT_OR_OUTPUT_KEY_BIT; //导入或导出的密钥位数 2:两位 3:三位 +int ExData; //全局变量,单字节共享时用 +int totalnum = 0; +unsigned int QueryCnt,QueryPtr,DispAddr; +unsigned int P_Flag= 0 ; +unsigned char LEDSTATE ; +//unsigned char *Buffer[22]; //用户行显示内容的指针全局变量 +unsigned char *Buffer[44]; //用户行显示内容的指针全局变量 + +unsigned char DataTmp[256] = {0x00}; //全局变量,多字节共享unsigned char Buf[256] = {0x00}; +unsigned char SynBuf[80] = {0x00}; +unsigned char inbuf[20] = {0x00}; +unsigned char Buf[512] = {0x00}; +unsigned char Int_flag; +unsigned char func_3s_flag = 0x00; +unsigned char keybuff[20] = {0x00}; +int bufindex = 0; +int AllKeyLen = 0; +unsigned char *g_key_buff; +unsigned char power; +unsigned char NUM_SERIER_REV; +int SerialPort_PID; +int PCfd =-1; +unsigned char IC_Copy_tmp[12*1024] ={0x00}; +char IC_Copy_role[17]={0x00}; +char IC_Copy_roleLen = 0; + diff --git a/USER/hsm.c b/USER/hsm.c new file mode 100644 index 0000000..b5be184 --- /dev/null +++ b/USER/hsm.c @@ -0,0 +1,22 @@ + +#include "define.h" + +int main(int argc, char *argv[]) +{ + int rv; + rv = serial_open(115200); + if (rv < 0) + { + printf("[SRL] Open Serial Err"); + sleep(1); + exit(0); + } + printf("Open Serial Success\n"); + PrintFormatStr(1, 15, STR_QMYQFWQ, 7, NORMAL); + PrintFormatStr(3, 25, STR_SYD1888, 9, NORMAL); + PrintFormatStr(5, 40, STR_V300, 5, NORMAL); + + buffer_flush(0xFF); + + return 0; +} diff --git a/USER/hzk16.c b/USER/hzk16.c new file mode 100644 index 0000000..c1d7e35 --- /dev/null +++ b/USER/hzk16.c @@ -0,0 +1,3430 @@ +/* + * Hzk16.c + * + * Created on: 2010-11-12 + * Author: LinconGLC + */ + +/*8*16点阵斜杠符号*/ +extern unsigned char ASC16_Slash[16]; + +extern unsigned char ASC16_Num[10][16]; +/* 8*16点阵小数点 */ +extern unsigned char ASC16_Dot[16]; +/* 8*16点阵逗号 */ +extern unsigned char ASC16_Comma[16]; +/* 8*16点阵空格 */ +extern unsigned char ASC16_Space[16]; +/* 8*16点阵实心左箭头*/ +//extern unsigned char ASC16_Arrow[16]; +/* 8*16点阵大于号*/ +extern unsigned char ASC16_Above[16]; +/* 8*16点阵小于号*/ +extern unsigned char ASC16_Below[16]; +/* 8*16点阵惊叹号*/ +extern unsigned char ASC16_Claim[16]; +/* 8*16点阵冒号*/ +extern unsigned char ASC16_Colon[16]; +/* 8*16点阵左括号*/ +extern unsigned char ASC16_LBrack[16]; +/* 8*16点阵右括号*/ +extern unsigned char ASC16_RBrack[16]; +/* 8*16点阵对勾*/ +//extern unsigned char ASC16_Right[16]; +/* 8*16点阵问号*/ +extern unsigned char ASC16_What[16]; +/* 8*16点阵左方括号*/ +extern unsigned char ASC16_LFBrack[16]; +/* 8*16点阵右方括号*/ +extern unsigned char ASC16_RFBrack[16]; +/*8*16点阵 I */ +extern unsigned char ASC16_IChar[16]; +/*8*16点阵 P */ +extern unsigned char ASC16_PChar[16]; +/*8*16点阵 D*/ +extern unsigned char ASC16_DChar[16]; +/*8*16点阵 N */ +extern unsigned char ASC16_NChar[16]; +/*8*16点阵 S*/ +extern unsigned char ASC16_SChar[16]; +/*8*16点阵T*/ +extern unsigned char ASC16_TChar[16]; +/*8*16点阵a*/ +extern unsigned char ASC16_aChar[16]; +/*8*16点阵g*/ +extern unsigned char ASC16_gChar[16]; +/*8*16点阵A*/ +extern unsigned char ASC16_A_Char[16]; +/*8*16点阵V*/ +extern unsigned char ASC16_V_Char[16]; +/*8*16点阵B*/ +extern unsigned char ASC16_B_Char[16]; + +/*8*16点阵C*/ +extern unsigned char ASC16_CChar[16]; +/*8*16点阵U*/ +extern unsigned char ASC16_U_Char[16]; +/*8*16点阵K*/ +extern unsigned char ASC16_K_Char[16]; +/*8*16点阵I*/ +extern unsigned char ASC16_IChar[16]; +/*8*16点阵M*/ +extern unsigned char ASC16_M_Char[16]; +/*8*16点阵G*/ +extern unsigned char ASC16_G_Char[16]; +/*8*16点阵W*/ +extern unsigned char ASC16_WChar[16]; +/*8*16点阵O*/ +extern unsigned char ASC16_OChar[16]; +/*8*16点阵E*/ +extern unsigned char ASC16_EChar[16]; +/*8*16点阵F*/ +extern unsigned char ASC16_F_Char[16]; +/*8*16点阵B*/ +extern unsigned char ASC16_BChar[16]; +/*8*16点阵R*/ +extern unsigned char ASC16_R_Char[16]; +/*减号*/ +extern unsigned char ASC16_Sub[16]; +/*8*16点阵L*/ +extern unsigned char ASC16_L_Char[16]; + +/*8*16点阵S*/ +extern unsigned char ASC16_S_Char[16]; +/*8*16点阵Y*/ +extern unsigned char ASC16_Y_Char[16]; +/*8*16点阵Z*/ +extern unsigned char ASC16_Z_Char[16]; +/*8*16点阵J*/ +extern unsigned char ASC16_J_Char[16]; +/*8*16点阵H*/ +extern unsigned char ASC16_H_Char[16]; +/*8*16点阵r*/ +extern unsigned char ASC16_r_Char[16]; +/*8*16点阵d*/ +extern unsigned char ASC16_d_Char[16]; +/*8*16点阵_*/ +extern unsigned char ASC16_across[16]; +/*8*16点阵E*/ +extern unsigned char ASC16_E_Char[16]; +/*8*16点阵X*/ +extern unsigned char ASC16_X_Char[16]; +/*8*16点阵D*/ +extern unsigned char ASC16_D_Char[16]; +/*8*16点阵N*/ +extern unsigned char ASC16_N_Char[16]; +/*8*16点阵V*/ +extern unsigned char ASC16_V_Char[16]; +/*8*16点阵o*/ +extern unsigned char ASC16_o_Char[16]; +/*8*16点阵m*/ +extern unsigned char ASC16_m_Char[16]; +/*8*16点阵a*/ +extern unsigned char ASC16_a_Char[16]; +/*8*16点阵l*/ +extern unsigned char ASC16_l_Char[16]; +/*8*16点阵e*/ +extern unsigned char ASC16_e_Char[16]; +/*8*16点阵d*/ +extern unsigned char ASC16_d_Char[16]; +/*8*16点阵n*/ +extern unsigned char ASC16_n_Char[16]; +/*8*16点阵t*/ +extern unsigned char ASC16_t_Char[16]; +/*8*16点阵y*/ +extern unsigned char ASC16_y_Char[16]; + + +extern unsigned char ASC12_S_Char[16]; +extern unsigned char ASC12_Z_Char[16]; +extern unsigned char ASC12_M_Char[16]; +extern unsigned char ASC12_0_Char[16]; +extern unsigned char ASC12_4_Char[16]; +extern unsigned char ASC12_sub_Char[16]; +extern unsigned char ASC12_B_Char[16]; + + +/* '正' */ +unsigned char CH_ZHENG[18] = {0x00,0x2c,0x82,0x08,0x2f,0x82,0x08,0x30,0x80,0x82,0x0f,0xe0,0x82,0x0f,0xe1,0x86,0x18,0x60}; +/* '在' */ +unsigned char CH_ZAI[18] = {0x10,0x49,0x14,0x30,0x71,0x34,0x10,0x41,0x84,0x08,0x1f,0xc0,0x82,0x18,0x7f,0x86,0x18,0x60}; +/* '测' */ +unsigned char CH_CE[18] = {0x21,0x10,0xbe,0x0b,0xa0,0xbe,0x03,0xc0,0x3f,0x13,0xe8,0x53,0x20,0x72,0x13,0x00,0x78,0x3f}; +/* '试' */ +unsigned char CH_SHI[18] = {0x82,0x18,0x88,0xa2,0x8a,0x28,0xfc,0x83,0x88,0x00,0x07,0xc8,0x41,0x03,0xc8,0x0c,0xc4,0x38}; +/* '卡' */ +unsigned char CH_KA[18] = {0x82,0x08,0x20,0x83,0xf9,0x24,0x92,0x49,0x20,0x00,0x00,0x00,0x03,0xf0,0x82,0x10,0x42,0x00}; +/* '系' */ +unsigned char CH_XI[18] = {0x00,0x24,0x92,0x6b,0x64,0x91,0xa4,0x10,0x40,0x01,0x02,0x82,0x0e,0x2f,0x82,0x08,0xb4,0x80}; +/* '统' */ +unsigned char CH_TONG[18] = {0x41,0xcc,0xd8,0x02,0x4d,0x2d,0x9a,0x4d,0x24,0x4b,0x34,0x8a,0xa1,0x03,0xc0,0x7e,0x08,0x38}; +/* '读' */ +unsigned char CH_DU[18] = {0x41,0x1c,0x80,0x29,0xaa,0x8f,0xa8,0xa6,0x88,0x00,0x07,0xc8,0x96,0x65,0x0c,0x3d,0x49,0x04}; +/* '按' */ +unsigned char CH_AN[18] = {0x20,0x8f,0xe8,0x02,0xc9,0x35,0x9a,0x49,0x2c,0x0a,0x1f,0xc0,0x82,0x25,0x48,0x21,0x74,0x20}; +/* '任' */ +unsigned char CH_REN[18] = {0x81,0x0f,0x03,0x10,0x41,0x3c,0x08,0x30,0x80,0x00,0x0f,0xc0,0x86,0x18,0x7f,0x86,0x18,0x61}; +/* '意' */ +unsigned char CH_YI[18] = {0x20,0xae,0xaa,0xba,0xba,0xae,0xab,0xa2,0x88,0x81,0x80,0xda,0x8a,0x6a,0xa2,0xc8,0xbc,0x00}; +/* '键' */ +unsigned char CH_JIAN[18] = {0x63,0x75,0x14,0xca,0xea,0x2a,0xfe,0xaf,0x88,0x07,0xf4,0x69,0x58,0x85,0xea,0xfe,0xaa,0xa0}; +/* '继' */ +unsigned char CH_JI[18] = {0x41,0xcc,0xd8,0x03,0xe9,0x28,0xfe,0x89,0xa0,0x49,0x32,0x8a,0x03,0xf9,0x22,0xfe,0x29,0x20}; +/* '续' */ +unsigned char CH_XU[18] = {0x41,0xcc,0xd0,0x21,0xaa,0x8f,0xa8,0xaa,0x98,0x49,0x32,0x8a,0x92,0x55,0x8c,0x1c,0xc5,0x24}; +/* '错' */ +unsigned char CH_CUO[18] = {0x61,0x7d,0x14,0x42,0x4f,0xe4,0x93,0xf9,0x20,0x08,0x2f,0xd2,0x03,0xea,0xaa,0xaa,0xaf,0x80}; +/* '误' */ +unsigned char CH_WU[18] = {0x41,0x1d,0x80,0x82,0xfa,0x69,0xa6,0x9b,0xe0,0x00,0x07,0xe8,0x89,0x22,0x87,0x29,0x28,0xa2}; +/* '确' */ +unsigned char CH_QUE[18] = {0x0b,0x2b,0xa2,0x88,0x8f,0x0b,0xe8,0xe2,0xb8,0x05,0xf2,0x08,0xbd,0x03,0xc5,0xfc,0x59,0x7f}; +/* '认' */ +unsigned char CH_REN2[18] = {0x41,0x1c,0x80,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x07,0xe8,0x50,0x81,0x81,0x18,0x84,0x20}; +/* '其' */ +unsigned char CH_QI[18] = {0x00,0x20,0xbf,0x28,0xa2,0x8a,0xfc,0x20,0x80,0x12,0x49,0x17,0x34,0x51,0x45,0x3d,0x49,0x04}; +/* '它' */ +unsigned char CH_TA[18] = {0x40,0xc1,0x34,0x10,0x51,0x84,0x11,0x43,0x00,0x00,0x00,0x1f,0x8a,0x28,0x61,0x86,0x0e,0x00}; +/* '退' */ +unsigned char CH_TUI[18] = {0x41,0x1d,0x80,0x03,0xea,0xaa,0xab,0xf0,0x80,0x81,0x03,0xd0,0x82,0xfa,0x25,0x8a,0x5a,0x60}; +/* '出' */ +unsigned char CH_CHU[18] = {0x00,0x0f,0x20,0x83,0xf8,0x20,0x83,0xc0,0x00,0x03,0xe8,0x20,0x83,0xf8,0x20,0x82,0x0f,0x80}; +/* '返' */ +unsigned char CH_FAN[18] = {0x41,0x1d,0x80,0x03,0xea,0x8a,0x24,0x9e,0x40,0x81,0x03,0xd0,0xb2,0x3a,0x25,0x8a,0x5a,0x20}; +/* '回' */ +unsigned char CH_HUI[18] = {0x03,0xf0,0x41,0xe4,0x92,0x49,0xe4,0x1f,0xc0,0x03,0xf4,0x10,0x4d,0x24,0x92,0x4d,0x0f,0xc0}; +/* '写' */ +unsigned char CH_XIE[18] = {0x00,0x60,0xbe,0x28,0xa2,0x8a,0x28,0xa1,0x80,0x00,0x41,0x05,0x14,0x51,0x55,0x95,0x13,0xc0}; +/* '芯' */ +unsigned char CH_XIN[18] = {0x00,0x41,0x04,0xbc,0x45,0x24,0x3c,0x41,0x04,0x00,0x81,0x80,0x7e,0x08,0x21,0x83,0x80,0x46}; +/* '片' */ +unsigned char CH_PIAN[18] = {0x00,0x00,0x3e,0x41,0x04,0x1f,0x41,0x04,0x10,0x02,0x04,0x0f,0x04,0x10,0x41,0xfc,0x00,0x00}; +/* '报' */ +unsigned char CH_BAO[18] = {0x20,0x8f,0xc8,0x23,0xf8,0x61,0xa6,0x99,0xc0,0x0a,0x2f,0xc1,0x03,0xf4,0x0b,0x10,0xa4,0x60}; +/* '告' */ +unsigned char CH_GAO[18] = {0x82,0x89,0xa4,0x92,0x4f,0xe4,0x92,0x48,0x20,0x00,0x0f,0x92,0x49,0x24,0x92,0x4b,0xe0,0x00}; +/* '总' */ +unsigned char CH_ZONG[18] = {0x00,0x0e,0x09,0x28,0x83,0x0a,0x27,0x80,0x00,0x40,0xc0,0x5d,0x86,0x5a,0x61,0xe4,0x52,0x10}; +/* '数' */ +unsigned char CH_SHU[18] = {0xa2,0xe6,0x3f,0xb0,0xa4,0x3c,0x2c,0x8e,0x08,0x8a,0x25,0x8b,0x29,0x68,0x13,0x30,0xa4,0x60}; +/* '通' */ +unsigned char CH_TONG2[18] = {0x41,0x1d,0x80,0xe6,0x9a,0xfd,0xae,0x9e,0x40,0x81,0x03,0xd0,0xbe,0x28,0xaf,0x8a,0xab,0xe0}; +/* '过' */ +unsigned char CH_GUO[18] = {0x41,0x1d,0x80,0x21,0x8a,0x08,0xfc,0x82,0x08,0x81,0x03,0xd0,0x82,0x08,0x68,0xbe,0x08,0x20}; +/* '失' */ +unsigned char CH_SHI2[18] = {0x00,0x04,0x0e,0x20,0x8f,0xc8,0x20,0xc2,0x00,0x02,0x18,0x51,0x24,0x50,0xc5,0x25,0x18,0x61}; +/* '败' */ +unsigned char CH_BAI[18] = {0xf8,0x2e,0x82,0xfa,0x04,0x2f,0x20,0x8f,0x08,0x8d,0x81,0xc4,0xae,0x04,0x0b,0x10,0xb4,0x20}; +/* '主' */ +unsigned char CH_ZHU[18] = {0x00,0x82,0x08,0x27,0xa2,0x08,0x20,0xc2,0x00,0x82,0x08,0xa2,0x8b,0xf8,0xa2,0x8a,0x2c,0x20}; +/* '密' */ +unsigned char CH_MI[18] = {0x1a,0x24,0xba,0x0a,0xb4,0x8a,0x09,0x29,0x80,0x08,0x2e,0xa1,0x8f,0xe8,0xa2,0x8f,0x80,0x00}; +/* '钥' */ +unsigned char CH_YAO[18] = {0x41,0x8d,0xd4,0x50,0x0f,0x92,0x49,0x2f,0x80,0x04,0x1f,0xd1,0xa5,0x03,0xc2,0x0a,0x2f,0xc0}; +/* '成' */ +unsigned char CH_CHENG[18] = {0x03,0x8a,0x28,0xa0,0x8f,0xc8,0x24,0xaa,0x08,0xc0,0xf0,0x08,0x3e,0x04,0x0b,0x10,0xa4,0x78}; +/* '功' */ +unsigned char CH_GONG[18] = {0x10,0x41,0x3c,0x10,0x42,0x08,0xfc,0x82,0x38,0x20,0x82,0x07,0x91,0x02,0x06,0x46,0x04,0x0f}; +/* '生' */ +unsigned char CH_SHENG[18] = {0x81,0x03,0x88,0x20,0x8f,0xc8,0x20,0xc2,0x00,0x82,0x08,0xa2,0x8a,0x2f,0xe2,0x8a,0x28,0x20}; +/* '取' */ +unsigned char CH_QU[18] = {0x0b,0xe2,0x8a,0xf8,0x21,0x34,0x12,0x47,0x00,0x20,0xf1,0x45,0xfe,0x24,0x09,0x18,0x94,0x20}; +/* '设' */ +unsigned char CH_SHE[18] = {0x41,0x1d,0x80,0x42,0x89,0xe1,0x86,0xfa,0x08,0x00,0x07,0xc8,0x91,0x12,0x84,0x29,0x18,0x20}; +/* '置' */ +unsigned char CH_ZHI[18] = {0x41,0x75,0x55,0x5f,0xd5,0x57,0x55,0x55,0xd0,0x82,0x08,0x3f,0xa6,0xbb,0x69,0xfe,0x08,0x20}; +/* '时' */ +unsigned char CH_SHI3[18] = {0x03,0xc9,0x24,0xf0,0x0a,0x08,0x23,0xf2,0x08,0x01,0xf2,0x08,0x3c,0x00,0x01,0x83,0xf0,0x00}; +/* '间' */ +unsigned char CH_JIAN2[18] = {0x03,0xc0,0x42,0xe0,0xa2,0xba,0x08,0x2f,0x80,0x03,0xf0,0x00,0x3c,0x51,0x4f,0x02,0x0f,0xc0}; +/* '格' */ +unsigned char CH_GE[18] = {0x22,0x8f,0xe8,0x20,0x4a,0xd2,0xa8,0x60,0x00,0x18,0x1f,0xc0,0x07,0xf4,0x92,0x4b,0xf0,0x41}; +/* '式' */ +unsigned char CH_SHI4[18] = {0x22,0x8a,0x28,0xa2,0x82,0x3f,0x20,0xa3,0x08,0x43,0x04,0x1f,0x20,0x82,0x03,0x31,0x08,0x38}; +/* '年' */ +unsigned char CH_NIAN[18] = {0x40,0x89,0xe4,0x92,0x4f,0x24,0x92,0x49,0x84,0x10,0x41,0xc4,0x10,0x4f,0xc4,0x10,0x41,0x04}; +/* '月' */ +unsigned char CH_YUE[18] = {0x00,0x00,0x3f,0x24,0x92,0x49,0x27,0xf0,0x00,0x02,0x04,0x0f,0x04,0x10,0x51,0x85,0xf0,0x00}; +/* '日' */ +unsigned char CH_RI[18] = {0x00,0x0f,0xa2,0x8a,0x28,0xa2,0x8b,0xf0,0x80,0x00,0x0f,0xd0,0x41,0x04,0x10,0x43,0xf0,0x00}; +/* '时' */ +unsigned char CH_SHI5[18] = {0x03,0xc9,0x24,0xf0,0x0a,0x08,0x23,0xf2,0x08,0x01,0xf2,0x08,0x3c,0x00,0x01,0x83,0xf0,0x00}; +/* '分' */ +unsigned char CH_FEN[18] = {0x02,0x04,0x2c,0x8e,0x08,0x27,0xa1,0x08,0x20,0x06,0x04,0x08,0x1c,0x04,0x20,0x7c,0x00,0x00}; +/* '秒' */ +unsigned char CH_MIAO[18] = {0x28,0xaf,0x89,0x24,0x0e,0x00,0xfc,0x02,0x30,0x18,0x1f,0xc1,0x8a,0x14,0x10,0x2c,0x40,0xc0}; +/* '当' */ +unsigned char CH_DANG[18] = {0x01,0x04,0x94,0x61,0x07,0xd0,0x61,0x4c,0x80,0x02,0x08,0xa2,0x8a,0x28,0xa2,0x8a,0x2f,0xc0}; +/* '前' */ +unsigned char CH_QIAN[18] = {0x13,0x45,0x15,0x5b,0x41,0x36,0x17,0x41,0x04,0x03,0xf1,0x45,0x97,0xf0,0x0f,0x83,0xf0,0x00}; +/* '是' */ +unsigned char CH_SHI6[18] = {0x00,0x00,0x1f,0x55,0x55,0x55,0x7c,0x00,0x00,0x06,0x14,0x4d,0x46,0x1f,0xe5,0x96,0x59,0x61}; +/* '变' */ +unsigned char CH_BIAN[18] = {0x0a,0x26,0x82,0xf8,0x30,0xbe,0x08,0xa4,0xa2,0x86,0x08,0x53,0x54,0x92,0x55,0x4e,0x18,0x20}; +/* '种' */ +unsigned char CH_ZHONG[18] = {0x2a,0xaf,0xa9,0x24,0x0e,0x08,0xfc,0x82,0x38,0x18,0x1f,0xc0,0x04,0x00,0xc1,0xfc,0x10,0x43}; +/* '否' */ +unsigned char CH_FOU[18] = {0x02,0x28,0x92,0x28,0x6f,0x82,0x28,0xa4,0xe2,0x00,0x00,0x3f,0x45,0x14,0x51,0x47,0xf0,0x00}; + + +/* '加' */ +unsigned char CH_JIA[18] = {0x20,0x8f,0xc8,0x23,0x80,0x3c,0x10,0x41,0x3c,0x81,0x81,0xd0,0x81,0xf0,0x3f,0x41,0x04,0x3f}; +/* '输' */ +unsigned char CH_SHU2[18] = {0xd2,0xcd,0xe4,0xa2,0x4a,0x89,0x28,0x4a,0x08,0x20,0x8f,0xc4,0xfc,0xaf,0xc0,0x3e,0x0f,0xc0}; +/* '入' */ +unsigned char CH_RU[18] = {0x00,0x00,0x01,0xc4,0xec,0x00,0x00,0x00,0x00,0x41,0x02,0x06,0x04,0x00,0x03,0x10,0x84,0x10}; +/* '据' */ +unsigned char CH_JU[18] = {0x20,0x8f,0xe8,0x03,0xfa,0x69,0xe6,0x9b,0xe0,0x0a,0x1f,0xd0,0x20,0x7f,0x24,0x9e,0x4f,0x00}; +/* '串' */ +unsigned char CH_CHUAN[18] = {0x00,0x07,0x14,0x53,0xf5,0x14,0x51,0xc0,0x00,0x00,0xf1,0x45,0x17,0xf1,0x45,0x14,0x53,0xc0}; +/* '口' */ +unsigned char CH_KOU[18] = {0x00,0x0f,0x04,0x10,0x41,0x04,0x10,0x4f,0x00,0x00,0x07,0xc8,0x20,0x82,0x08,0x20,0x87,0xc0}; +/* '异' */ +unsigned char CH_YI2[18] = {0x00,0x07,0xe5,0x96,0x59,0x65,0x96,0x7e,0x00,0x8a,0x24,0x8a,0x1c,0x20,0x82,0xfc,0x20,0x82}; +/* '常' */ +unsigned char CH_CHANG[18] = {0x40,0xc1,0x76,0x51,0x75,0x14,0xd8,0x55,0x0c,0x00,0x07,0x05,0x17,0xf1,0x45,0x55,0xc0,0x00}; +/* '已' */ +unsigned char CH_YI3[18] = {0x00,0x2c,0xa2,0x8a,0x28,0xa2,0x8b,0xe0,0x00,0x00,0x07,0xe0,0x82,0x08,0x20,0x82,0x08,0x3c}; +/* '销' */ +unsigned char CH_XIAO[18] = {0x61,0x7d,0x14,0x03,0x25,0x10,0x7d,0x0d,0x02,0x08,0x2f,0xd2,0x03,0xf1,0x45,0x16,0x5f,0xc0}; +/* '毁' */ +unsigned char CH_HUI2[18] = {0x03,0xea,0xa1,0xab,0xe4,0x2e,0x8a,0x2b,0x90,0x43,0x24,0x8e,0x2a,0xa8,0x17,0x21,0x48,0xe0}; +/* '打' */ +unsigned char CH_DA[18] = {0x20,0x8f,0xc8,0xa0,0x20,0x82,0xf8,0x20,0x82,0x0a,0x2f,0xc1,0x00,0x00,0x20,0xfc,0x00,0x00}; +/* '开' */ +unsigned char CH_KAI[18] = {0x02,0x08,0xa2,0xfa,0x28,0xa2,0xfa,0x38,0xa0,0x02,0x04,0x08,0x1c,0x00,0x00,0xfc,0x00,0x00}; +/* '备' */ +unsigned char CH_BEI[18] = {0x01,0x02,0x04,0xad,0x24,0xaa,0x98,0x20,0x00,0x08,0x20,0x7f,0xaa,0xaf,0xaa,0xab,0xf0,0x41}; +/* '序' */ +unsigned char CH_XU2[18] = {0x03,0xe0,0x8a,0x28,0xa6,0xea,0x68,0xa2,0x82,0xc0,0xf0,0x01,0x04,0x18,0x7f,0x04,0x10,0xc1}; +/* '列' */ +unsigned char CH_LIE[18] = {0x08,0x2c,0x8e,0x2b,0xa0,0x80,0xf0,0x0f,0xc0,0x0a,0x14,0x09,0x18,0x10,0x00,0x1e,0x0f,0xc0}; +/* '号' */ +unsigned char CH_HAO[18] = {0x82,0x08,0x2f,0xa6,0x9a,0x69,0xa6,0xf8,0x20,0x00,0x00,0x02,0x0d,0x28,0xa2,0x48,0xe0,0x00}; +/* '并' */ +unsigned char CH_BING[18] = {0x00,0x02,0x09,0xe8,0x82,0x08,0xe8,0x92,0x00,0x00,0x28,0x9a,0x1c,0x20,0x82,0xfc,0x20,0x82}; //cp 2016-1-19 + +/*space*/ +unsigned char CH_SPACE[18] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; + + +/* '网' */ +unsigned char CH_WANG[18]={0x03,0xe0,0x8a,0xc8,0xe4,0xa2,0x78,0x2f,0xc2,0x03,0xf0,0x81,0x00,0x50,0x81,0x0a,0x4f,0xc0}; + +/*络*/ +unsigned char CH_LUO[18] = {0x61,0x4C,0xC8,0x00,0x4A,0xD2,0x4A,0xA1,0x80,0x51,0x32,0x8A,0x04,0x1F,0x92,0x49,0x2F,0xC1}; + +/*中*/ +unsigned char CH_ZHONG2[18]={0x00,0x0e,0x08,0x20,0x8f,0xc8,0x20,0x8e,0x00,0x00,0x01,0xc2,0x08,0x2f,0xc2,0x08,0x21,0xc0}; + +/* '性' */ +unsigned char HZ_XING2[18]={0x03,0x80,0x3f,0x22,0x07,0x08,0xfc,0x82,0x00,0x00,0x10,0x3f,0x02,0x08,0xa2,0xfe,0x28,0xa0}; +/* 空格 */ +unsigned char HZ_Space[18]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +/* '密' */ +unsigned char HZ_MI1[18]={0x23,0x60,0xBA,0x0A,0x64,0xCA,0x89,0x2A,0x86,0x08,0x2F,0x50,0x45,0x17,0xD1,0x47,0xC0,0x00}; +/* '押' */ +unsigned char HZ_YA1[18]={0x20,0x8f,0xe8,0x03,0xe4,0x92,0xf9,0x24,0xbe,0x0a,0x1f,0xc0,0x00,0x30,0x82,0xfc,0x20,0x83}; +/* '机' */ +unsigned char HZ_JI1[18]={0x13,0x4F,0xE4,0x10,0x0F,0x82,0x0B,0xF0,0x80,0x0C,0x0F,0xC0,0x85,0x03,0xC0,0x01,0xF8,0x38}; +/* '版' */ +unsigned char HZ_BAN1[18]={0x03,0xE4,0x1F,0x40,0x0F,0x92,0x49,0x3C,0x40,0xC0,0xF0,0x7F,0x46,0xC8,0xD0,0x2C,0xC4,0xE0}; +/* '本' */ +unsigned char HZ_BEN[18] = {0x00,0x41,0x04,0x91,0x4f,0xd4,0x90,0x41,0x04,0x00,0x81,0x0a,0x24,0x8f,0xc8,0x24,0xa1,0x08}; +/* '系' */ +unsigned char HZ_XI1[18]={0x00,0x24,0x9A,0xD9,0x24,0x89,0x16,0x10,0x00,0x81,0x12,0x45,0x06,0x1F,0xC5,0x14,0x94,0xC0}; +/* '统' */ +unsigned char HZ_TONG1[18]={0x41,0xCC,0xC8,0x93,0x4B,0x66,0x93,0x49,0x04,0x28,0xB2,0xAA,0x81,0x03,0xC0,0x7E,0x08,0x78}; +/* '启' */ +unsigned char HZ_QI1[18]={0x00,0x0f,0x92,0x49,0x24,0xd2,0x49,0x27,0x80,0x81,0x81,0xc0,0xf9,0x24,0x92,0x49,0x2f,0x80}; +/* '动' */ +unsigned char HZ_DONG1[18]={0x41,0x2c,0x92,0x49,0x02,0x08,0xfc,0x82,0x38,0x30,0xa2,0x48,0x2a,0xc4,0x0c,0x4e,0x04,0x0f}; +/* '中' */ +unsigned char HZ_ZHONG1[18]={0x03,0x82,0x08,0x20,0x8F,0xC8,0x20,0x8F,0x08,0x00,0x30,0x41,0x04,0x1F,0xC1,0x04,0x10,0xC0}; +/* '管' */ +unsigned char HZ_GUAN1[18]={0x23,0x44,0xF6,0x49,0xA5,0x13,0xD9,0x24,0xB2,0x04,0x00,0x3F,0x55,0x55,0x55,0x5F,0xC0,0x40}; +/* '理' */ +unsigned char HZ_LI1[18]={0x8A,0x2F,0xA2,0x03,0xEA,0xAA,0xFA,0xAF,0xC2,0x20,0x81,0xC4,0x8A,0x59,0x24,0xFE,0x49,0x60}; +/* '程' */ +unsigned char HZ_CHENG2[18]={0x2a,0xaf,0xa9,0x26,0x0b,0xe9,0xa6,0x9b,0xe0,0x18,0x1f,0xc0,0x06,0x09,0x24,0xfe,0x49,0x20}; +/* '序' */ +unsigned char HZ_XU1[18]={0x03,0xE0,0x8A,0x28,0xA6,0xEA,0x68,0xA2,0xC2,0x81,0xF0,0x01,0x05,0x18,0x5F,0x04,0x10,0xC1}; +/* '关' */ +unsigned char HZ_GUAN2[18]={0x00,0x82,0x09,0x2B,0x83,0x0A,0x24,0xCA,0x00,0x86,0x14,0x51,0x24,0x70,0x45,0x25,0x18,0x61}; +/* '通' */ +unsigned char HZ_TONG2[18]={0x41,0x1d,0x80,0xe6,0x9a,0xfd,0xae,0x9e,0x40,0x81,0x03,0xd0,0xbe,0x28,0xaf,0x8a,0xab,0xe0}; +/* '信' */ +unsigned char HZ_XIN1[18]={0x81,0x0F,0x03,0x11,0x45,0x56,0x51,0x45,0x84,0x00,0x0F,0xC0,0x03,0xD5,0x55,0x55,0x5F,0x40}; +/* '雅' */ +unsigned char CH_YA[18]={0x03,0x2a,0xa2,0xfa,0x24,0x3c,0x9f,0xc9,0x64,0x00,0x81,0xa1,0xfc,0x00,0x3f,0x93,0xf9,0x24}; +/* '达' */ +unsigned char CH_DA1[18]={0x01,0x04,0x72,0x00,0x82,0x08,0xfc,0x82,0x08,0x02,0x04,0x0f,0x42,0x89,0x23,0x82,0x18,0xac}; +unsigned char CH_S[16]={0x01,0x89,0x04,0x10,0xc0,0x00,0x01,0x84,0x11,0x44,0xe0,0x00}; + + + +/* '息' */ +unsigned char HZ_XI2[18]={0x00,0x0F,0xAA,0xAA,0xBA,0xAA,0xAB,0xE0,0x00,0x81,0x80,0xDE,0x8A,0x6A,0xA2,0x8B,0x32,0x10}; +/* '是' */ +unsigned char HZ_SHI1[18]={0x00,0x00,0x1f,0x55,0x55,0x55,0x7c,0x00,0x00,0x06,0x14,0x4d,0x46,0x1f,0xe5,0x96,0x59,0x61}; +/* '否' */ +unsigned char HZ_FOU1[18]={0x02,0x28,0x92,0x28,0x6f,0x82,0x28,0xa4,0xe2,0x00,0x00,0x3f,0x45,0x14,0x51,0x47,0xf0,0x00}; +/* '需' */ +unsigned char HZ_XU2[18]={0x82,0xc9,0x6d,0x96,0x5f,0xe5,0xb6,0x59,0x6c,0x00,0x0f,0x82,0x78,0x30,0x9e,0x0a,0x2f,0x80}; +/* '要' */ +unsigned char HZ_YAO2[18]={0x08,0x2E,0xAA,0xFA,0xAA,0xBE,0xAB,0xA0,0x82,0x0A,0x28,0xA6,0xAD,0xA2,0x96,0x5A,0x28,0x82}; +/* '请' */ +unsigned char HZ_QING1[18]={0x41,0x2D,0x00,0x8A,0xAA,0xBF,0xAA,0xAA,0xE2,0x00,0x07,0xC8,0x13,0xF2,0x8A,0x2A,0xAF,0xC0}; +/* '按' */ +unsigned char HZ_AN1[18]={0x10,0x4F,0xE4,0xA2,0x49,0x37,0x92,0x4B,0x24,0x46,0x17,0xC0,0x82,0x25,0x48,0x31,0x3C,0x00}; +/* '确' */ +unsigned char HZ_QUE1[18]={0x0b,0x2b,0xa2,0x88,0x8f,0x0b,0xe8,0xe2,0xb8,0x05,0xf2,0x08,0xbd,0x03,0xc5,0xfc,0x59,0x7f}; +/* '认' */ +unsigned char HZ_REN1[18]={0x41,0x1c,0x80,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x07,0xe8,0x50,0x81,0x81,0x18,0x84,0x20}; +/* '任' */ +unsigned char HZ_REN3[18]={0x02,0x04,0x3c,0x0c,0x01,0x04,0xf0,0x20,0x80,0x00,0x00,0x3f,0x00,0x18,0x61,0xfe,0x18,0x41}; +/* '意' */ +unsigned char HZ_YI6[18]={0x00,0x82,0xba,0xba,0xaa,0xea,0xbb,0xa2,0x88,0x02,0x06,0x03,0x6a,0x29,0xaa,0x8b,0x32,0x30}; +/* '取' */ +unsigned char HZ_QU1[18]={0x0b,0xe2,0x8a,0xf8,0x21,0x34,0x12,0x47,0x00,0x20,0xf1,0x45,0xfe,0x24,0x09,0x18,0x94,0x20}; +/* '消' */ +unsigned char HZ_XIAO1[18]={0x21,0x10,0x80,0x0b,0x44,0x1f,0x41,0x4c,0x80,0x13,0xc0,0x81,0x03,0xf1,0x45,0x16,0x5f,0xc0}; +/* '重' */ +unsigned char HZ_CHON1[18]={0x20,0xae,0xaa,0xab,0xea,0xa9,0xa7,0x92,0x08,0x82,0x8a,0xea,0xab,0xfa,0xaa,0xaa,0xba,0x20}; +/* '新' */ +unsigned char HZ_XIN2[18]={0x49,0x66,0xB3,0x79,0x24,0x3E,0x49,0x2C,0x51,0x40,0xD8,0x7F,0x16,0x94,0x0F,0x00,0x0F,0xC0}; +/* '返' */ +unsigned char HZ_FAN1[18]={0x82,0x19,0x80,0x03,0xEA,0x8A,0x26,0x96,0x40,0x81,0x03,0xD4,0x8A,0x9A,0x25,0x8A,0x5A,0x20}; +/* '回' */ +unsigned char HZ_HUI1[18]={0x03,0xE0,0x82,0xE8,0xA2,0xBA,0x08,0x2F,0xC2,0x03,0xF4,0x10,0x4D,0x24,0x93,0x41,0x0F,0xC0}; +/* '运' */ +unsigned char HZ_YUN1[18]={0x41,0x1d,0x80,0x41,0x2c,0x92,0x49,0x34,0x90,0x81,0x03,0xd0,0x92,0x69,0x64,0x96,0x6b,0x20}; +/* '行' */ +unsigned char HZ_HANG1[18]={0x12,0x4C,0x8D,0x41,0x24,0x92,0x4B,0x34,0x90,0x04,0x0F,0xC0,0x00,0x04,0x20,0x81,0xF0,0x00}; +/* '外' */ +unsigned char HZ_WAI1[18]={0x81,0x0A,0x07,0x13,0xC0,0x00,0xFE,0x00,0x00,0x41,0x02,0x05,0x0C,0x00,0x00,0xFC,0x00,0x43}; +/* '构' */ +unsigned char HZ_GOU1[18]={0x22,0x8f,0xe8,0x40,0x81,0xf4,0x10,0x4f,0x84,0x18,0x1f,0xc0,0x04,0x61,0x44,0x5a,0x07,0xc0}; +/* '钥' */ +unsigned char HZ_YAO1[18]={0x41,0x8d,0xd4,0x50,0x0f,0x92,0x49,0x2f,0x80,0x04,0x1f,0xd1,0xa5,0x03,0xc2,0x0a,0x2f,0xc0}; +/* '模' */ +unsigned char HZ_MU1[18] = {0x22,0x8f,0xe8,0x0b,0xab,0xea,0xaa,0xfe,0x82,0x0c,0x0f,0xe0,0xa6,0xb6,0x8e,0x29,0xaa,0xe8}; +/* '路' */ +unsigned char HZ_LU2[18]={0x01,0xe4,0xb2,0x78,0x81,0x2b,0x4a,0xa1,0x80,0x41,0xf4,0x0f,0x24,0x2f,0xd2,0x49,0x2f,0xc1}; +/* '由' */ +unsigned char HZ_YOU2[18]={0x00,0x0e,0x08,0x20,0x8f,0xc8,0x20,0x8e,0x00,0x00,0x0f,0xe2,0x8a,0x2f,0xe2,0x8a,0x2f,0xc0}; +/* '添' */ +unsigned char HZ_TIAN1[18]={0x21,0x10,0x88,0xa9,0xa3,0x8a,0x6a,0xb2,0x88,0x13,0xe0,0x51,0x32,0x0f,0xc4,0x60,0x46,0x41}; +/* '再' */ +unsigned char HZ_ZAI2[18]={0x08,0x2e,0xaa,0xab,0xea,0xaa,0xab,0xa0,0xc2,0x10,0x4f,0xc4,0x10,0x71,0x04,0x93,0xf1,0x04}; +/* '贝' */ +unsigned char HZ_BEI[18]={0x00,0x0f,0x82,0x08,0x2e,0x82,0x08,0x2f,0x80,0x02,0x09,0xd0,0x20,0x40,0xc8,0x21,0x05,0xe0}; + +/* '数' */ +unsigned char HZ_SHU2[18]={0xa2,0xe6,0x3f,0xb0,0xa4,0x3c,0x2c,0x8e,0x08,0x8a,0x25,0x8b,0x29,0x68,0x13,0x30,0xa4,0x60}; +/* '据' */ +unsigned char HZ_JU1[18]={0x20,0x8F,0xE8,0x23,0xEA,0xAA,0xEA,0xAB,0xE2,0x46,0x17,0xE0,0x70,0x3F,0x14,0x5D,0x4F,0x84}; +/* '查' */ +unsigned char HZ_CHA2[18]={0x0A,0x24,0xAA,0x9B,0xF8,0xA6,0xA9,0x28,0xA2,0x86,0x08,0x2F,0xAA,0xAA,0xAA,0xBE,0x08,0x20}; +/* '询' */ +unsigned char HZ_XUN1[18]={0x41,0x1C,0x88,0x13,0x75,0x14,0xD0,0x4F,0x84,0x00,0x07,0xC8,0x00,0xF1,0x45,0xBE,0x07,0xC0}; +/* '主' */ +unsigned char HZ_ZHU1[18]={0x00,0x41,0x04,0x17,0xE1,0x04,0x90,0x61,0x00,0x82,0x08,0x61,0x87,0xF8,0x61,0x86,0x1C,0x20}; +/* '产' */ +unsigned char HZ_CHAN1[18]={0x12,0x49,0x2c,0xd2,0x59,0xb4,0xb2,0x49,0x04,0xc0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +/* '生' */ +unsigned char HZ_SHENG1[18]={0x03,0x03,0x88,0x20,0x8F,0xC8,0x20,0xC2,0x00,0x86,0x08,0xA2,0x8A,0x2F,0xE2,0x8E,0x2C,0x20}; +/* '下' */ +unsigned char HZ_XIA1[18]={0x08,0x20,0x82,0x0B,0xE4,0xA2,0x08,0x20,0xC2,0x00,0x00,0x00,0x03,0xF0,0x00,0x04,0x30,0x00}; +/* '级' */ +unsigned char HZ_JI3[18]={0x41,0xcc,0xd0,0x20,0x2f,0x82,0x69,0x6c,0x80,0x49,0x32,0xaa,0x4a,0xc8,0xd4,0x21,0x48,0xe0}; +/* '号' */ +unsigned char HZ_HAO1[18]={0x82,0x0B,0xE9,0xA6,0x9A,0x69,0xA6,0xFC,0x20,0x00,0x00,0x02,0x0D,0x28,0xA2,0x68,0x60,0x00}; +/* '用' */ +unsigned char HZ_YONG1[18]={0x00,0x0f,0xd1,0x45,0x1f,0xd1,0x45,0x1f,0xc0,0x81,0x03,0xc2,0x08,0x2f,0xc2,0x0a,0x2f,0xc0}; +/* '日' */ +unsigned char HZ_RI1[18]={0x00,0x00,0x3E,0x8A,0x28,0xA2,0x8B,0xF0,0x80,0x00,0x00,0x1F,0x20,0x82,0x08,0x21,0xF0,0x00}; +/* '期' */ +unsigned char HZ_QI2[18]={0x13,0xF5,0x14,0xFC,0x40,0x3E,0x49,0x24,0xBF,0x91,0x73,0x45,0x3E,0x44,0x0F,0x09,0x28,0x9F}; +/* '终' */ +unsigned char HZ_ZHONG2[18]={0x61,0x4c,0xc8,0x40,0x81,0xea,0x4a,0xa1,0x80,0x4b,0x34,0x8a,0x20,0x22,0x4a,0x49,0x48,0x41}; +/* '止' */ +unsigned char HZ_ZHI1[18]={0x00,0x0e,0x00,0x00,0x0f,0xd0,0x41,0x04,0x00,0x82,0x0f,0xe0,0x82,0x0f,0xe0,0x82,0x0c,0x20}; +/* '初' */ +unsigned char HZ_CHU1[18]={0x10,0x49,0x56,0xb0,0x01,0x3c,0x10,0x4f,0x84,0x08,0x1f,0xc1,0x89,0x03,0x03,0x42,0x07,0xc0}; +/* '始' */ +unsigned char HZ_SHI2[18]={0x23,0x83,0xc8,0xe1,0x06,0x14,0x4d,0x06,0x30,0x89,0x52,0x14,0x8c,0x0f,0xd1,0x45,0x1f,0xc0}; +/* '化' */ +unsigned char HZ_HUA1[18]={0x81,0x0f,0x03,0x00,0x0f,0xc0,0x81,0x02,0x00,0x00,0x0f,0xc4,0x10,0x27,0xe1,0x82,0x08,0x38}; +/* '输' */ +unsigned char HZ_SHU1[18]={0xD2,0xCD,0xE4,0x42,0x89,0x2B,0x28,0x42,0x28,0x20,0x4F,0xC2,0x03,0xF2,0xBF,0x00,0xF8,0x3F}; +/* '锋' */ +unsigned char HZ_FENG1[18]={0x61,0x7d,0x14,0x52,0x85,0xea,0x29,0x68,0xa0,0x04,0x17,0xc9,0x41,0x55,0x7f,0x55,0x55,0x50}; +/* '传' */ +unsigned char HZ_CHUAN1[18]={0x81,0x0f,0x03,0x82,0x49,0x3f,0x92,0x49,0x20,0x00,0x0f,0xc0,0x00,0x02,0xd2,0x6a,0x60,0x80}; + +/* '入' */ +unsigned char HZ_RU1[18]={0x00,0x00,0x00,0x02,0x37,0x20,0x00,0x00,0x00,0x41,0x02,0x04,0x08,0x10,0x01,0x18,0x84,0x10}; +/* '登' */ +unsigned char HZ_DENG1[18]={0x82,0x25,0x8a,0x59,0x04,0xd4,0x29,0x59,0x20,0x82,0x08,0x2f,0xd6,0x59,0x75,0xbe,0x08,0x20}; +/* '录' */ +unsigned char HZ_LU1[18]={0x41,0x0D,0x55,0x57,0x55,0x55,0x7F,0x04,0x10,0x20,0x81,0x15,0x89,0xF0,0x42,0x14,0x86,0x08}; +/* '码' */ +unsigned char HZ_MA1[18]={0x0B,0x27,0xB2,0x0A,0x2F,0xA2,0x8B,0xF8,0xA0,0x05,0xF2,0x0F,0x00,0x41,0x14,0x52,0x44,0x0F}; +/* '完' */ +unsigned char HZ_WAN1[18]={0x00,0xc5,0x14,0x51,0x55,0x94,0x51,0x41,0x0c,0x82,0x18,0x51,0x3c,0x10,0x5f,0x86,0x18,0x78}; +/* '毕' */ +unsigned char HZ_BI1[18]={0x03,0xf1,0x24,0x90,0x07,0xe8,0x92,0x4c,0x80,0x10,0x51,0x44,0x13,0xf1,0x04,0x10,0x41,0x04}; +/* '进' */ +unsigned char HZ_JIN1[18]={0x82,0x29,0x00,0x10,0x4F,0xC4,0x13,0xF1,0x04,0x81,0x03,0xD0,0xA6,0x58,0xE1,0x86,0xF8,0x61}; +/* '错' */ +unsigned char HZ_CUO1[18]={0x81,0x8D,0xD4,0x52,0x09,0x3F,0x93,0xF9,0x20,0x08,0x2F,0xD2,0x28,0x0F,0xAA,0xAA,0xAF,0x80}; +/* '误' */ +unsigned char HZ_WU1[18]={0x41,0x2D,0x00,0x02,0xEA,0xAA,0xAA,0xAB,0xE2,0x00,0x07,0xE8,0x89,0x22,0x87,0x29,0x28,0xA2}; +/* '正' */ +unsigned char HZ_ZHENG1[18]={0x00,0x2c,0x82,0x08,0x2f,0x82,0x08,0x30,0x80,0x82,0x0f,0xe0,0x82,0x0f,0xe1,0x86,0x18,0x60}; +/* '此' */ +unsigned char HZ_CI1[18]={0x03,0x80,0x00,0xf9,0x00,0x3f,0x81,0x04,0x08,0x43,0xf4,0x08,0x3c,0x80,0x1f,0x82,0x08,0x38}; +/* '库' */ +unsigned char HZ_KU[18]={0x03,0xe0,0x8a,0xa9,0xe2,0xea,0x28,0xa2,0x82,0xc0,0xf0,0x09,0x24,0x92,0x7f,0x24,0x92,0x48}; + +/* '操' */ +unsigned char HZ_CAO1[18]={0x12,0x4F,0xD4,0xC1,0x7D,0x45,0xD5,0x7C,0x00,0x46,0x07,0xE4,0x54,0xD1,0x7E,0x14,0xD5,0x64}; +/* '作' */ +unsigned char HZ_ZUO1[18]={0x81,0x0F,0x23,0x40,0xC1,0xFC,0x92,0x49,0xA4,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x10,0x41,0x04}; +/* '将' */ +unsigned char HZ_JIANG1[18]={0x11,0x80,0x3f,0x20,0x46,0xe2,0x4a,0xa1,0x80,0x10,0x20,0x7f,0x08,0x62,0xc2,0x8b,0xf0,0x82}; +/* '清' */ +unsigned char HZ_QING2[18]={0x21,0x21,0x20,0x8A,0xAA,0xBF,0xAA,0xB8,0xA0,0x13,0xE0,0x40,0x03,0xF2,0x8A,0xAB,0xF0,0x00}; +/* '空' */ +unsigned char HZ_KONG1[18]={0x00,0xc9,0x14,0x30,0x51,0x84,0x31,0x49,0x0c,0x02,0x18,0x21,0x86,0x1f,0xe1,0x86,0x18,0x20}; +/* '原' */ +unsigned char HZ_YUAN1[18]={0x00,0x0F,0x82,0xEA,0xAB,0xAA,0xAA,0xAE,0x82,0xC0,0xC0,0xD0,0x2D,0x68,0x9E,0x08,0x62,0xD0}; +/* '有' */ +unsigned char HZ_YOU1[18]={0x10,0x49,0x34,0x71,0x75,0x14,0x53,0x41,0x84,0x08,0x10,0x3F,0x14,0x51,0x55,0x95,0xF0,0x00}; +/* '继' */ +unsigned char HZ_JI2[18]={0x41,0xcc,0xd8,0x03,0xe9,0x28,0xfe,0x89,0xa0,0x49,0x32,0x8a,0x03,0xf9,0x22,0xfe,0x29,0x20}; +/* '续' */ +unsigned char HZ_XU3[18]={0x41,0xcc,0xd0,0x21,0xaa,0x8f,0xa8,0xaa,0x98,0x49,0x32,0x8a,0x92,0x55,0x8c,0x1c,0xc5,0x24}; +/* '退' */ +unsigned char HZ_TUI1[18]={0x82,0x19,0x80,0x03,0xF5,0x55,0x55,0xF0,0x00,0x81,0x03,0xD0,0x82,0xF9,0x21,0x8A,0x5A,0x20}; +/* '出' */ +unsigned char HZ_CHU2[18]={0x00,0x0F,0x90,0x43,0xF4,0x10,0x43,0xE0,0x00,0x03,0xE4,0x10,0x41,0xF4,0x10,0x41,0x0F,0x80}; +/* '成' */ +unsigned char HZ_CHENG1[18]={0x00,0x0F,0x24,0x90,0x4F,0xC4,0x17,0x61,0x04,0x81,0x81,0xC8,0xBE,0x04,0x0B,0x31,0x38,0x3C}; +/* '公' */ + +unsigned char HZ_GONG3[18] = {0x02,0x04,0x0c,0x0e,0x00,0x03,0x31,0x08,0x00,0x04,0x04,0x38,0x59,0x14,0x14,0x63,0x00,0x01}; + + +/* '功' */ +unsigned char HZ_GONG1[18]={0x10,0x4F,0x06,0x10,0x82,0x3F,0x20,0x8F,0x08,0x10,0x48,0xE2,0x48,0x81,0x03,0x42,0x07,0xC0}; +/* '执' */ +unsigned char HZ_ZHI2[18]={0x20,0x8f,0xe8,0x80,0x8f,0xc8,0x23,0x80,0x00,0x0a,0x1f,0xe0,0x40,0x91,0xc2,0x10,0xf4,0x3c}; +/* '一' */ +unsigned char HZ_YI1[18]={0x82,0x08,0x20,0x82,0x08,0x20,0x82,0x0c,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +/* '致' */ +unsigned char HZ_ZHI12[18]={0x49,0xa5,0xb2,0x69,0x22,0x3f,0x10,0x4f,0x04,0x4b,0x24,0x8f,0x2a,0xa4,0x0b,0x10,0xb4,0x20}; + +/* '步' */ +unsigned char HZ_BU1[18]={0x41,0x07,0x90,0x41,0x0f,0xd4,0x51,0x45,0x10,0x02,0x89,0x23,0x81,0x05,0xc8,0x10,0x20,0x40}; +/* '插' */ +unsigned char HZ_CHA1[18]={0x20,0x8f,0xe8,0xa2,0xa2,0xbe,0x26,0x9a,0x48,0x0a,0x1f,0xc0,0xfd,0x24,0x1f,0x41,0x2f,0xc0}; +/* '第' */ +unsigned char HZ_DI1[18]={0x20,0x4a,0xee,0xaa,0xaf,0x2b,0xab,0xe0,0x82,0x02,0x04,0xca,0x18,0x2f,0xc2,0x49,0x23,0x80}; +/* '张' */ +unsigned char HZ_ZHANG1[18]={0x89,0xa2,0x8e,0x82,0x0f,0xf0,0xa2,0x48,0xa0,0x46,0x14,0x4f,0x00,0x0f,0xd0,0x0c,0xc4,0x20}; +/*千*/ +unsigned char HZ_QIAN[]= {0x00,0x01,0x04,0x10,0x4f,0x02,0x08,0x20,0x80,0x00,0x10,0x41,0x04,0x1f,0xc1,0x04,0x10,0x41}; +/* 万 */ +unsigned char HZ_WAN[]= {0x00,0x20,0x82,0xfa,0x28,0xa2,0x8a,0x28,0x82,0x02,0x04,0x0c,0x0c,0x00,0x20,0x82,0x07,0xc0}; +/*兆*/ +unsigned char HZ_ZHAO[]= {0x00,0x42,0x10,0xfc,0x00,0x3f,0x40,0x81,0x00,0x00,0x48,0x99,0x1c,0x00,0x1f,0x86,0x28,0x38}; + + + +/* '卡' */ +unsigned char HZ_KA1[18]={0x82,0x08,0x20,0x83,0xf9,0x24,0x92,0x49,0x20,0x00,0x00,0x00,0x03,0xf0,0x82,0x10,0x42,0x00}; +/* '备' */ +unsigned char HZ_BEI1[18]={0x01,0x02,0x04,0xad,0x24,0xaa,0x98,0x20,0x00,0x08,0x20,0x7f,0xaa,0xaf,0xaa,0xab,0xf0,0x41}; +/* '份' */ +unsigned char HZ_FEN1[18]={0x81,0x0f,0x23,0x42,0x89,0xa0,0x8e,0xc4,0x20,0x00,0x0f,0xe0,0x40,0x81,0xd0,0x81,0xf0,0x00}; +/* '并' */ +unsigned char HZ_BIN1[18]={0x00,0x82,0x09,0xe8,0x82,0x0c,0xec,0x82,0x00,0x0a,0x28,0x92,0x3c,0x20,0x82,0xfc,0x20,0x82}; +/* '二' */ +unsigned char HZ_ER1[18]={0x00,0x01,0x04,0x10,0x41,0x04,0x10,0x61,0x00,0x01,0x04,0x10,0x41,0x04,0x10,0x41,0x06,0x10}; +/* '编' */ +unsigned char HZ_BIAN1[18]={0x41,0xCC,0xC8,0xF9,0x45,0x15,0x59,0x47,0x00,0x49,0x32,0xA9,0x7C,0x57,0xC5,0x7E,0x5F,0xC0}; +/* '核' */ +unsigned char HZ_HE1[18]={0x22,0x8f,0xe8,0x22,0x4d,0x2d,0x99,0x41,0x04,0x18,0x1f,0xc0,0xa6,0x44,0x89,0x10,0xa4,0x60}; +/* '服' */ +unsigned char HZ_FU1[18]={0x03,0xf2,0x49,0xfc,0x0f,0xe1,0xa6,0x99,0xc0,0xc0,0xf0,0x61,0xfc,0x0f,0xe0,0x48,0xc4,0xe0}; +/* '务' */ +unsigned char HZ_WU2[18]={0x01,0x02,0x24,0xAD,0x24,0xAA,0x98,0x00,0x00,0x06,0x18,0xD2,0x39,0x38,0xA2,0x78,0x10,0x41}; +/* '安' */ +unsigned char HZ_AN2[18]={0x82,0xc9,0x24,0x93,0x59,0xa4,0x92,0x4b,0x20,0x02,0x08,0x12,0x54,0x82,0x0c,0x4d,0x08,0x00}; +/* '控' */ +unsigned char HZ_KONG2[18]={0x10,0x4f,0xe4,0x02,0xc5,0x05,0x19,0x49,0x0c,0x0a,0x1f,0xc0,0x86,0x28,0xbe,0x8a,0x28,0xa1}; +/* '员' */ +unsigned char HZ_YUAN2[18]={0x00,0x0C,0x17,0x55,0x55,0x55,0x5F,0x00,0x00,0x82,0x09,0xD0,0x20,0x72,0x08,0x41,0x78,0x00}; +/* '更' */ +unsigned char HZ_GENG1[18]={0x08,0x2e,0xaa,0xab,0xea,0xaa,0xab,0xa0,0xc2,0x82,0x08,0xd6,0x28,0xf4,0x92,0x8a,0x38,0x20}; +/* '换' */ +unsigned char HZ_HUAN1[18]={0x10,0x4f,0xe4,0x23,0x44,0xfa,0x59,0x2c,0x00,0x0a,0x1f,0xc0,0x89,0x32,0x87,0x29,0x28,0xe2}; +/* '等' */ +unsigned char HZ_DENG2[18]={0x20,0x44,0xd6,0x69,0x2f,0x13,0x59,0xa4,0x82,0x04,0x51,0x45,0x35,0x51,0x65,0xfc,0x51,0x41}; +/* '待' */ +unsigned char HZ_DAI1[18]={0x22,0x4c,0x89,0x41,0x45,0x1f,0x53,0x45,0x10,0x04,0x0f,0xc0,0x04,0x33,0x41,0x87,0xf0,0x41}; +/* '连' */ +unsigned char HZ_LIAN1[18]={0x41,0x1d,0x80,0x93,0xc9,0xf4,0x92,0x49,0x04,0x81,0x03,0xd0,0x92,0x49,0x3f,0x92,0x49,0x24}; +/* '接' */ +unsigned char HZ_JIE1[18]={0x20,0x8F,0xE8,0x41,0x47,0x35,0x59,0xC5,0x10,0x46,0x17,0xE0,0x89,0x66,0xCA,0x29,0x64,0xE2}; +/* '工' */ +unsigned char HZ_GONG2[18]={0x00,0x20,0x82,0x0B,0xE0,0x82,0x08,0x30,0x80,0x41,0x04,0x10,0x41,0xF4,0x10,0x41,0x06,0x10}; +/* '状' */ +unsigned char HZ_ZHUANG1[18]={0x11,0x80,0x3f,0x41,0x04,0x3f,0x41,0x25,0x10,0x10,0x20,0x7f,0x81,0x03,0x03,0x10,0x84,0x20}; +/* '态' */ +unsigned char HZ_TAI1[18]={0x10,0x49,0x14,0x32,0x73,0x14,0x90,0x41,0x84,0x44,0x90,0x1c,0x82,0x4a,0x60,0xc0,0x52,0x51}; +/* '常' */ +unsigned char HZ_CHANG1[18]={0x40,0xc1,0x76,0x51,0x75,0x14,0xd8,0x55,0x0c,0x00,0x07,0x05,0x17,0xf1,0x45,0x55,0xc0,0x00}; +/* '业' */ +unsigned char HZ_YE1[18]={0x03,0x00,0x00,0xFC,0x00,0x3F,0x02,0x06,0x00,0x82,0x09,0xE0,0xFE,0x08,0x3F,0x8A,0x1C,0x20}; +/* '量' */ +unsigned char HZ_LIANG1[18]={0x20,0x8B,0xE9,0xA6,0xBB,0x69,0xA6,0xF2,0x08,0x82,0x0B,0xEA,0xAB,0xFA,0xAA,0xAA,0xF8,0x20}; +/* '计' */ +unsigned char HZ_JI4[18]={0x41,0x1D,0x80,0x41,0x04,0x10,0xFD,0x06,0x10,0x00,0x07,0xC8,0x10,0x00,0x00,0xFC,0x00,0x00}; +/* '笔' */ +unsigned char HZ_BI2[18]={0x42,0xC8,0xE6,0x8B,0xA5,0x13,0x59,0x20,0x82,0x20,0xA2,0x8A,0x29,0xF9,0x65,0x96,0x59,0x30}; +/* '前' */ +unsigned char HZ_QIAN1[18]={0x13,0x45,0x15,0x5b,0x41,0x36,0x17,0x41,0x04,0x03,0xf1,0x45,0x97,0xf0,0x0f,0x83,0xf0,0x00}; +/* '分' */ +unsigned char HZ_FEN2[18]={0x02,0x0C,0x2C,0x8E,0x08,0x27,0xA1,0x08,0x20,0x06,0x08,0x18,0x1C,0x04,0x20,0x7C,0x00,0x00}; +/* '封' */ +unsigned char HZ_FENG[18] = {0x82,0x49,0x3f,0x92,0x42,0x08,0x23,0xf2,0x08,0x82,0x49,0x1e,0x51,0x40,0x42,0x83,0xf0,0x00}; +/* '强' */ +unsigned char HZ_QIANG[18] = {0x03,0x24,0x9e,0x02,0x0b,0xe9,0xe6,0x9b,0xe0,0x02,0x38,0x9e,0x02,0x79,0x24,0xfe,0x4d,0x27}; +/* '钟' */ +unsigned char HZ_ZHONG3[18]={0x41,0x8d,0xd4,0x50,0x0e,0x08,0xfc,0x82,0x38,0x08,0x2f,0xd2,0x28,0x00,0xc2,0xfc,0x20,0x83}; +/* '小' */ +unsigned char HZ_XIAO2[18]={0x00,0x00,0x30,0x00,0x0f,0xc0,0x42,0x00,0x00,0x10,0x20,0x40,0x02,0x0f,0xc0,0x00,0x00,0x46}; +/* '时' */ +unsigned char HZ_SHI3[18]={0xF2,0x49,0x24,0xF0,0x8A,0x08,0x23,0xF2,0x08,0x3C,0x41,0x04,0x3C,0x00,0x13,0x83,0xF0,0x00}; +/* '内' */ +unsigned char HZ_NEI1[18]={0x03,0x82,0x08,0x23,0xfa,0x08,0x20,0x8e,0x00,0x03,0xf1,0x02,0x04,0x00,0x01,0x1a,0x0f,0xc0}; +/* '复' */ +unsigned char HZ_FU2[18]={0x00,0x81,0x3b,0xaa,0xaa,0xaa,0xab,0xa0,0x80,0x02,0x8a,0x25,0x99,0xa4,0x9a,0x9a,0x38,0x20}; +/* '制' */ +unsigned char HZ_ZHI3[18]={0x41,0x85,0x94,0xfd,0x45,0x10,0x03,0xc0,0x3f,0x01,0xe0,0x82,0xfc,0x24,0x9e,0x00,0x78,0x3f}; +/* '口' */ +unsigned char HZ_KOU1[18]={0x00,0x0F,0x04,0x10,0x41,0x04,0x13,0xE1,0x00,0x00,0x07,0xC8,0x20,0x82,0x08,0x21,0xF0,0x00}; +/* '令' */ +unsigned char HZ_LING1[18]={0x82,0x04,0x08,0x11,0x38,0x84,0x21,0x08,0x20,0x00,0x00,0x8A,0x29,0x2E,0xA6,0x08,0x20,0x00}; +/* '参' */ +unsigned char HZ_CAN1[18]={0x41,0x05,0x34,0x59,0xdd,0x14,0xd9,0x44,0x10,0x08,0x28,0x62,0xaa,0x95,0x12,0x20,0x50,0x82}; +/* '设' */ +unsigned char HZ_SHE1[18]={0x41,0x1D,0x80,0x42,0xF8,0x61,0x86,0xF4,0x10,0x00,0x07,0xE8,0x91,0x15,0x88,0x59,0x18,0x20}; +/* '置' */ +unsigned char HZ_ZHI5[18]={0x41,0x75,0x55,0x5F,0xD5,0x57,0x55,0x74,0x10,0x82,0x0F,0xE9,0xA6,0xBB,0x69,0xFE,0x0C,0x20}; +/* '客' */ +unsigned char HZ_KE1[18]={0x20,0x68,0x92,0x7a,0xba,0x9a,0x28,0x22,0x86,0x10,0x40,0xbe,0x96,0x49,0x25,0xf8,0x21,0x04}; +/* '户' */ +unsigned char HZ_HU1[18]={0x00,0x0F,0x24,0x92,0x59,0xA4,0x92,0x4F,0x84,0x81,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00}; +/* '恢' */ +unsigned char HZ_HUI2[18]={0xe0,0x0f,0xd0,0x12,0x47,0xc4,0xd0,0x41,0x24,0x00,0x0f,0xc0,0x86,0x04,0xc8,0x1c,0xa4,0x60}; +/* '厂' */ +unsigned char HZ_CHANG2[18]={0x00,0x0f,0x82,0x08,0x20,0x82,0x08,0x20,0xc2,0x81,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00}; +/* '修' */ +unsigned char HZ_XIU1[18]={0x43,0xC0,0xF8,0x00,0x89,0xEA,0x4A,0xA9,0x80,0x03,0xF0,0x0F,0x02,0x5A,0xAA,0x55,0x22,0x01}; +/* '改' */ +unsigned char HZ_GAI1[18]={0x12,0x49,0x24,0xFA,0x46,0x2F,0x23,0x83,0x08,0x01,0xF2,0x28,0x96,0x04,0x13,0x31,0x38,0x20}; +/* '的' */ +unsigned char HZ_DE1[18]={0x03,0xc1,0x85,0xf1,0x0a,0x07,0x10,0x4f,0x00,0x03,0xf4,0x51,0xfc,0x00,0x03,0x42,0x07,0xc0}; +/* '源' */ +unsigned char HZ_YUAN3[18]={0x21,0x10,0x80,0xf8,0x2e,0xaa,0xba,0xae,0xc2,0x13,0xe8,0x50,0x3d,0x02,0xe2,0xf8,0x22,0xd0}; +/* '键' */ +unsigned char HZ_JIAN1[18]={0x41,0xCD,0xD4,0x8B,0xAB,0xAA,0xFE,0xAF,0x88,0x05,0x17,0xE9,0x48,0xC6,0xEA,0xFE,0xAA,0xA0}; +/* '读' */ +unsigned char HZ_DU1[18]={0x41,0x1c,0x80,0x29,0xaa,0x8f,0xa8,0xa6,0x88,0x00,0x07,0xc8,0x96,0x65,0x0c,0x3d,0x49,0x04}; +/* '好' */ +unsigned char HZ_HAO2[18]={0x23,0x83,0xc8,0xe2,0x28,0xa2,0xea,0x68,0xa0,0x44,0xa1,0x0a,0x44,0x00,0x20,0xfc,0x00,0x00}; +/* '白' */ +unsigned char HZ_BAI1[18]={0x00,0x0f,0x04,0x10,0x61,0x44,0x10,0x4f,0x00,0x00,0x0f,0xd1,0x45,0x14,0x51,0x45,0x1f,0xc0}; +/* '勿' */ +unsigned char HZ_WU3[18]={0x81,0x02,0x07,0x91,0xc1,0x3c,0x10,0x4f,0x00,0x00,0x44,0x91,0x20,0x44,0xa1,0x81,0x03,0xc0}; +/* '拔' */ +unsigned char HZ_BA1[18]={0x20,0x8f,0xe8,0xa0,0x8f,0xe8,0xa6,0xaa,0x08,0x0a,0x1f,0xd0,0x22,0x68,0x56,0x21,0x68,0x60}; +/* '失' */ +unsigned char HZ_SHI4[18]={0x00,0x04,0x0e,0x20,0x8f,0xc8,0x20,0xc2,0x00,0x02,0x18,0x51,0x24,0x50,0xc5,0x25,0x18,0x61}; +/* '败' */ +unsigned char HZ_BAI2[18]={0xf8,0x2e,0x82,0xfa,0x04,0x2f,0x20,0x8f,0x08,0x8d,0x81,0xc4,0xae,0x04,0x0b,0x10,0xb4,0x20}; +/* '选' */ +unsigned char HZ_XUAN1[18]={0x82,0x29,0x00,0xA2,0x69,0x3F,0x92,0x6D,0x20,0x81,0x03,0xD0,0xA2,0x48,0xE0,0x9E,0x8A,0x2E}; +/* '择' */ +unsigned char HZ_ZE1[18]={0x10,0x4F,0xE4,0x91,0x15,0xE9,0x55,0x38,0x60,0x46,0x17,0xC0,0x10,0x51,0x7F,0x14,0x51,0x04}; +/* '类' */ +unsigned char HZ_LEI1[18]={0x20,0x8A,0x5A,0x23,0xF2,0x1A,0x66,0x8B,0x08,0x8A,0x38,0x92,0x28,0x71,0x8A,0x49,0x28,0xA2}; +/* '型' */ +unsigned char HZ_XING1[18]={0x00,0xa2,0xbe,0x2b,0xf2,0x80,0xf8,0x0f,0xc0,0x82,0x2a,0x68,0xa2,0x9f,0xa8,0xa2,0x9a,0x60}; +/*'签'*/ +unsigned char HZ_QIAN2[18]={0x20,0x40,0xc6,0xa9,0x25,0x23,0x18,0xa0,0x82,0x8a,0x29,0x79,0x8a,0x6a,0xb2,0xa6,0x58,0xa2}; +/* '名' */ +unsigned char HZ_MING[18]={0x00,0x04,0x08,0x52,0x71,0x24,0x91,0x43,0x00,0x00,0x41,0x02,0xf9,0x34,0xd2,0x49,0x24,0xbe}; + +/* '器' */ +unsigned char HZ_QI[18]={0x02,0x09,0xe5,0x96,0x7e,0x27,0x96,0xdd,0xe0,0x00,0x4f,0x2a,0xab,0x90,0x39,0xaa,0xaf,0x04}; + + +/* '发' */ +unsigned char HZ_FA1[18]={0x00,0x83,0x88,0xE2,0xFA,0x28,0xAA,0xA2,0x08,0x40,0x89,0x23,0x81,0x25,0x0C,0x49,0x1C,0x10}; +/* '法' */ +unsigned char HZ_FA2[18]={0x21,0x10,0xa0,0x00,0x41,0x3f,0x10,0x41,0x00,0x13,0xe0,0x40,0x47,0x95,0x53,0x45,0x56,0x71}; +/* '占' */ +unsigned char HZ_ZHAN1[18]={0x00,0x00,0x00,0x03,0xf2,0x08,0x20,0x83,0x08,0x00,0x0f,0xd1,0x45,0x14,0x51,0x47,0xf0,0x00}; +/* '授' */ +unsigned char HZ_SHOU1[18]={0x20,0x8F,0xE8,0x49,0x66,0x92,0x75,0x17,0x70,0x4A,0x1F,0xC0,0x82,0x15,0x49,0x25,0x78,0x20}; +/* '权' */ +unsigned char HZ_QUAN1[18]={0x12,0x4F,0xD4,0x90,0x26,0xA2,0x0A,0x27,0x80,0x08,0x1F,0xC0,0x86,0x04,0x09,0x18,0x94,0x20}; +/* '位' */ +unsigned char HZ_WEI1[18]={0x81,0x0F,0x03,0x13,0x41,0x46,0x13,0x61,0x04,0x00,0x0F,0xC0,0x82,0x0B,0xE0,0xF2,0x38,0x20}; +/* '无' */ +unsigned char HZ_WU4[18]={0x82,0x28,0xA2,0x8B,0xE8,0xA2,0x8A,0x3C,0xA0,0x82,0x04,0x08,0x10,0x30,0x1F,0x82,0x08,0x3C}; +/* '效' */ +unsigned char HZ_XIAO3[18]={0x12,0x47,0x46,0xb1,0x44,0x2c,0x2c,0x8e,0x08,0x85,0x02,0x46,0x25,0x08,0x13,0x30,0xa4,0x60}; +/* '已' */ +unsigned char HZ_YI2[18]={0x00,0x2c,0xa2,0x8a,0x28,0xa2,0x8b,0xe0,0x00,0x00,0x07,0xe0,0x82,0x08,0x20,0x82,0x08,0x3c}; +/* '监' */ +unsigned char HZ_JIAN2[18]={0x03,0xe0,0x00,0xfd,0x02,0x07,0x52,0x41,0x04,0x83,0xe8,0xa2,0xfa,0x28,0xbe,0x8b,0xe8,0x20}; +/* '听' */ +unsigned char HZ_TING1[18]={0xf8,0x20,0xbe,0x00,0x0f,0x92,0x4b,0x14,0x50,0x1c,0x20,0xa3,0x40,0x81,0xc0,0x03,0xf0,0x00}; +/* '端' */ +unsigned char HZ_DUAN1[18]={0x22,0x92,0xb8,0x22,0xea,0x28,0xbe,0x8b,0xa0,0x20,0x91,0x85,0x03,0xe0,0x9f,0x09,0xe8,0xbe}; +/* '记' */ +unsigned char HZ_JI5[18]={0x41,0x1D,0x80,0x02,0x28,0xA2,0x8A,0x2F,0xC2,0x00,0x07,0xC8,0x11,0xF8,0x20,0x82,0x08,0x3C}; +/* '志' */ +unsigned char HZ_ZHI4[18]={0x00,0x49,0x24,0x92,0x4f,0xe4,0x92,0x49,0x04,0x40,0xc0,0x1e,0x82,0x29,0x20,0x83,0xa1,0x08}; +/* '值' */ +unsigned char HZ_ZHI6[18]={0x40,0x8f,0x03,0x0b,0xaa,0xaf,0xaa,0xae,0xc2,0x00,0x0f,0xc0,0x83,0xfa,0xaa,0xaa,0xaf,0xe0}; +/* '不' */ +unsigned char HZ_BU2[18]={0x08,0x20,0x82,0x8B,0xA5,0xA2,0x88,0x20,0xC2,0x20,0x40,0x81,0x03,0xF0,0x00,0x00,0x10,0x84}; +/* '在' */ +unsigned char HZ_ZAI1[18]={0x10,0x49,0x14,0x30,0x71,0x34,0x10,0x41,0x84,0x08,0x1f,0xc0,0x82,0x18,0x7f,0x86,0x18,0x60}; +/* '范' */ +unsigned char HZ_FAN2[18]={0x88,0xa4,0x82,0x1f,0x24,0x97,0x4b,0x20,0x82,0x10,0x5f,0x81,0x01,0xf8,0x24,0x92,0x38,0x38}; +/* '围' */ +unsigned char HZ_WEI2[18]={0x03,0xf1,0x55,0x57,0xf5,0x55,0x54,0x1f,0xc0,0x03,0xf4,0x51,0x45,0xf4,0x55,0x5d,0x0f,0xc0}; +/* '地' */ +unsigned char HZ_DI2[18]={0x41,0x0f,0xd0,0x03,0xc8,0x3f,0x40,0x8e,0x00,0x41,0x03,0xc8,0x05,0xf8,0x2f,0x92,0x48,0xf8}; +/* '址' */ +unsigned char HZ_ZHI7[18]={0x41,0x0f,0xd0,0x03,0x80,0x00,0xfe,0x08,0x20,0x41,0x03,0xe8,0x83,0xf8,0x20,0xfe,0x08,0x20}; +/* '增' */ +unsigned char HZ_ZENG1[18]={0x20,0x8F,0xC8,0xF2,0x5D,0xBC,0x9B,0x59,0x3C,0x20,0x81,0xC4,0x07,0xEA,0xAA,0xAA,0xAF,0x81}; +/* '加' */ +unsigned char HZ_JIA1[18]={0x20,0x8F,0xC8,0x23,0xC2,0x3C,0x10,0x4F,0x84,0x81,0x81,0xD0,0x81,0xF0,0x1F,0x20,0x87,0xC0}; +/* '删' */ +unsigned char HZ_SHAN1[18]={0x83,0xE8,0xBE,0x83,0xE8,0xBE,0x83,0xE0,0x3F,0xC0,0xF8,0x3F,0x81,0xF8,0x3F,0x01,0x78,0x3F}; +/* '除' */ +unsigned char HZ_CHU3[18]={0xF9,0x2A,0x86,0x41,0x85,0xB1,0x49,0x42,0x08,0xFC,0x21,0x17,0x24,0x54,0x7F,0x04,0x52,0x51}; +/* '看' */ +unsigned char HZ_KAN1[18]={0x82,0x2A,0xAA,0xEA,0xEA,0x69,0xA6,0xDA,0x20,0x10,0x20,0x7F,0xAA,0xAA,0xAA,0xAB,0xF0,0x00}; +/* '格' */ +unsigned char HZ_GE1[18]={0x22,0x8f,0xe8,0x20,0x4a,0xd2,0xa8,0x60,0x00,0x18,0x1f,0xc0,0x07,0xf4,0x92,0x4b,0xf0,0x41}; +/* '式' */ +unsigned char HZ_SHI5[18]={0x22,0x8a,0x28,0xa2,0x82,0x3f,0x20,0xa3,0x08,0x43,0x04,0x1f,0x20,0x82,0x03,0x31,0x08,0x38}; +/* '网' */ +unsigned char HZ_WANG1[18]={0x03,0xe0,0x8a,0xc8,0xe4,0xa2,0x78,0x2f,0xc2,0x03,0xf0,0x81,0x00,0x50,0x81,0x0a,0x4f,0xc0}; +/* '段'*/ +unsigned char HZ_DUAN2[18] = {0x03,0xea,0xa9,0x26,0x07,0x82,0x09,0xe4,0x10,0x23,0xf2,0x04,0x92,0x08,0xd5,0x25,0x58,0xe0}; +/* '掩' */ +unsigned char HZ_YAN1[18]={0x20,0x8f,0xe8,0x52,0xc9,0x37,0xb3,0x49,0xa4,0x0a,0x1f,0xc0,0x00,0xf2,0x9f,0xaa,0xf8,0x38}; +/* '导' */ +unsigned char HZ_DAO1[18]={0x00,0x07,0xe5,0x96,0x59,0x65,0x96,0x7c,0x00,0x08,0x20,0x86,0x28,0x20,0xa2,0xfc,0x20,0x82}; +/* '上' */ +unsigned char HZ_SHANG1[18]={0x00,0x00,0x00,0x03,0xf4,0x10,0x41,0x04,0x00,0x82,0x08,0x20,0x83,0xf8,0x20,0x82,0x0c,0x20}; +/* '注' */ +unsigned char HZ_ZHU2[18]={0x21,0x19,0x80,0x20,0x82,0x7A,0x20,0x83,0x08,0x0B,0xE0,0x60,0x82,0x28,0xBF,0x8A,0x3C,0xA0}; +/* '销' */ +unsigned char HZ_XIAO4[18]={0x61,0x7d,0x14,0x03,0x25,0x10,0x7d,0x0d,0x02,0x08,0x2f,0xd2,0x03,0xf1,0x45,0x16,0x5f,0xc0}; +/* '文' */ +unsigned char HZ_WEN1[18]={0x10,0x41,0x34,0x10,0x51,0x84,0xF0,0x41,0x84,0x82,0x04,0x10,0x2C,0x41,0x0B,0x21,0x08,0x20}; +/* '件' */ +unsigned char HZ_JIAN3[18]={0x81,0x0f,0x03,0x40,0xe2,0x08,0xfc,0x82,0x00,0x00,0x0f,0xc0,0x04,0x10,0x41,0xfc,0x10,0x41}; +/* '非' */ +unsigned char HZ_FEI1[18]={0x12,0x49,0x24,0xfc,0x00,0x3f,0x92,0x49,0x04,0x10,0x41,0x04,0xfc,0x00,0x3f,0x10,0x41,0x04}; +/* '三' */ +unsigned char HZ_SAN1[18]={0x00,0x41,0x04,0x10,0x41,0x04,0x90,0x61,0x00,0x41,0x04,0x51,0x45,0x14,0x51,0x45,0x16,0x10}; +/* '人' */ +unsigned char HZ_REN2[18]={0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x81,0x02,0x04,0x0C,0x00,0x42,0x10,0x8C,0x10}; +/* '依' */ +unsigned char HZ_YI3[18]={0x81,0x0f,0x03,0x12,0x45,0x7e,0x10,0x49,0x04,0x00,0x0f,0xc2,0x07,0xf4,0x09,0x18,0x94,0x20}; +/* '次' */ +unsigned char HZ_CI2[18]={0x00,0x21,0x00,0x40,0xc2,0xe8,0x22,0x86,0x00,0x0b,0xe0,0x60,0x40,0x81,0x03,0x10,0x84,0x20}; +/* '两' */ +unsigned char HZ_LIANG2[18]={0x0b,0xa2,0x8a,0xf8,0xa2,0xbe,0x28,0xae,0xc2,0x03,0xf1,0x03,0x20,0x50,0x81,0x06,0x2f,0xc0}; +/* '保' */ +unsigned char HZ_BAO1[18]={0x81,0x0f,0x03,0x01,0xe4,0xb2,0x49,0x27,0x80,0x00,0x0f,0xc1,0x44,0x91,0x7f,0x0c,0x52,0x51}; +/* '留' */ +unsigned char HZ_LIU1[18]={0x03,0xe4,0x92,0x36,0x84,0x8e,0x49,0x23,0x80,0x00,0x0f,0xe5,0x97,0xf9,0x65,0x97,0xf0,0x00}; +/* '整' */ +unsigned char HZ_ZHENG2[18]={0x09,0xaa,0xbf,0xa9,0xa2,0x04,0xbd,0x4b,0x04,0x8a,0x18,0xbb,0x8a,0x3f,0xab,0xaa,0xa8,0xa1}; +/* '八' */ +unsigned char HZ_BA2[18]={0x00,0x00,0x00,0xf8,0x00,0x3f,0x00,0x00,0x00,0x81,0x02,0x06,0x04,0x00,0x00,0x0c,0xc4,0x20}; +/* '校' */ +unsigned char HZ_XIAO5[18]={0x22,0x8f,0xe8,0x22,0x47,0x05,0x18,0xc5,0x24,0x0c,0x0f,0xc0,0x86,0x05,0xc8,0x51,0x38,0x20}; +/* '验' */ +unsigned char HZ_YAN2[18]={0x0b,0xa0,0xbe,0x01,0x0b,0x23,0x92,0x84,0x10,0x11,0x59,0x51,0x3e,0x2b,0x22,0xb3,0x0b,0xa0}; +/* '本' */ +unsigned char HZ_BEN1[18]={0x10,0x41,0x24,0x53,0xF3,0x34,0x10,0x41,0x84,0x20,0x40,0x85,0x13,0xF1,0x04,0x14,0x21,0x04}; +/* '周' */ +unsigned char HZ_ZHOU1[18]={0x00,0x0f,0xc1,0xa6,0x9f,0x69,0xa4,0x1f,0xc0,0x81,0x03,0xc0,0x38,0xa2,0x8a,0x3a,0x0f,0xc0}; +/* '停' */ +unsigned char HZ_TING2[18]={0x83,0x81,0xc2,0x0b,0xaa,0xab,0xab,0xa0,0x82,0x03,0xf0,0x03,0x14,0x59,0x7d,0x14,0x51,0x43}; +/* '老' */ +unsigned char HZ_LAO1[18]={0x41,0x05,0x14,0x51,0xfd,0x14,0x61,0x44,0x90,0x00,0x82,0x04,0x7a,0x59,0x24,0x8a,0x2e,0x00}; +/* '当' */ +unsigned char HZ_DANG1[18]={0x01,0x04,0x94,0x61,0x07,0xd0,0x61,0x4c,0x80,0x02,0x08,0xa2,0x8a,0x28,0xa2,0x8a,0x2f,0xc0}; +/* '未' */ +unsigned char HZ_WEI3[18]={0x82,0x49,0x24,0x93,0xF9,0x24,0x92,0x6D,0x20,0x41,0x02,0x04,0x0B,0xF0,0x42,0x10,0x86,0x08}; +/* '暂' */ +unsigned char HZ_ZAN[18]= {0x8a,0xea,0xbf,0xaa,0xa0,0x3e,0x2b,0xa2,0x49,0x00,0x0f,0xab,0xaa,0xaa,0xea,0xab,0xf0,0x00}; +/* '放' */ +unsigned char HZ_FANG1[18]={0x10,0x4f,0x66,0x90,0x46,0x27,0x10,0x4f,0x04,0x81,0x81,0xe0,0x7e,0x04,0x0b,0x10,0xb4,0x20}; + +/* '找' */ +unsigned char HZ_ZHAO1[18]={0x20,0x82,0x3f,0xa1,0x04,0x3f,0x20,0xab,0x08,0x08,0x28,0x7f,0x01,0x04,0x0b,0x10,0xa4,0x78}; +/* '到' */ +unsigned char HZ_DAO2[18]={0x49,0xA5,0xB2,0x59,0xB4,0x80,0xF8,0x0F,0xC0,0x41,0x24,0x8F,0x28,0xA2,0x00,0x5E,0x07,0xC0}; +/* '检' */ +unsigned char HZ_JIAN4[18]={0x22,0x8f,0xc8,0x42,0x89,0x23,0x92,0x84,0x10,0x18,0x1f,0xc1,0x82,0xe8,0x2e,0xc2,0xc8,0xa0}; +/* '后' */ +unsigned char HZ_HOU1[18]={0x00,0x0f,0x92,0x49,0x24,0x92,0x45,0x14,0x50,0x81,0x81,0xc0,0xfd,0x14,0x51,0x47,0xf0,0x00}; +/* '并' */ +unsigned char HZ_BING1[18]={0x00,0x82,0x09,0xe8,0x82,0x0c,0xec,0x82,0x00,0x0a,0x28,0x92,0x3c,0x20,0x82,0xfc,0x20,0x82}; +/* '或' */ +unsigned char HZ_HUO1[18]={0x13,0x45,0x14,0xD0,0x47,0xE4,0x14,0x6D,0x04,0x41,0x32,0x8A,0xAE,0x84,0x0B,0x31,0x38,0x38}; +/* '存' */ +unsigned char HZ_CUN1[18]={0x08,0x2C,0x8A,0x18,0xB2,0x8A,0xA9,0xA2,0xC2,0x08,0x1F,0xC2,0x09,0x28,0xBF,0x08,0x20,0xC2}; +/* '准' */ +unsigned char HZ_ZHUN1[18]={0x00,0x29,0x00,0x23,0xf9,0x25,0xfa,0x49,0x04,0x09,0xf0,0x00,0x03,0xf4,0x92,0x7d,0x24,0x90}; +/* '写' */ +unsigned char HZ_XIE1[18]={0x00,0x60,0xbe,0x28,0xa2,0x8a,0x28,0xa1,0x80,0x00,0x41,0x05,0x14,0x51,0x55,0x95,0x13,0xc0}; +/* '对' */ +unsigned char HZ_DUI1[18]={0x11,0x49,0x04,0xf0,0x0a,0x08,0x23,0xf2,0x08,0x40,0x81,0x03,0x30,0x00,0x03,0x83,0xf0,0x00}; +/* '标' */ +unsigned char HZ_BIAO1[18]={0x22,0x8f,0xe8,0x41,0x24,0x92,0xc9,0x24,0x90,0x18,0x1f,0xc0,0x24,0x40,0xe0,0xfc,0x10,0x8c}; +/* '识' */ +unsigned char HZ_SHI6[18]={0x41,0x1d,0x80,0x00,0x0f,0xa2,0x8a,0x2f,0xc2,0x00,0x07,0xc8,0x91,0x03,0x40,0x00,0x42,0x70}; +/* '为' */ +unsigned char HZ_WEI4[18]={0x01,0x04,0x9c,0x43,0x07,0xd0,0x41,0x0c,0x00,0x02,0x04,0x08,0x18,0x10,0x94,0x81,0x03,0xc0}; +/* '处' */ +unsigned char HZ_CHU4[18]={0x00,0x0c,0x0f,0x23,0x80,0x00,0xfd,0x08,0x20,0x8a,0x14,0x0b,0x10,0xb4,0x20,0xbe,0x08,0x21}; +/* '银' */ +unsigned char HZ_YIN1[18]={0x61,0x7d,0x14,0x03,0xfa,0x69,0xa6,0x9f,0xc0,0x08,0x2f,0xd2,0x2b,0xf8,0x17,0x21,0x48,0xa0}; +/* '指' */ +unsigned char HZ_ZHI8[18]={0x10,0x4f,0xe4,0x10,0x07,0xd4,0x51,0x24,0x98,0x0a,0x1f,0xc0,0x00,0x0f,0xd5,0x55,0x5f,0xc0}; +/* '印' */ +unsigned char HZ_YIN3[18]={0x03,0xe8,0xa2,0x84,0x1f,0x82,0x08,0x2f,0x80,0x00,0xf2,0x04,0x10,0x0f,0xc0,0x10,0x81,0xc0}; + + + +/* '打' */ +unsigned char HZ_DA1[18]={0x20,0x8f,0xc8,0xa0,0x20,0x82,0xf8,0x20,0x82,0x0a,0x2f,0xc1,0x00,0x00,0x20,0xfc,0x00,0x00}; +/* '开' */ +unsigned char HZ_KAI1[18]={0x02,0x08,0xa2,0xfa,0x28,0xa2,0xfa,0x38,0xa0,0x02,0x04,0x08,0x1c,0x00,0x00,0xfc,0x00,0x00}; +/* '收' */ +unsigned char HZ_SHOU2[18]={0x03,0xc0,0x3f,0x81,0x0b,0xc8,0x23,0x83,0x08,0x00,0x70,0xbf,0x82,0x04,0x4a,0x10,0xb4,0x20}; +/* '过' */ +unsigned char HZ_GUO1[18]={0x41,0x1d,0x80,0x21,0x8a,0x08,0xfc,0x82,0x08,0x81,0x03,0xd0,0x82,0x08,0x68,0xbe,0x08,0x20}; +/* '满' */ +unsigned char HZ_MAN1[18]={0x21,0x10,0x90,0x51,0x4f,0xd4,0xfd,0x45,0x14,0x13,0xe0,0x40,0xfc,0x91,0xc9,0x1e,0x9f,0xc0}; +/* '包' */ +unsigned char HZ_BAO2[18]={0x40,0x8d,0xd4,0x51,0x4d,0x04,0x13,0xc0,0x00,0x00,0x07,0xe2,0x8a,0x28,0xe4,0x92,0x38,0x38}; +/* '硬' */ +unsigned char HZ_YING3[18]={0x87,0x95,0xf1,0x03,0xd5,0x55,0xfd,0x5f,0x41,0x01,0xf2,0x0f,0x82,0x15,0x49,0x5d,0x18,0x60}; +/* '长' */ +unsigned char HZ_CHANG3[18]={0x82,0x08,0x3f,0x83,0x0a,0x24,0x8a,0x18,0x20,0x00,0x00,0x3f,0x41,0x10,0x84,0x21,0x04,0x10}; +/* '度' */ +unsigned char HZ_DU3[18]={0x03,0xe0,0x8a,0x2b,0xea,0xea,0xf8,0xa2,0x80,0xc0,0xf8,0x20,0x89,0x62,0x8a,0x5a,0x28,0x20}; +/* '自' */ +unsigned char HZ_ZHI9[18]={0x00,0x0f,0x24,0x9a,0x59,0x24,0x93,0xc0,0x00,0x00,0x0f,0xe4,0x92,0x49,0x24,0x93,0xf0,0x00}; +/* '向' */ +unsigned char HZ_XIANG1[18]={0x03,0xc1,0x04,0x9a,0x59,0x24,0x10,0x4f,0x00,0x03,0xf0,0x00,0x3c,0x41,0x07,0x02,0x0f,0xc0}; +/* '个' */ +unsigned char HZ_GE2[18]={0x82,0x04,0x08,0x13,0x31,0x08,0x42,0x08,0x00,0x00,0x00,0x00,0x03,0xf0,0x00,0x00,0x00,0x00}; +/* '盘' */ +unsigned char HZ_PAN1[18]={0x41,0x04,0x3e,0x4b,0x76,0x92,0x4b,0xe4,0x10,0x82,0x2f,0x64,0xf2,0x49,0x7c,0x97,0xd8,0x20}; +/* '间' */ +unsigned char HZ_JIAN5[18]={0x03,0xc0,0x42,0xe0,0xa2,0xba,0x08,0x2f,0x80,0x03,0xf0,0x00,0x3c,0x51,0x4f,0x02,0x0f,0xc0}; +/* '足' */ +unsigned char HZ_ZU1[18]={0x00,0x00,0x1f,0x45,0x1c,0x51,0x45,0xf0,0x00,0x81,0x03,0xc8,0x41,0x0f,0xe2,0x8a,0x28,0xa0}; +/* '大' */ +unsigned char HZ_DA2[18]={0x20,0x82,0x08,0x23,0xf2,0x08,0x20,0x82,0x08,0x82,0x04,0x08,0x18,0x10,0x84,0x21,0x08,0x20}; +/* '约' */ +unsigned char HZ_YUE1[18]={0x41,0x8d,0xd0,0x22,0x06,0x0f,0x20,0x8e,0x00,0x49,0x34,0x8a,0x28,0x00,0x01,0x5a,0x07,0xc0}; +/* '集' */ +unsigned char HZ_JI6[18]={0x40,0x8f,0x17,0x51,0x5f,0x94,0x51,0x45,0x00,0x92,0x45,0xcd,0x14,0x5f,0xc5,0x35,0x59,0x64}; +/* '群' */ +unsigned char HZ_QUE2[18]={0x22,0xaf,0xaa,0xab,0xe2,0x6e,0xe2,0xea,0x68,0x10,0x2f,0xd2,0x4b,0xe1,0x04,0xfc,0x41,0x04}; +/* '同' */ +unsigned char HZ_TONG3[18]={0x03,0xf0,0x49,0xa6,0x9a,0x69,0x24,0x1f,0xc0,0x03,0xf0,0x00,0x1c,0x41,0x07,0x02,0x0f,0xc0}; +/* '可' */ +unsigned char HZ_KE2[18]={0x08,0x2e,0x8a,0x28,0xae,0x82,0x0b,0xe0,0xc2,0x00,0x01,0xc2,0x08,0x21,0xc0,0x83,0xf0,0x00}; +/* '全' */ +unsigned char HZ_QUAN2[18]={0x81,0x0a,0x24,0x8a,0x18,0xa4,0xa1,0x08,0x00,0x82,0x09,0x24,0x93,0xf9,0x24,0x92,0x08,0x00}; +/* '部' */ +unsigned char HZ_BU3[18]={0x92,0xcd,0x27,0xd2,0xc9,0x00,0xf9,0x2a,0x86,0x01,0xe4,0x92,0x49,0xe0,0x00,0xfc,0x82,0x07}; +/* '所' */ +unsigned char HZ_SUO1[18]={0x03,0xe2,0x8a,0xe4,0x0f,0x92,0x4b,0x14,0x50,0xc0,0xf0,0x61,0x44,0xc0,0xc0,0x03,0xf0,0x00}; +/* '和' */ +unsigned char HZ_HE2[18]={0x41,0x24,0xbe,0x45,0x14,0x3c,0x10,0x4f,0x00,0x20,0x60,0x7f,0x04,0x20,0x1f,0x20,0x83,0xc0}; +/* '相' */ +unsigned char HZ_XIANG2[18]={0x20,0x8a,0x3f,0x20,0x8f,0x92,0x49,0x2f,0x80,0x10,0x30,0x3f,0x04,0x2f,0xd2,0x49,0x2f,0xc0}; +unsigned char HZ_SHENG2[18] = {0x82,0x28,0xa2,0xfa,0x18,0x60,0xfe,0x0c,0x20,0x02,0x04,0x08,0x1c,0x00,0x00,0xfc,0x00,0x00}; +/* 算 */ +unsigned char HZ_SUAN[18] = {0x20,0x4e,0xea,0xba,0xab,0x2b,0xab,0xe0,0x82,0x22,0x8a,0xda,0x38,0xa2,0xbe,0x28,0xb2,0x08}; +/* 心 */ +unsigned char HZ_XIN[18] = {0x02,0x00,0x00,0xe0,0x10,0x8c,0x00,0x08,0x00,0x10,0x30,0x00,0x3d,0x04,0x10,0x41,0xc0,0x03}; +/*批*/ +unsigned char HZ_PI[18] = {0x20,0x8f,0xe8,0x03,0xf4,0x10,0xfe,0x04,0x08,0x06,0x1f,0xc0,0x03,0xf4,0x08,0x7e,0x08,0x38}; +/* 解*/ +unsigned char HZ_JIE2[18]={0x43,0xca,0xfa,0xbb,0x84,0xaa,0x1b,0x24,0x8e,0xc0,0xf1,0x1f,0x93,0xf0,0x85,0x17,0xf1,0x45}; +/*私 */ +unsigned char HZ_SI[18] ={0x41,0x24,0xbe,0x45,0x10,0x20,0x78,0x00,0x00,0x20,0x60,0x7f,0x04,0xa7,0x0b,0x20,0x83,0x98}; +/*%*/ +unsigned char HZ_BFH[18] = {0x00,0x00,0x38,0x13,0x88,0x30,0x10,0x00,0x00,0x00,0x00,0x10,0x30,0x33,0x91,0x38,0x00,0x00}; +/* 模 */ +unsigned char HZ_MO[18]={0x22,0x8F,0xE8,0x0b,0xab,0xea,0xaa,0xfe,0x82,0x0c,0x0f,0xe0,0xa6,0xb6,0x8e,0x29,0xaa,0xe8}; +/* 块 */ +unsigned char HZ_KUAI[18]={0x41,0x0f,0xd0,0x40,0x84,0x3f,0x20,0x8e,0x00,0x20,0x81,0xe4,0x54,0x91,0x43,0x14,0x94,0x61}; +/* '固' */ +unsigned char HZ_GU[18] = {0x03,0xf0,0x49,0xa6,0x9f,0xe9,0xa4,0x9f,0xc0,0x03,0xf4,0x10,0x5d,0x45,0x14,0x5d,0x0f,0xc0}; +/* '变' */ +unsigned char HZ_BIAN[18] = {0x0a,0x26,0x82,0xf8,0x30,0xbe,0x08,0xa4,0xa2,0x86,0x08,0x53,0x54,0x92,0x55,0x4e,0x18,0x20}; + +/* 会 */ +unsigned char HZ_HUI3[18] = {0x82,0x04,0x28,0x92,0x38,0xa4,0xa1,0x08,0x20,0x00,0x2c,0xaa,0x9a,0x28,0xaa,0xca,0x20,0x80}; +/* 能 */ +unsigned char HZ_NENG1[18] = {0x22,0xca,0xa9,0xb0,0x80,0x1f,0x92,0x48,0xb8,0x03,0xf2,0xaa,0xfc,0x00,0x1f,0x92,0x48,0xb8}; +/*旧*/ +unsigned char HZ_JIU[18] = {0x03,0xe0,0x00,0xfa,0x28,0xa2,0x8a,0x2f,0xc2,0x03,0xf0,0x00,0xfc,0x82,0x08,0x20,0x8f,0xc0}; +/*限*/ +unsigned char HZ_XIAN1[18] ={0x03,0xf0,0x59,0x9c,0x0f,0xc9,0x24,0x9f,0xc0,0x03,0xf2,0x08,0x1c,0x0f,0xd1,0x1c,0x95,0x62}; + +/* 共 */ +unsigned char HZ_GONG4[18] = {0x00,0x41,0x04,0xfc,0x41,0x04,0xfc,0x41,0x00,0x0a,0x24,0x8a,0x1c,0x20,0x86,0x2d,0x28,0x82}; + + + +/* '覆' */ +unsigned char HZ_FU3[18] = {0x01,0xdd,0x55,0x7f,0x55,0x5f,0x55,0x5f,0x40,0x28,0x5f,0x81,0x87,0x7b,0x55,0x56,0xd9,0xe0}; + +/* '盖' */ +unsigned char HZ_GAI2[18] = {0x00,0x45,0x15,0x59,0x4f,0x16,0x55,0x41,0x00,0x82,0x1f,0x65,0xf6,0x59,0x7d,0x97,0xd8,0x60}; + + +/* '追' */ +unsigned char HZ_ZHUI1[18] = {0x41,0x1d,0x80,0x03,0xc5,0x95,0x51,0xe1,0x00,0x81,0x03,0xd0,0x82,0xfa,0x69,0xa6,0x9b,0xe0}; + +/*远*/ +unsigned char HZ_YUAN4[18]={0x82,0x19,0x90,0x4B,0x24,0x92,0xC9,0x34,0x90,0x81,0x03,0xD0,0xA2,0x78,0x20,0x9E,0x8A,0x2E}; + +/*称*/ +//unsigned char HZ_CHENG3[18]={0x13,0x4F,0xD4,0x80,0x4C,0x81,0xF5,0x19,0x43,0x0C,0x0B,0xC0,0x08,0x10,0x28,0xBC,0x00,0x03}; +unsigned char HZ_CHENG3[18]={0x49,0x2F,0x91,0x05,0x02,0x07,0xD0,0x45,0x0C,0x30,0x3F,0xC1,0x28,0x40,0xE0,0xFC,0x10,0x8C}; +/*随*/ +unsigned char HZ_SUI[] = {0xF9,0x2A,0x86,0xB2,0x22,0xBE,0xAE,0xAE,0x82,0xFC,0x41,0x23,0x40,0xF4,0x2F,0x8A,0xAB,0xE0}; +/*合*/ +unsigned char HZ_HE3[] = {0x01,0x04,0x28,0x92,0x28,0x62,0x92,0x84,0x10,0x00,0x00,0x3E,0x49,0x24,0x92,0x4B,0xE0,0X00}; +/*定*/ +//unsigned char HZ_DING[] = {0x00,0xC5,0x14,0x51,0x53,0x94,0x51,0x43,0x00,0x81,0x02,0x07,0x21,0x0F,0xE2,0x8A,0x28,0x20}; +unsigned char HZ_DING[] = {0x00,0xC5,0x14,0x51,0x5D,0x94,0x51,0x43,0x00,0x81,0x02,0x07,0x21,0x0F,0xE2,0x8A,0x28,0x20}; +/* 起*/ +unsigned char HZ_QI3[] = {0x41,0x45,0x3F,0x51,0x40,0x32,0x49,0x27,0x80,0xC0,0xF2,0x1F,0x4A,0x28,0x27,0xA2,0x8A,0x2E}; +/*截*/ +unsigned char HZ_JIE3[] = {0x20,0xAA,0x9A,0xBC,0xA2,0x88,0xFC,0x8B,0x88,0x08,0x1F,0xD5,0x7D,0x55,0x60,0x4C,0xC4,0xF8}; +/*容*/ +unsigned char HZ_RONG[] = {0x22,0x64,0x8A,0x89,0x38,0x8A,0x4A,0xA1,0X80,0x10,0x40,0xBD,0x92,0x49,0x25,0xF8,0x41,0X00}; +/*结*/ +unsigned char HZ_JIE4[] = {0x41,0xCC,0xD0,0x20,0x49,0x24,0xFE,0x49,0x04,0x49,0x34,0x8A,0x2B,0xE4,0x92,0x45,0x2F,0x80}; +/*果*/ +unsigned char HZ_GUO2[] = {0x00,0x0F,0xE5,0x96,0x5F,0xE5,0x97,0xF0,0x00,0x8A,0x24,0x8A,0x18,0x2F,0xC6,0x29,0x2C,0x92}; +/*络*/ +unsigned char HZ_LUO[] = {0x61,0x4C,0xC8,0x00,0x4A,0xD2,0x4A,0xA1,0x80,0x51,0x32,0x8A,0x04,0x1F,0x92,0x49,0x2F,0xC1}; +/*科*/ +unsigned char HZ_KE3[] = {0x41,0x24,0xBE,0x45,0x09,0x80,0x03,0xF0,0x00,0x10,0x20,0x7F,0x04,0x61,0x05,0x13,0xF0,0x82}; +/*技*/ +unsigned char HZ_JI7[] = {0x20,0x8F,0xE8,0x00,0x8A,0x28,0xFE,0x8A,0x08,0x0A,0x1F,0xC0,0x82,0x08,0xD4,0x21,0x48,0xE0}; + +/*串*/ +unsigned char HZ_CHUAN[] = {0x00,0x07,0x14,0x53,0xF5,0x14,0x51,0xC0,0x00,0x00,0xF1,0x45,0x17,0xF1,0x45,0x14,0x53,0xC0}; +/*私*/ +unsigned char HZ_SHI7[] = {0x41,0x24,0xBE,0x45,0x10,0x20,0x78,0x00,0x00,0x20,0x60,0x7F,0x04,0xA7,0x0B,0x20,0x83,0x98}; +/*交*/ +unsigned char HZ_JIAO[] = {0x12,0x45,0x2C,0x10,0x51,0xA4,0x31,0x49,0x04,0x86,0x08,0x11,0x28,0x42,0x91,0x42,0x08,0x20}; +/*易*/ +unsigned char HZ_YI4[] = {0x00,0x00,0x1F,0xD5,0x55,0x55,0x55,0xF0,0x00,0x00,0x44,0x89,0x95,0x32,0x47,0x86,0x17,0xC0}; +/*配*/ +unsigned char HZ_PEI[] = {0x4B,0xA3,0xBA,0x3B,0xA0,0x22,0x8A,0x2F,0xC2,0x03,0xF5,0x54,0x57,0xF0,0x1F,0x82,0x08,0x38}; +/*载*/ +unsigned char HZ_ZAI[] = {0xA2,0xAE,0xAF,0xAA,0xA2,0x3F,0x20,0xAB,0x08,0x41,0x34,0xBF,0x2A,0xA8,0x13,0x31,0x28,0x78}; +/*使*/ +unsigned char HZ_SHI8[] = {0x81,0x0F,0x03,0xD1,0x45,0x3F,0x51,0x4D,0x84,0x00,0x0F,0xE0,0x8D,0x52,0x57,0x46,0x18,0xE0}; +/* '先' */ +unsigned char HZ_XIAN[] = {0x01,0x03,0x88,0x20,0x8f,0xc8,0x20,0xc2,0x00,0x86,0x14,0x49,0x1c,0x10,0x5f,0x86,0x18,0x79}; +/* '风' */ +unsigned char HZ_FENG2[] = {0x00,0x0f,0x92,0x88,0x28,0x9a,0x0b,0xe0,0x00,0x02,0x07,0xc8,0x10,0x31,0x08,0x00,0xf4,0x3c}; +/* '扇' */ +unsigned char HZ_SHAN[] = {0x00,0x0f,0xaa,0xaa,0xaa,0x8b,0xaa,0xaa,0xae,0x02,0x07,0xd0,0x2a,0x4f,0xc0,0x40,0xa9,0x3f}; +/*其*/ +//unsigned char HZ_QI4[] = {0x00,0x20,0xDF,0x28,0xA2,0x88,0xFC,0x20,0x80,0x12,0x49,0x17,0x34,0x51,0x45,0x3D,0x49,0x04}; +unsigned char HZ_QI4[] = {0x00,0x20,0xBF,0x28,0xA2,0x8A,0xFC,0x20,0x80,0x12,0x49,0x17,0x34,0x51,0x45,0x3D,0x45,0x04}; +/*被*/ +unsigned char HZ_BEI2[] = {0x12,0x5D,0x8C,0x83,0xC9,0x24,0xFE,0x49,0x0C,0x04,0x0F,0xE1,0x4A,0xF8,0x17,0x21,0x48,0xE0}; +/*必*/ +unsigned char HZ_BI3[] = {0x02,0x00,0x3C,0x04,0x21,0x20,0x60,0x68,0x00,0x8A,0x14,0x0F,0x61,0x44,0x91,0x41,0xC0,0x03}; +/*证*/ +unsigned char HZ_ZHENG3[] = {0x41,0x1C,0x80,0x0A,0x20,0x82,0xFA,0x28,0xC2,0x00,0x0F,0xD0,0x83,0xF8,0x20,0xFE,0x08,0x20}; +/*册*/ +unsigned char HZ_CE[] = {0x82,0x0F,0xA2,0x8B,0xE8,0x3E,0x8A,0x2F,0xE2,0x81,0x03,0xC0,0x42,0xF4,0x0F,0x02,0x0F,0xC0}; +/*波*/ +unsigned char HZ_BO[] = {0x21,0x10,0x80,0xF2,0x49,0x3F,0x92,0x4B,0x04,0x13,0xE8,0x50,0xBE,0x04,0x94,0x21,0x68,0x60}; +/*特*/ +unsigned char HZ_TE[] = {0x70,0x8F,0xC8,0x41,0x45,0x1F,0x51,0x45,0x10,0x10,0x2F,0xC1,0x08,0x62,0x82,0x8B,0xF0,0x82}; +/*率*/ +unsigned char HZ_LV[] = {0x08,0xA4,0xA2,0x6B,0x64,0xCA,0x89,0x22,0x84,0x80,0x51,0x44,0x14,0x5F,0xC5,0x10,0x51,0x44}; +/*盾*/ +unsigned char HZ_DUN[] = {0x03,0xE2,0xAA,0xAA,0xAF,0xA9,0xA6,0x92,0x08,0xC0,0xF0,0x3F,0xAA,0xAA,0xAA,0xAB,0xF0,0x00}; +/*超*/ +unsigned char HZ_CHAO[] ={0x41,0x45,0x3F,0x51,0x48,0x9E,0x09,0x27,0x80,0xC0,0xF4,0x1F,0x8A,0x2B,0xE9,0xA6,0x9B,0xE0}; +/*资*/ +unsigned char HZ_ZI[]= {0x23,0x92,0x84,0x22,0x44,0xCE,0x4A,0x68,0x80,0x02,0x08,0x2F,0x44,0x91,0xC9,0x46,0xF8,0x00}; +/*耐*/ +//unsigned char HZ_NAI[] = {0xC9,0x2E,0x96,0xC9,0x2E,0xA8,0x20,0x8F,0xC8,0xFC,0x07,0xC0,0x7E,0x0F,0xC0,0x0E,0x0C,0x00}; +unsigned char HZ_NAI[] = {0xC9,0x2E,0x96,0xC9,0x2C,0xA8,0x20,0x8F,0xC8,0xFC,0x07,0xC0,0x7E,0x0F,0xC0,0x0E,0x0F,0xC0}; +/*具*/ +unsigned char HZ_JU2[] = {0x00,0x00,0x3F,0x55,0x55,0x55,0xFC,0x00,0x00,0x92,0x45,0x0F,0x14,0x51,0x45,0x3D,0x49,0x04}; +/*电*/ +unsigned char HZ_DIAN[] = {0x03,0xC9,0x24,0x93,0xF9,0x24,0x93,0xC0,0x00,0x00,0x71,0x04,0x11,0xF9,0x24,0x92,0x78,0x38}; +/*角*/ +unsigned char HZ_JUE[] = {0x01,0x02,0x3C,0xAE,0xAE,0xAE,0xAA,0x8E,0x00,0x02,0x04,0x0F,0x08,0x2F,0xC2,0x0A,0x2F,0xC0}; +/*色*/ +unsigned char HZ_SE[] = {0x40,0x8D,0x23,0x49,0x2E,0x96,0x4D,0x00,0x00,0x00,0x07,0xE2,0x8A,0x28,0xE2,0x8A,0x38,0x38}; +/*散*/ +unsigned char HZ_SHAN2[] ={0x51,0x47,0xD4,0x7D,0x49,0x30,0x3C,0x8E,0x08,0x03,0xF5,0x55,0xFC,0x08,0x20,0x4C,0xC4,0xE0}; +/*毁*/ +unsigned char HZ_HUI4[] ={0x03,0xEA,0xA1,0xAB,0xE4,0x2E,0x8A,0x2B,0x90,0x43,0x24,0x8E,0x2A,0xA8,0x17,0x21,0x48,0xE0}; +/*种*/ +unsigned char HZ_ZHONG4[] ={0x2A,0xAF,0xA9,0x24,0x0E,0x08,0xFC,0x82,0x38,0x1C,0x1F,0xC0,0x04,0x00,0xC1,0xFC,0x10,0x43}; +/*子*/ +unsigned char HZ_ZHI10[] ={0x82,0x48,0xA2,0x8A,0x2E,0xAA,0x9A,0x38,0xA0,0x00,0x00,0x00,0x02,0x0F,0xC0,0x00,0x00,0x00}; +/*普*/ +unsigned char HZ_PU[] = {0x82,0xCD,0x25,0xFA,0x49,0x3E,0x97,0x4B,0x24,0x00,0x00,0x3E,0xAA,0xAA,0xAA,0xAB,0xE0,0x00}; +/*获*/ +unsigned char HZ_HUO2[] = {0x11,0x49,0x14,0x3C,0x41,0x2F,0x11,0x49,0x04,0x25,0x59,0x9F,0x81,0x13,0x43,0x14,0x94,0x61}; +/*软*/ +unsigned char HZ_RUAN[] = {0x13,0x43,0xF4,0x11,0x42,0x07,0xB0,0x45,0x0C,0x20,0x92,0x7F,0x16,0x54,0x0C,0x0C,0xC4,0x20}; +/*临*/ +unsigned char HZ_LIN[] = {0xF0,0x00,0x3F,0x40,0x81,0xCC,0x50,0x41,0x00,0x3C,0x00,0x3F,0x03,0xF4,0x51,0x7D,0x1F,0xC0}; +/*转*/ +unsigned char HZ_ZHUAN[] = {0x93,0xC9,0xF4,0x92,0x09,0x3C,0x9E,0x4A,0x24,0x10,0x41,0x3F,0x08,0x00,0xCA,0x4A,0xA1,0x80}; +/*异*/ +unsigned char HZ_YI5[] = {0x00,0x07,0xE5,0x96,0x59,0x65,0x96,0x7E,0x00,0x8A,0x24,0x8A,0x1C,0x20,0x82,0xFC,0x20,0x82}; +/*方*/ +unsigned char HZ_FANG[] = {0x10,0x41,0x04,0x13,0xD9,0xA4,0x92,0x41,0x04,0x02,0x04,0x08,0x18,0x14,0x20,0x40,0xF0,0x00}; +/*创*/ +unsigned char HZ_CHUANG[]= {0x40,0x8D,0x13,0x4B,0x42,0x00,0xF0,0x00,0x3F,0x00,0x07,0xE4,0x92,0x3E,0x00,0x0C,0x08,0x3F}; +/*建*/ +unsigned char HZ_JIAN6[] = {0x0D,0x2A,0xA6,0x22,0xAA,0xBF,0xAA,0xAF,0x88,0x89,0x42,0x17,0xA2,0xAA,0xBF,0xAA,0xAA,0xA8}; +/*闭*/ +unsigned char HZ_BI4[] = {0x03,0xE0,0x52,0x41,0x2F,0x92,0x48,0x2F,0x80,0x03,0xF2,0x04,0x09,0x17,0xC0,0x02,0x0F,0xC0}; +/*束*/ +unsigned char HZ_SHU3[] = {0x08,0x2E,0x8A,0x2B,0xF2,0x8A,0x2B,0xA0,0x82,0x82,0x04,0xC9,0x17,0xF0,0xC5,0x25,0x38,0x20}; +/*锁*/ +unsigned char HZ_SUO2[] = {0x41,0xCD,0xD4,0x13,0xA3,0x08,0xBC,0xCE,0x80,0x04,0x17,0xC9,0x86,0x76,0x08,0x1C,0x85,0xE0}; +/*做*/ +unsigned char HZ_ZUO2[] = {0x81,0x0F,0x0B,0x2F,0xF2,0x10,0xF0,0xBE,0x08,0x00,0x0F,0xC0,0x7C,0x93,0xE0,0x4C,0xC4,0xE0}; +/*他*/ +unsigned char HZ_TA[] = {0x81,0x0F,0x03,0x83,0x84,0x3F,0x20,0x8E,0x00,0x00,0x0F,0xC0,0x01,0xF8,0x2F,0x8A,0x28,0x78}; +/*目*/ +unsigned char HZ_MU[]={0x00,0x0F,0x92,0x49,0x24,0x92,0x4B,0xF0,0x80,0x00,0x0F,0xD2,0x49,0x24,0x92,0x4B,0xF0,0x00}; +/*校*/ +unsigned char HZ_JIAO1[] = {0x22,0x8F,0xE8,0x22,0x47,0x05,0x18,0xC5,0x24,0x0C,0x0F,0xC0,0x86,0x05,0xC8,0x51,0x38,0x20}; +/*区*/ +unsigned char HZ_QU2[] = {0x03,0xE0,0x86,0x4A,0x20,0xA2,0x48,0xB0,0x80,0x03,0xF8,0x28,0x92,0x28,0x62,0x92,0x88,0x00}; +/*单*/ +unsigned char HZ_DAN[] = {0x00,0x0F,0x15,0x59,0x4F,0x14,0x59,0x5F,0x00,0x00,0x41,0x45,0x14,0x5F,0xC5,0x14,0x51,0x44}; +/*索*/ +unsigned char HZ_SUO3[] = {0x01,0x82,0x8A,0xA9,0xA3,0xCA,0xA8,0xA2,0x98,0x00,0x09,0x15,0x16,0x7F,0x45,0x11,0x69,0x00}; +/*引*/ +unsigned char HZ_YIN2[] = {0x00,0x0C,0x92,0x49,0x27,0x80,0x00,0x0F,0xC0,0x00,0x00,0xE2,0x8A,0x27,0x80,0x00,0x0F,0xC0}; +/*片*/ +unsigned char HZ_PIAN[] = {0x00,0x00,0x3E,0x41,0x04,0x1F,0x41,0x04,0x10,0x02,0x06,0x07,0x08,0x20,0x82,0x0B,0xE0,0x00}; +/*案*/ +unsigned char HZ_AN3[18] = {0x20,0xe2,0x8a,0x6a,0xea,0xea,0x68,0xa3,0x88,0x92,0x59,0x55,0x34,0x4f,0x84,0x35,0x59,0x24}; +/*知*/ +unsigned char HZ_ZHI11[18] = {0x40,0x83,0xf8,0x20,0x80,0x3c,0x10,0x41,0x3c,0x85,0x12,0x47,0x15,0x90,0x1f,0x20,0x82,0x1f}; +/*域*/ +unsigned char HZ_YU1[] = {0x20,0x8f,0xc8,0xd1,0x4d,0x04,0xfc,0x4d,0xc4,0x20,0x81,0xd4,0x4c,0xaa,0xd0,0x2c,0xc4,0xf8}; +/*于*/ +unsigned char HZ_YU2[] = {0x82,0x28,0xa2,0x8a,0x2f,0xa2,0x8a,0x38,0xa0,0x00,0x00,0x00,0x02,0x0f,0xc0,0x00,0x00,0x00}; +/*字*/ +unsigned char HZ_ZI2[] = {0x20,0x64,0x92,0x49,0x24,0xf2,0x48,0x22,0x86,0x08,0x20,0x82,0x0a,0x2f,0xc2,0x08,0x20,0x82}; +/*节*/ +unsigned char HZ_JIE5[] = {0x11,0x45,0x14,0x7f,0x45,0x14,0x7f,0x41,0x04,0x00,0x00,0x00,0x03,0xf0,0x04,0x20,0x70,0x00}; +/*报*/ +unsigned char HZ_BAO3[] = {0x20,0x8f,0xc8,0x23,0xf8,0x61,0xa6,0x99,0xc0,0x0a,0x2f,0xc1,0x03,0xf4,0x0b,0x10,0xa4,0x60}; +/*头*/ +unsigned char HZ_TOU[] = {0x00,0x84,0x02,0x10,0x0f,0xc0,0x00,0x00,0x00,0x06,0x18,0x51,0x24,0x50,0xc5,0x25,0x1c,0x41}; +/*尾*/ +unsigned char HZ_WEI5[] = {0x00,0x0f,0xc5,0x96,0x59,0x55,0x55,0x51,0xc0,0x81,0x81,0xca,0x28,0xa7,0xe5,0x96,0x59,0x38}; +/*应*/ +unsigned char HZ_YING1[] = {0x03,0xc1,0x14,0x90,0x55,0xa4,0x10,0x4d,0x84,0xc0,0xf8,0x20,0x9e,0x08,0x23,0xc2,0xe8,0x60}; +/*灌*/ +unsigned char HZ_GUAN3[] = {0x02,0x21,0x00,0xea,0xfe,0x82,0xea,0xfe,0x82,0x01,0x02,0x44,0x0b,0xfa,0xab,0xfa,0xaa,0xa2}; +/*装*/ +unsigned char HZ_ZHUANG2[] = {0x02,0x14,0x88,0xfc,0x49,0x24,0xfe,0x49,0x04,0x01,0x24,0x8a,0xea,0x64,0xc6,0x29,0x2a,0xa2}; +/* '报' */ +unsigned char CH_BAO_1[18]={0x20,0x8f,0xc8,0x23,0xf8,0x61,0xa6,0x99,0xc0,0x0a,0x2f,0xc1,0x03,0xf4,0x0b,0x10,0xa4,0x60}; +/* '头' */ +unsigned char CH_TOU_1[18]={0x00,0x84,0x02,0x10,0x0f,0xc0,0x00,0x00,0x00,0x06,0x18,0x51,0x24,0x50,0xc5,0x25,0x1c,0x41}; +/* '尾' */ +unsigned char CH_WEI_1[18]={0x00,0x0f,0xc5,0x96,0x59,0x55,0x55,0x51,0xc0,0x81,0x81,0xca,0x28,0xa7,0xe5,0x96,0x59,0x38}; +/* '设' */ +unsigned char CH_SHE_1[18]={0x41,0x1d,0x80,0x42,0x89,0xe1,0x86,0xfa,0x08,0x00,0x07,0xc8,0x91,0x12,0x84,0x29,0x18,0x20}; +/* '置' */ +unsigned char CH_ZHI_3[18]={0x41,0x75,0x55,0x5f,0xd5,0x57,0x55,0x55,0xd0,0x82,0x08,0x3f,0xa6,0xbb,0x69,0xfe,0x08,0x20}; +/* '域' */ +unsigned char CH_YU_1[18]={0x20,0x8f,0xc8,0xd1,0x4d,0x04,0xfc,0x4d,0xc4,0x20,0x81,0xd4,0x4c,0xaa,0xd0,0x2c,0xc4,0xf8}; +/* '文' */ +unsigned char CH_WEN_1[18]={0x10,0x41,0x1c,0x90,0x51,0x84,0xf0,0x41,0x04,0x82,0x08,0x10,0x44,0xa1,0x0b,0x41,0x08,0x20}; +/* '分' */ +unsigned char CH_FEN_1[18]={0x02,0x04,0x2c,0x8e,0x08,0x27,0xa1,0x08,0x20,0x06,0x04,0x08,0x1c,0x04,0x20,0x7c,0x00,0x00}; +/* '量' */ +unsigned char CH_LIANG_1[18]={0x20,0x8b,0xe9,0xa6,0xbb,0x69,0xa6,0xf2,0x08,0x82,0x8b,0xea,0xab,0xfa,0xaa,0xaa,0xfa,0x20}; +/* '合' */ +unsigned char CH_HE_1[18]={0x01,0x04,0x28,0x92,0x28,0x62,0x92,0x84,0x10,0x00,0x00,0x3e,0x49,0x24,0x92,0x4b,0xe0,0x00}; +/* '成' */ +unsigned char CH_CHENG_1[18]={0x03,0x8a,0x28,0xa0,0x8f,0xc8,0x24,0xaa,0x08,0xc0,0xf0,0x08,0x3e,0x04,0x0b,0x10,0xa4,0x78}; +/* '密' */ +unsigned char CH_MI_1[18]={0x1a,0x24,0xba,0x0a,0xb4,0x8a,0x09,0x29,0x80,0x08,0x2e,0xa1,0x8f,0xe8,0xa2,0x8f,0x80,0x00}; +/* '变' */ +unsigned char CH_BIAN1[18] = {0x0a,0x26,0x82,0xf8,0x30,0xbe,0x08,0xa4,0xa2,0x86,0x08,0x53,0x54,0x92,0x55,0x4e,0x18,0x20}; +/* '种' */ +unsigned char CH_ZHONG1[18] = {0x2a,0xaf,0xa9,0x24,0x0e,0x08,0xfc,0x82,0x38,0x18,0x1f,0xc0,0x04,0x00,0xc1,0xfc,0x10,0x43}; +/* '否' */ +unsigned char CH_FOU1[18] = {0x02,0x28,0x92,0x28,0x6f,0x82,0x28,0xa4,0xe2,0x00,0x00,0x3f,0x45,0x14,0x51,0x47,0xf0,0x00}; +/* '是' */ +unsigned char CH_SHI7[18] = {0x00,0x00,0x1f,0x55,0x55,0x55,0x7c,0x00,0x00,0x06,0x14,0x4d,0x46,0x1f,0xe5,0x96,0x59,0x61}; + +/* '钥' */ +unsigned char CH_YAO_1[18]={0x41,0x8d,0xd4,0x50,0x0f,0x92,0x49,0x2f,0x80,0x04,0x1f,0xd1,0xa5,0x03,0xc2,0x0a,0x2f,0xc0}; +/* '请' */ +unsigned char CH_QING_1[18]={0x41,0x1c,0x80,0x8a,0xaa,0xbf,0xaa,0xaa,0xa2,0x00,0x07,0xc8,0x03,0xf2,0x8a,0x2a,0xaf,0xc0}; +/* '输' */ +unsigned char CH_SHU_1[18]={0xd2,0xcd,0xe4,0xa2,0x4a,0x89,0x28,0x4a,0x08,0x20,0x8f,0xc4,0xfc,0xaf,0xc0,0x3e,0x0f,0xc0}; +/* '入' */ +unsigned char CH_RU_1[18]={0x00,0x00,0x01,0xc4,0xec,0x00,0x00,0x00,0x00,0x41,0x02,0x06,0x04,0x00,0x03,0x10,0x84,0x10}; +/* '按' */ +unsigned char CH_AN_1[18]={0x20,0x8f,0xe8,0x02,0xc9,0x35,0x9a,0x49,0x2c,0x0a,0x1f,0xc0,0x82,0x25,0x48,0x21,0x74,0x20}; +/* '确' */ +unsigned char CH_QUE_1[18]={0x0b,0x2b,0xa2,0x88,0x8f,0x0b,0xe8,0xe2,0xb8,0x05,0xf2,0x08,0xbd,0x03,0xc5,0xfc,0x59,0x7f}; +/* '认' */ +unsigned char CH_REN_1[18]={0x41,0x1c,0x80,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x07,0xe8,0x50,0x81,0x81,0x18,0x84,0x20}; +/* '键' */ +unsigned char CH_JIAN_1[18]={0x63,0x75,0x14,0xca,0xea,0x2a,0xfe,0xaf,0x88,0x07,0xf4,0x69,0x58,0x85,0xea,0xfe,0xaa,0xa0}; +/* '定' */ +unsigned char CH_DING_1[18]={0x00,0xc5,0x14,0x51,0x5d,0x94,0x51,0x43,0x00,0x81,0x02,0x07,0x21,0x0f,0xe2,0x8a,0x28,0x20}; +/* '校' */ +unsigned char CH_JIAO_1[18]={0x22,0x8f,0xe8,0x22,0x47,0x05,0x18,0xc5,0x24,0x0c,0x0f,0xc0,0x86,0x05,0xc8,0x51,0x38,0x20}; +/* '验' */ +unsigned char CH_YAN_1[18]={0x0b,0xa0,0xbe,0x01,0x0b,0x23,0x92,0x84,0x10,0x11,0x59,0x51,0x3e,0x2b,0x22,0xb3,0x0b,0xa0}; +/* '值' */ +unsigned char CH_ZHI_2[18]={0x40,0x8f,0x03,0x0b,0xaa,0xaf,0xaa,0xae,0xc2,0x00,0x0f,0xc0,0x83,0xfa,0xaa,0xaa,0xaf,0xe0}; + +/* '零' */ +unsigned char CH_LING_1[18]={0x20,0xc5,0x55,0x56,0x5b,0xd5,0x55,0x51,0x0c,0x08,0x21,0x85,0x55,0x45,0xad,0x14,0x20,0x82}; +/* '一' */ +unsigned char CH_YI_1[18]={0x82,0x08,0x20,0x82,0x08,0x20,0x82,0x0c,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +/* '二' */ +unsigned char CH_ER_1[18]={0x00,0x01,0x04,0x10,0x41,0x04,0x10,0x61,0x00,0x01,0x04,0x10,0x41,0x04,0x10,0x41,0x06,0x10}; +/* '三' */ +unsigned char CH_SAN_1[18]={0x00,0x41,0x04,0x10,0x41,0x04,0x90,0x61,0x00,0x41,0x04,0x51,0x45,0x14,0x51,0x45,0x16,0x10}; +/* '四' */ +unsigned char CH_SI_1[18]={0x03,0xe0,0x82,0xf8,0x20,0xbe,0x08,0x2f,0x80,0x03,0xf5,0x12,0x45,0x04,0x11,0x49,0x2f,0xc0}; +/* '五' */ +unsigned char CH_WU_1[18]={0x00,0x28,0xa2,0x8b,0xe8,0xa2,0x8a,0x30,0x80,0x82,0x08,0x20,0xfe,0x08,0x20,0x83,0xf8,0x20}; +/* '六' */ +unsigned char CH_LIU_1[18]={0x20,0x82,0x08,0xa4,0xa3,0x28,0x20,0x82,0x08,0x01,0x02,0x06,0x04,0x00,0x00,0x04,0x66,0x00}; +/* '七' */ +unsigned char CH_QI_1[18]={0x00,0x00,0x20,0x83,0xf8,0x10,0x41,0x02,0x08,0x04,0x10,0x40,0x01,0xf8,0x20,0x82,0x08,0x3c}; +/* '八' */ +unsigned char CH_BA_1[18]={0x00,0x00,0x00,0xf8,0x00,0x3f,0x00,0x00,0x00,0x81,0x02,0x06,0x04,0x00,0x00,0x0c,0xc4,0x20}; +/* '九' */ +unsigned char CH_JIU_1[18]={0x00,0x82,0x08,0xfc,0x82,0x08,0xe0,0x00,0x00,0x81,0x02,0x04,0x0c,0x00,0x00,0x7e,0x08,0x38}; + +/* '左' */ +unsigned char CH_ZUO_1[18]={0x10,0x41,0x24,0x70,0x71,0x04,0x10,0x41,0x84,0x20,0x48,0xa1,0x86,0x18,0x7f,0x86,0x18,0x60}; +/* '右' */ +unsigned char CH_YOU_1[18]={0x10,0x41,0x24,0x70,0x71,0x04,0x10,0x41,0x84,0x10,0x20,0x7f,0x45,0x14,0x51,0x47,0xf0,0x00}; + +/* '明' */ +unsigned char CH_MING_1[18]={0x03,0xe4,0x92,0xf8,0x0f,0xd1,0x45,0x1f,0xc0,0x00,0x70,0x82,0x9d,0x03,0xc2,0x0a,0x2f,0xc0}; +/* '加' */ +unsigned char CH_JIA_1[18]={0x20,0x8f,0xc8,0x23,0x80,0x3c,0x10,0x41,0x3c,0x81,0x81,0xd0,0x81,0xf0,0x3f,0x41,0x04,0x3f}; +/* '的' */ +unsigned char CH_DE_1[18]={0x03,0xc1,0x85,0xf1,0x0a,0x07,0x10,0x4f,0x00,0x03,0xf4,0x51,0xfc,0x00,0x03,0x42,0x07,0xc0}; +/* '扰' */ +unsigned char CH_RAO_1[18]={0x20,0x8f,0xe8,0x21,0x04,0x3f,0x41,0x25,0x10,0x0a,0x1f,0xe0,0x40,0x81,0x81,0x7a,0x08,0x38}; +/* '码' */ +unsigned char CH_MA_1[18]={0x8b,0xa5,0xb2,0x08,0x1f,0x41,0x04,0x1f,0xc0,0x01,0xf2,0x0f,0x00,0x41,0x45,0x56,0x54,0x4f}; +/* '偏' */ +unsigned char CH_PIAN_1[18]={0x81,0x0f,0x03,0xfa,0xaa,0xab,0xaa,0xab,0xa0,0x00,0x0f,0xc4,0x0f,0xf1,0x1f,0x11,0xf9,0x3f}; +/* '移' */ +unsigned char CH_YI_2[18]={0x49,0x2f,0x91,0x44,0x81,0x2b,0x4a,0xa1,0x80,0x30,0x3f,0xc1,0x8a,0x49,0x52,0x54,0x91,0x43}; +/* '错' */ +unsigned char CH_CUO_1[18]={0x61,0x7d,0x14,0x42,0x4f,0xe4,0x93,0xf9,0x20,0x08,0x2f,0xd2,0x03,0xea,0xaa,0xaa,0xaf,0x80}; +/* '误' */ +unsigned char CH_WU_2[18]={0x41,0x1d,0x80,0x82,0xfa,0x69,0xa6,0x9b,0xe0,0x00,0x07,0xe8,0x89,0x22,0x87,0x29,0x28,0xa2}; +/* '方' */ +unsigned char CH_FANG_1[18]={0x10,0x41,0x04,0x13,0xd9,0xa4,0x92,0x41,0x04,0x02,0x04,0x08,0x18,0x14,0x20,0x40,0xf0,0x00}; +/* '案' */ +unsigned char CH_AN_2[18]={0x20,0xe2,0x8a,0x6a,0xea,0xea,0x68,0xa3,0x88,0x92,0x59,0x55,0x34,0x4f,0x84,0x35,0x59,0x24}; +/* '个' */ +unsigned char CH_GE_1[18]={0x82,0x04,0x08,0x13,0x31,0x08,0x42,0x08,0x00,0x00,0x00,0x00,0x03,0xf0,0x00,0x00,0x00,0x00}; +/* '数' */ +unsigned char CH_SHU_2[18]={0xa2,0xe6,0x3f,0xb0,0xa4,0x3c,0x2c,0x8e,0x08,0x8a,0x25,0x8b,0x29,0x68,0x13,0x30,0xa4,0x60}; +/* '网' */ +//{0x03,0xe0,0x8a,0xc8,0xe4,0xa2,0x78,0x2f,0xc2,0x03,0xf0,0x81,0x00,0x50,0x81,0x0a,0x4f,0xc0}; +/* '卡' */ +//{0x82,0x08,0x20,0x83,0xf9,0x24,0x92,0x49,0x20,0x00,0x00,0x00,0x03,0xf0,0x82,0x10,0x42,0x00}; +/* '汇' */ +//{0x21,0x10,0xa0,0x03,0xe0,0x82,0x08,0x20,0x82,0x13,0xe0,0x40,0x01,0xf4,0x10,0x41,0x04,0x10}; +/* '聚' */ +//{0x82,0x1f,0xd5,0x57,0xf4,0x62,0x58,0xa5,0xa2,0x01,0x45,0x0a,0x14,0x1f,0xc5,0x25,0x44,0x90}; + +/*测*/ +unsigned char HZ_CE1[18] ={0x21,0x10,0xbe,0x0b,0xa0,0xbe,0x03,0xc0,0x3f,0x13,0xe8,0x53,0x20,0x72,0x13,0x00,0x78,0x3f}; +/*试*/ +unsigned char HZ_SHI9[18] ={0x82,0x18,0x88,0xa2,0x8a,0x28,0xfc,0x83,0x88,0x00,0x07,0xc8,0x41,0x03,0xc8,0x0c,0xc4,0x38}; +/*拷*/ +unsigned char HZ_KAO[18] ={0x20,0x8f,0xe8,0x41,0x45,0x3f,0x51,0xc5,0x90,0x0a,0x1f,0xc0,0x10,0x20,0x57,0x96,0x57,0x40}; +/* '液' */ +unsigned char HZ_YE[18] = {0x21,0x10,0x80,0x89,0xa0,0xb3,0x69,0x2c,0x82,0x13,0xe0,0x42,0xfe,0x04,0x4a,0x14,0xa4,0x60}; +/* '晶' */ +unsigned char HZ_JING[18] = {0x00,0x00,0x1f,0x55,0x55,0x55,0x55,0xf0,0x00,0x03,0xf5,0x55,0x57,0xf0,0x3f,0x55,0x55,0x7f}; +/* '面' */ +unsigned char HZ_MIAN[18] = {0x0b,0xa2,0x8a,0xea,0xea,0xba,0x28,0xae,0xc2,0x03,0xf4,0x10,0x7d,0x45,0x1f,0x41,0x0f,0xc0}; +/* '板' */ +unsigned char HZ_BAN[18] = {0x22,0x8f,0xe8,0x23,0xe4,0xb2,0x49,0x1c,0x40,0x18,0x1f,0xe0,0x46,0xf4,0x0b,0x10,0xb4,0x20}; + +/* '快' */ +unsigned char HZ_KUAI1[18] = {0x03,0x80,0x3f,0x20,0x41,0x3f,0x10,0x4f,0x00,0x00,0x10,0x3f,0x85,0x13,0x43,0x35,0x18,0x61}; + +/* '镜' */ +unsigned char HZ_JING1[18]={0x01,0x4c,0xd2,0x22,0xab,0xab,0xaa,0xea,0x88,0x00,0x2f,0xd2,0x82,0xf6,0x8a,0x2b,0xab,0xf0}; + +/* '像' */ +unsigned char HZ_XIANG[18]={0x01,0x0f,0x0b,0xf2,0xba,0xba,0xaa,0xee,0x00,0x00,0x0f,0xc0,0xaa,0xa5,0x6a,0xf0,0x42,0x90}; + +/* '国' */ +unsigned char HZ_GUO[18]={0x03,0xf0,0x65,0x96,0x5f,0x65,0x96,0x50,0x7f,0x03,0xf5,0x14,0x51,0x45,0xd4,0x55,0x65,0x3f}; + +/* '支' */ +unsigned char HZ_ZHI[18]={0x00,0x49,0x24,0x92,0x4f,0xe4,0x92,0x49,0x04,0x02,0x08,0x21,0x49,0x42,0x08,0x51,0x28,0x60}; +/* '付' */ +unsigned char HZ_FU[18]={0x02,0x04,0x3c,0x0c,0x82,0x08,0x20,0x8f,0xc8,0x00,0x00,0x3f,0x00,0x00,0x46,0x82,0x0f,0xc0}; +/* '密' */ +unsigned char HZ_MI[18]={0x00,0x6c,0x82,0xc8,0x6a,0xd2,0x2a,0x24,0xa6,0x00,0x1e,0x22,0x8a,0x1f,0x61,0x86,0x1e,0x01}; +/* '码' */ +unsigned char HZ_MA[18]={0x00,0x2c,0xae,0x88,0x1f,0x61,0x86,0x1f,0xe0,0x00,0x17,0xc8,0x7c,0x41,0x04,0x12,0x48,0x1f}; +/* '系' */ +unsigned char HZ_XI[18]={0x00,0x00,0x92,0x69,0x6c,0xb1,0x44,0x90,0x40,0x02,0x04,0x8a,0x0e,0x3f,0x82,0x08,0xa4,0xe6}; +/* '统' */ +unsigned char HZ_TONG[18]={0x01,0x85,0x33,0x20,0x09,0x14,0x34,0x65,0x24,0x01,0x24,0xca,0x2a,0x04,0x4f,0x05,0xf8,0x73}; + +/* '光' */ +unsigned char HZ_GUANG[18]={0x02,0x08,0xa4,0xa2,0x0f,0xe0,0xa2,0x48,0xa0,0x02,0x04,0x08,0x1c,0x00,0x00,0x7e,0x08,0x38}; + + +/* '环' */ +unsigned char HZ_HUAN[18]={0x02,0x28,0xbe,0x88,0x00,0xa2,0xe8,0x68,0x82,0x01,0x04,0x0f,0x20,0x20,0x40,0xfc,0x00,0x03}; +/* '形' */ +unsigned char HZ_XING[18]={0x02,0x2f,0xa2,0x8b,0xe8,0x80,0x20,0x48,0xd8,0x02,0x07,0xc0,0x03,0xf0,0x20,0x89,0x12,0x04}; +/* '线' */ +unsigned char HZ_XIAN2[18]={0x01,0x85,0x33,0x20,0x02,0x08,0xfe,0x49,0x66,0x01,0x24,0xca,0x2a,0x08,0x51,0x3d,0x48,0xb8}; + +/* 12*16 点阵全角字母 */ +/* 'A' */ +unsigned char QJ_A[18]={0x00,0x00,0x00,0xc2,0xc9,0xbc,0xc0,0x00,0x00,0x00,0x01,0x07,0x10,0x00,0x04,0x1c,0x71,0x00}; +/* 'B' */ +unsigned char QJ_B[18]={0x00,0x00,0xbe,0xf9,0x24,0x92,0xfa,0xc0,0x00,0x00,0x01,0x07,0x1c,0x41,0x04,0x1c,0x30,0x00}; +/* 'C' */ +unsigned char QJ_C[18]={0x00,0x0e,0x3c,0x18,0x20,0x82,0x10,0xe0,0x00,0x00,0x00,0x43,0x18,0x41,0x04,0x10,0x20,0x00}; +/* 'D' */ +unsigned char QJ_D[18]={0x00,0x00,0xbe,0xf8,0x20,0x82,0xf3,0x80,0x00,0x00,0x01,0x07,0x1c,0x41,0x04,0x0c,0x10,0x00}; +/* 'E' */ +unsigned char QJ_E[18]={0x00,0x00,0xbe,0xf9,0x24,0xba,0x08,0x60,0x00,0x00,0x01,0x07,0x1c,0x41,0x04,0x10,0x60,0x00}; +/* 'F' */ +unsigned char QJ_F[18]={0x00,0x00,0xbe,0xf9,0x24,0xba,0x08,0x60,0x00,0x00,0x01,0x07,0x1c,0x40,0x00,0x00,0x00,0x00}; +/* 'G' */ +unsigned char QJ_G[18]={0x00,0x0e,0x3c,0x18,0x20,0x82,0x92,0xe8,0x00,0x00,0x00,0x43,0x18,0x41,0x04,0x10,0x30,0x00}; +/* 'H' */ +unsigned char QJ_H[18]={0x00,0x00,0xbe,0xf9,0x24,0x12,0xfb,0xe0,0x80,0x00,0x01,0x07,0x1c,0x40,0x04,0x1c,0x71,0x00}; +/* 'I' */ +unsigned char QJ_I[18]={0x00,0x00,0x00,0x0b,0xef,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x71,0xc4,0x00,0x00,0x00}; +/* 'J' */ +unsigned char QJ_J[18]={0x00,0x00,0x00,0x00,0x2f,0xbe,0x08,0x00,0x00,0x00,0x00,0x02,0x10,0x41,0xc3,0x00,0x00,0x00}; +/* 'K' */ +unsigned char QJ_K[18]={0x00,0x2f,0xbe,0x8b,0x02,0x06,0x08,0x00,0x00,0x00,0x41,0xc7,0x10,0x10,0xc6,0x10,0x40,0x00}; +/* 'L' */ +unsigned char QJ_L[18]={0x00,0x00,0xbe,0xf8,0x20,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1c,0x41,0x04,0x18,0x70,0x00}; +/* 'M' */ +unsigned char QJ_M[18]={0x00,0x2f,0xbc,0x63,0x08,0x10,0x23,0xcf,0x82,0x00,0x41,0xc7,0x10,0x00,0x40,0x10,0x71,0xc4}; +/* 'N' */ +unsigned char QJ_N[18]={0x00,0x2f,0xbc,0x21,0x08,0x02,0xfb,0xe0,0x80,0x00,0x41,0xc7,0x10,0x00,0x01,0x0c,0x70,0x00}; +/* 'O' */ +unsigned char QJ_O[18]={0x00,0x0e,0x3c,0x18,0x20,0x86,0xf3,0x80,0x00,0x00,0x00,0x43,0x18,0x41,0x06,0x0c,0x10,0x00}; +/* 'P' */ +unsigned char QJ_P[18]={0x00,0x00,0xbe,0xfa,0x28,0xa2,0xf9,0xc0,0x00,0x00,0x01,0x07,0x1c,0x40,0x00,0x00,0x00,0x00}; +/* 'Q' */ +unsigned char QJ_Q[18]={0x00,0x0e,0x3c,0x18,0x20,0x86,0xf3,0x80,0x00,0x00,0x00,0x43,0x18,0x41,0x06,0x2c,0x90,0x00}; +/* 'R' */ +unsigned char QJ_R[18]={0x00,0x00,0xbe,0xfa,0x28,0xa2,0xf9,0xc0,0x00,0x00,0x01,0x07,0x1c,0x40,0x43,0x18,0x41,0x00}; +/* 'S' */ +unsigned char QJ_S[18]={0x00,0x00,0x0c,0x79,0x2c,0xa2,0x88,0x40,0x00,0x00,0x00,0x02,0x10,0x41,0x04,0x1c,0x30,0x00}; +/* 'T' */ +unsigned char QJ_T[18]={0x00,0x01,0x82,0x0b,0xef,0x82,0x08,0x60,0x00,0x00,0x00,0x00,0x10,0x71,0xc4,0x00,0x00,0x00}; +/* 'U' */ +unsigned char QJ_U[18]={0x00,0x00,0xbe,0xf8,0x20,0x02,0xfb,0xe0,0x80,0x00,0x00,0x01,0x0c,0x41,0x04,0x0c,0x10,0x00}; +/* 'V' */ +unsigned char QJ_V[18]={0x00,0x00,0x8e,0xfb,0x20,0x00,0xc8,0xe0,0x80,0x00,0x00,0x00,0x00,0x31,0xc3,0x00,0x00,0x00}; +/* 'W' */ +unsigned char QJ_W[18]={0x00,0x2f,0xbe,0x03,0x27,0xba,0x82,0x27,0x82,0x00,0x00,0x03,0x1c,0x10,0x01,0x1c,0x10,0x00}; +/* 'X' */ +unsigned char QJ_X[18]={0x00,0x00,0x86,0x3b,0xac,0x2a,0x18,0x20,0x00,0x00,0x01,0x06,0x14,0x00,0x05,0x1c,0x61,0x00}; +/* 'Y' */ +unsigned char QJ_Y[18]={0x00,0x00,0x86,0x39,0x8c,0x30,0x28,0x60,0x80,0x00,0x00,0x00,0x00,0x41,0xc7,0x10,0x00,0x00}; +/* 'Z' */ +unsigned char QJ_Z[18]={0x00,0x01,0x82,0x8b,0x26,0x8e,0x18,0x20,0x00,0x00,0x01,0x06,0x1c,0x51,0x04,0x10,0x60,0x00}; + +/* '0' */ +unsigned char QJ_0[18]={0x00,0x00,0x38,0xf0,0x20,0x82,0xf3,0x80,0x00,0x00,0x00,0x03,0x1c,0x82,0x08,0x1c,0x30,0x00}; +/* '1' */ +unsigned char QJ_1[18]={0x00,0x00,0x08,0x13,0xef,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf3,0xc0,0x00,0x00,0x00}; +/* '2' */ +unsigned char QJ_2[18]={0x00,0x00,0x0c,0x18,0x28,0xbe,0x70,0x00,0x00,0x00,0x00,0x0c,0x38,0xb2,0x48,0x20,0x00,0x00}; +/* '3' */ +unsigned char QJ_3[18]={0x00,0x00,0x02,0x49,0x2a,0xae,0x18,0x00,0x00,0x00,0x00,0x04,0x20,0x82,0x0f,0x1c,0x00,0x00}; +/* '4' */ +unsigned char QJ_4[18]={0x00,0x00,0x00,0x83,0x83,0x36,0xcc,0x00,0x00,0x00,0x00,0x03,0x0c,0x20,0x8f,0x3c,0x20,0x80}; + +/* '5' */ +unsigned char QJ_5[18]={0x00,0x00,0xC0,0x79,0x2C,0xA2,0x88,0X40,0x00,0x00,0x00,0x02,0x10,0x41,0x04,0x1c,0x30,0x00,}; + + +/*空白行*/ +unsigned char * STR_KBH[16]={ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +/*系统错误!*/ +unsigned char * STR_XTCW[5]={HZ_XI1,HZ_TONG1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*增加密押机*/ +unsigned char * STR_ZJMYJ[5]={HZ_ZENG1,HZ_JIA1,HZ_MI1,HZ_YA1,HZ_JI1}; +/*查看删除密押机*/ +unsigned char * STR_CKSCMYJ[7]={HZ_CHA2,HZ_KAN1,HZ_SHAN1,HZ_CHU3,HZ_MI1,HZ_YA1,HZ_JI1}; +//同步密押机不存在 +unsigned char * STR_TBMYJBCZ[9]={HZ_TONG3,HZ_BU1,HZ_MI1,HZ_YA1,HZ_JI1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*同步密钥*/ +unsigned char * STR_TBMY[4]={HZ_TONG3,HZ_BU1,HZ_MI1,HZ_YAO1}; + +/* 密钥同步 */ +unsigned char * STR_MYTB[4]={HZ_MI1,HZ_YAO1,HZ_TONG3,HZ_BU1}; + + +/*同步成功!*/ +unsigned char * STR_TBCG[5]={HZ_TONG3,HZ_BU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*同步失败!*/ +unsigned char * STR_TBSB[5]={HZ_TONG3,HZ_BU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*密钥同步中...*/ +unsigned char * STR_MYTBZ[8]={HZ_MI1,HZ_YAO1,HZ_TONG3,HZ_BU1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*是否同步?*/ +unsigned char * STR_SFTB[5]={HZ_SHI1,HZ_FOU1,HZ_TONG3,HZ_BU1,ASC16_What}; +/*可选同步*/ +unsigned char * STR_KXTB[4]={HZ_KE2,HZ_XUAN1,HZ_TONG3,HZ_BU1}; +/*全部同步*/ +unsigned char * STR_QBTB[4]={HZ_QUAN2,HZ_BU3,HZ_TONG3,HZ_BU1}; +/*密押机8.01版*/ +unsigned char * STR_MYJB[8]={HZ_MI1,HZ_YA1,HZ_JI1,ASC16_Num[8],ASC16_Dot,ASC16_Num[0],ASC16_Num[1],HZ_BAN1}; +/*系统启动中... */ +unsigned char * STR_XTQDZ[8]={HZ_XI1,HZ_TONG1,HZ_QI1,HZ_DONG1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*密押机管理*/ +//unsigned char * STR_MYJGL[5]={HZ_MI1,HZ_YA1,HZ_JI1,HZ_GUAN1,HZ_LI1}; +unsigned char * STR_MYJGL[5]={HZ_JIA1,HZ_MI1,HZ_JI1,HZ_GUAN1,HZ_LI1}; +/*启动管理程序*/ +unsigned char * STR_QIGLCX[6]={HZ_QI1,HZ_DONG1,HZ_GUAN1,HZ_LI1,HZ_CHENG2,HZ_XU1}; +/*关机*/ +unsigned char * STR_GJ[2]={HZ_GUAN2,HZ_JI1}; +/*>>>> 信息 <<<<*/ +unsigned char * STR_Title[12]={ASC16_Above,ASC16_Above,ASC16_Above,ASC16_Above,ASC16_Space,HZ_XIN1,HZ_XI2,ASC16_Space,ASC16_Below,ASC16_Below,ASC16_Below,ASC16_Below}; +/*是否需要关机?*/ +unsigned char * STR_SFXYGJ[7]={HZ_SHI1,HZ_FOU1,HZ_XU2,HZ_YAO2,HZ_GUAN2,HZ_JI1,ASC16_What}; +/*请按确认关机,退出重*/ +unsigned char * STR_QAQRGJ[10]={HZ_QING1,HZ_AN1,HZ_QUE1,HZ_REN1,HZ_GUAN2,HZ_JI1,ASC16_Comma,HZ_TUI1,HZ_CHU2,HZ_CHON1}; +/*新返回运行...*/ +unsigned char * STR_XFHYX[8]={HZ_XIN2,HZ_FAN1,HZ_HUI1,HZ_YUN1,HZ_HANG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*关机中...*/ +unsigned char * STR_GJZ[6]={HZ_GUAN2,HZ_JI1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*启用中...*/ +unsigned char * STR_QYZ[6]={HZ_QI1,HZ_YONG1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*系统管理*/ +unsigned char * STR_XTGL[4]={HZ_XI1,HZ_TONG1,HZ_GUAN1,HZ_LI1}; +//非本行操作 +unsigned char * STR_FBHCZ[6]={HZ_FEI1,HZ_BEN1,HZ_HANG1,HZ_CAO1,HZ_ZUO1,ASC16_Claim}; +/*数据查询*/ +unsigned char * STR_SJCX[4]={HZ_SHU2,HZ_JU1,HZ_CHA2,HZ_XUN1}; +/*系统主密钥无效!*/ +unsigned char * STR_XTZMYWX[8]={HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_WU4,HZ_XIAO3,ASC16_Claim}; +/*密钥管理*/ +unsigned char * STR_MYGL[4]={HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; +/*密押机初始化*/ +unsigned char * STR_MYJCSH[6]={HZ_MI1,HZ_YA1,HZ_JI1,HZ_CHU1,HZ_SHI2,HZ_HUA1}; +/*输入完毕按确认进入*/ +unsigned char * STR_SRWBAQRJR[9]={HZ_SHU1,HZ_RU1,HZ_WAN1,HZ_BI1,HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIN1,HZ_RU1}; +/*密码错误!!!*/ +unsigned char * STR_MMCW[7]={HZ_KOU1,HZ_LING1,HZ_CUO1,HZ_WU1,ASC16_Claim,ASC16_Claim,ASC16_Claim}; +/*请重新输入正确密码*/ +unsigned char * STR_QCXSRZQMM[9]={HZ_QING1,HZ_CHON1,HZ_XIN2,HZ_SHU1,HZ_RU1,HZ_ZHENG1,HZ_QUE1,HZ_KOU1,HZ_LING1}; +/*此操作将清空原有密*/ +unsigned char * STR_CCZJQYKYM[9]={HZ_CI1,HZ_CAO1,HZ_ZUO1,HZ_JIANG1,HZ_QING2,HZ_KONG1,HZ_YUAN1,HZ_YOU1,HZ_MI1}; +/*押信息!!!*/ +unsigned char * STR_YXX[6]={HZ_YA1,HZ_XIN1,HZ_XI2,ASC16_Claim,ASC16_Claim,ASC16_Claim}; +/*按确认继续 退出取消*/ +unsigned char * STR_AQRJXTCQX[10]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JI2,HZ_XU3,ASC16_Space,HZ_TUI1,HZ_CHU2,HZ_QU1,HZ_XIAO1}; +/*初始化...*/ +unsigned char * STR_CSH[6]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*系统主密钥生成成功!*/ +unsigned char * STR_XTZMYSCCG[10]={HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHENG1,HZ_CHENG1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*系统主密钥生成失败!*/ +unsigned char * STR_XTZMYSCSB[10]={HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHENG1,HZ_CHENG1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*按确认执行下一步*/ +unsigned char * STR_AQRZXXYB[8]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_ZHI2,HZ_HANG1,HZ_XIA1,HZ_YI1,HZ_BU1}; +/*请插入第一张IC卡进 */ +unsigned char * STR_QCRDYZICKJ[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_DI1,HZ_YI1,HZ_ZHANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JIN1}; +/*行备份!*/ +unsigned char * STR_XBF[4]={HZ_HANG1,HZ_BEI1,HZ_FEN1,ASC16_Claim}; +/*请插入第二张IC卡进 */ +unsigned char * STR_QCRDEZICKJ[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_DI1,HZ_ER1,HZ_ZHANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JIN1}; +/*请插入第三张IC卡进 */ +unsigned char * STR_QCRDSZICKJ[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_DI1,HZ_SAN1,HZ_ZHANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JIN1}; +/*初始化成功!*/ +unsigned char * STR_CSHCG[6]={HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*按确认进入编核押服务*/ +unsigned char * STR_AQRJRBHYFW[10]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIN1,HZ_RU1,HZ_BIAN1,HZ_HE1,HZ_YA1,HZ_FU1,HZ_WU2}; + +/*管理员<1>登录*/ +unsigned char *STR_GLYIYDL[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[1],ASC16_RBrack,HZ_DENG1,HZ_LU1}; +/*管理员<2>登录*/ +unsigned char *STR_GLYEDL[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[2],ASC16_RBrack,HZ_DENG1,HZ_LU1}; +/*管理员<3>登录*/ +unsigned char *STR_GLYSDL[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[3],ASC16_RBrack,HZ_DENG1,HZ_LU1}; + +/*请插入IC卡... */ +unsigned char * STR_QCRICK[9]={HZ_QING1,HZ_CHA1,HZ_RU1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*请输入密码:*/ +unsigned char * STR_QSRMA[6]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_KOU1,HZ_LING1,ASC16_Colon}; + +/*请插入管理员一IC卡 */ +unsigned char *STR_QCRGLYYICK[10] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; + +/*管理员一登录成功!*/ +unsigned char * STR_GLYYDLCG[9]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,HZ_DENG1,HZ_LU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*管理员二登录成功!*/ +unsigned char * STR_GLYEDLCG[9]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,HZ_DENG1,HZ_LU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*管理员三登录成功!*/ +unsigned char * STR_GLYSDLCG[9] = {HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_SAN1,HZ_DENG1,HZ_LU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*管理员<2>登录*/ +unsigned char * STR_AYKEDL[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[2],ASC16_RBrack,HZ_DENG1,HZ_LU1}; +/*请取出管理员一IC卡 */ +unsigned char *STR_QQCGLYYICK[10] = {HZ_QING1,HZ_QU1,HZ_CHU2,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*并插入管理员二IC卡 */ +unsigned char *STR_BCRGLYEICK[10] = {HZ_BIN1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*请取出管理员二IC卡 */ +unsigned char *STR_QQCGLYEICK[10] = {HZ_QING1,HZ_QU1,HZ_CHU2,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*并插入管理员三IC卡 */ +unsigned char *STR_BCRGLYSICK[10] = {HZ_BIN1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_SAN1,ASC16_IChar,ASC16_CChar,HZ_KA1}; + + +/*编核押服务程序*/ +//unsigned char * STR_BHYFWCX[7]={HZ_BIAN1,HZ_HE1,HZ_YA1,HZ_FU1,HZ_WU2,HZ_CHENG2,HZ_XU1}; +/*网络服务程序*/ +unsigned char * STR_WLFWCX[6]={HZ_WANG1,HZ_LUO,HZ_FU1,HZ_WU2,HZ_CHENG2,HZ_XU1}; +/*等待连接...*/ +unsigned char * STR_DDLJ[7]={HZ_DENG2,HZ_DAI1,HZ_LIAN1,HZ_JIE1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*串口服务中...*/ +unsigned char * STR_CKFWZ[8]={HZ_CHUAN,HZ_KOU1,HZ_FU1,HZ_WU2,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*连接数:*/ +unsigned char * STR_LJS[4]={HZ_LIAN1,HZ_JIE1,HZ_SHU2,ASC16_Colon}; +/*【工作状态】正常*/ +unsigned char * STR_GZZTZC[9]={ASC16_LFBrack,HZ_GONG2,HZ_ZUO1,HZ_ZHUANG1,HZ_TAI1,ASC16_RFBrack,ASC16_Space,HZ_ZHENG1,HZ_CHANG1}; +/*【普通状态】正常*/ +unsigned char * STR_PTZTZC[9]={ASC16_LFBrack,HZ_PU,HZ_TONG2,HZ_ZHUANG1,HZ_TAI1,ASC16_RFBrack,ASC16_Space,HZ_ZHENG1,HZ_CHANG1}; +/*【授权状态】正常*/ +unsigned char * STR_SQZTZC[9]={ASC16_LFBrack,HZ_SHOU1,HZ_QUAN1,HZ_ZHUANG1,HZ_TAI1,ASC16_RFBrack,ASC16_Space,HZ_ZHENG1,HZ_CHANG1}; + +/*向下键进业务量统计*/ +unsigned char * STR_XXJJYWLTJ[9]={HZ_XIANG1,HZ_XIA1,HZ_JIAN1,HZ_JIN1,HZ_YE1,HZ_WU2,HZ_LIANG1,HZ_TONG1,HZ_JI4}; +/*业务量统计(笔数)*/ +unsigned char * STR_YWTJLBS[11]={HZ_YE1,HZ_WU2,HZ_LIANG1,HZ_TONG1,HZ_JI4,ASC16_Space,ASC16_Space,ASC16_LBrack,HZ_BI2,HZ_SHU2,ASC16_RBrack}; +/*前一分钟:*/ +unsigned char * STR_QYFZ[5]={HZ_QIAN1,HZ_YI1,HZ_FEN2,HZ_ZHONG3,ASC16_Colon}; +/*一小时内:*/ +unsigned char * STR_YXSN[5]={HZ_YI1,HZ_XIAO2,HZ_SHI3,HZ_NEI1,ASC16_Colon}; +/*24小时内:*/ +unsigned char * STR_ESXSN[6]={ASC16_Num[2],ASC16_Num[4],HZ_XIAO2,HZ_SHI3,HZ_NEI1,ASC16_Colon}; +/*IC卡复制 */ +unsigned char * STR_ICKFZ[5]={ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_FU2,HZ_ZHI3}; +/*更换IC卡口令*/ +unsigned char * STR_GHICKKL[7] = {HZ_GENG1,HZ_HUAN1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_KOU1,HZ_LING1}; +/*初始化IC卡*/ +unsigned char * STR_CSHICK[6]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*初始化U盾*/ +unsigned char * STR_CSHUD[5]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_U_Char,HZ_DUN}; +/*设备初始化*/ +unsigned char * STR_SBCSH[5]={HZ_SHE1,HZ_BEI1,HZ_CHU1,HZ_SHI2,HZ_HUA1}; +/*请插入U盾*/ +unsigned char * STR_QCRUD[8]={HZ_QING1,HZ_CHA1,HZ_RU1,ASC16_U_Char,HZ_DUN,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*管理员登录*/ +unsigned char * STR_GLYDL[5]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DENG1,HZ_LU1}; +/*退出登录*/ +unsigned char * STR_TCDL[4]={HZ_TUI1,HZ_CHU2,HZ_DENG1,HZ_LU1}; +/*系统参数设置*/ +unsigned char * STR_XTCSSZ[6]={HZ_XI1,HZ_TONG1,HZ_CAN1,HZ_SHU2,HZ_SHE1,HZ_ZHI5}; +//WEB和服务端口相同 +unsigned char * STR_WEBHFWDKXT[10]={ASC16_WChar,ASC16_EChar,ASC16_BChar,HZ_HE2,HZ_FU1,HZ_WU2,HZ_DUAN1,HZ_KOU1,HZ_XIANG2,HZ_TONG3}; +/*设置中...*/ +unsigned char * STR_SZZ[6]={HZ_SHE1,HZ_ZHI5,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*设置失败!*/ +unsigned char * STR_SZSB[5]={HZ_SHE1,HZ_ZHI5,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*客户IP设置*/ +unsigned char * STR_KHIPSZ[6]={HZ_KE1,HZ_HU1,ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5}; +/*WEB IP设置*/ +unsigned char * STR_WEBIPSZ[8]={ASC16_WChar,ASC16_EChar,ASC16_BChar,ASC16_Space,ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5}; +/*系统网络设置*/ +unsigned char * STR_XTWLSZ[6]={HZ_XI1,HZ_TONG1,HZ_WANG1,HZ_LUO,HZ_SHE1,HZ_ZHI5}; + +/*恢复出厂设置*/ +unsigned char * STR_HFCCSZ[6]={HZ_HUI2,HZ_FU2,HZ_CHU2,HZ_CHANG2,HZ_SHE1,HZ_ZHI5}; + +/*修改系统口令*/ +unsigned char * STR_XGXTKL[6]={HZ_XIU1,HZ_GAI1,HZ_XI1,HZ_TONG1,HZ_KOU1,HZ_LING1}; +/*导出工作日志*/ +unsigned char * STR_DCGZRZ[6]={HZ_DAO1,HZ_CHU2,HZ_GONG2,HZ_ZUO1,HZ_RI1,HZ_ZHI4}; +/*导出日志*/ +unsigned char * STR_DCRZ[4] = {HZ_DAO1,HZ_CHU2,HZ_RI1,HZ_ZHI4}; +/*系统时钟设置*/ +unsigned char * STR_XTSZSZ[6]={HZ_XI1,HZ_TONG1,HZ_SHI3,HZ_ZHONG3,HZ_SHE1,HZ_ZHI5}; + + +/*系统行号 修改为管理员标识*/ + + +unsigned char * STR_XTHH[5]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_BIAO1, HZ_SHI6}; + + + +/* 请输入标识 */ +unsigned char * STR_QSRBS[5]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_BIAO1,HZ_SHI6}; + +/* 请确认标识 */ +unsigned char * STR_QQRBS[5]={HZ_QING1,HZ_QUE1,HZ_REN1,HZ_BIAO1,HZ_SHI6}; + +/*数据拷贝中*/ +unsigned char * STR_SJKBZ[5] = {CH_SHU_2 ,HZ_JU1 ,HZ_KAO,HZ_BEI,HZ_ZHONG1}; + + + +/*时钟设置成功!*/ +unsigned char * STR_SZSZCG[7]={HZ_SHI3,HZ_ZHONG3,HZ_SHE1,HZ_ZHI5,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +//设置系统时钟失败 +unsigned char * STR_SZXTSZSB[9]={HZ_SHE1,HZ_ZHI5,HZ_XI1,HZ_TONG1,HZ_SHI3,HZ_ZHONG3,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*请插入U盘*/ +unsigned char * STR_QCRUP[5]={HZ_QING1,HZ_CHA1,HZ_RU1,ASC16_U_Char,HZ_PAN1}; +/*请勿拔出U盘*/ +unsigned char * STR_QWBCUP[6]={HZ_QING1,HZ_WU3,HZ_BA1,HZ_CHU2,ASC16_U_Char,HZ_PAN1}; +/*应用程序灌装中...*/ +unsigned char *STR_YYCXGZZDDD[10]={HZ_YING1,HZ_YONG1,HZ_CHENG2,HZ_XU1,HZ_GUAN3,HZ_ZHUANG2,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; + +/*灌装U盘不存在!*/ +unsigned char *STR_GZUPBCZ[7]={HZ_GUAN3,HZ_ZHUANG2,ASC16_U_Char,HZ_PAN1,HZ_BU2,HZ_CUN1,HZ_ZAI1}; +unsigned char *STR_UPBCZ[5]={ASC16_U_Char,HZ_PAN1,HZ_BU2,HZ_CUN1,HZ_ZAI1}; + +/*写U盘失败!*/ +unsigned char * STR_XUPSB[6]={HZ_XIE1,ASC16_U_Char,HZ_PAN1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*U盘空间不足!*/ +unsigned char * STR_UPKJBZ[7]={ASC16_U_Char,HZ_PAN1,HZ_KONG1,HZ_JIAN5,HZ_BU2,HZ_ZU1,ASC16_Claim}; +/*日志文件不存在*/ +unsigned char * STR_RZWJBCZ[8]={HZ_RI1,HZ_ZHI4,HZ_WEN1,HZ_JIAN3,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*导出失败!*/ +unsigned char * STR_DCSB[5]={HZ_DAO1,HZ_CHU2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*请插入要复制的源IC*/ +unsigned char * STR_QCRYFZDYIC[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_YAO2,HZ_FU2,HZ_ZHI3,HZ_DE1,HZ_YUAN3,ASC16_IChar,ASC16_CChar}; +/*卡...*/ +unsigned char * STR_KDDD[4]={HZ_KA1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*按确认键进行复制*/ +unsigned char * STR_AQRJJXFZ[8]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_JIN1,HZ_HANG1,HZ_FU2,HZ_ZHI3}; +/*源卡复制中...*/ +unsigned char * STR_YKFZZ[8]={HZ_YUAN3,HZ_KA1,HZ_FU2,HZ_ZHI3,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*读卡出错!!!*/ +unsigned char * STR_DKCC[7]={HZ_DU1,HZ_KA1,HZ_CHU2,HZ_CUO1,ASC16_Claim,ASC16_Claim,ASC16_Claim}; +/*读源卡成功,请取出源*/ +unsigned char * STR_DYKCGQQCY[10]={HZ_DU1,HZ_YUAN3,HZ_KA1,HZ_CHENG1,HZ_GONG1,ASC16_Comma,HZ_QING1,HZ_QU1,HZ_CHU2,HZ_YUAN3}; +/*IC卡,插入空白IC卡*/ +unsigned char * STR_ICKCRKBICK[11]={ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Comma,HZ_CHA1,HZ_RU1,HZ_KONG1,HZ_BAI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*IC卡复制中...*/ +unsigned char * STR_ICKFZZ[9]={ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_FU2,HZ_ZHI3,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*请勿拔出IC卡*/ +unsigned char * STR_QWBCICK[7]={HZ_QING1,HZ_WU3,HZ_BA1,HZ_CHU2,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*请勿拔出U盾*/ +unsigned char * STR_QWBCUD[6]={HZ_QING1,HZ_WU3,HZ_BA1,HZ_CHU2,ASC16_U_Char,HZ_DUN}; +/*拷贝成功!*/ + +unsigned char * STR_KBCG[5]={HZ_KAO,HZ_BEI,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + +/*IC卡复制成功!*/ +unsigned char * STR_ICKFZCG[8]={ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_FU2,HZ_ZHI3,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*请插入管理员IC卡*/ +unsigned char * STR_QCRGLYICK[9]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*请输入原口令*/ +unsigned char * STR_QSRYKL[6]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_YUAN1,HZ_KOU1,HZ_LING1}; +/*请输入新口令*/ +unsigned char * STR_QSRXKL[6]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_XIN2,HZ_KOU1,HZ_LING1}; +/*请确认新口令*/ +unsigned char * STR_QCRXKL[6]={HZ_QING1,HZ_QUE1,HZ_REN1,HZ_XIN2,HZ_KOU1,HZ_LING1}; +/*请确认行号*/ +unsigned char * STR_QQRHH[5]={HZ_QING1,HZ_QUE1,HZ_REN1,HZ_HANG1,HZ_HAO1}; +/*更换口令成功!*/ +unsigned char * STR_GHKLCG[7]={HZ_GENG1,HZ_HUAN1,HZ_KOU1,HZ_LING1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +//更改失败 +unsigned char * STR_GGSB[5]={HZ_GENG1,HZ_HUAN1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*原口令错误!*/ +unsigned char * STR_YKLCW[6]={HZ_YUAN1,HZ_KOU1,HZ_LING1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//非管理员IC卡 +unsigned char * STR_FGLYICK[8]={HZ_FEI1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; + +//非超级管理员一IC卡 +unsigned char *STR_FCJGLYYICK[11]={HZ_FEI1,HZ_CHAO,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +//非超级管理员二IC卡 +unsigned char *STR_FCJGLYEICK[11]={HZ_FEI1,HZ_CHAO,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +//非超级管理员三IC卡 +unsigned char *STR_FCJGLYSICK[11]={HZ_FEI1,HZ_CHAO,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_SAN1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +//非密钥管理员一IC卡 +unsigned char *STR_FMYGLYYICK[11]={HZ_FEI1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +//非密钥管理员二IC卡 +unsigned char *STR_FMYGLYEICK[11]={HZ_FEI1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +//非配置管理员IC卡 +//unsigned char *STR_FPZGLYICK[10]={HZ_FEI1,HZ_PEI,HZ_ZHI5,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; + +//管理员号错误 +unsigned char * STR_GLYHCW[7]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*确认口令错误!*/ +unsigned char * STR_QRKLCW[7]={HZ_QUE1,HZ_REN1,HZ_KOU1,HZ_LING1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*确认行号错误!*/ +unsigned char * STR_QRHHCW[7]={HZ_QUE1,HZ_REN1,HZ_HANG1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; + + + + + +/*初始化U盾中...*/ +unsigned char * STR_CSHUDZ[9]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_U_Char,HZ_DUN,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; + +/*初始化IC卡中...*/ +unsigned char * STR_CSHICKZ[10]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*备份中...*/ +unsigned char * STR_BFZ[6]={HZ_BEI1,HZ_FEN1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*导入中...*/ +unsigned char * STR_DRZ[6]={HZ_DAO1,HZ_RU1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*导出中...*/ +unsigned char * STR_DCZ[6]={HZ_DAO1,HZ_CHU2,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*导出成功!*/ +unsigned char * STR_DCCG[5]={HZ_DAO1,HZ_CHU2,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*请取出U盘*/ +unsigned char * STR_QQCUP[5]={HZ_QING1,HZ_QU1,HZ_CHU2,ASC16_U_Char,HZ_PAN1}; +//登录失败! +unsigned char * STR_DLSB[5]={HZ_DENG1,HZ_LU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +//非本系统IC卡 +unsigned char * STR_FBXTICK[8]={HZ_FEI1,HZ_BEN1,HZ_XI1,HZ_TONG1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*初始化IC卡成功!*/ +unsigned char * STR_CSHICKCG[9]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*登录成功!*/ +unsigned char * STR_DLCG[5]={HZ_DENG1,HZ_LU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*管理员已登录!*/ +unsigned char * STR_GLYYDL[7]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI2,HZ_DENG1,HZ_LU1,ASC16_Claim}; +/*无管理员登录!*/ +unsigned char * STR_WGLYDL[7]={HZ_WU4,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DENG1,HZ_LU1,ASC16_Claim}; +/*按确认退出登录*/ +unsigned char * STR_AQRTCDL[7]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_TUI1,HZ_CHU2,HZ_DENG1,HZ_LU1}; +/*所有管理员已退出!*/ +unsigned char * STR_SYGLYYTC[9]={HZ_SUO1,HZ_YOU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI2,HZ_TUI1,HZ_CHU2,ASC16_Claim}; +/*服务监听端口*/ +unsigned char * STR_FWJTDK[6]={HZ_FU1,HZ_WU2,HZ_JIAN2,HZ_TING1,HZ_DUAN1,HZ_KOU1}; +/*WEB 监听端口*/ +unsigned char * STR_WEBJTDK[8]={ASC16_WChar,ASC16_EChar,ASC16_BChar,ASC16_Space,HZ_JIAN2,HZ_TING1,HZ_DUAN1,HZ_KOU1}; +/*记录工作日志:[是]*/ +unsigned char * STR_JLGZRZS[11]={HZ_JI5,HZ_LU1,HZ_GONG2,HZ_ZUO1,HZ_RI1,HZ_ZHI4,ASC16_Colon,ASC16_Space,ASC16_LFBrack,HZ_SHI1,ASC16_RFBrack}; +/*记录工作日志:[否]*/ +unsigned char * STR_JLGZRZF[11]={HZ_JI5,HZ_LU1,HZ_GONG2,HZ_ZUO1,HZ_RI1,HZ_ZHI4,ASC16_Colon,ASC16_Space,ASC16_LFBrack,HZ_FOU1,ASC16_RFBrack}; +/*设置成功!*/ +unsigned char * STR_SZCG[5]={HZ_SHE1,HZ_ZHI5,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*端口值不在范围内!*/ +unsigned char * STR_DKZBZFWN[9]={HZ_DUAN1,HZ_KOU1,HZ_ZHI6,HZ_BU2,HZ_ZAI1,HZ_FAN2,HZ_WEI2,HZ_NEI1,ASC16_Claim}; +//工作日志标识错误 +unsigned char * STR_GZRZBSCW[9]={HZ_GONG2,HZ_ZUO1,HZ_RI1,HZ_ZHI4,HZ_BIAO1,HZ_SHI6,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//日志大小约 +unsigned char * STR_RZDXY[5]={HZ_RI1,HZ_ZHI4,HZ_DA2,HZ_XIAO2,HZ_YUE1}; +/*客户IP地址管理*/ +unsigned char * STR_KHIPDZGL[8]={HZ_KE1,HZ_HU1,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_GUAN1,HZ_LI1}; +/*WEB IP地址管理*/ +unsigned char * STR_WEBIPDZGL[10]={ASC16_WChar,ASC16_EChar,ASC16_BChar,ASC16_Space,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_GUAN1,HZ_LI1}; +/*增加IP地址*/ +unsigned char * STR_ZJIPDZ[6]={HZ_ZENG1,HZ_JIA1,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7}; +/*删除IP地址*/ +unsigned char * STR_SCIPDZ[6]={HZ_SHAN1,HZ_CHU3,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7}; +/*查看IP地址*/ +unsigned char * STR_CKIPDZ[6]={HZ_CHA2,HZ_KAN1,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7}; +/*请输入IP地址:*/ +unsigned char * STR_QSRIPDZ[8]={HZ_QING1,HZ_SHU1,HZ_RU1,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,ASC16_Colon}; +/*IP地址格式不正确!*/ +unsigned char * STR_IPDZGSBZQ[10]={ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_GE1,HZ_SHI5,HZ_BU2,HZ_ZHENG1,HZ_QUE1,ASC16_Claim}; +//PIN格式错误 +unsigned char * STR_PINGSCW[8]={ASC16_PChar,ASC16_IChar,ASC16_NChar,HZ_GE1,HZ_SHI5,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*掩码格式不正确!*/ +unsigned char * STR_YMGSBZQ[8]={HZ_YAN1,HZ_MA1,HZ_GE1,HZ_SHI5,HZ_BU2,HZ_ZHENG1,HZ_QUE1,ASC16_Claim}; +/*网关格式不正确!*/ +unsigned char * STR_WGGSBZQ[8]={HZ_WANG1,HZ_GUAN2,HZ_GE1,HZ_SHI5,HZ_BU2,HZ_ZHENG1,HZ_QUE1,ASC16_Claim}; +/*DNS格式不正确 !*/ +//unsigned char * STR_DNSGSBZQ[9]={ASC16_DChar,ASC16_NChar,ASC16_SChar,HZ_GE1,HZ_SHI5,HZ_BU2,HZ_ZHENG1,HZ_QUE1,ASC16_Claim}; +//日期格式不正确! +unsigned char * STR_RQGSBZQ[8]={HZ_RI1,HZ_QI2,HZ_GE1,HZ_SHI5,HZ_BU2,HZ_ZHENG1,HZ_QUE1,ASC16_Claim}; +//日期: +unsigned char * STR_RQ[3]={HZ_RI1,HZ_QI2,ASC16_Colon}; +/*时间:*/ +unsigned char * STR_SJ[3]={HZ_SHI3,HZ_JIAN5,ASC16_Colon}; +/*按确认重新输入*/ +unsigned char * STR_AQRCXSR[7]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_CHON1,HZ_XIN2,HZ_SHU1,HZ_RU1}; +/*是否要删除此IP地址? */ +unsigned char * STR_SFYSCCIPDZ[11]={HZ_SHI1,HZ_FOU1,HZ_YAO2,HZ_SHAN1,HZ_CHU3,HZ_CI1,ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,ASC16_What}; +/*按确认删除,退出取消*/ +unsigned char * STR_AQRSCTCQX[10]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_SHAN1,HZ_CHU3,ASC16_Comma,HZ_TUI1,HZ_CHU2,HZ_QU1,HZ_XIAO1}; +/*请选择网卡:*/ +unsigned char * STR_QXZWK[6]={HZ_QING1,HZ_XUAN1,HZ_ZE1,HZ_WANG1,HZ_KA1,ASC16_Colon}; +/*网卡一*/ +unsigned char * STR_WYK[3]={HZ_WANG1,HZ_KA1,HZ_YI1}; +/*网卡二*/ +unsigned char * STR_WKE[3]={HZ_WANG1,HZ_KA1,HZ_ER1}; +//密押卡处理出错 +unsigned char * STR_MYKCLCC[8]={HZ_MI1,HZ_YA1,HZ_KA1,HZ_CHU4,HZ_LI1,HZ_CHU2,HZ_CUO1,ASC16_Claim}; +//密押卡硬件操作错误 +unsigned char * STR_MYYKJCZCW[10]={HZ_MI1,HZ_YA1,HZ_KA1,HZ_YING3,HZ_JIAN3,HZ_CAO1,HZ_ZUO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*IP地址:*/ +unsigned char * STR_IPDZ[5]={ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,ASC16_Colon}; +/*掩码:*/ +unsigned char * STR_YM[3]={HZ_YAN1,HZ_MA1,ASC16_Colon}; +/*网关:*/ +unsigned char * STR_WG[3]={HZ_WANG1,HZ_GUAN2,ASC16_Colon}; +/*DNS:*/ +//unsigned char * STR_DNS[4]={ASC16_DChar,ASC16_NChar,ASC16_SChar,ASC16_Colon}; +/*IP设置成功!*/ +unsigned char * STR_IPSZCG[7]={ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*IP设置失败!*/ +unsigned char * STR_IPSZSB[7]={ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*网关设置失败!*/ +unsigned char * STR_WGSZSB[7]={HZ_WANG1,HZ_GUAN2,HZ_SHE1,HZ_ZHI5,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +//IP地址已存在 +unsigned char * STR_IPDZYCZ[8]={ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_YI2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + +/*IP地址不能为同一个网段*/ +unsigned char * STR_IPDZBNWTYGWD[10] = {ASC16_IChar,ASC16_PChar,HZ_BU2,HZ_NENG1,HZ_WEI4,HZ_TONG3,HZ_YI1,HZ_GE2,HZ_WANG1,HZ_DUAN2}; +//IP地址已满 +unsigned char * STR_IPDZYM[7]={ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_YI2,HZ_MAN1,ASC16_Claim}; +//IP地址不存在 +unsigned char * STR_IPDZBCZ[8]={ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*IP地址增加成功!*/ +unsigned char * STR_IPDZZJCG[9]={ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_ZENG1,HZ_JIA1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*密押机增加成功!*/ +unsigned char * STR_MYJZJCG[8]={HZ_MI1,HZ_YA1,HZ_JI1,HZ_ZENG1,HZ_JIA1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*保留工作日志?确认键*/ +unsigned char * STR_BLGZRZQRJ[10]={HZ_BAO1,HZ_LIU1,HZ_GONG2,HZ_ZUO1,HZ_RI1,HZ_ZHI4,ASC16_What,HZ_QUE1,HZ_REN1,HZ_JIAN1}; +/*保留,指令键不保留,*/ +unsigned char * STR_BLZLJBBL[10]={HZ_BAO1,HZ_LIU1,ASC16_Comma,HZ_ZHI8,HZ_LING1,HZ_JIAN1,HZ_BU2,HZ_BAO1,HZ_LIU1,ASC16_Comma}; +/*退出键取消*/ +unsigned char * STR_TCJQX[5]={HZ_TUI1,HZ_CHU2,HZ_JIAN1,HZ_QU1,HZ_XIAO1}; +/*请输入系统密码:*/ +unsigned char * STR_QSRXTMM[8]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_XI1,HZ_TONG1,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*恢复中...*/ +unsigned char * STR_HFZ[6]={HZ_HUI2,HZ_FU2,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*恢复完成*/ +unsigned char * STR_HFWC[4]={HZ_HUI2,HZ_FU2,HZ_WAN1,HZ_CHENG1}; +/*按确认键重新启动!*/ +unsigned char * STR_AQRJCXQD[9]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_CHON1,HZ_XIN2,HZ_QI1,HZ_DONG1,ASC16_Claim}; +/*按确认键重新启动!*/ +//unsigned char * STR_AQRJGJ[9]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_CHON1,HZ_XIN2,HZ_QI1,HZ_DONG1,ASC16_Claim}; +/*请输入原密码*/ +unsigned char * STR_QSRYMM[6]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_YUAN1,HZ_KOU1,HZ_LING1}; +/*请输入新密码*/ +unsigned char * STR_QSRXMM[6]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_XIN2,HZ_KOU1,HZ_LING1}; +/*请确认新密码*/ +unsigned char * STR_QCRXMM[6]={HZ_QING1,HZ_QUE1,HZ_REN1,HZ_XIN2,HZ_KOU1,HZ_LING1}; +/*原密码错误!*/ +unsigned char * STR_YMMCW[6]={HZ_YUAN1,HZ_KOU1,HZ_LING1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*确认密码错误!*/ +unsigned char * STR_QRMMCW[7]={HZ_QUE1,HZ_REN1,HZ_KOU1,HZ_LING1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*主密钥生成成功!*/ +unsigned char * STR_ZMYSCCG[8]={HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHENG1,HZ_CHENG1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*非三人登录!*/ +unsigned char * STR_FSRDL[6]={HZ_FEI1,HZ_SAN1,HZ_REN2,HZ_DENG1,HZ_LU1,ASC16_Claim}; +/*密钥生成失败!*/ +unsigned char * STR_MYSCSB[7]={HZ_MI1,HZ_YAO1,HZ_SHENG1,HZ_CHENG1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*请插入空白备份IC卡*/ +unsigned char * STR_QCRKBBFICK[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_KONG1,HZ_BAI1,HZ_BEI1,HZ_FEN1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*IC卡编号[1]*/ +unsigned char * STR_ICKBH[9]={ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BIAN1,HZ_HAO1,ASC16_Space,ASC16_LFBrack,ASC16_Space,ASC16_RFBrack}; +/*备份成功!*/ +unsigned char * STR_BFCG[5]={HZ_BEI1,HZ_FEN1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +//打开备份文件失败 +unsigned char * STR_DKBFWJSB[9]={HZ_DA1,HZ_KAI1,HZ_BEI1,HZ_FEN1,HZ_WEN1,HZ_JIAN3,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +//文件不存在 +unsigned char * STR_WJBCZ[6]={HZ_WEN1,HZ_JIAN3,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +//文件更新失败 +unsigned char * STR_WJGXSB[7]={HZ_WEN1,HZ_JIAN3,HZ_GENG1,HZ_XIN2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +//序号不存在 +unsigned char * STR_XHBCZ[6]={HZ_XU1,HZ_HAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*非两人登录!*/ +unsigned char * STR_FLRDL[6]={HZ_FEI1,HZ_LIANG2,HZ_REN2,HZ_DENG1,HZ_LU1,ASC16_Claim}; +/*IC卡编号错误!*/ +unsigned char * STR_ICKBHCW[8]={ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BIAN1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*备份失败!*/ +unsigned char * STR_BFSB[5]={HZ_BEI1,HZ_FEN1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/* 保留原有密钥文件? */ +unsigned char * STR_BLYYMYWJ[9]={HZ_BAO1,HZ_LIU1,HZ_YUAN1,HZ_YOU1,HZ_MI1,HZ_YAO1,HZ_WEN1,HZ_JIAN3,ASC16_What}; +/*按确认键关机!*/ +unsigned char * STR_AQRJGJ[7]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_GUAN2, HZ_JI1,ASC16_Claim}; + +/*请选择串口:*/ +unsigned char *STR_QXZCK[6]={HZ_QING1,HZ_XUAN1,HZ_ZE1,HZ_CHUAN,HZ_KOU1,ASC16_Colon}; +/*COM1*/ +unsigned char *STR_COM1[4]={ASC16_CChar,ASC16_OChar,ASC16_M_Char,ASC16_Num[1]}; +/*COM2*/ +unsigned char *STR_COM2[4]={ASC16_CChar,ASC16_OChar,ASC16_M_Char,ASC16_Num[2]}; + + + +/*按确认键保留,指令键*/ +unsigned char * STR_AQRJBLZLJ[10]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_BAO1,HZ_LIU1,ASC16_Comma,HZ_ZHI8,HZ_LING1,HZ_JIAN1}; +/*不保留,退出键取消*/ +unsigned char * STR_BBLTCJQX[9]={HZ_BU2,HZ_BAO1,HZ_LIU1,ASC16_Comma,HZ_TUI1,HZ_CHU2,HZ_JIAN1,HZ_QU1,HZ_XIAO1}; +/*请插入密钥备份IC卡*/ +unsigned char * STR_QCRMYBFICK[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_MI1,HZ_YAO1,HZ_BEI1,HZ_FEN1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*恢复成功!*/ +unsigned char * STR_HFCG[5]={HZ_HUI2,HZ_FU2,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*恢复失败!*/ +unsigned char * STR_HFSB[5]={HZ_HUI2,HZ_FU2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*发行口令*/ +unsigned char * STR_FXKL[4]={HZ_FA1,HZ_HANG1,HZ_KOU1,HZ_LING1}; +/*插入密钥发行IC卡*/ +unsigned char * STR_CRMYFXICK[9]={HZ_CHA1,HZ_RU1,HZ_MI1,HZ_YAO1,HZ_FA1,HZ_HANG1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*密钥发行成功!*/ +unsigned char * STR_MYFXCG[7]={HZ_MI1,HZ_YAO1,HZ_FA1,HZ_HANG1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*密钥发行失败!*/ +unsigned char * STR_MYFXSB[7]={HZ_MI1,HZ_YAO1,HZ_FA1,HZ_HANG1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*(无此行号)*/ +unsigned char * STR_WCHH[6]={ASC16_LBrack,HZ_WU4,HZ_CI1,HZ_HANG1,HZ_HAO1,ASC16_RBrack}; +//数据接收错误 +unsigned char * STR_SJJSCW[7]={HZ_SHU2,HZ_JU1,HZ_JIE1,HZ_SHOU2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//数据包错误 +unsigned char * STR_SJBCW[6]={HZ_SHU2,HZ_JU1,HZ_BAO2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*密钥导入成功!*/ +unsigned char * STR_MYDRCG[7]={HZ_MI1,HZ_YAO1,HZ_DAO1,HZ_RU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*行号错误!*/ +unsigned char * STR_HHCW[5]={HZ_HANG1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*行号为空!*/ +unsigned char * STR_HHWK[5]={HZ_HANG1,HZ_HAO1,HZ_WEI4,HZ_KONG1,ASC16_Claim}; +//行号已满 +unsigned char * STR_HHYM[5]={HZ_HANG1,HZ_HAO1,HZ_YI2,HZ_MAN1,ASC16_Claim}; +//行号已存在 +unsigned char * STR_HHYCZ[6]={HZ_HANG1,HZ_HAO1,HZ_YI2,HZ_CUN1, HZ_ZAI1,ASC16_Claim}; +/*处理出错!*/ +unsigned char * STR_CLCC[5]={HZ_CHU4,HZ_LI1,HZ_CHU2,HZ_CUO1,ASC16_Claim}; +//银行号不存在! +unsigned char * STR_YHHBCZ[7]={HZ_YIN1,HZ_HANG1,HZ_HAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*DAC校验错误*/ +unsigned char * STR_DACXYCW[8]={ASC16_DChar,ASC16_A_Char,ASC16_CChar,HZ_XIAO5,HZ_YAN2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//系统主密钥较验错误 +unsigned char * STR_XTZMYXYCW[10]={HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_XIAO5,HZ_YAN2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//密钥已设置 +unsigned char * STR_MYYSZ[6]={HZ_MI1,HZ_YAO1,HZ_YI2,HZ_SHE1,HZ_ZHI5,ASC16_Claim}; +//密押错误 +unsigned char * STR_MYCW[5]={HZ_MI1,HZ_YA1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//自检失败 +unsigned char * STR_ZJSB[5]={HZ_ZHI9,HZ_JIAN4,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*错误码:*/ +unsigned char * STR_CWM[4]={HZ_CUO1,HZ_WU1,HZ_MA1,ASC16_Colon}; +/*本行行号*/ +unsigned char * STR_BHHH[4]={HZ_BEN1,HZ_HANG1,HZ_HANG1,HZ_HAO1}; +/*本行密钥导入成功!*/ +unsigned char * STR_BHMYDRCG[9]={HZ_BEN1,HZ_HANG1,HZ_MI1,HZ_YAO1,HZ_DAO1,HZ_RU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*请输入行号:*/ +unsigned char * STR_QSRHH[6]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_HANG1,HZ_HAO1,ASC16_Colon}; +/*行号注销成功!*/ +unsigned char * STR_HHZXCG[7]={HZ_HANG1,HZ_HAO1,HZ_ZHU2,HZ_XIAO4,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*设置下级行密钥周期*/ +unsigned char * STR_SZXJHMYZQ[9]={HZ_SHE1,HZ_ZHI5,HZ_XIA1,HZ_JI3,HZ_HANG1,HZ_MI1,HZ_YAO1,HZ_ZHOU1,HZ_QI2}; +//密钥日期错误 +unsigned char * STR_MYRQCW[7]={HZ_MI1,HZ_YAO1,HZ_RI1,HZ_QI2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//密钥标志错误 +unsigned char * STR_MYBZCW[7]={HZ_MI1,HZ_YAO1,HZ_BIAO1,HZ_ZHI4,HZ_CUO1,HZ_WU1,ASC16_Claim}; +//加密数据长度错误 +unsigned char * STR_JMSJCDCW[9]={HZ_JIA1,HZ_MI1,HZ_SHU2,HZ_JU1,HZ_CHANG3,HZ_DU3,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*密钥日期更改成功!*/ +unsigned char * STR_MYRQGGCG[9]={HZ_MI1,HZ_YAO1,HZ_RI1,HZ_QI2,HZ_GENG1,HZ_GAI1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*此操作将导入所有下*/ +unsigned char * STR_CCZJDRSYX[9]={HZ_CI1,HZ_CAO1,HZ_ZUO1,HZ_JIANG1,HZ_DAO1,HZ_RU1,HZ_SUO1,HZ_YOU1,HZ_XIA1}; +/*级行密钥*/ +unsigned char * STR_JHMY[4]={HZ_JI3,HZ_HANG1,HZ_MI1,HZ_YAO1}; +/*查询有效行信息*/ +unsigned char * STR_CXYXHXX[7]={HZ_CHA2,HZ_XUN1,HZ_YOU1,HZ_XIAO3,HZ_HANG1,HZ_XIN1,HZ_XI2}; +/*查询加密卡行号*/ +unsigned char * STR_CXJMKHH[7]={HZ_CHA2,HZ_XUN1,HZ_JIA1,HZ_MI1,HZ_KA1,HZ_HANG1,HZ_HAO1}; + +///*查询下级行IC卡*/ +//unsigned char * STR_CXXJHICK[8]={HZ_CHA2,HZ_XUN1,HZ_XIA1,HZ_JI3,HZ_HANG1,ASC16_IChar,ASC16_CChar,HZ_KA1}; + + + +/*行号*/ +//unsigned char * STR_GRMYHH[2]={HZ_HANG1,HZ_HAO1}; +/*行号:[********]*/ +unsigned char * STR_HH[14]={HZ_HANG1,HZ_HAO1,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +/*密钥启用日期:*/ +unsigned char * STR_MYNQYRQ[8]={HZ_MI1,HZ_YAO1,ASC16_Space,HZ_QI1,HZ_YONG1,HZ_RI1,HZ_QI2,ASC16_Colon}; +/*密钥停用日期:*/ +unsigned char * STR_MYNTYRQ[8]={HZ_MI1,HZ_YAO1,ASC16_Space,HZ_TING2,HZ_YONG1,HZ_RI1,HZ_QI2,ASC16_Colon}; +/*加密卡行号*/ +unsigned char * STR_JMKHH[5]={HZ_JIA1,HZ_MI1,HZ_KA1,HZ_HANG1,HZ_HAO1}; +/*[********]*/ +unsigned char * STR_LHHR[12]={ASC16_LFBrack,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_RFBrack}; +/*下级行IC卡信息*/ +unsigned char * STR_XJHICKXX[8]={HZ_XIA1,HZ_JI3,HZ_HANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_XIN1,HZ_XI2}; +/*生成系统主密钥*/ +//unsigned char * STR_SCXTZMY[7]={HZ_SHENG1,HZ_CHENG1,HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*恢复系统主密钥*/ +unsigned char * STR_HFXTZMY[7]={HZ_HUI2,HZ_FU2,HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*分量一*/ +unsigned char * STR_FLY[3]={HZ_FEN2,HZ_LIANG1,HZ_YI1}; +/*分量二*/ +unsigned char * STR_FLE[3]={HZ_FEN2,HZ_LIANG1,HZ_ER1}; +/*分量三*/ +unsigned char * STR_FLS[3]={HZ_FEN2,HZ_LIANG1,HZ_SAN1}; +/*请插入管理员一的IC*/ +unsigned char * STR_QCRGLYYDIC[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,HZ_DE1,ASC16_IChar,ASC16_CChar}; +/*卡准备恢复密钥...*/ +unsigned char * STR_KZBHFMY[10]={HZ_KA1,HZ_ZHUN1,HZ_BEI1,HZ_HUI2,HZ_FU2,HZ_MI1,HZ_YAO1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*按确认键恢复*/ +unsigned char * STR_AQRJHF[6]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_HUI2,HZ_FU2}; +/*管理员一的IC卡*/ +unsigned char * STR_GLYYDICK[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,HZ_DE1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*恢复主密钥成功!*/ +unsigned char * STR_HFZMYCG[8]={HZ_HUI2,HZ_FU2,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +//密钥过期! +unsigned char * STR_MYGQ[5]={HZ_MI1,HZ_YAO1,HZ_GUO1,HZ_QI2,ASC16_Claim}; +//密钥未启用 +unsigned char * STR_MYWQY[6]={HZ_MI1,HZ_YAO1,HZ_WEI3,HZ_QI1,HZ_YONG1,ASC16_Claim}; +/*请插入管理员二的IC*/ +unsigned char * STR_QCRGLYEDIC[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,HZ_DE1,ASC16_IChar,ASC16_CChar}; +/*管理员二的IC卡*/ +unsigned char * STR_GLYEDICK[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,HZ_DE1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*请插入管理员三的IC*/ +unsigned char * STR_QCRGLYSDIC[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_SAN1,HZ_DE1,ASC16_IChar,ASC16_CChar}; +/*管理员三的IC卡*/ +unsigned char * STR_GLYSDICK[8]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_SAN1,HZ_DE1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*启动编核押服务*/ +unsigned char * STR_QDBHYFW[7]={HZ_QI1,HZ_DONG1,HZ_BIAN1,HZ_HE1,HZ_YA1,HZ_FU1,HZ_WU2}; +//编核押通信错误 +unsigned char * STR_BHYTXCW[8]={HZ_BIAN1,HZ_HE1,HZ_YA1,HZ_TONG2,HZ_XIN1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*IC卡不存在*/ +unsigned char * STR_ICKBCZ[7]={ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*写IC卡失败!*/ +unsigned char * STR_XICKCW[7]={HZ_XIE1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*登录号码不对*/ +unsigned char * STR_DLHMBD[7]={HZ_DENG1,HZ_LU1,HZ_HAO1,HZ_MA1,HZ_BU2,HZ_DUI1,ASC16_Claim}; +/* add by mukesong for usb update function 2011-01-20(begin) */ +/* 密押机升级 */ +unsigned char * STR_MYJSHJ[6] = {HZ_JIA1,HZ_MI1, HZ_JI1, HZ_SHENG2, HZ_JI3,ASC16_Claim}; +/* 密押机升级中 */ +unsigned char * STR_MYJSHJZ[7] = {HZ_JIA1,HZ_MI1, HZ_JI1, HZ_SHENG2, HZ_JI3, HZ_ZHONG1, ASC16_Claim}; +/* 升级成功 */ +unsigned char * STR_SHJCG[5]={HZ_SHENG2,HZ_JI3,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + + + +/* 查询 会员行IC卡*/ +unsigned char * STR_CXHYHICK[8]={HZ_CHA2,HZ_XUN1,HZ_HUI3,HZ_YUAN2,HZ_HANG1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*会员行IC卡信息*/ +unsigned char * STR_HYHICKXX[8]={HZ_HUI3,HZ_YUAN2,HZ_HANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_XIN1,HZ_XI2}; + + +/*旧密钥管理*/ +//unsigned char * STR_QSZXMYGL[8]={HZ_QING2,HZ_SUAN,HZ_ZHONG1, HZ_XIN,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; +unsigned char *STR_JMYGL[5] ={HZ_JIU,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; + + + + + + +/* 不能设置本机IP */ +unsigned char *STR_BNSZBJIP[9]= {HZ_BU2, HZ_NENG1,HZ_SHE1,HZ_ZHI5, HZ_BEN1, HZ_JI1, ASC16_IChar, ASC16_PChar, ASC16_Claim}; + +/*私钥解密错误!*/ +unsigned char *STR_SYJMCW[7] = {HZ_SI,HZ_YAO1,HZ_JIE2,HZ_MI1,HZ_CUO1,HZ_WU1,ASC16_Claim}; + +/*私钥不存在!*/ +unsigned char *STR_SYBCZ[6] = {HZ_SI,HZ_YAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + + +/*公钥不存在!*/ +unsigned char *STR_GYBCZ[6] = {HZ_GONG3,HZ_YAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + + + +/*行号不存在!*/ +unsigned char *STR_HHBCZ[6] = {HZ_HANG1,HZ_HAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + +/*按确认进行下一步*/ +unsigned char *STR_AQRJXXYB[8] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIN1,HZ_HANG1,HZ_XIA1,HZ_YI1,HZ_BU1}; + +/*密钥文件不存在!*/ +unsigned char *STR_MYWJBCZ[8] = {HZ_MI1,HZ_YAO1,HZ_WEN1,HZ_JIAN3,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + +/*中心标识不存在!*/ +unsigned char *STR_ZXBSBCZ[8] = {HZ_ZHONG1,HZ_XIN,HZ_BIAO1,HZ_SHI6,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + +/*请输入会员行行号:*/ +unsigned char *STR_QSRHYHHH[9] = {HZ_QING1,HZ_SHU1,HZ_RU1,HZ_HUI3,HZ_YUAN2,HZ_HANG1,HZ_HANG1,HZ_HAO1,ASC16_Colon}; + +/*旧密钥IC卡不存在!*/ +unsigned char *STR_JMYICKBCZ[10] = {HZ_JIU,HZ_MI1,HZ_YAO1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; + +/* 设置密钥日期已过期!*/ +unsigned char *STR_SZMYRQYGQ[10] = {HZ_SHE1, HZ_ZHI5,HZ_MI1,HZ_YAO1,HZ_RI1, HZ_QI2, HZ_YI2, HZ_GUO1, HZ_QI2,ASC16_Claim}; + + + +/* 升级文件不存在!*/ +unsigned char *STR_SJWJBCZ[8] = {HZ_SHENG2, HZ_JI3,HZ_WEN1,HZ_JIAN3,HZ_BU2, HZ_CUN1, HZ_ZAI1,ASC16_Claim}; +/* 灌装文件不存在!*/ +unsigned char *STR_GZWJBCZ[7] = {HZ_GUAN3,HZ_ZHUANG2,HZ_WEN1,HZ_JIAN3,HZ_BU2,HZ_CUN1,HZ_ZAI1}; + + + + + + + + +/*IP地址删除成功!*/ +unsigned char *STR_IPDZSCCG[9] = {ASC16_IChar,ASC16_PChar,HZ_DI2,HZ_ZHI7,HZ_SHAN1,HZ_CHU3,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + + +/*保留原有系统文件? */ +unsigned char * STR_BLYYXTWJ[9]={HZ_BAO1,HZ_LIU1,HZ_YUAN1,HZ_YOU1,HZ_XI1,HZ_TONG1,HZ_WEN1,HZ_JIAN3,ASC16_What}; + +/* U盘密钥文件格式错误 */ +unsigned char *STR_UPMYWJGSCW[10]= {ASC16_U_Char, HZ_PAN1, HZ_MI1, HZ_YAO1, HZ_WEN1, HZ_JIAN3, HZ_GE1, HZ_SHI5, HZ_CUO1, HZ_WU1}; + +/*非本机管理员卡!*/ +unsigned char *STR_FBJGLYK[8]={HZ_FEI1,HZ_BEN1,HZ_JI1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_KA1,ASC16_Claim}; + + + +/*按确认键升级*/ +unsigned char *STR_AQRJSJ[6] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_SHENG2,HZ_JI3}; + +/*升级成功!*/ +unsigned char *STR_SJCG[5] = {HZ_SHENG2,HZ_JI3,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + +/*IC卡升级中...*/ +unsigned char *STR_ICKSJZ[9] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHENG2,HZ_JI3,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; + +/*请插入管理员IC*/ +unsigned char * STR_QCRGLYICKZ[10]={HZ_QING1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_ZHUN1}; + + + + +/*按确认键继续*/ +unsigned char *STR_AQRJJX[6] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_JI2,HZ_XU3}; + +/*按退出键取消*/ +unsigned char *STR_ATCJQX[6] = {HZ_AN1,HZ_TUI1,HZ_CHU2,HZ_JIAN1,HZ_QU1,HZ_XIAO1}; + +/*文件读写错误!*/ +unsigned char *STR_WJDXCW[7] = {HZ_WEN1,HZ_JIAN3,HZ_DU1,HZ_XIE1,HZ_CUO1,HZ_WU1,ASC16_Claim}; + +/*导入工作日志*/ +unsigned char *STR_DCJYRZ[6] = {HZ_DAO1,HZ_CHU2,HZ_GONG2,HZ_ZUO1,HZ_RI1,HZ_ZHI4}; +/*导出管理日志*/ +unsigned char *STR_DCGLRZ[6] = {HZ_DAO1,HZ_CHU2,HZ_GUAN1,HZ_LI1,HZ_RI1,HZ_ZHI4}; + +/*否按退出*/ +unsigned char *STR_FATC[4] = {HZ_FOU1,HZ_AN1,HZ_TUI1,HZ_CHU2}; +/*启动网络服务*/ +unsigned char *STR_QDWLFW[6] = {HZ_QI1,HZ_DONG1,HZ_WANG1,HZ_LUO,HZ_FU1,HZ_WU2}; +/*启动串口服务管理*/ +unsigned char *STR_QDCKFW[8] = {HZ_QI1,HZ_DONG1,HZ_CHUAN,HZ_KOU1,HZ_FU1,HZ_WU2,HZ_GUAN1,HZ_LI1}; + + +/*设备公私钥备份*/ +unsigned char *STR_SBGSYBF[7] = {HZ_SHE1,HZ_BEI1,HZ_GONG3,HZ_SHI7,HZ_YAO1,HZ_BEI1,HZ_FEN1}; +/*初始口令*/ +unsigned char *STR_CSKL[5] = {HZ_CHU1,HZ_SHI2,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*输入口令*/ +unsigned char *STR_SRKL[5] = {HZ_SHU1,HZ_RU1,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*确认口令*/ +unsigned char *STR_QRKL[5] = {HZ_QUE1,HZ_REN1,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*设备公私钥恢复*/ +unsigned char *STR_SBGSYHF[7] = {HZ_SHE1,HZ_BEI1,HZ_GONG3,HZ_SHI7,HZ_YAO1,HZ_HUI2,HZ_FU2}; +/*请插入备份IC卡*/ +unsigned char *STR_QCRBFICK[8] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_BEI1,HZ_FEN1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*导入设备公钥*/ +unsigned char *STR_DRSBGY[6] = {HZ_DAO1,HZ_RU1,HZ_SHE1,HZ_BEI1,HZ_GONG3,HZ_YAO1}; +/*按确认键导入*/ +unsigned char *STR_AQRJDR[6] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_DAO1,HZ_RU1}; +/*导出设备公钥*/ +unsigned char *STR_DCSBGY[6] = {HZ_DAO1,HZ_CHU2,HZ_SHE1,HZ_BEI1,HZ_GONG3,HZ_YAO1}; +/*按确认键确定*/ +unsigned char *STR_AQRJQD[6] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_QUE1,HZ_DING}; +/*制作交易管理员*/ +unsigned char *STR_ZZJYGLY[7] = {HZ_ZHI3,HZ_ZUO1,HZ_JIAO,HZ_YI4,HZ_GUAN1,HZ_LI1,HZ_YUAN2}; +/*制作配置管理员*/ +unsigned char *STR_ZZPZGLY[7] = {HZ_ZHI3,HZ_ZUO1,HZ_PEI,HZ_ZHI5,HZ_GUAN1,HZ_LI1,HZ_YUAN2}; +/*制作密钥管理员*/ +unsigned char *STR_ZZMYGLYY[8] = {HZ_ZHI3,HZ_ZUO1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1}; +/*制作密钥管理员*/ +unsigned char *STR_ZZMYGLYE[8] = {HZ_ZHI3,HZ_ZUO1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1}; +/*制作一级管理员盾*/ +unsigned char *STR_ZZYJGLYD[8] = {HZ_ZHI3,HZ_ZUO1,HZ_YI1,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DUN}; +/*制作二级管理员盾*/ +unsigned char *STR_ZZEJGLYD[8] = {HZ_ZHI3,HZ_ZUO1,HZ_ER1,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DUN}; +/*制作三级管理员盾*/ +unsigned char *STR_ZZSJGLYD[8] = {HZ_ZHI3,HZ_ZUO1,HZ_SAN1,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DUN}; +/*加载系统主密钥*/ +unsigned char *STR_JZXTZMY[7] = {HZ_JIA1,HZ_ZAI,HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*生成系统主密钥*/ +unsigned char *STR_SCXTZMY[7] = {HZ_SHENG1,HZ_CHENG1,HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*生成后请加载主密*/ +unsigned char *STR_SCHQJZZM[8] = {HZ_SHENG1,HZ_CHENG1,HZ_HOU1,HZ_QING1,HZ_JIA1,HZ_ZAI,HZ_ZHU1,HZ_MI1}; +/*钥,使其生效!!*/ +unsigned char *STR_YSQSX[8] = {HZ_YAO1,ASC16_Comma,HZ_SHI8,HZ_QI4,HZ_SHENG1,HZ_XIAO3,ASC16_Claim,ASC16_Claim}; +/*加载将覆盖原主密钥*/ +unsigned char *STR_JZJFGYZMY[10] = {HZ_JIA1,HZ_ZAI,HZ_JIANG1,HZ_FU3,HZ_GAI2,HZ_YUAN1,HZ_ZHU1,HZ_MI1,HZ_YAO1,ASC16_Comma}; +/*所有主机端被主密钥*/ +unsigned char *STR_SYZJDBZMY[9] = {HZ_SUO1,HZ_YOU1,HZ_ZHU1,HZ_JI1,HZ_DUAN1,HZ_BEI2,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*加密的密钥必需更新*/ +unsigned char *STR_JZDMYBXGX[9] = {HZ_JIA1,HZ_MI1,HZ_DE1,HZ_MI1,HZ_YAO1,HZ_BI3,HZ_XU2,HZ_GENG1,HZ_XIN2}; +/*终端认证USBkey注册*/ +unsigned char *STR_ZDRZZC[6] = {HZ_ZHONG2,HZ_DUAN1,HZ_REN1,HZ_ZHENG3,HZ_ZHU2,HZ_CE}; +/*设置系统端口号*/ +unsigned char *STR_SZXTDKH[7] = {HZ_SHE1,HZ_ZHI5,HZ_XI1,HZ_TONG1,HZ_DUAN1,HZ_KOU1,HZ_HAO1}; +/*端口号一:*/ +unsigned char *STR_DKHY[5] = {HZ_DUAN1,HZ_KOU1,HZ_HAO1,HZ_YI1,ASC16_Colon}; +/*端口号二:*/ +unsigned char *STR_DKHE[5]= {HZ_DUAN1,HZ_KOU1,HZ_HAO1,HZ_ER1,ASC16_Colon}; +/*请输入系统口令:*/ +unsigned char *STR_QSRXTKL[8] = {HZ_QING1,HZ_SHU1,HZ_RU1,HZ_XI1,HZ_TONG1,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*串口设置*/ +unsigned char *STR_CKSZ[4] = {HZ_CHUAN,HZ_KOU1,HZ_SHE1,HZ_ZHI5}; +/*串口号:*/ +unsigned char *STR_CKH[5] = {HZ_CHUAN,HZ_KOU1,HZ_HAO1,ASC16_Colon}; +/*波特率:*/ +unsigned char *STR_BTL[5] = {HZ_BO,HZ_TE,HZ_LV,ASC16_Colon}; +/*U盾注册*/ +unsigned char *STR_UDZC[4] = {ASC16_U_Char,HZ_DUN,HZ_ZHU2,HZ_CE}; +/*请插入终端认证*/ +unsigned char *STR_QCRZDRZ[7] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_ZHONG2,HZ_DUAN1,HZ_REN1,HZ_ZHENG3}; +/*U盾!!!*/ +unsigned char *STR_UD[5] = {ASC16_U_Char,HZ_DUN,ASC16_Claim,ASC16_Claim,ASC16_Claim}; +/*按确认键注册*/ +unsigned char *STR_AQRJZZ[6] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_ZHU2,HZ_CE}; +/*超级管理员登录*/ +unsigned char * STR_CJGLYDL[7] = {HZ_CHAO,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DENG1,HZ_LU1}; +/*密钥管理员登录*/ +unsigned char * STR_MYGLYDL[7]= {HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DENG1,HZ_LU1}; +/*配置管理员登录*/ +unsigned char * STR_PZGLYDL[7]= {HZ_PEI,HZ_ZHI5,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DENG1,HZ_LU1}; +/*系统主密钥管理*/ +unsigned char * STR_XTZMYGL[7] = {HZ_XI1,HZ_TONG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; +/*主机设备公私钥管理*/ +unsigned char * STR_SBGSYGL[7] = {HZ_SHE1,HZ_BEI1,HZ_GONG3,HZ_SHI7,HZ_YAO1,HZ_GUAN1,HZ_LI1}; +/*操作员管理*/ +unsigned char * STR_CZYGL[5] = {HZ_CAO1,HZ_ZUO1,HZ_YUAN2,HZ_GUAN1,HZ_LI1}; +/*系统时间设置*/ +unsigned char * STR_XTSJSZ[6] = {HZ_XI1,HZ_TONG1,HZ_SHI3,HZ_JIAN5,HZ_SHE1,HZ_ZHI5}; +/*系统串口配置*/ +unsigned char * STR_XTCKPZ[6] = {HZ_XI1,HZ_TONG1,HZ_CHUAN,HZ_KOU1,HZ_PEI,HZ_ZHI5}; +/*国光支付密码系统*/ +unsigned char * STR_GGZFMMXT[8] = {HZ_GUO,HZ_GUANG,HZ_ZHI,HZ_FU,HZ_MI,HZ_MA,HZ_XI,HZ_TONG}; +/*SZM04-B电子支付密码系统*/ +unsigned char * STR_SZM04ZFMMXT[7] = {ASC16_S_Char,ASC16_Z_Char,ASC16_M_Char,ASC16_Num[0],ASC16_Num[4],ASC16_Sub,ASC16_B_Char}; +unsigned char * STR_SZM04ZFMMXT1[8] = {HZ_DIAN,HZ_ZHI10,HZ_ZHI,HZ_FU,HZ_MI,HZ_MA,HZ_XI,HZ_TONG}; +/*信雅达SYD5108*/ +unsigned char * STR_SYD5108[10] = {HZ_XIN1,CH_YA,CH_DA1,ASC16_S_Char,ASC16_Y_Char,ASC16_D_Char,ASC16_Num[5],ASC16_Num[1],ASC16_Num[0],ASC16_Num[8]}; +/*SSL VPN安全网关*/ +unsigned char * STR_VPNAQWG[11] = {ASC16_S_Char,ASC16_S_Char,ASC16_L_Char,ASC16_Space,ASC16_V_Char,ASC16_PChar,ASC16_N_Char,HZ_AN2,HZ_QUAN2,HZ_WANG1,HZ_GUAN2}; +/*V1.00*/ +unsigned char * STR_V100[5] = {ASC16_V_Char,ASC16_Num[1],ASC16_Dot,ASC16_Num[0],ASC16_Num[0]}; +/*V3.00*/ +unsigned char * STR_V300[5] = {ASC16_V_Char,ASC16_Num[3],ASC16_Dot,ASC16_Num[0],ASC16_Num[0]}; +/*签名验签服务器*/ +unsigned char * STR_QMYQFWQ[7] = {HZ_QIAN2,HZ_MING,HZ_YAN2,HZ_QIAN2,HZ_FU1,HZ_WU2,HZ_QI}; +/*SYD1888-G*/ +unsigned char * STR_SYD1888[9] = {ASC16_S_Char,ASC16_Y_Char,ASC16_D_Char,ASC16_Num[1],ASC16_Num[8],ASC16_Num[8],ASC16_Num[8],ASC16_Sub,ASC16_G_Char}; + +/*管理员退出登录*/ +unsigned char * STR_GLYTCDL[7] = {HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_TUI1,HZ_CHU2,HZ_DENG1,HZ_LU1}; +/*初始化口令*/ +unsigned char * STR_CSHKL[5] = {HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_KOU1,HZ_LING1}; +/*系统版本号查询*/ +unsigned char * STR_XTBBHCX[7] = {HZ_XI1,HZ_TONG1,HZ_BAN1,HZ_BEN1,HZ_HAO1,HZ_CHA2,HZ_XUN1}; +/*系统口令修改*/ +unsigned char * STR_XTKLXG[6] = {HZ_XI1,HZ_TONG1,HZ_KOU1,HZ_LING1,HZ_XIU1,HZ_GAI1}; +/*系统版本升级*/ +unsigned char * STR_XTBBSJ[6] = {HZ_XI1,HZ_TONG1,HZ_BAN1,HZ_BEN1,HZ_SHENG2,HZ_JI3}; + +/*LMK变种分量录入*/ +unsigned char * STR_LMKBZFLLR[9] = {ASC16_L_Char,ASC16_M_Char,ASC16_K_Char,HZ_BIAN,HZ_ZHONG4,HZ_FEN2,HZ_LIANG1,HZ_LU1,HZ_RU1}; + +/*LMK分量录入*/ +unsigned char * STR_LMKFLLR[7] = {ASC16_L_Char,ASC16_M_Char,ASC16_K_Char,HZ_FEN2,HZ_LIANG1,HZ_LU1,HZ_RU1}; + +/*本地主密钥管理*/ +unsigned char * STR_BDZMYGL[7] = {HZ_BEN1,HZ_DI2,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; + +/*请录入变种分量:*/ +unsigned char * STR_QLRBZFL[8] = {HZ_QING1,HZ_LU1,HZ_RU1,HZ_BIAN,HZ_ZHONG4,HZ_FEN2,HZ_LIANG1,ASC16_Colon}; +/*请重新录入变种分量:*/ +unsigned char * STR_QCXLRBZFL[10] = {HZ_QING1,HZ_CHON1,HZ_XIN2,HZ_LU1,HZ_RU1,HZ_BIAN,HZ_ZHONG4,HZ_FEN2,HZ_LIANG1,ASC16_Colon}; +/*分量录入不一致!*/ +unsigned char *STR_FLLRBYZ[8]= {HZ_FEN2,HZ_LIANG1,HZ_LU1,HZ_RU1,HZ_BU2,HZ_YI1,HZ_ZHI12,ASC16_Claim}; + + +/*系统端口号设置*/ +unsigned char * STR_XTDKHSZ[7] = {HZ_XI1,HZ_TONG1,HZ_DUAN1,HZ_KOU1,HZ_HAO1,HZ_SHE1,HZ_ZHI5}; +/*系统资源查询*/ +unsigned char * STR_XTZYCX[7] = {HZ_XI1,HZ_TONG1,HZ_ZI,HZ_YUAN3,HZ_CHA2,HZ_XUN1}; +/*IC卡口令初始化*/ +unsigned char * STR_ICKKLCSH[8] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_KOU1,HZ_LING1,HZ_CHU1,HZ_SHI2,HZ_HUA1}; +/*分量一密钥导入失败!*/ +unsigned char *STR_FLYMYDRSB[10]= {HZ_FEN2,HZ_LIANG1,HZ_YI1,HZ_MI1,HZ_YAO1,HZ_DAO1,HZ_RU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*分量二密钥导入失败!*/ +unsigned char *STR_FLEMYDRSB[10]= {HZ_FEN2,HZ_LIANG1,HZ_ER1,HZ_MI1,HZ_YAO1,HZ_DAO1,HZ_RU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*分量校验失败!*/ +unsigned char *STR_FLJYSB[7]= {HZ_FEN2,HZ_LIANG1,HZ_JIAO1,HZ_YAN2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; + + +/*备份设备密钥*/ +unsigned char * STR_BFSBMY[6] = {HZ_BEI1,HZ_FEN1,HZ_SHE1,HZ_BEI1,HZ_MI1,HZ_YAO1}; +/*恢复设备密钥*/ +unsigned char * STR_HFSBMY[6]= {HZ_HUI2,HZ_FU2,HZ_SHE1,HZ_BEI1,HZ_MI1,HZ_YAO1}; +/*请插入设备分量一IC*/ +unsigned char * STR_QCRSBFLYIC[10] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_SHE1,HZ_BEI1,HZ_FEN2,HZ_LIANG1,HZ_YI1,ASC16_IChar,ASC16_CChar}; +/*请插入设备分量二IC*/ +unsigned char * STR_QCRSBFLEIC[10] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_SHE1,HZ_BEI1,HZ_FEN2,HZ_LIANG1,HZ_ER1,ASC16_IChar,ASC16_CChar}; +/*请插入设备分量三IC*/ +unsigned char * STR_QCRSBFLSIC[10] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_SHE1,HZ_BEI1,HZ_FEN2,HZ_LIANG1,HZ_SAN1,ASC16_IChar,ASC16_CChar}; +/*设备分量一IC卡*/ +unsigned char * STR_SBFLYICK[8] = {HZ_SHE1,HZ_BEI1,HZ_FEN2,HZ_LIANG1,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*设备分量二IC卡*/ +unsigned char * STR_SBFLEICK[8] = {HZ_SHE1,HZ_BEI1,HZ_FEN2,HZ_LIANG1,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*设备分量三IC卡*/ +unsigned char * STR_SBFLSICK[8] = {HZ_SHE1,HZ_BEI1,HZ_FEN2,HZ_LIANG1,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*密押机初始化管理*/ +unsigned char * STR_MYJCSHGL[8] = {HZ_MI1,HZ_YA1,HZ_JI1,HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_GUAN1,HZ_LI1}; +/*生成设备密钥*/ +unsigned char * STR_SCSBMY[6] = {HZ_SHENG1,HZ_CHENG1,HZ_SHE1,HZ_BEI1,HZ_MI1,HZ_YAO1}; +/*查看设备信息*/ +unsigned char * STR_CKSBXX[6] = {HZ_CHA2,HZ_KAN1,HZ_SHE1,HZ_BEI1,HZ_XIN1,HZ_XI2}; +/*请插入IC卡进 */ +unsigned char * STR_QCRICKJ[11] = {HZ_QING1,HZ_CHA1,HZ_RU1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JIN1,HZ_HANG1,HZ_BEI1,HZ_FEN1,ASC16_Claim}; +/*产生设备密钥*/ +unsigned char * STR_CSSBMY[6] = {HZ_CHAN1,HZ_SHENG1,HZ_SHE1,HZ_BEI1,HZ_MI1,HZ_YAO1}; +/*按确认键产生*/ +unsigned char * STR_AQRJCS[6] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_CHAN1,HZ_SHENG1}; + +/*设备密钥产生*/ +unsigned char * STR_SBMYCS[11] = {HZ_SHE1,HZ_BEI1,HZ_MI1,HZ_YAO1,HZ_CHAN1,HZ_SHENG1,HZ_CHENG1,HZ_GONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/* PC端密钥管理*/ +unsigned char * STR_PCDMYGL[7] = {ASC16_PChar,ASC16_CChar,HZ_DUAN1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; +/*系统升级中...*/ +unsigned char * STR_XTSJZ[8] = {HZ_XI1,HZ_TONG1,HZ_SHENG2,HZ_JI3,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*请耐心等待*/ +unsigned char * STR_QNXDD[5] = {HZ_QING1,HZ_NAI,HZ_XIN,HZ_DENG2,HZ_DAI1}; +/*查看设备机具号*/ +unsigned char * STR_CKSBJJH[7] = {HZ_CHA2,HZ_KAN1,HZ_SHE1,HZ_BEI1,HZ_JI1,HZ_JU2,HZ_HAO1}; +/*查看号*/ +unsigned char * STR_CKKSNH[6] = {HZ_CHA2,HZ_KAN1,HZ_KA1,ASC16_S_Char,ASC16_N_Char,HZ_HAO1}; + + + +/*按确认键进行初始化*/ +unsigned char * STR_AQRJJXCSH[9] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_JIN1,HZ_HANG1,HZ_CHU1,HZ_SHI2,HZ_HUA1}; +/*注册集群加密机*/ +unsigned char * STR_ZCJQJMJ[7] = {HZ_ZHU2,HZ_CE,HZ_JI6,HZ_QUE2,HZ_JIA1,HZ_MI1,HZ_JI1}; +/*注册集群加密机成功*/ +unsigned char * STR_ZCJQJMJCG[9] = {HZ_ZHU2,HZ_CE,HZ_JI6,HZ_QUE2,HZ_JIA1,HZ_MI1,HZ_JI1,HZ_CHENG1,HZ_GONG1}; +/*注销集群加密机*/ +unsigned char * STR_ZXJQJMJ[7] = {HZ_ZHU2,HZ_XIAO4,HZ_JI6,HZ_QUE2,HZ_JIA1,HZ_MI1,HZ_JI1}; +/*注销集群加密机成功*/ +unsigned char * STR_ZXJQJMJCG[9] = {HZ_ZHU2,HZ_XIAO4,HZ_JI6,HZ_QUE2,HZ_JIA1,HZ_MI1,HZ_JI1,HZ_CHENG1,HZ_GONG1}; +/*更新工作密钥*/ +unsigned char * STR_GXGZMY[6] = {HZ_GENG1,HZ_XIN2,HZ_GONG2,HZ_ZUO1,HZ_MI1,HZ_YAO1}; +/*系统日志管理*/ +unsigned char * STR_XTRZGL[6] = {HZ_XI1,HZ_TONG1,HZ_RI1,HZ_ZHI4,HZ_GUAN1,HZ_LI1}; +/*设备号*/ +unsigned char * STR_SBH[4] = {HZ_SHE1,HZ_BEI1,HZ_HAO1,ASC16_Colon}; +/*版本号*/ +unsigned char * STR_BBH[4] = {HZ_BAN1,HZ_BEN1,HZ_HAO1,ASC16_Colon}; +/*输入初始口令:*/ +unsigned char * STR_SRCSKL[5] = {HZ_CHU1,HZ_SHI2,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*空白卡复制中...*/ +unsigned char * STR_KBKFZZ[9] = {HZ_KONG1,HZ_BAI1,HZ_KA1,HZ_FU2,HZ_ZHI3,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/* 设备信息*/ +unsigned char * STR_SBXX[4] = {HZ_SHE1,HZ_BEI1,HZ_XIN1,HZ_XI2}; + /*交易正确日志:[是]*/ +unsigned char * STR_JYZQRZS[10] = {HZ_JIAO,HZ_YI4,HZ_ZHENG1,HZ_QUE1,HZ_RI1,HZ_ZHI4,ASC16_Colon,ASC16_LFBrack,HZ_SHI1,ASC16_RFBrack}; + /*交易正确日志:[否]*/ +unsigned char * STR_JYZQRZF[10] = {HZ_JIAO,HZ_YI4,HZ_ZHENG1,HZ_QUE1,HZ_RI1,HZ_ZHI4,ASC16_Colon,ASC16_LFBrack,HZ_FOU1,ASC16_RFBrack}; +/*TCP日志:[是]*/ +unsigned char * STR_TCPRZS[9] = {ASC16_TChar,ASC16_CChar,ASC16_PChar,HZ_RI1,HZ_ZHI4,ASC16_Colon,ASC16_LFBrack,HZ_SHI1,ASC16_RFBrack}; +/*TCP日志:[否]*/ +unsigned char * STR_TCPRZF[9] = {ASC16_TChar,ASC16_CChar,ASC16_PChar,HZ_RI1,HZ_ZHI4,ASC16_Colon,ASC16_LFBrack,HZ_FOU1,ASC16_RFBrack}; +/*IC卡成功*/ +unsigned char * STR_ICKCG[5] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_CHENG1,HZ_GONG1}; +/*第一张IC卡备份成功! */ +unsigned char * STR_DYZICKBFCG[11] = {HZ_DI1,HZ_YI1,HZ_ZHANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BEI1,HZ_FEN1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*第二张IC卡备份成功! */ +unsigned char * STR_DEZICKBFCG[11] = {HZ_DI1,HZ_ER1,HZ_ZHANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BEI1,HZ_FEN1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; ; +/*第三张IC卡备份成功! */ +unsigned char * STR_DSZICKBFCG[11] = {HZ_DI1,HZ_SAN1,HZ_ZHANG1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_BEI1,HZ_FEN1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; ; +/*注册成功!*/ +unsigned char * STR_ZCCG[5] = {HZ_ZHU2,HZ_CE,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*输入设备号:*/ +unsigned char * STR_SRSBH[6] = {HZ_SHU1,HZ_RU1,HZ_SHE1,HZ_BEI1,HZ_HAO1,ASC16_Colon}; +/*主密钥装载成功!*/ +unsigned char * STR_ZMYZZCG[8] = {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_JIA1,HZ_ZAI,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*按确认备份主密钥*/ +unsigned char * STR_AQRBFZMY[8] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_BEI1,HZ_FEN1,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*普通交易登录*/ +unsigned char * STR_PTJYDL[6] = {HZ_PU,HZ_TONG2,HZ_JIAO,HZ_YI4,HZ_DENG1,HZ_LU1}; +/*授权状态登录*/ +unsigned char * STR_SQZTDL[6] = {HZ_SHOU1,HZ_QUAN1,HZ_ZHUANG1,HZ_TAI1,HZ_DENG1,HZ_LU1}; +/*配置管理员登录成功!*/ +unsigned char * STR_PZGLYDLCG[10]= {HZ_PEI,HZ_ZHI5,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_DENG1,HZ_LU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*取出配置管理员IC卡 */ +unsigned char * STR_QCPZGLYICK[10] ={HZ_QU1,HZ_CHU2,HZ_PEI,HZ_ZHI5,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*插入密钥管理员IC卡 */ +unsigned char * STR_CRMYGLYICK[10] ={HZ_CHA1,HZ_RU1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*请输入IC卡口令:*/ +unsigned char * STR_QSRICKKL[9] = {HZ_QING1,HZ_SHU1,HZ_RU1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_KOU1,HZ_LING1,ASC16_Colon}; +/*串口服务停止*/ +unsigned char * STR_CKFWTZ[6]= {HZ_CHUAN,HZ_KOU1,HZ_FU1,HZ_WU2,HZ_TING2,HZ_ZHI1}; +/*工作密钥更新中...*/ +unsigned char * STR_GZMYGXZ[10] = {HZ_GONG2,HZ_ZUO1,HZ_MI1,HZ_YAO1,HZ_GENG1,HZ_XIN2,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*请勿做其他操作*/ +unsigned char * STR_QWCQTCZ[7] = {HZ_QING1,HZ_WU3,HZ_ZUO2,HZ_QI4,HZ_TA,HZ_CAO1,HZ_ZUO1}; +/*密钥管理员一登录成功!*/ +unsigned char * STR_MYGLYYDLCG[9] = {HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,HZ_DENG1,HZ_LU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*插入密钥管理员IC卡 */ +unsigned char * STR_CRMYGLYICKE[9] ={HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_ER1}; +/*取出密钥管理员一IC卡 */ +unsigned char * STR_QCMYGLYYICK[9] ={HZ_QU1,HZ_CHU2,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*密钥机构管理*/ +unsigned char *STR_MYJGGL[6] = {HZ_MI1,HZ_YAO1,HZ_JI1,HZ_GOU1,HZ_GUAN1,HZ_LI1}; +/*密钥类型管理*/ +unsigned char *STR_MYLXGL[6] = {HZ_MI1,HZ_YAO1,HZ_LEI1,HZ_XING1,HZ_GUAN1,HZ_LI1}; +/*密钥产生*/ +unsigned char *STR_MYCS[4] = {HZ_MI1,HZ_YAO1,HZ_CHAN1,HZ_SHENG1}; +/*密钥查询*/ +unsigned char *STR_MYCX[4] = {HZ_MI1,HZ_YAO1,HZ_CHA2,HZ_XUN1}; +/*密钥分发*/ +unsigned char *STR_MYFF[4] = {HZ_MI1,HZ_YAO1,HZ_FEN2,HZ_FA1}; +/*密钥备份*/ +unsigned char *STR_MYBF[4] = {HZ_MI1,HZ_YAO1,HZ_BEI1,HZ_FEN1}; +/*密钥更新*/ +unsigned char *STR_MYGX[4] = {HZ_MI1,HZ_YAO1,HZ_GENG1,HZ_XIN2}; +/*密钥停用启用*/ +unsigned char *STR_MYTYQY[6] = {HZ_MI1,HZ_YAO1,HZ_TING2,HZ_YONG1,HZ_QI1,HZ_YONG1}; +/*密钥销毁*/ +unsigned char *STR_MYXH[4] = {HZ_MI1,HZ_YAO1,HZ_XIAO4,HZ_HUI4}; +/*增加密钥机构*/ +unsigned char *STR_ZJMYJG[6] = {HZ_ZENG1,HZ_JIA1,HZ_MI1,HZ_YAO1,HZ_JI1,HZ_GOU1}; +/*删除密钥机构*/ +unsigned char *STR_SCMYJG[6] = {HZ_SHAN1,HZ_CHU3,HZ_MI1,HZ_YAO1,HZ_JI1,HZ_GOU1}; +/*查看密钥机构*/ +unsigned char *STR_CKMYJG[6] = {HZ_CHA2,HZ_KAN1,HZ_MI1,HZ_YAO1,HZ_JI1,HZ_GOU1}; +/*增加密钥类型*/ +unsigned char *STR_ZJMYLX[6] = {HZ_ZENG1,HZ_JIA1,HZ_MI1,HZ_YAO1,HZ_LEI1,HZ_XING1}; +/*删除密钥类型*/ +unsigned char *STR_SCMYLX[6] = {HZ_SHAN1,HZ_CHU3,HZ_MI1,HZ_YAO1,HZ_LEI1,HZ_XING1}; +/*查看密钥类型*/ +unsigned char *STR_CKMYLX[6] = {HZ_CHA2,HZ_KAN1,HZ_MI1,HZ_YAO1,HZ_LEI1,HZ_XING1}; +/*密钥批量查询*/ +unsigned char *STR_MYPLCX[6] = {HZ_MI1,HZ_YAO1,HZ_PI,HZ_LIANG1,HZ_CHA2,HZ_XUN1}; +/*密钥单个查询*/ +unsigned char *STR_MYDGCX[6] = {HZ_MI1,HZ_YAO1,HZ_DAN,HZ_GE2,HZ_CHA2,HZ_XUN1}; +/*U盘密钥备份*/ +unsigned char *STR_UPMYBF[6] = {ASC16_U_Char,HZ_PAN1,HZ_MI1,HZ_YAO1,HZ_BEI1,HZ_FEN1}; +/*U盘密钥恢复*/ +unsigned char *STR_UPMYHF[6] = {ASC16_U_Char,HZ_PAN1,HZ_MI1,HZ_YAO1,HZ_HUI2,HZ_FU2}; +/*U盾密钥备份*/ +unsigned char *STR_UDMYBF[6] = {ASC16_U_Char,HZ_DUN,HZ_MI1,HZ_YAO1,HZ_BEI1,HZ_FEN1}; +/*U盾密钥恢复*/ +unsigned char *STR_UDMYHF[6] = {ASC16_U_Char,HZ_DUN,HZ_MI1,HZ_YAO1,HZ_HUI2,HZ_FU2}; +/*密钥批量停用*/ +unsigned char *STR_MYPLTY[6] = {HZ_MI1,HZ_YAO1,HZ_PI,HZ_LIANG1,HZ_TING2,HZ_YONG1}; +/*密钥单个停用*/ +unsigned char *STR_MYDGTY[6] = {HZ_MI1,HZ_YAO1,HZ_DAN,HZ_GE2,HZ_TING2,HZ_YONG1}; +/*密钥批量启用*/ +unsigned char *STR_MYPLQY[6] = {HZ_MI1,HZ_YAO1,HZ_PI,HZ_LIANG1,HZ_QI1,HZ_YONG1}; +/*密钥单个启用*/ +unsigned char *STR_MYDGQY[6] = {HZ_MI1,HZ_YAO1,HZ_DAN,HZ_GE2,HZ_QI1,HZ_YONG1}; +/*产生随机对称密钥*/ +unsigned char *STR_CSSJDCMY[8] = {HZ_CHAN1,HZ_SHENG1,HZ_SUI,HZ_JI1,HZ_DUI1,HZ_CHENG3,HZ_MI1,HZ_YAO1}; +/*产生RSA密钥对*/ +unsigned char *STR_CSRSAMYD[8] = {HZ_CHAN1,HZ_SHENG1,ASC16_R_Char,ASC16_SChar,ASC16_A_Char,HZ_MI1,HZ_YAO1,HZ_DUI1}; +/*产生SM2密钥对*/ +unsigned char *STR_CSSM2MYD[8] = {HZ_CHAN1,HZ_SHENG1,ASC16_SChar,ASC16_M_Char,ASC16_Num[2],HZ_MI1,HZ_YAO1,HZ_DUI1}; + +/*密钥批量销毁*/ +unsigned char *STR_MYPLXH[6] = {HZ_MI1,HZ_YAO1,HZ_PI,HZ_LIANG1,HZ_XIAO4,HZ_HUI4}; +/*密钥单个销毁*/ +unsigned char *STR_MYDGXH[6] = {HZ_MI1,HZ_YAO1,HZ_DAN,HZ_GE2,HZ_XIAO4,HZ_HUI4}; +/*请输入机构号:*/ +unsigned char *STR_QSRJGH[7] = {HZ_QING1,HZ_SHU1,HZ_RU1,HZ_JI1,HZ_GOU1,HZ_HAO1,ASC16_Colon}; +/*请输入类型号:*/ +unsigned char *STR_QSRLXH[7] = {HZ_QING1,HZ_SHU1,HZ_RU1,HZ_LEI1,HZ_XING1,HZ_HAO1,ASC16_Colon}; +/*请输秘钥索引:*/ +unsigned char *STR_QSMYSY[7] = {HZ_QING1,HZ_SHU1,HZ_MI1,HZ_YAO1,HZ_SUO3,HZ_YIN2,ASC16_Colon}; +/*先锋加载传输密钥*/ +unsigned char *STR_XFJZCSMY[8] = {HZ_XIAN,HZ_FENG1,HZ_JIA1,HZ_ZAI,HZ_CHUAN1,HZ_SHU1,HZ_MI1,HZ_YAO1}; +/*先锋主控密钥合成*/ +unsigned char *STR_XFZKMYHC[8] = {HZ_XIAN,HZ_FENG1,HZ_ZHU1,HZ_KONG2,HZ_MI1,HZ_YAO1,HZ_HE3,HZ_CHENG1}; +/*工银分量合成PIN*/ +unsigned char *STR_ZYFLHCPIN[9]= {HZ_GONG2,HZ_YIN1,HZ_FEN2,HZ_LIANG1,HZ_HE3,HZ_CHENG1,ASC16_PChar,ASC16_IChar,ASC16_NChar}; +/*工银分量合成密钥*/ +unsigned char *STR_ZYFLHCMY[8]= {HZ_GONG2,HZ_YIN1,HZ_FEN2,HZ_LIANG1,HZ_HE3,HZ_CHENG1,HZ_MI1,HZ_YAO1}; + + +/*输入密钥*/ +unsigned char *STR_SRZKMY[4] = {HZ_SHU1,HZ_RU1,HZ_MI1,HZ_YAO1}; + +/*制作密钥备份盾*/ +unsigned char *STR_ZZMYBFD[7] = {HZ_ZHI3,HZ_ZUO1,HZ_MI1,HZ_YAO1,HZ_BEI1,HZ_FEN1,HZ_DUN}; +/*制作密钥发行卡*/ +unsigned char *STR_ZZMYFXK[7] = {HZ_ZHI3,HZ_ZUO1,HZ_MI1,HZ_YAO1,HZ_FA1,HZ_HANG1,HZ_KA1}; +/*制作密钥发行盾*/ +unsigned char *STR_ZZMYFXD[7] = {HZ_ZHI3,HZ_ZUO1,HZ_MI1,HZ_YAO1,HZ_FA1,HZ_HANG1,HZ_DUN}; + + +/*请等待...*/ +unsigned char *STR_QDD[6] = {HZ_QING1, HZ_DENG2, HZ_DAI1, ASC16_Dot, ASC16_Dot, ASC16_Dot}; + +/*----------错误提示信息----------*/ +/*IC卡上电失败!*/ +unsigned char * STR_ICKSDSB[8] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHANG1,HZ_DIAN,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*IC卡状态不可用!*/ +unsigned char * STR_ICKZTBYK[9] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_ZHUANG1,HZ_TAI1,HZ_BU2,HZ_KE2,HZ_YONG1,ASC16_Claim}; +/*读IC卡设备号错误!*/ +unsigned char * STR_DICKSBHCW[10] = {HZ_DU1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHE1,HZ_BEI1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*写IC卡设备号错误!*/ +unsigned char * STR_XICKSBHCW[10] = {HZ_XIE1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHE1,HZ_BEI1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*读IC卡角色错误!*/ +unsigned char * STR_DICKJSCW[9] = {HZ_DU1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JUE,HZ_SE,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*写IC卡角色错误!*/ +unsigned char * STR_XICKJSCW[9] = {HZ_XIE1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JUE,HZ_SE,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*写IC卡数据错误!*/ +unsigned char * STR_XICKSJW[9] = {HZ_XIE1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHU2,HZ_JU1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*读IC卡数据错误!*/ +unsigned char * STR_DICKSJW[9] = {HZ_DU1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHU2,HZ_JU1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*初始化IC卡失败!*/ +unsigned char * STR_CSHICKSB[9] = {HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*非本机IC卡!*/ +unsigned char * STR_FBJICK[7] = {HZ_FEI1,HZ_BEN1,HZ_JI1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*IC卡数据错误!*/ +unsigned char * STR_ICKSJCW[8] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_SHU2,HZ_JU1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*非超级管理员IC卡!*/ +unsigned char * STR_FCJGLYICK[10] = {HZ_FEI1,HZ_CHAO,HZ_JI3,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*非密钥管理员IC卡!*/ +unsigned char * STR_FMYGLYICK[10] = {HZ_FEI1,HZ_MI1,HZ_YAO1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*非配置管理员IC卡!*/ +unsigned char * STR_FPZGLYICK[10] = {HZ_FEI1,HZ_PEI,HZ_ZHI5,HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*产生主密钥失败!*/ +unsigned char * STR_CSZMYSB[8] = {HZ_CHAN1,HZ_SHENG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*分散主密钥失败!*/ +unsigned char * STR_FSZMYSB[8] = {HZ_FEN2,HZ_SHAN2,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*备份主密钥失败!*/ +unsigned char * STR_BFZMYSB[8] = {HZ_BEI1,HZ_FEN1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*恢复主密钥失败!*/ +unsigned char * STR_HFZMYSB[8] = {HZ_HUI2,HZ_FU2,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*销毁种子失败!*/ +unsigned char * STR_XHZZSB[7] = {HZ_XIAO4,HZ_HUI4,HZ_ZHONG4,HZ_ZHI10,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*无主密钥种子!*/ +unsigned char * STR_WZMYZZ[7] = {HZ_WU4,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHONG4,HZ_ZHI10,ASC16_Claim}; +/*请插入正确IC卡*/ +unsigned char * STR_QCRZQICK[8] = {HZ_QING1,HZ_CHA1,HZ_RU1,HZ_ZHENG1,HZ_QUE1,ASC16_IChar,ASC16_CChar,HZ_KA1}; +/*取注册加密机失败!*/ +unsigned char * STR_QZCJMJSB[9] = {HZ_QU1,HZ_ZHU2,HZ_CE,HZ_JIA1,HZ_MI1,HZ_JI1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*该加密机已注册!*/ +unsigned char * STR_JMJYZC[7] = {HZ_JIA1,HZ_MI1,HZ_JI1,HZ_YI2,HZ_ZHU2,HZ_CE,ASC16_Claim}; +/*注册失败!*/ +unsigned char * STR_ZCSB[5] = {HZ_ZHU2,HZ_CE,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*注销失败!*/ +unsigned char * STR_ZXSB[5] = {HZ_ZHU2,HZ_XIAO4,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*获取日志信息错误!*/ +unsigned char * STR_HQRZXXCW[9] = {HZ_HUO2,HZ_QU1,HZ_RI1,HZ_ZHI4,HZ_XIN1,HZ_XI2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*获取设备号错误!*/ +unsigned char * STR_HQSBHCW[8]= {HZ_HUO2,HZ_QU1,HZ_SHE1,HZ_BEI1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*获取软件版本号错误!*/ +unsigned char * STR_HQRJBBHCW[10]= {HZ_HUO2,HZ_QU1,HZ_RUAN,HZ_JIAN3,HZ_BAN1,HZ_BEN1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*产生临时密钥错误!*/ +unsigned char * STR_CSLSMYCW[9]= {HZ_CHAN1,HZ_SHENG1,HZ_LIN,HZ_SHI3,HZ_MI1,HZ_YAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*临时密钥加密错误!*/ +unsigned char * STR_LSMYJMCW[9]= {HZ_LIN,HZ_SHI3,HZ_MI1,HZ_YAO1,HZ_JIA1,HZ_MI1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*主密钥转加密错误!*/ +unsigned char * STR_ZMYZJMCW[9]= {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHUAN,HZ_JIA1,HZ_MI1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*不能注册本机IC卡!*/ +unsigned char * STR_BNZCBJICK[10] = {HZ_BU2,HZ_NENG1,HZ_ZHU2,HZ_CE,HZ_BEN1,HZ_JI1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*不能注销本机IC卡!*/ +unsigned char * STR_BNZXBJICK[10] = {HZ_BU2,HZ_NENG1,HZ_ZHU2,HZ_XIAO4,HZ_BEN1,HZ_JI1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*获取主密钥状态失败!*/ +unsigned char * STR_HQZMYZTSB[10] = {HZ_HUO2,HZ_QU1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHUANG1,HZ_TAI1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*主密钥状态异常!*/ +unsigned char * STR_ZMYZTYC[8] = {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHUANG1,HZ_TAI1,HZ_YI5,HZ_CHANG1,ASC16_Claim}; +/*主密钥校验成功*/ +unsigned char * STR_ZMYJYCG[7] = {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_JIAO1,HZ_YAN2,HZ_CHENG1,HZ_GONG1}; +/*获取加载方式错误*/ +unsigned char * STR_HQJZFSCW[9] = {HZ_HUO2,HZ_QU1,HZ_JIA1,HZ_ZAI,HZ_FANG,HZ_SHI5,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*打开串口失败!*/ +unsigned char * STR_DKCKSB[7] = {HZ_DA1,HZ_KAI1,HZ_CHUAN,HZ_KOU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*配置串口失败!*/ +unsigned char * STR_PZCKSB[7]= {HZ_PEI,HZ_ZHI5,HZ_CHUAN,HZ_KOU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*创建子进程失败!*/ +unsigned char * STR_CJZJCSB[8] = {HZ_CHUANG,HZ_JIAN6,HZ_ZHI10,HZ_JIN1,HZ_CHENG2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*关闭串口失败!*/ +unsigned char * STR_GBCKSB[7] = {HZ_GUAN2,HZ_BI4,HZ_CHUAN,HZ_KOU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*结束子进程失败!*/ +unsigned char * STR_JSZJCSB[8] = {HZ_JIE4,HZ_SHU3,HZ_ZHI10,HZ_JIN1,HZ_CHENG2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*串口号超出范围!*/ +unsigned char * STR_CKHCCFW[8] = {HZ_CHUAN,HZ_KOU1,HZ_CHAO,HZ_CHU2,HZ_FAN2,HZ_WEI2,ASC16_Claim}; +/*波特率超出范围!*/ +unsigned char * STR_BTLCCFW[8] = {HZ_BO,HZ_TE,HZ_LV,HZ_CHAO,HZ_CHU2,HZ_FAN2,HZ_WEI2,ASC16_Claim}; +/*获取串口号失败!*/ +unsigned char * STR_HQCKHSB[8] = {HZ_HUO2,HZ_QU1,HZ_CHUAN,HZ_KOU1,HZ_HAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*获取波特率失败!*/ +unsigned char * STR_HQBTLSB[8] = {HZ_HUO2,HZ_QU1,HZ_BO,HZ_TE,HZ_LV,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*密钥锁异常!*/ +unsigned char * STR_MYSYC[6] = {HZ_MI1,HZ_YAO1,HZ_SUO2,HZ_YI5,HZ_CHANG1,ASC16_Claim}; +/*主密钥转加密失败!*/ +unsigned char *STR_ZMYZJMSB[9] = {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHUAN,HZ_JIA1,HZ_MI1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*获取工作目录失败!*/ +unsigned char *STR_HQGZMLSB[9] = {HZ_HUO2,HZ_QU1,HZ_GONG2,HZ_ZUO1,HZ_MU,HZ_LU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*密钥管理目录不存在!*/ +unsigned char *STR_MYGLMLBCZ[10] = {HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1,HZ_MU,HZ_LU1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*机构号不存在!*/ +unsigned char *STR_JGHBCZ[7] = {HZ_JI1,HZ_GOU1,HZ_HAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*密钥类型不存在*/ +unsigned char *STR_MYLXBCZ[8]= {HZ_MI1, HZ_YAO1,HZ_LEI1,HZ_XING1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Space}; +/*密钥已存在*/ +unsigned char *STR_MYYCZ[6]= {HZ_MI1, HZ_YAO1,HZ_YI2,HZ_CUN1,HZ_ZAI1,ASC16_Space}; +/*获取密钥失败!*/ +unsigned char *STR_HQMYSB[7] = {HZ_HUO2,HZ_QU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*计算密钥MAC失败!*/ +unsigned char *STR_JSMYJYZSB[10] = {HZ_JI4,HZ_SUAN,HZ_MI1,HZ_YAO1,HZ_JIAO1,HZ_YAN2,HZ_ZHI6,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*密钥MAC校验失败!*/ +unsigned char *STR_MYJYSB[7] = {HZ_MI1,HZ_YAO1,HZ_JIAO1,HZ_YAN2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*保存密钥失败!*/ +unsigned char *STR_BCMYSB[7] = {HZ_BAO1,HZ_CUN1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*临时区主密钥异常!*/ +unsigned char *STR_LSQZMYYC[9] = {HZ_LIN,HZ_SHI3,HZ_QU2,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_YI5,HZ_CHANG1,ASC16_Claim}; +/*销毁主密钥!*/ +unsigned char *STR_XHZMY[6] = {HZ_XIAO4,HZ_HUI2,HZ_ZHU1,HZ_MI1,HZ_YAO1,ASC16_Claim}; +/*配置文件不存在!*/ +unsigned char *STR_PZWJBCZ[8] = {HZ_PEI,HZ_ZHI5,HZ_WEN1,HZ_JIAN3,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*文件备份失败!*/ +unsigned char *STR_WJBFSB[7] = {HZ_WEN1,HZ_JIAN3,HZ_BEI1,HZ_FEN1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*文件恢复失败!*/ +unsigned char *STR_WJHFSB[7] = {HZ_WEN1,HZ_JIAN3,HZ_HUI2,HZ_FU2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*文件获取失败!*/ +unsigned char *STR_WJHQSB[7]= {HZ_WEN1,HZ_JIAN3,HZ_HUO2,HZ_QU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*文件保存失败!*/ +unsigned char *STR_WJBCSB[7] = {HZ_WEN1,HZ_JIAN3,HZ_BAO1,HZ_CUN1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*指令错误!*/ +unsigned char *STR_ZLCW[5] = {HZ_ZHI8,HZ_LING1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*等待客户端连接超时!*/ +unsigned char *STR_DDKHDLJCS[10] = {HZ_DENG2,HZ_DAI1,HZ_KE1,HZ_HU1,HZ_DUAN1,HZ_LIAN1,HZ_JIE1,HZ_CHAO,HZ_SHI3,ASC16_Claim}; +/*IC卡未发卡!*/ +unsigned char *STR_ICKWFK[7] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_WEI3,HZ_FA1,HZ_KA1,ASC16_Claim}; +/*该机具号未注册!*/ +unsigned char *STR_JJHWZC[7] = {HZ_JI1,HZ_JU2,HZ_HAO1,HZ_WEI3,HZ_ZHU2,HZ_CE,ASC16_Claim}; +/*非空白IC卡!*/ +unsigned char *STR_FKBICK[7]= {HZ_FEI1,HZ_KONG1,HZ_BAI1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Claim}; +/*串口号错误!*/ +unsigned char *STR_CKHCW[7]= {HZ_CHUAN,HZ_KOU1,HZ_HAO1,HZ_CUO1,HZ_WU1,ASC16_Claim,ASC16_Space}; +/*此IC卡被初始化过*/ +unsigned char *STR_CICKBCSHG[9]= {HZ_CI1,ASC16_IChar, ASC16_CChar,HZ_KA1, HZ_BEI2, HZ_CHU1, HZ_SHI2, HZ_HUA1, HZ_GUO1}; +/*不能重复初始化*/ +unsigned char *STR_BNCFCSH[7]= {HZ_BU2,HZ_NENG1, HZ_CHON1,HZ_FU2, HZ_CHU1, HZ_SHI2, HZ_HUA1}; +/*恢复管理员密钥*/ +unsigned char *STR_HFGLYMY[7]= {HZ_HUI2,HZ_FU2, HZ_GUAN1,HZ_LI1, HZ_YUAN2, HZ_MI1, HZ_YAO1}; +/*密钥不存在*/ +unsigned char *STR_MYBCZ[6]= {HZ_MI1, HZ_YAO1,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Space}; +/*密钥备份成功*/ +unsigned char *STR_MYBFCG[7] = {HZ_MI1,HZ_YAO1,HZ_BEI1,HZ_FEN1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*密钥恢复成功*/ +unsigned char *STR_MYHFCG[7] = {HZ_MI1,HZ_YAO1,HZ_HUI2,HZ_FU2,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*新旧标识*/ +unsigned char *STR_XJBS[5] = {HZ_XIN2, HZ_JIU, HZ_BIAO1, HZ_SHI6,ASC16_Colon}; +/*密钥状态*/ +unsigned char *STR_MYZT[5] = {HZ_MI1, HZ_YAO1, HZ_ZHUANG1, HZ_TAI1,ASC16_Colon}; +/*方案*/ +unsigned char *STR_FA[3] = {HZ_FANG, HZ_AN3,ASC16_Colon}; +/*起始日期*/ +unsigned char *STR_QSRQ[5] = {HZ_QI3, HZ_SHI2, HZ_RI1, HZ_QI2,ASC16_Colon}; +/*截止日期*/ +unsigned char *STR_JZRQ[5] = {HZ_JIE3, HZ_ZHI1, HZ_RI1, HZ_QI2,ASC16_Colon}; +/*停用*/ +unsigned char *STR_TY[2] = {HZ_TING2, HZ_YONG1}; +/*启用*/ +unsigned char *STR_QY[2] = {HZ_QI1, HZ_YONG1}; +/*未知*/ +unsigned char *STR_WZ[2] = {HZ_WEI3, HZ_ZHI11}; +/*合成密钥分量长度*/ +unsigned char *STR_HCMYFLCD[8] = {HZ_HE3, HZ_CHENG1, HZ_MI1, HZ_YAO1, HZ_FEN2, HZ_LIANG1, HZ_CHANG3,HZ_DU3}; +/*合成密钥分量个数*/ +unsigned char *STR_HCMYFLGS[8] = {HZ_HE3, HZ_CHENG1, HZ_MI1, HZ_YAO1, HZ_FEN2, HZ_LIANG1, HZ_GE2,HZ_SHU2}; +/*起始日期错误*/ +unsigned char *STR_QSRQCW[7] = {HZ_QI3, HZ_SHI2, HZ_RI1, HZ_QI2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*截止日期错误*/ +unsigned char *STR_JZRQCW[7] = {HZ_JIE3, HZ_ZHI1, HZ_RI1, HZ_QI2,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*日期格式错误*/ +unsigned char *STR_RQGSCW[7] = {HZ_RI1, HZ_QI2,HZ_GE1,HZ_SHI5,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*数据库打开失败*/ +unsigned char *STR_DKSJKCW[8] = {HZ_DA1, HZ_KAI1,HZ_SHU2,HZ_JU1,HZ_KU,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*数据库操作失败*/ +unsigned char *STR_CZSJKCW[8] = {HZ_CAO1, HZ_ZUO1,HZ_SHU2,HZ_JU1,HZ_KU,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*操作加密卡失败*/ +unsigned char *STR_CZJMKCW[8] = {HZ_CAO1, HZ_ZUO1,HZ_JIA1,HZ_MI1,HZ_KA1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*机构号已存在*/ +unsigned char *STR_JGHYCZ[6] = {HZ_JI1, HZ_GOU1,HZ_YI2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*密钥类型已存在*/ +unsigned char *STR_MYLXYCZ[8] = {HZ_MI1, HZ_YAO1,HZ_LEI1,HZ_XING1,HZ_YI2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*合成密钥失败*/ +unsigned char *STR_HCMYSB[7] = {HZ_HE3, HZ_CHENG1,HZ_MI1,HZ_YAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; +/*删除机构成功*/ +unsigned char *STR_SCJGCG[7] = {HZ_SHAN1,HZ_CHU3,HZ_JI1,HZ_GOU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*增加机构成功*/ +unsigned char *STR_ZJJGCG[7] = {HZ_ZENG1,HZ_JIA1,HZ_JI1,HZ_GOU1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*删除密钥类型成功*/ +unsigned char *STR_SCMYLXCG[9] = {HZ_SHAN1,HZ_CHU3,HZ_MI1,HZ_YAO1,HZ_LEI1,HZ_XING1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*增加密钥类型成功*/ +unsigned char *STR_ZJMYLXCG[9] = {HZ_ZENG1,HZ_JIA1,HZ_MI1,HZ_YAO1,HZ_LEI1,HZ_XING1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*操作成功*/ +unsigned char *STR_CZCG[5] = {HZ_CAO1,HZ_ZUO1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*长度域字节数:*/ +unsigned char *STR_CDYZJS[7] = {HZ_CHANG3,HZ_DU3,HZ_YU1,HZ_ZI2,HZ_JIE5,HZ_SHU2,ASC16_Colon}; +/*报文头字节数:*/ +unsigned char *STR_BWTZJS[7] = {HZ_BAO3,HZ_WEN1,HZ_TOU,HZ_ZI2,HZ_JIE5,HZ_SHU2,ASC16_Colon}; +/*报文尾字节数:*/ +unsigned char *STR_BWWZJS[7] = {HZ_BAO3,HZ_WEN1,HZ_WEI5,HZ_ZI2,HZ_JIE5,HZ_SHU2,ASC16_Colon}; +/*报文类型设置*/ +unsigned char *STR_BWLXSZ[6] = {HZ_BAO3,HZ_WEN1,HZ_LEI1,HZ_XING1,HZ_SHE1,HZ_ZHI5}; +/*报文类型设置失败*/ +unsigned char *STR_BWLXSZSB[9] = {HZ_BAO3,HZ_WEN1,HZ_LEI1,HZ_XING1,HZ_SHE1,HZ_ZHI5,HZ_SHI4, HZ_BAI2,ASC16_Claim}; + +/*按指令键修改*/ +unsigned char * STR_AZLJXG[6]={HZ_AN1,HZ_ZHI8,HZ_LING1,HZ_JIAN1,HZ_XIU1,HZ_GAI1}; + +/*ICBC报文格式*/ +unsigned char *STR_ICBCBWGS[8] = {ASC16_IChar,ASC16_CChar,ASC16_BChar,ASC16_CChar,HZ_BAO3,HZ_WEN1,HZ_GE1,HZ_SHI5}; +/*通用报文格式*/ +unsigned char *STR_TYBWGS[6] = {HZ_TONG2,HZ_YONG1,HZ_BAO3,HZ_WEN1,HZ_GE1,HZ_SHI5}; +/*编码格式EBCDIC */ +unsigned char *STR_BMGSEBCDIC[11] = {HZ_BIAN1,HZ_MA1,HZ_GE1,HZ_SHI5,ASC16_Colon,ASC16_EChar,ASC16_BChar,ASC16_CChar,ASC16_DChar,ASC16_IChar,ASC16_CChar}; +/*编码格式ASCII */ +unsigned char *STR_BMGSASCII[10] = {HZ_BIAN1,HZ_MA1,HZ_GE1,HZ_SHI5,ASC16_Colon,ASC16_A_Char,ASC16_SChar,ASC16_CChar,ASC16_IChar,ASC16_IChar}; +/*只能输入123*/ +//unsigned char *STR_ZNSR123[8]= {CH_ZHI_1,CH_NENG_1,CH_SHU_1,CH_RU_1,ASC16_Num[1],ASC16_Num[2],ASC16_Num[3],ASC16_Dot}; +/*设置完成*/ +unsigned char *STR_SZWC[5]= {HZ_SHE1,HZ_ZHI5,HZ_WAN1,HZ_CHENG1,ASC16_Claim}; +/*报文尾应小于32:*/ +unsigned char *STR_BWWYXY32[8] = {HZ_BAO3,HZ_WEN1,HZ_WEI5,HZ_YING1,HZ_XIAO2,HZ_YU2,ASC16_Num[3],ASC16_Num[2]}; +/*报文尾应小于256:*/ +unsigned char *STR_BWWYXY256[9] = {HZ_BAO3,HZ_WEN1,HZ_WEI5,HZ_YING1,HZ_XIAO2,HZ_YU2,ASC16_Num[2],ASC16_Num[5],ASC16_Num[6]}; +/*获取报文域设置失败*/ +unsigned char *STR_HQBWYSZSB[9] = {HZ_HUO2,HZ_QU1,HZ_BAO3,HZ_WEN1,HZ_YU1,HZ_SHE1,HZ_ZHI5,HZ_SHI4,HZ_BAI2}; +/*报文域设置成功*/ +unsigned char *STR_BWYSZCG[8]= {CH_BAO_1,CH_WEN_1,CH_YU_1,CH_SHE_1,CH_ZHI_3, HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*报文域设置*/ +unsigned char *STR_BWYSZ[5]= {CH_BAO_1,CH_WEN_1,CH_YU_1,CH_SHE_1,CH_ZHI_3}; +/*合成密钥错误*/ +unsigned char *STR_HCMYCW[7]= {HZ_HE3,HZ_CHENG1,HZ_MI1,HZ_YAO1,HZ_CUO1,HZ_WU1,ASC16_Claim}; + +/*密钥模长1024*/ +unsigned char *STR_MYMC1024[9]= {HZ_MI1,HZ_YAO1,HZ_MU1,HZ_CHANG3,ASC16_Colon,ASC16_Num[1],ASC16_Num[0],ASC16_Num[2],ASC16_Num[4]}; +/*密钥模长2048*/ +unsigned char *STR_MYMC2048[9]= {HZ_MI1,HZ_YAO1,HZ_MU1,HZ_CHANG3,ASC16_Colon,ASC16_Num[2],ASC16_Num[0],ASC16_Num[4],ASC16_Num[8]}; +/*密钥指数65537*/ +unsigned char *STR_MYZS65537[10]= {HZ_MI1,HZ_YAO1,HZ_ZHI8,HZ_SHU2,ASC16_Colon,ASC16_Num[6],ASC16_Num[5],ASC16_Num[5],ASC16_Num[3],ASC16_Num[7]}; +/*密钥指数3*/ +unsigned char *STR_MYZS3[6]= {HZ_MI1,HZ_YAO1,HZ_ZHI8,HZ_SHU2,ASC16_Colon,ASC16_Num[3]}; +/*空白*/ +unsigned char *STR_KONGGE[10]= {ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +/*打印对称密钥分量*/ +unsigned char *STR_DYDCMYFL[8]= {HZ_DA1,HZ_YIN3,HZ_DUI1,HZ_CHENG3,HZ_MI1,HZ_YAO1,HZ_FEN2,HZ_LIANG1}; +/*分量合成密钥*/ +unsigned char *STR_SRFLHCDCMY[6]= {HZ_FEN2,HZ_LIANG1,HZ_HE3,HZ_CHENG1,HZ_MI1,HZ_YAO1}; +/*U盾导出密钥分量*/ +unsigned char *STR_UDDCMYFL[8]= {ASC16_U_Char,HZ_DUN,HZ_DAO1,HZ_CHU2,HZ_MI1,HZ_YAO1,HZ_FEN2,HZ_LIANG1}; +/*U盾导入密钥分量*/ +unsigned char *STR_UDDRMYFL[8]= {ASC16_U_Char,HZ_DUN,HZ_DAO1,HZ_RU1,HZ_MI1,HZ_YAO1,HZ_FEN2,HZ_LIANG1}; +/*U盾导出数字信封*/ +unsigned char *STR_UDDCSZXF[8]= {ASC16_U_Char,HZ_DUN,HZ_DAO1,HZ_CHU2,HZ_SHU2,HZ_ZI2,HZ_XIN1,HZ_FENG}; +/*U盾导入数字信封*/ +unsigned char *STR_UDDRSZXF[8]= {ASC16_U_Char,HZ_DUN,HZ_DAO1,HZ_RU1,HZ_SHU2,HZ_ZI2,HZ_XIN1,HZ_FENG}; +/*请输入分量个数:*/ +unsigned char *STR_QSRFLGS[8]= {HZ_QING1,HZ_SHU1,HZ_RU1,HZ_FEN2,HZ_LIANG1,HZ_GE2,HZ_SHU2,ASC16_Colon}; +/*校验值:*/ +unsigned char *STR_JYZ[4]= {HZ_JIAO1,HZ_YAN2,HZ_ZHI6,ASC16_Colon}; +/*旧密钥个数设置*/ +unsigned char *STR_JMYGSSS[7]= {HZ_JIU,HZ_MI1,HZ_YAO1,HZ_GE2,HZ_SHU2,HZ_SHE1,HZ_ZHI5}; +/*单个更新*/ +unsigned char *STR_DGGX[4]= {HZ_DAN,HZ_GE2,HZ_GENG1,HZ_XIN2}; +/*批量更新*/ +unsigned char *STR_PLGX[4]= {HZ_PI,HZ_LIANG1,HZ_GENG1,HZ_XIN2}; +/*需保留*/ +unsigned char *STR_XBL[3]= {HZ_XU2,HZ_BAO1,HZ_LIU1}; +/*个旧密钥*/ +unsigned char *STR_GJMY[4]= {HZ_GE2,HZ_JIU,HZ_MI1,HZ_YAO1}; +/*新密钥启用日期*/ +unsigned char *STR_XMYQYRQ[8] = {HZ_XIN2,HZ_MI1,HZ_YAO1,HZ_QI1, HZ_YONG1, HZ_RI1, HZ_QI2,ASC16_Colon}; +/*新密钥停用日期*/ +unsigned char *STR_XMYTYRQ[8] = {HZ_XIN2,HZ_MI1,HZ_YAO1,HZ_TING2,HZ_YONG1,HZ_RI1, HZ_QI2,ASC16_Colon}; +/*旧密钥停用日期*/ +unsigned char *STR_JMYTYRQ[8] = {HZ_JIU,HZ_MI1,HZ_YAO1,HZ_TING2,HZ_YONG1,HZ_RI1, HZ_QI2,ASC16_Colon}; +/*密钥更新失败*/ +unsigned char *STR_MYGXSB[6]= {HZ_MI1,HZ_YAO1,HZ_GENG1,HZ_XIN2,HZ_SHI4,HZ_BAI2}; +/*获取旧密钥个数失败*/ +unsigned char *STR_HQJMYGSSB[9]= {HZ_HUO2,HZ_QU1,HZ_JIU,HZ_MI1,HZ_YAO1,HZ_GE2,HZ_SHU2,HZ_SHI4,HZ_BAI2}; +/*计算密钥MAC失败*/ +unsigned char *STR_JSMYMACSB[9]= {HZ_JI4,HZ_SUAN,HZ_MI1,HZ_YAO1,ASC16_M_Char,ASC16_A_Char,ASC16_CChar,HZ_SHI4,HZ_BAI2}; +/*产生密钥失败*/ +unsigned char *STR_CSMYSB[6]= {HZ_CHAN1,HZ_SHENG1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2}; +/*密钥方案错误*/ +unsigned char *STR_MYFACW[6]= {HZ_MI1,HZ_YAO1,HZ_FANG,HZ_AN3,HZ_CUO1,HZ_WU1}; +/*此功能暂未开放*/ +unsigned char *STR_CGNZWKF[8]= {HZ_CI1,HZ_GONG1,HZ_NENG1,HZ_ZAN,HZ_WEI3,HZ_KAI1,HZ_FANG1,ASC16_Claim}; +/*系统关机中... */ +unsigned char * STR_XTGJZ[8]={HZ_XI1,HZ_TONG1,HZ_GUAN2,HZ_JI1,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*传输密钥口令错误*/ +unsigned char * STR_CSMYKLCW[8]={HZ_CHUAN1,HZ_SHU1,HZ_MI1,HZ_YAO1,HZ_KOU1,HZ_LING1,HZ_CUO1,HZ_WU1}; +/*密押卡状态:*/ +unsigned char * STR_MYKZT[6]={HZ_MI1,HZ_YA1,HZ_KA1,HZ_ZHUANG1,HZ_TAI1,ASC16_Colon}; +/*工作正常:*/ +unsigned char * STR_GZZC[4]={HZ_GONG2,HZ_ZUO1,HZ_ZHENG1,HZ_CHANG1}; +/*工作异常:*/ +unsigned char * STR_GZYC[4]={HZ_GONG2,HZ_ZUO1,HZ_YI4,HZ_CHANG1}; +/*正常:*/ +unsigned char * STR_ZC[2]={HZ_ZHENG1,HZ_CHANG1}; +/*异常:*/ +unsigned char * STR_YC[2]={HZ_YI4,HZ_CHANG1}; +/*核心模块状态:*/ +unsigned char * STR_HMKZT[7]={HZ_HE1,HZ_XIN,HZ_MO,HZ_KUAI,HZ_ZHUANG1,HZ_TAI1,ASC16_Colon}; +//MB +unsigned char *STR_MB[2] = {ASC16_M_Char,ASC16_BChar}; +//% +unsigned char *STR_BFH[1] = {HZ_BFH}; +//交易连接数 +unsigned char *STR_JYLJS[6] = {HZ_JIAO,HZ_YI4,HZ_LIAN1,HZ_JIE1,HZ_SHU2,ASC16_Colon}; + +//CPU 可用 +unsigned char *STR_CPUYK[6] = {ASC16_CChar,ASC16_PChar,ASC16_U_Char,HZ_KE2,HZ_YONG1,ASC16_Colon}; +//内存可用 +unsigned char *STR_NCYK[5] = {HZ_NEI1,HZ_CUN1,HZ_KE2,HZ_YONG1,ASC16_Colon}; +//硬盘可用 +unsigned char *STR_YPYK[5] = {HZ_YING3,HZ_PAN1,HZ_KE2,HZ_YONG1,ASC16_Colon}; +//系统可用资源 +unsigned char *STR_XTYKZY[6] = {HZ_XI1,HZ_TONG1,HZ_KE2,HZ_YONG1,HZ_ZI,HZ_YUAN3}; + +/*初始化IC卡盾*/ +unsigned char *STR_CSHICKD[8]={HZ_CHU1,HZ_SHI2,HZ_HUA1,ASC16_IChar,ASC16_CChar,HZ_KA1,ASC16_Slash,HZ_DUN}; + + +/*管理员<1>U盾制作*/ +unsigned char *STR_GLYYUDZZ[10]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[1],ASC16_RBrack,ASC16_U_Char,HZ_DUN,HZ_ZHI3,HZ_ZUO1}; +/*管理员<2>U盾制作*/ +unsigned char *STR_GLYEUDZZ[10]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[2],ASC16_RBrack,ASC16_U_Char,HZ_DUN,HZ_ZHI3,HZ_ZUO1}; +/*管理员<3>U盾制作*/ +unsigned char *STR_GLYSUDZZ[10]={HZ_GUAN1,HZ_LI1,HZ_YUAN2,ASC16_LBrack,ASC16_Num[3],ASC16_RBrack,ASC16_U_Char,HZ_DUN,HZ_ZHI3,HZ_ZUO1}; + + +/*U盾制作成功!*/ +unsigned char *STR_UDZZCG[7]={ASC16_U_Char,HZ_DUN,HZ_ZHI3,HZ_ZUO1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*请取出管理员二U盾*/ +unsigned char *STR_QQCGLYEUD[9]={HZ_QING1,HZ_QU1,HZ_CHU2,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,ASC16_U_Char,HZ_DUN}; +/*并插入管理员三U盾*/ +unsigned char *STR_BCRGLYSUD[9]={HZ_BIN1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_SAN1,ASC16_U_Char,HZ_DUN}; +/*请取出管理员一U盾*/ +unsigned char *STR_QQCGLYYUD[9]={HZ_QING1,HZ_QU1,HZ_CHU2,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_YI1,ASC16_U_Char,HZ_DUN}; +/*并插入管理员二U盾*/ +unsigned char *STR_BCRGLYEUD[9]={HZ_BIN1,HZ_CHA1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_ER1,ASC16_U_Char,HZ_DUN}; + +/*发行盾制作*/ +unsigned char *STR_FXDZZ[5]={HZ_FA1,HZ_HANG1,HZ_DUN,HZ_ZHI3,HZ_ZUO1}; +/*备份盾制作*/ +unsigned char *STR_BFDZZ[5]={HZ_BEI1,HZ_FEN1,HZ_DUN,HZ_ZHI3,HZ_ZUO1}; +/*发行卡制作*/ +unsigned char *STR_FXKZZ[5]={HZ_FA1,HZ_HANG1,HZ_KA1,HZ_ZHI3,HZ_ZUO1}; +/*更换U盾口令*/ +unsigned char *STR_GHUDKL[6]={HZ_GENG1,HZ_HUAN1,ASC16_U_Char,HZ_DUN,HZ_KOU1,HZ_LING1}; + +/*解锁成功*/ +unsigned char *STR_JSCG[5]={HZ_JIE2,HZ_SUO2,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; +/*请输入管理员口令:*/ +unsigned char *STR_QSRGLYKL[9]={HZ_QING1,HZ_SHU1,HZ_RU1,HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_KOU1,HZ_LING1,ASC16_Colon}; + +/*更改IC卡口令*/ +unsigned char * STR_GGICKKL[7] = {HZ_GENG1,HZ_GAI1,ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_KOU1,HZ_LING1}; +/*更改IC卡管理口令*/ +unsigned char * STR_GGICKGLKL[7] = {HZ_GENG1,HZ_GAI1,HZ_KA1,HZ_GUAN1,HZ_LI1,HZ_KOU1,HZ_LING1}; +/*更改U盾口令*/ +unsigned char * STR_GGUDKL[6] = {HZ_GENG1,HZ_GAI1,ASC16_U_Char,HZ_DUN,HZ_KOU1,HZ_LING1}; +/*更改U盾管理口令*/ +unsigned char * STR_GGUDGLKL[8] = {HZ_GENG1,HZ_GAI1,ASC16_U_Char,HZ_DUN,HZ_GUAN1,HZ_LI1,HZ_KOU1,HZ_LING1}; +/*IC卡解锁*/ +unsigned char * STR_ICKJS[5] = {ASC16_IChar,ASC16_CChar,HZ_KA1,HZ_JIE2,HZ_SUO2}; +/*U盾解锁*/ +unsigned char * STR_UDJS[4] = {ASC16_U_Char,HZ_DUN,HZ_JIE2,HZ_SUO2}; + + +//更换口令失败 +unsigned char * STR_GHKLSB[7]={HZ_GENG1,HZ_HUAN1,HZ_KOU1,HZ_LING1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; + +//数字信封已存在 +unsigned char * STR_SZXFYCZ[8]={HZ_SHU2,HZ_ZI2,HZ_XIN1,HZ_FENG,HZ_YI2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +//非本机发行盾 +unsigned char * STR_FBJFXD[7]={HZ_FEI1,HZ_BEN1,HZ_JI1,HZ_FA1,HZ_HANG1,HZ_DUN,ASC16_Claim}; +//非本机备份盾 +unsigned char * STR_FBJBFD[7]={HZ_FEI1,HZ_BEN1,HZ_JI1,HZ_BEI1,HZ_FEN1,HZ_DUN,ASC16_Claim}; +//U盾未备份密钥 +unsigned char * STR_GDWBFMY[8]={ASC16_U_Char,HZ_DUN,HZ_WEI3,HZ_BEI1,HZ_FEN1,HZ_MI1,HZ_YAO1,ASC16_Claim}; + +/*U盾不存在!*/ +unsigned char *STR_UDBCZ[6]={ASC16_U_Char,HZ_DUN,HZ_BU2,HZ_CUN1,HZ_ZAI1,ASC16_Claim}; +/*U盾登录失败*/ +unsigned char *STR_UDDLSB[7]={ASC16_U_Char,HZ_DUN,HZ_DENG1,HZ_LU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*U盾制作失败*/ +unsigned char *STR_UDZZSB[7]={ASC16_U_Char,HZ_DUN,HZ_ZHI3,HZ_ZUO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; + +/*非有效U 盾!*/ +unsigned char *STR_FFUD[6] = {HZ_FEI1, HZ_YOU1, HZ_XIAO3, ASC16_U_Char, HZ_DUN, ASC16_Claim}; +/*非空白盾请初始化*/ +unsigned char *STR_FKBDQCSH[9] = {HZ_FEI1, HZ_KONG1, HZ_BAI1, HZ_DUN, HZ_QING1, HZ_CHU1, HZ_SHI2, HZ_HUA1, ASC16_Claim}; + +/*操作失败*/ +unsigned char *STR_CZSB[5]={HZ_CAO1,HZ_ZUO1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*解锁失败*/ +unsigned char *STR_JSSB[5]={HZ_JIE2,HZ_SUO2,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*查看路由信息*/ +unsigned char * STR_CKLYXX[6]={HZ_CHA2,HZ_KAN1,HZ_LU2,HZ_YOU2,HZ_XIN1,HZ_XI2}; + +/*路由已存在*/ +unsigned char * STR_BIPLYYCZ[9] = {HZ_BEN1,ASC16_IChar,ASC16_PChar,HZ_LU2, HZ_YOU2, HZ_YI2, HZ_CUN1, HZ_ZAI1, ASC16_Claim}; +/*路由添加失败*/ +unsigned char * STR_LYTJSB[7] = {HZ_LU2, HZ_YOU2, HZ_TIAN1,HZ_JIA1, HZ_SHI4, HZ_BAI2, ASC16_Claim}; +/*路由删除失败*/ +unsigned char * STR_LYSCSB[7] = {HZ_LU2, HZ_YOU2, HZ_SHAN1, HZ_CHU3, HZ_SHI4, HZ_BAI2, ASC16_Claim}; +/*路由查询失败*/ +unsigned char * STR_LYCXSB[7] = {HZ_LU2, HZ_YOU2, HZ_CHA2, HZ_XUN1, HZ_SHI4, HZ_BAI2, ASC16_Claim}; +/*IP设置*/ +unsigned char *STR_IPSZ[4] = {ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5}; +/*路由设置*/ +unsigned char *STR_LYSZ[4] = {HZ_LU2,HZ_YOU2,HZ_SHE1,HZ_ZHI5}; + +/*添加路由*/ +unsigned char *STR_TJLY[4] = {HZ_TIAN1,HZ_JIA1,HZ_LU2,HZ_YOU2}; +/*删除路由*/ +unsigned char *STR_SCLY[4] = {HZ_SHAN1,HZ_CHU3,HZ_LU2,HZ_YOU2}; +/*查询路由*/ +unsigned char *STR_CXLY[4] = {HZ_CHA2,HZ_XUN1,HZ_LU2,HZ_YOU2}; + +/*删除成功*/ +unsigned char *STR_SCCG[5] = {HZ_SHAN1,HZ_CHU3,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + +/*添加成功*/ +unsigned char *STR_TJCG[5] = {HZ_TIAN1,HZ_JIA1,HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + +/*导入变种分量失败*/ +unsigned char *STR_DRBZFLSB[9] = {HZ_DAO1,HZ_RU1,HZ_BIAN,HZ_ZHONG4,HZ_FEN2,HZ_LIANG1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*导入LMK分量失败*/ +unsigned char *STR_DRLMKFLSB[10] = {HZ_DAO1,HZ_RU1,ASC16_L_Char,ASC16_M_Char,ASC16_K_Char,HZ_FEN2,HZ_LIANG1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*管理客户IP设置*/ +unsigned char *STR_GLKJIPSZ[8] = {HZ_GUAN1,HZ_LI1,HZ_KE1,HZ_HU1,ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5}; +/*交易客户IP设置*/ +unsigned char *STR_JYKJIPSZ[8] = {HZ_JIAO,HZ_YI4,HZ_KE1,HZ_HU1,ASC16_IChar,ASC16_PChar,HZ_SHE1,HZ_ZHI5}; + +/*管理员角色值不合法*/ +unsigned char *STR_GLYJSZBHF[10] = {HZ_GUAN1,HZ_LI1,HZ_YUAN2,HZ_JUE,HZ_SE,HZ_ZHI6,HZ_BU2,HZ_HE3,HZ_FA2, ASC16_Claim}; +/*用户状态值不合法*/ +unsigned char *STR_YHZTZBHF[9] = {HZ_YONG1,HZ_HU1,HZ_ZHUANG1,HZ_TAI1,HZ_ZHI6,HZ_BU2,HZ_HE3,HZ_FA2, ASC16_Claim}; +/*远程管理已占用*/ +unsigned char *STR_YCGLYZY[8] = {HZ_YUAN4,HZ_CHENG2,HZ_GUAN1,HZ_LI1,HZ_YI2,HZ_ZHAN1,HZ_YONG1, ASC16_Claim}; +/*本地管理已占用*/ +unsigned char *STR_BDGLYZY[8] = {HZ_BEN1,HZ_DI2,HZ_GUAN1,HZ_LI1,HZ_YI2,HZ_ZHAN1,HZ_YONG1, ASC16_Claim}; + +/*请再次输入*/ +unsigned char *STR_QZCSR[5] = {HZ_QING1,HZ_ZAI2,HZ_CI2,HZ_SHU1,HZ_RU1}; +/*注册区已满!*/ +unsigned char *STR_ZCQYM[6] = {HZ_ZHU2,HZ_CE,HZ_QU2,HZ_YI2,HZ_MAN1,ASC16_Claim}; +/*主密钥校验值*/ +unsigned char *STR_ZMYJYZ[7] = {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_JIAO1,HZ_YAN2,HZ_ZHI6,ASC16_Colon}; +/*当前为普通状态*/ +unsigned char *STR_DQWPTZT[7] = {HZ_DANG1, HZ_QIAN1,HZ_WEI4,HZ_PU,HZ_TONG2,HZ_ZHUANG1,HZ_TAI1}; +/*当前为授权状态*/ +unsigned char *STR_DQWSQZT[7] = {HZ_DANG1, HZ_QIAN1,HZ_WEI4,HZ_SHOU1,HZ_QUAN1,HZ_ZHUANG1,HZ_TAI1}; +/*是否更换到授权状态?*/ +unsigned char *STR_SFGHDSQZT[10] = {HZ_SHI1,HZ_FOU1,HZ_GENG1,HZ_HUAN1, HZ_DAO2,HZ_SHOU1,HZ_QUAN1,HZ_ZHUANG1,HZ_TAI1,ASC16_What}; +/*是否更换到普通状态?*/ +unsigned char *STR_SFGHDPTZT[10] = {HZ_SHI1,HZ_FOU1,HZ_GENG1,HZ_HUAN1, HZ_DAO2,HZ_PU,HZ_TONG2,HZ_ZHUANG1,HZ_TAI1,ASC16_What}; +/*按确认键更换*/ +unsigned char *STR_AQRJGH[6] = {HZ_AN1, HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_GENG1,HZ_HUAN1}; + + +/*加密机生产测试2.01*/ +/* Start Modify by yt.chen 2016-12-08 SN:88888888 Des:修改灌装应用 */ +unsigned char *STR_JMJSCCS[10] = {HZ_JIA1, HZ_MI1, HZ_JI1, HZ_CE1,HZ_SHI9,ASC16_V_Char,ASC16_Num[2],ASC16_Dot,ASC16_Num[0],ASC16_Num[1]}; +/* End Modify by yt.chen 2016-12-08 SN:88888888 */ +/*已拷机时间*/ +unsigned char *STR_YKJSJ[5] = {HZ_YI2, HZ_KAO, HZ_JI1, HZ_SHI3, HZ_JIAN5};//wangchao add +/*拷机程序A机*/ +unsigned char *STR_KJCXAJ[6] = {HZ_KAO, HZ_JI1, HZ_CHENG2, HZ_XU1, ASC16_A_Char, HZ_JI1}; +/*拷机程序B机*/ +unsigned char *STR_KJCXBJ[6] = {HZ_KAO, HZ_JI1, HZ_CHENG2, HZ_XU1, ASC16_B_Char, HZ_JI1}; +/*加密卡测试*/ +unsigned char *STR_JMKCS[5] = {HZ_JIA1, HZ_MI1, HZ_KA1, HZ_CE1, HZ_SHI9}; +/*SYD1118卡测试*/ +unsigned char *STR_SYD1118KCS[10] = {ASC16_S_Char, ASC16_Y_Char, ASC16_D_Char,ASC16_Num[1],ASC16_Num[1],ASC16_Num[1],ASC16_Num[8], HZ_KA1,HZ_CE1, HZ_SHI9}; +/*核验卡测试*/ +unsigned char *STR_HYKCS[5] = {HZ_HE1, HZ_YAN2, HZ_KA1,HZ_CE1, HZ_SHI9}; +/*读取核验卡版本*/ +unsigned char *STR_DQHYKBB[7] = {HZ_DU1, HZ_QU1,HZ_HE1, HZ_YAN2, HZ_KA1,HZ_BAN1, HZ_BEN}; +/*核验卡功能测试*/ +unsigned char *STR_HYKGNCS[7] = {HZ_HE1, HZ_YAN2, HZ_KA1, HZ_GONG1, HZ_NENG1, HZ_CE1, HZ_SHI9}; +/*核验卡性能测试*/ +unsigned char *STR_HYKXNCS[7] = {HZ_HE1, HZ_YAN2, HZ_KA1, HZ_XING2, HZ_NENG1, HZ_CE1, HZ_SHI9}; +/*核验卡检测中*/ +unsigned char *STR_HYKJCZ[6] = {HZ_HE1, HZ_YAN2, HZ_KA1, HZ_JIAN4,HZ_CE1,HZ_ZHONG1}; +/*加密卡版本*/ +unsigned char *STR_JMKBB[5] = {HZ_JIA1, HZ_MI1, HZ_KA1, HZ_BAN1, HZ_BEN1}; + +/* 加密卡A */ +unsigned char *STR_JMKA[4] = {HZ_JIA1, HZ_MI1, HZ_KA1, ASC16_A_Char}; +/* 加密卡B */ +unsigned char *STR_JMKB[4] = {HZ_JIA1, HZ_MI1, HZ_KA1, ASC16_B_Char}; + +/* SYD1118_Card0 */ +unsigned char *STR_H_ENC_Card0[11] = {ASC16_H_Char, ASC16_across, ASC16_E_Char, ASC16_N_Char, ASC16_CChar, ASC16_across, ASC16_CChar, ASC16_aChar, ASC16_r_Char, ASC16_d_Char, ASC16_Num[0]}; +/* SYD1118_Card1 */ +unsigned char *STR_H_ENC_Card1[11] = {ASC16_H_Char, ASC16_across, ASC16_E_Char, ASC16_N_Char, ASC16_CChar, ASC16_across, ASC16_CChar, ASC16_aChar, ASC16_r_Char, ASC16_d_Char, ASC16_Num[1]}; +/* SYD1308_Card0 */ +unsigned char *STR_SYD1308_Card0[13] = {ASC16_S_Char, ASC16_Y_Char, ASC16_D_Char, ASC16_Num[1], ASC16_Num[3],ASC16_Num[0],ASC16_Num[8], ASC16_across, ASC16_CChar, ASC16_aChar, ASC16_r_Char, ASC16_d_Char, ASC16_Num[0]}; +/* EXAR_DX2040 */ +unsigned char *STR_EXAR_DX2040[11] = {ASC16_E_Char, ASC16_X_Char, ASC16_A_Char, ASC16_R_Char, ASC16_across, ASC16_D_Char, ASC16_X_Char, ASC16_Num[2], ASC16_Num[0], ASC16_Num[4], ASC16_Num[0]}; +/* HYK16 */ +unsigned char *STR_HYK16[12] = {ASC16_S_Char,ASC16_Z_Char,ASC16_M_Char,ASC16_Num[0],ASC16_Num[4], ASC16_B_Char,ASC16_Sub,ASC16_H_Char,ASC16_Y_Char, ASC16_K_Char, ASC16_Num[1], ASC16_Num[6]}; + + +/*开关机模式选择*/ +unsigned char *STR_KGJMSXZ[7] = {HZ_KAI1,HZ_GUAN2, HZ_JI1,HZ_MU1,HZ_SHI5,HZ_XUAN1,HZ_ZE1}; +/*正常模式*/ +unsigned char *STR_ZCMS[4] = {CH_ZHENG,CH_CHANG,HZ_MU1,HZ_SHI5}; +/*强制模式*/ +unsigned char *STR_QZMS[4] = {HZ_QIANG,HZ_ZHI3,HZ_MU1,HZ_SHI5}; +/*正常模式*/ +unsigned char *STR_MS1[11] = {ASC16_N_Char,ASC16_o_Char,ASC16_r_Char,ASC16_m_Char,ASC16_a_Char,ASC16_l_Char,ASC16_Num[2]}; +/*模式2*/ +unsigned char *STR_MS2[14] = {ASC16_M_Char,ASC16_a_Char,ASC16_n_Char,ASC16_d_Char,ASC16_a_Char,ASC16_t_Char,ASC16_o_Char,ASC16_r_Char,ASC16_y_Char,ASC16_Space,ASC16_m_Char,ASC16_o_Char,ASC16_d_Char,ASC16_e_Char}; + +/*串口通信测试*/ +unsigned char *STR_CKTXCS[6] = {HZ_CHUAN, HZ_KOU1, HZ_TONG2, HZ_XIN1, HZ_CE1, HZ_SHI9}; +/*并口通信测试*/ +unsigned char *STR_BKTXCS[6] = {HZ_BING1, HZ_KOU1, HZ_TONG2, HZ_XIN1, HZ_CE1, HZ_SHI9}; +/*网络通信测试*/ +unsigned char *STR_WLTXCS[6] = {HZ_WANG1, HZ_LUO, HZ_TONG2, HZ_XIN1, HZ_CE1, HZ_SHI9}; +/*网络通信测试*/ +unsigned char *STR_WL12CS[8] = {HZ_WANG1, HZ_LUO, CH_YI_1, HZ_WANG1, HZ_LUO, CH_ER_1, HZ_CE1, HZ_SHI9}; +unsigned char *STR_WL34CS[8] = {HZ_WANG1, HZ_LUO, CH_SAN_1, HZ_WANG1, HZ_LUO, CH_SI_1, HZ_CE1, HZ_SHI9}; +unsigned char *STR_WL56CS[8] = {HZ_WANG1, HZ_LUO, CH_WU_1, HZ_WANG1, HZ_LUO, CH_LIU_1, HZ_CE1, HZ_SHI9}; +unsigned char *STR_WL78CS[8] = {HZ_WANG1, HZ_LUO, CH_QI_1, HZ_WANG1, HZ_LUO, CH_BA_1, HZ_CE1, HZ_SHI9}; +/*网络光口测试*/ +unsigned char *STR_WLGKCS[6] = {HZ_WANG1, HZ_LUO, HZ_GUANG, HZ_KOU1, HZ_CE1, HZ_SHI9}; +/*网络电口测试*/ +unsigned char *STR_WLDKCS[6] = {HZ_WANG1, HZ_LUO, HZ_DIAN, HZ_KOU1, HZ_CE1, HZ_SHI9}; + +/*灌装应用程序*/ +unsigned char *STR_GZYYCX[6] = {HZ_GUAN3,HZ_ZHUANG2,HZ_YING1,HZ_YONG1,HZ_CHENG2,HZ_XU1}; +/*文件拷贝失败*/ +unsigned char *STR_WJKBSB[6] = {HZ_WEN1,HZ_JIAN3,HZ_KAO,HZ_BEI1,HZ_SHI4,HZ_BAI2}; +/* Start Add by yt.chen 2016-12-16 SN:88888888 Des:升级灌装应用 */ +/*灌装文件错误*/ +unsigned char *STR_GZWJCW[6] = {HZ_GUAN3,HZ_ZHUANG2,HZ_WEN1,HZ_JIAN3,HZ_CUO1, HZ_WU1}; +/* End Add by yt.chen 2016-12-16 SN:88888888 */ +/*增加权限失败*/ +unsigned char *STR_ZJQXSB[6] = {HZ_ZENG1,HZ_JIA1,HZ_QUAN1,HZ_XIAN1,HZ_SHI4,HZ_BAI2}; +/*灌装应用成功*/ +unsigned char *STR_GZYYCG[12] = {HZ_GUAN3,HZ_ZHUANG2,HZ_YING1,HZ_YONG1,HZ_CHENG1,HZ_GONG1}; +/*按确认键启动应用程序*/ +unsigned char *STR_AQRJQDYYCX[10] = {HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_QI1,HZ_DONG1,HZ_YING1,HZ_YONG1,HZ_CHENG2,HZ_XU1}; +/*退出返回确认启动应用*/ +unsigned char *STR_TCFHQRQDYY[10] = {HZ_TUI1,HZ_CHU2,HZ_FAN1,HZ_HUI1,HZ_QUE1,HZ_REN1,HZ_QI1,HZ_DONG1,HZ_YING1,HZ_YONG1}; + +/*按退出键返回测试*/ +unsigned char *STR_ATCJFHCS[8] = {HZ_AN1,HZ_TUI1,HZ_CHU2,HZ_JIAN1,HZ_FAN1,HZ_HUI1,HZ_CE1,HZ_SHI9}; + +/*液晶面板测试*/ +unsigned char *STR_YJMBCS[6] = {HZ_YE, HZ_JING, HZ_MIAN, HZ_BAN,HZ_CE1, HZ_SHI9}; + +/* LCD测试 */ + unsigned char* STR_LCDTS[5]={ASC16_L_Char,ASC16_CChar,ASC16_DChar,HZ_CE1, HZ_SHI9}; + +/* 按键测试 */ + unsigned char* STR_KEYTS[4]={HZ_AN1, HZ_JIAN1,HZ_CE1, HZ_SHI9}; + +/* 液晶版本 */ + unsigned char* STR_YJBB[4]={HZ_YE, HZ_JING, HZ_BAN1, HZ_BEN1}; + +/*读取系统主密钥*/ +unsigned char *STR_XHXTZMY[7] = {HZ_DU1, HZ_QU1, HZ_XI1, HZ_TONG1, HZ_ZHU1, HZ_MI1, HZ_YAO1}; + +/*生成SRAM*/ +unsigned char *STR_SCSRAM[6] = {HZ_SHENG1,HZ_CHENG1,ASC16_S_Char,ASC16_R_Char,ASC16_A_Char,ASC16_M_Char}; +/*读取SRAM*/ +unsigned char *STR_DQSRAM[6] = {HZ_DU1, HZ_QU1, ASC16_S_Char,ASC16_R_Char,ASC16_A_Char,ASC16_M_Char}; + + + + +/*获取系统时间*/ +unsigned char *STR_HQXTSJ[6] = {HZ_HUO2, HZ_QU1, HZ_XI1, HZ_TONG1, HZ_SHI3, HZ_JIAN5}; + +/*USB写操作*/ +unsigned char *STR_USBXCZ[6] = {ASC16_U_Char, ASC16_SChar, ASC16_B_Char, HZ_XIE1, HZ_CAO1, HZ_ZUO1}; + +/*USB读操作*/ +unsigned char *STR_USBDCZ[6] = {ASC16_U_Char, ASC16_SChar, ASC16_B_Char, HZ_DU1, HZ_CAO1, HZ_ZUO1}; + +/*加密机功能测试*/ +unsigned char *STR_JMJGNCS[7] = {HZ_JIA1, HZ_MI1, HZ_JI1, HZ_GONG1, HZ_NENG1, HZ_CE1,HZ_SHI9}; + +/*加密机拷机测试*/ +unsigned char *STR_JMJKJCS[7] = {HZ_JIA1, HZ_MI1, HZ_JI1, HZ_KAO, HZ_JI1, HZ_CE1,HZ_SHI9}; + +/*拷机程序测试*/ +unsigned char *STR_KJCXCS[6] = { HZ_KAO, HZ_JI1,HZ_CHENG2,HZ_XU1, HZ_CE1,HZ_SHI9}; + +/*开关机程序测试*/ +unsigned char *STR_KGJCXCS[7] = { HZ_KAI1,HZ_GUAN2, HZ_JI1,HZ_CHENG2,HZ_XU1, HZ_CE1,HZ_SHI9}; +/*开关机测试*/ +unsigned char *STR_KGJCXCSZD[7] = { HZ_KAI1,HZ_GUAN2, HZ_JI1, HZ_CE1,HZ_SHI9,HZ_ZHONG1,ASC16_Dot}; +unsigned char *STR_KGJCXCSZDD[8] = { HZ_KAI1,HZ_GUAN2, HZ_JI1, HZ_CE1,HZ_SHI9,HZ_ZHONG1,ASC16_Dot,ASC16_Dot}; +unsigned char *STR_KGJCXCSZDDD[9] = { HZ_KAI1,HZ_GUAN2, HZ_JI1, HZ_CE1,HZ_SHI9,HZ_ZHONG1,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +unsigned char *STR_KGJCSSB[9] = { HZ_KAI1,HZ_GUAN2, HZ_JI1, HZ_CE1,HZ_SHI9,HZ_SHI4,HZ_BAI2,ASC16_Claim,ASC16_Claim}; + + +/*算法测试*/ +unsigned char *STR_SFCS[4] = {HZ_SUAN, HZ_FA2, HZ_CE1,HZ_SHI9}; +/*FLASH测试*/ +unsigned char *STR_FLASHCS[7] = {QJ_F,QJ_L,QJ_A,QJ_S,QJ_H, HZ_CE1,HZ_SHI9}; +/*SDRAM测试*/ +unsigned char *STR_SDRAMCS[7] = {QJ_S,QJ_D,QJ_R,QJ_A,QJ_M, HZ_CE1,HZ_SHI9}; +/*密钥RAM测试*/ +unsigned char *STR_MYRAMCS[7] = {HZ_MI1,HZ_YAO1,QJ_R,QJ_A,QJ_M, HZ_CE1,HZ_SHI9}; +/*随机数快检*/ +unsigned char *STR_SJSKJ[5] = {HZ_SUI,HZ_JI1,HZ_SHU2,HZ_KUAI1,HZ_JIAN4}; +/*随机数检测*/ +unsigned char *STR_SJSJC[5] = {HZ_SUI,HZ_JI1,HZ_SHU2,HZ_JIAN4,HZ_CE1}; +/*读测试*/ +unsigned char *STR_DCS[3] = {HZ_DU1,HZ_CE1,HZ_SHI9}; +/*写测试*/ +unsigned char *STR_XCS[3] = {HZ_XIE1,HZ_CE1,HZ_SHI9}; +/*拷机失败*/ +unsigned char *STR_KJSB[5] = {HZ_KAO, HZ_JI1, HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/*拷机成功*/ +unsigned char *STR_KJCG[5] = {HZ_KAO, HZ_JI1, HZ_CHENG1,HZ_GONG1,ASC16_Claim}; + +/*U盾初始化*/ +unsigned char * STR_UKCSH[5]={ASC16_U_Char, HZ_DUN,HZ_CHU1,HZ_SHI2,HZ_HUA1}; + +/*U盾写操作*/ +unsigned char *STR_UKXCZ[5] = {ASC16_U_Char, HZ_DUN, HZ_XIE1, HZ_CAO1, HZ_ZUO1}; +/* 一键查看信息 */ +unsigned char * STR_YJCKXX[6] = {HZ_YI1,HZ_JIAN1,HZ_CHA2,HZ_KAN1,HZ_XIN1,HZ_XI2}; +/*U盾读操作*/ +unsigned char *STR_UKDCZ[5] = {ASC16_U_Char,HZ_DUN , HZ_DU1, HZ_CAO1, HZ_ZUO1}; +/* IP信息 */ +unsigned char *STR_IP[4] = {ASC16_IChar, ASC16_PChar, HZ_XIN1,HZ_XI2}; +/* IP信息 */ +unsigned char *STR_IP_[3] = {ASC16_IChar, ASC16_PChar, ASC16_Colon}; +/* MAC */ +unsigned char *STR_MAC[4] = {ASC16_M_Char, ASC16_A_Char, ASC16_CChar,ASC16_Colon}; +/*BIOS信息*/ +unsigned char *STR_BIOS[6] = {ASC16_B_Char,ASC16_IChar,ASC16_OChar,ASC16_S_Char,HZ_XIN1,HZ_XI2}; +/* 风扇信息 */ +unsigned char * STR_QTXX[4] = {HZ_FENG2,HZ_SHAN,HZ_XIN1,HZ_XI2}; +/* 主板信息 */ +unsigned char * STR_ZBXX[4] = {HZ_ZHU1,HZ_BAN,HZ_XIN1,HZ_XI2}; +/* neicun信息 */ +unsigned char * STR_NCXX[4] = {HZ_NEI1,HZ_CUN1,HZ_XIN1,HZ_XI2}; +/* CPU信息 */ +unsigned char * STR_CPUXX[5] = {ASC16_CChar,ASC16_PChar,ASC16_U_Char,HZ_XIN1,HZ_XI2}; +/*U盾初始化成功*/ +unsigned char * STR_UKCSHCH[7]={ASC16_U_Char, HZ_DUN,HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_CHENG1,HZ_GONG1}; + +//U盾测试 +unsigned char* STR_UKCS[4]={ASC16_U_Char,HZ_DUN,HZ_CE1,HZ_SHI9}; +//U盾不存在 +unsigned char* STR_UKCCZ[5]={ASC16_U_Char,HZ_DUN,HZ_BU2,HZ_CUN1,HZ_ZAI1}; +//输入测试数据 +unsigned char* STR_SRCSSJ[12]={HZ_SHU1,HZ_RU1,HZ_CE1,HZ_SHI9,HZ_SHU2,HZ_JU1,ASC16_Colon,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +/* 密码数字显示 */ +unsigned char SHOW_NUM[13] = {'0','1','2','3','4','5','6','7','8','9','*','_',' '}; +//写数据成功 +unsigned char* STR_XSJCG[13]={HZ_XIE1,HZ_SHU2,HZ_JU1,HZ_CHENG1,HZ_GONG1,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +//写数据失败 +unsigned char* STR_XSJSB[13]={HZ_XIE1,HZ_SHU2,HZ_JU1,HZ_SHI4,HZ_BAI2,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +//读出数据为: +unsigned char* STR_USBSJS[6]={HZ_DU1,HZ_CHU2,HZ_SHU2,HZ_JU1,HZ_WEI4,ASC16_Colon}; +//读出数据失败! +unsigned char* STR_DSJSB[7]={HZ_DU1,HZ_CHU2,HZ_SHU2,HZ_JU1,HZ_SHI4,HZ_BAI2,ASC16_Claim}; +/* raid信息 */ +unsigned char * STR_RAID[6] = {ASC16_R_Char,ASC16_A_Char,ASC16_IChar,ASC16_DChar,HZ_XIN1,HZ_XI2}; +/* raid级别: */ +unsigned char * STR_RAIDJB[7] = {ASC16_R_Char,ASC16_A_Char,ASC16_IChar,ASC16_DChar,HZ_DENG2,HZ_JI3,ASC16_Colon}; +/* 设备状态: */ +unsigned char * STR_SBZT[5] = {HZ_SHE1,HZ_BEI1,HZ_ZHUANG1,HZ_TAI1,ASC16_Colon}; +/* 设备数量: */ +unsigned char * STR_SBSL[5] = {HZ_SHE1,HZ_BEI1,HZ_SHU2,HZ_LIANG1,ASC16_Colon}; +/* 失败 */ +unsigned char * STR_SB[2] = {HZ_SHI4,HZ_BAI2}; +/* 成功 */ +unsigned char * STR_CG[2]= {HZ_CHENG1,HZ_GONG1}; +/* 恢复 */ +unsigned char * STR_HF[2]= {HZ_HUI2,HZ_FU2}; + + + +/*系统镜像版本*/ +unsigned char *STR_XTJXBB[6] = {HZ_XI1, HZ_TONG1, HZ_JING1, HZ_XIANG, HZ_BAN1, HZ_BEN1}; + +/*系统数据版本*/ +unsigned char *STR_XTSJBB[6] = {HZ_XI1, HZ_TONG1, HZ_SHU2, HZ_JU1, HZ_BAN1, HZ_BEN1}; + +/*硬盘容量*/ +unsigned char *STR_YBRL[4] = {HZ_YING3, HZ_PAN1, HZ_RONG, HZ_LIANG1}; + +/*串口测试*/ +unsigned char *STR_CKJC[4] = {HZ_CHUAN,HZ_KOU1, HZ_JIAN4,HZ_CE1}; + +/*串口测试中*/ +unsigned char *STR_CKJCZ[5] = {HZ_CHUAN,HZ_KOU1, HZ_JIAN4,HZ_CE1,HZ_ZHONG1}; + +/*串口测试成功*/ +unsigned char *STR_CKJCCG[6] = {HZ_CHUAN,HZ_KOU1, HZ_JIAN4,HZ_CE1,HZ_CHENG1, HZ_GONG1}; +/*串口测试失败*/ +unsigned char *STR_CKJCSP[6] = {HZ_CHUAN,HZ_KOU1, HZ_JIAN4,HZ_CE1,HZ_SHI4, HZ_BAI2}; + +/*读取加密卡版本*/ +unsigned char *STR_DQJMKBB[7] = {HZ_DU1, HZ_QU1, HZ_JIA1, HZ_MI1,HZ_KA1, HZ_BAN1, HZ_BEN1}; + +/*一键导出日志*/ +unsigned char *STR_YJDCRZ[6] = {CH_YI_1,CH_JIAN_1,HZ_DAO1,HZ_CHU2,HZ_RI1,HZ_ZHI4}; +/* DX2040 版本 */ +unsigned char *STR_DX2040BB[8] = {ASC16_D_Char, ASC16_X_Char, ASC16_Num[2], ASC16_Num[0], ASC16_Num[4], ASC16_Num[0], HZ_BAN1, HZ_BEN}; +/* DX2040 测试 */ +unsigned char *STR_DX2040CS[8] = {ASC16_D_Char, ASC16_X_Char, ASC16_Num[2], ASC16_Num[0], ASC16_Num[4], ASC16_Num[0], HZ_CE1, HZ_SHI9}; + +/* DX2040 测试中 */ +unsigned char *STR_DX2040CSZ[9] = {ASC16_D_Char, ASC16_X_Char, ASC16_Num[2], ASC16_Num[0], ASC16_Num[4], ASC16_Num[0], HZ_CE1, HZ_SHI9, HZ_ZHONG1}; +/* DX2040 测试成功 */ +unsigned char *STR_DX2040CSCG[10] = { ASC16_D_Char, ASC16_X_Char, ASC16_Num[2], ASC16_Num[0], ASC16_Num[4], ASC16_Num[0], HZ_CE1, HZ_SHI9, HZ_CHENG1, HZ_GONG1}; +/* DX2040 测试失败 */ +unsigned char *STR_DX2040CSSB[10] = {ASC16_D_Char, ASC16_X_Char, ASC16_Num[2], ASC16_Num[0], ASC16_Num[4], ASC16_Num[0], HZ_CE1, HZ_SHI9, HZ_SHI4, HZ_BAI2}; +/* 选择光口类型: */ +unsigned char * STR_XZGKLX[7] = {HZ_XUAN1,HZ_ZE1,HZ_GUANG,HZ_KOU1,HZ_LEI1,HZ_XING1,ASC16_Colon}; +/* 选择EXAR卡数量: */ +unsigned char * STR_XZEXSL[10] = {HZ_XUAN1,HZ_ZE1,ASC16_E_Char,ASC16_X_Char,ASC16_A_Char,ASC16_R_Char,HZ_KA1,HZ_SHU2,HZ_LIANG1,ASC16_Colon}; +/* 选择H卡数量: */ +unsigned char * STR_XZHCSL[7] = {HZ_XUAN1,HZ_ZE1,ASC16_H_Char,HZ_KA1,HZ_SHU2,HZ_LIANG1,ASC16_Colon}; +/* 选择RAID卡: */ +unsigned char * STR_XZRAIDK[8] = {HZ_XUAN1,HZ_ZE1,ASC16_R_Char,ASC16_A_Char,ASC16_IChar,ASC16_D_Char,HZ_KA1,ASC16_Colon}; +/* 选择核验卡数量: */ +unsigned char * STR_XZHYKSL[8] = {HZ_XUAN1,HZ_ZE1,HZ_HE1,HZ_YAN2,HZ_KA1,HZ_SHU2,HZ_LIANG1,ASC16_Colon}; +/* 选择SYD1308卡数量: */ +unsigned char * STR_XZSYD1308KSL[13] = {HZ_XUAN1,HZ_ZE1,ASC16_S_Char,ASC16_Y_Char,ASC16_D_Char,ASC16_Num[1],ASC16_Num[3],ASC16_Num[0],ASC16_Num[8],HZ_KA1,HZ_SHU2,HZ_LIANG1,ASC16_Colon}; +/* 0张 */ +unsigned char * STR_ZERO[2] = {ASC16_Num[0],HZ_ZHANG1}; +/* 1张 */ +unsigned char * STR_ONE[2] = {ASC16_Num[1],HZ_ZHANG1}; +/* 2张 */ +unsigned char * STR_TWO[2] = {ASC16_Num[2],HZ_ZHANG1}; + +/* 千兆网卡 */ +unsigned char * STR_QZWK[4] = {HZ_QIAN,HZ_ZHAO,HZ_WANG1,HZ_KA1}; + +/* 4口千兆网卡 */ +unsigned char * STR_4KQZWK[6] = {ASC16_Num[4],HZ_KOU1,HZ_QIAN,HZ_ZHAO,HZ_WANG1,HZ_KA1}; +/* 2口千兆网卡 */ +unsigned char * STR_2KQZWK[6] = {ASC16_Num[2],HZ_KOU1,HZ_QIAN,HZ_ZHAO,HZ_WANG1,HZ_KA1}; + +/* 万兆网卡 */ +unsigned char * STR_WZWK[4] = {HZ_WAN,HZ_ZHAO,HZ_WANG1,HZ_KA1}; + +/* 4口万兆网卡 */ +unsigned char * STR_4KWZWK[6] = {ASC16_Num[4],HZ_KOU1,HZ_WAN,HZ_ZHAO,HZ_WANG1,HZ_KA1}; +/* 2口万兆网卡 */ +unsigned char * STR_2KWZWK[6] = {ASC16_Num[2],HZ_KOU1,HZ_WAN,HZ_ZHAO,HZ_WANG1,HZ_KA1}; +/* 2口万兆网卡数量 */ +unsigned char * STR_2KWZWKSL[9] = {ASC16_Num[2],HZ_KOU1,HZ_WAN,HZ_ZHAO,HZ_WANG1,HZ_KA1,HZ_SHU2,HZ_LIANG1,ASC16_Colon}; + +/* 无 */ +unsigned char * STR_WU[1] = {HZ_WU4}; +/* 有 */ +unsigned char * STR_YOU[1] = {HZ_YOU1}; + +unsigned char * STR_SRZQQSD[8] = {HZ_SHU1,HZ_RU1,HZ_ZHENG1,HZ_QUE1,ASC16_Comma,HZ_QING1,HZ_DENG2,HZ_DAI1}; +unsigned char * STR_SHRBZQ[6] = {HZ_SHU1,HZ_RU1,HZ_BU2,HZ_ZHENG1,HZ_QUE1,ASC16_Claim}; +/* 按任意键退出 */ +unsigned char *STR_ARYJTC[12] = {HZ_AN1, HZ_REN3, HZ_YI6, HZ_JIAN1, HZ_TUI1, HZ_CHU2, HZ_Space, HZ_Space, HZ_Space, HZ_Space, HZ_Space, HZ_Space}; +unsigned char *STR_XTCQZ[5] = {HZ_XI1, HZ_TONG1, HZ_CHON1,HZ_QI1, HZ_ZHONG1}; + +/*核验卡性能测试成功*/ +unsigned char *STR_HYKXNCSCG[9] = {HZ_HE1, HZ_YAN2, HZ_KA1, HZ_XING2, HZ_NENG1, HZ_CE1, HZ_SHI9, HZ_CHENG1, HZ_GONG1}; +/*核验卡性能测试失败*/ +unsigned char *STR_HYKXNCSSP[9] = {HZ_HE1, HZ_YAN2, HZ_KA1, HZ_XING2, HZ_NENG1, HZ_CE1, HZ_SHI9, HZ_SHI4, HZ_BAI2}; +/* 核验卡自检: */ +unsigned char * STR_HYKZJ[6] = {HZ_HE1,HZ_YAN2,HZ_KA1,HZ_ZHI9,HZ_JIAN4,ASC16_Colon}; +/* 生成MK: */ +unsigned char * STR_SCMK[5] = {HZ_SHENG1,HZ_CHENG1,ASC16_M_Char,ASC16_K_Char,ASC16_Colon}; +/* 读入MK: */ +unsigned char * STR_DQMK[5] = {HZ_DU1,HZ_QU1,ASC16_M_Char,ASC16_K_Char,ASC16_Colon}; +/* 核验卡核验: */ +unsigned char * STR_HYKHY[6] = {HZ_HE1,HZ_YAN2,HZ_KA1,HZ_HE1,HZ_YAN2,ASC16_Colon}; +/* 核验卡增发: */ +unsigned char * STR_HYKZF[6] = {HZ_HE1,HZ_YAN2,HZ_KA1,HZ_ZENG1,HZ_FA1,ASC16_Colon}; +/* 更新主密钥: */ +unsigned char * STR_GXZMY[6] = {HZ_GENG1,HZ_XIN2,HZ_ZHU1,HZ_MI1,HZ_YAO1,ASC16_Colon}; +/* 转换主密钥: */ +unsigned char * STR_ZHZMY[6] = {HZ_ZHUAN,HZ_HUAN1,HZ_ZHU1,HZ_MI1,HZ_YAO1,ASC16_Colon}; +/* OK */ +unsigned char * STR_OK[2] = {ASC16_OChar,ASC16_K_Char}; +/* FAIL */ +unsigned char * STR_FAIL[4] = {ASC16_F_Char,ASC16_A_Char,ASC16_IChar,ASC16_L_Char}; +/*SYD1308卡测试*/ +unsigned char *STR_SYD1308KCS[10] = {ASC16_S_Char, ASC16_Y_Char, ASC16_D_Char,ASC16_Num[1],ASC16_Num[3],ASC16_Num[0],ASC16_Num[8], HZ_KA1,HZ_CE1, HZ_SHI9}; +/*主密钥管理*/ +unsigned char *STR_ZMYGL[5] = {HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_GUAN1,HZ_LI1}; +/*获取设备信息*/ +unsigned char * STR_HQSBXX[6] = {HZ_HUO2,HZ_QU1,HZ_SHE1,HZ_BEI1,HZ_XIN1,HZ_XI2}; +/*获取设备状态*/ +unsigned char * STR_HQSBZT[6] = {HZ_HUO2,HZ_QU1,HZ_SHE1,HZ_BEI1,HZ_ZHUANG1,HZ_TAI1}; +/* 设备自检*/ +unsigned char * STR_SBZJ[4] = {HZ_SHE1,HZ_BEI1,HZ_ZHI9,HZ_JIAN4}; +/* '列' */ +unsigned char HZ_LIE[] = {0x00,0x28,0x9e,0x49,0x2c,0x80,0xf0,0x00,0x3f,0x00,0x18,0x11,0x28,0x40,0xc0,0x1e,0x08,0x3f}; +/*设备序列号*/ +unsigned char * STR_SBXLH[5] = {HZ_SHE1,HZ_BEI1,HZ_XU1,HZ_LIE,HZ_HAO1}; +/*设备版本*/ +unsigned char * STR_SBBB[13] = {HZ_SHE1,HZ_BEI1,HZ_BAN1,HZ_BEN,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +/* '频' */ +unsigned char HZ_PIN[] = {0x01,0x07,0x90,0xfd,0x24,0xb9,0x36,0xb2,0x79,0x02,0x48,0xd0,0x2c,0x40,0xa7,0x40,0xf4,0x27}; +/*工作主频*/ +unsigned char * STR_GZZP[4] = {HZ_GONG2,HZ_ZUO1,HZ_ZHU1,HZ_PIN}; +/* '温' */ +unsigned char HZ_WEN3[] = {0x02,0x21,0x00,0x01,0xf5,0x55,0x55,0xf0,0x00,0x01,0x02,0x64,0xfe,0x1f,0xe1,0xfe,0x1f,0xe0}; +/*板卡温度*/ +unsigned char * STR_BKWD[13] = {HZ_BAN,HZ_KA1,HZ_WEN3,HZ_DU3,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +/* '稍' */ +unsigned char HZ_SHAO[18]={0x01,0x24,0xbe,0x44,0x2d,0x10,0x7d,0x05,0x32,0x00,0x40,0xff,0x08,0x0f,0xc5,0x14,0x59,0x7f}; +/* '候' */ +unsigned char HZ_HOU2[18]={0x02,0x04,0x3c,0x0f,0xc2,0x3a,0xaa,0xab,0x88,0x00,0x00,0x3f,0x00,0xf8,0x64,0x50,0xf5,0x24}; +/* 设备自检中*/ +unsigned char * STR_SBZJZ[5] = {HZ_SHE1,HZ_BEI1,HZ_ZHI9,HZ_JIAN4,HZ_ZHONG1}; +/*请稍候...*/ +unsigned char * STR_QSH[6] = {HZ_QING1,HZ_SHAO,HZ_HOU2,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/*恢复出厂设置中*/ +unsigned char * STR_HFCCSZZ[7]={HZ_HUI2,HZ_FU2,HZ_CHU2,HZ_CHANG2,HZ_SHE1,HZ_ZHI5,HZ_ZHONG1}; +/* 设备自检成功*/ +unsigned char * STR_SBZJCG[6] = {HZ_SHE1,HZ_BEI1,HZ_ZHI9,HZ_JIAN4,HZ_CHENG1,HZ_GONG1}; +/* 设备自检失败*/ +unsigned char * STR_SBZJSB[6] = {HZ_SHE1,HZ_BEI1,HZ_ZHI9,HZ_JIAN4,HZ_SHI4,HZ_BAI2}; +/*恢复出厂设置成功*/ +unsigned char * STR_HFCCSZCG[8]={HZ_HUI2,HZ_FU2,HZ_CHU2,HZ_CHANG2,HZ_SHE1,HZ_ZHI5,HZ_CHENG1,HZ_GONG1}; +/*恢复出厂设置失败*/ +unsigned char * STR_HFCCSZSB[8]={HZ_HUI2,HZ_FU2,HZ_CHU2,HZ_CHANG2,HZ_SHE1,HZ_ZHI5,HZ_SHI4,HZ_BAI2}; +/* 设备初始化成功*/ +unsigned char * STR_SBCSHCG[7] = {HZ_SHE1,HZ_BEI1,HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_CHENG1,HZ_GONG1}; +/* 设备初始化失败*/ +unsigned char * STR_SBCSHSB[7] = {HZ_SHE1,HZ_BEI1,HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_SHI4,HZ_BAI2}; +/* 设备初始化中*/ +unsigned char * STR_SBCSHZ[6] = {HZ_SHE1,HZ_BEI1,HZ_CHU1,HZ_SHI2,HZ_HUA1,HZ_ZHONG1}; +/*算法测试中*/ +unsigned char * STR_SFCSZ[5] = {HZ_SUAN,HZ_FA2,HZ_CE1,HZ_SHI9,HZ_ZHONG1}; +/*算法测试正确*/ +unsigned char * STR_SFCSZQ[6] = {HZ_SUAN,HZ_FA2,HZ_CE1,HZ_SHI9,CH_ZHENG,CH_QUE}; +/*算法测试错误*/ +unsigned char * STR_SFCSCW[6] = {HZ_SUAN,HZ_FA2,HZ_CE1,HZ_SHI9,HZ_CUO1, HZ_WU1}; +//测试报告 +unsigned char* STR_CSBG[4]={CH_CE,CH_SHI,CH_BAO,CH_GAO}; +//测试错误 +unsigned char* STR_CSCW[12]={CH_CE,CH_SHI,CH_CUO,CH_WU,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; +//测试正确 +unsigned char* STR_CSZQ[12]={CH_CE,CH_SHI,CH_ZHENG,CH_QUE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; + +//正在测试加密卡 +unsigned char* STR_ZZCSJMK[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,CH_JIA,CH_MI,CH_KA,ASC16_Dot,ASC16_Dot,ASC16_Dot,ASC16_Space}; +//系统正在读加密卡SN号 +unsigned char* STR_XTZZDJMKSN[13]={CH_XI,CH_TONG,CH_ZHENG,CH_ZAI,CH_DU,CH_JIA,CH_MI,CH_KA,ASC16_SChar,ASC16_N_Char,CH_HAO,ASC16_Dot,ASC16_Space}; +//读加密卡序列号OK. +unsigned char* STR_DJMKSNOK[10]={CH_DU,CH_JIA,CH_MI,CH_KA,ASC16_SChar,ASC16_N_Char,CH_HAO,ASC16_OChar,ASC16_K_Char,ASC16_Dot}; +//按任意键继续 +/* Start Modify by yt.chen 2016-12-07 SN:88888888 Des:编译去警告 */ +// unsigned char* STR_ARYJJX[9]={CH_AN,CH_REN,CH_YI,CH_JIAN,CH_JI,CH_XU,ASC16_Dot,ASC16_Dot,ASC16_Dot}; +/* End Modify by yt.chen 2016-12-07 SN:88888888 */ +//读加密卡序列号错误. +unsigned char* STR_DJMKSNCW[10]={CH_DU,CH_JIA,CH_MI,CH_KA,ASC16_SChar,ASC16_NChar,CH_HAO,CH_CUO,CH_WU,ASC16_Dot}; +//按退出键返回 +unsigned char* STR_ATCJFH[9]={CH_AN,ASC16_LBrack,CH_TUI,CH_CHU,ASC16_RBrack,CH_JIAN,CH_FAN,CH_HUI,ASC16_Dot}; +//按其它键继续 +// unsigned char* STR_AQRJJX[9]={CH_AN,ASC16_LBrack,CH_QUE,CH_REN,ASC16_RBrack,CH_JIAN,CH_JI,CH_XU,ASC16_Dot}; + +//系统正在写加密卡序列号 +/* Start Modify by yt.chen 2016-12-07 SN:88888888 Des:编译去警告 */ +// unsigned char* STR_XTZZXJMKSN[13]={CH_XI,CH_TONG,CH_ZHENG,CH_ZAI,CH_XIE,CH_JIA,CH_MI,CH_KA,CH_XU2,CH_LIE,CH_HAO,ASC16_Dot,ASC16_Space}; +/* End Modify by yt.chen 2016-12-07 SN:88888888 */ +//读加密卡序列号错误. +/* Start Modify by yt.chen 2016-12-07 SN:88888888 Des:编译去警告 */ +// unsigned char* STR_XJMKSNCW[10]={CH_XIE,CH_JIA,CH_MI,CH_KA,CH_XU2,CH_LIE,CH_HAO,CH_CUO,CH_WU,ASC16_Dot}; +/* End Modify by yt.chen 2016-12-07 SN:88888888 */ +//写加密卡序列号OK. +/* Start Modify by yt.chen 2016-12-07 SN:88888888 Des:编译去警告 */ +// unsigned char* STR_XJMKSNOK[10]={CH_XIE,CH_JIA,CH_MI,CH_KA,CH_XU2,CH_LIE,CH_HAO,ASC16_OChar,ASC16_KChar,ASC16_Dot}; +/* End Modify by yt.chen 2016-12-07 SN:88888888 */ + +//正在测试加密卡芯片 +unsigned char* STR_ZZCSJMKXP[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,CH_JIA,CH_MI,CH_KA,CH_XIN,CH_PIAN,ASC16_Dot,ASC16_Space}; + +//正在测试SM1 +unsigned char* STR_ZZCSSM1[12]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_S,QJ_M,QJ_1,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space,ASC16_Space}; +//正在测试SM2 +unsigned char* STR_ZZCSSM2[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_S,QJ_M,QJ_2,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space}; +//正在测试SM3 +unsigned char* STR_ZZCSSM3[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_S,QJ_M,QJ_3,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space}; +//正在测试SM4 +unsigned char* STR_ZZCSSM4[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_S,QJ_M,QJ_4,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space}; +//正在测试AES +unsigned char* STR_ZZCSAES[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_A,QJ_E,QJ_S,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space}; +//正在测试DES +unsigned char* STR_ZZCSDES[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_D,QJ_E,QJ_S,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space}; +//正在测试TDES +unsigned char* STR_ZZCS3DES[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_3,QJ_D,QJ_E,QJ_S,ASC16_Dot,ASC16_Space,ASC16_Space}; +//正在测试SSF33 +unsigned char* STR_ZZCSSSF33[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_S,QJ_S,QJ_F,QJ_3,QJ_3,ASC16_Dot,ASC16_Space}; +//正在测试IDEA +unsigned char* STR_ZZCSIDEA[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_I,QJ_D,QJ_E,QJ_A,ASC16_Dot,ASC16_Space,ASC16_Space}; +//正在测试RSA +unsigned char* STR_ZZCSRSA[11]={CH_ZHENG,CH_ZAI,CH_CE,CH_SHI,QJ_R,QJ_S,QJ_A,ASC16_Dot,ASC16_Space,ASC16_Space,ASC16_Space}; + + +//加密卡芯片OK +/* Start Modify by yt.chen 2016-12-07 SN:88888888 Des:编译去警告 */ +// unsigned char* STR_DSPXPOK[9]={CH_JIA,CH_MI,CH_KA,CH_XIN,CH_PIAN,ASC16_OChar,ASC16_KChar,ASC16_Dot,ASC16_Space}; +/* End Modify by yt.chen 2016-12-07 SN:88888888 */ + +unsigned char* STR_SPACE_LINE[12]={CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; + +//测试报告 +unsigned char* STR_CKCSBG[6]={CH_CHUAN,CH_KOU,CH_CE,CH_SHI,CH_BAO,CH_GAO}; +unsigned char* STR_HEAD[12]={CH_ZONG,CH_SHU,CH_SPACE,CH_TONG2,CH_GUO,CH_SPACE,CH_SHI2,CH_BAI,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; + +unsigned char* STR_SCXTSJ[6] = {CH_SHE, CH_ZHI, CH_XI, CH_TONG, CH_SHI3, CH_JIAN2}; +unsigned char* STR_SJSZCG[10] = {CH_SHI3, CH_JIAN2, CH_SHE, CH_ZHI, CH_CHENG, CH_GONG, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; +unsigned char* STR_SJGSCW[11] = {CH_SHI3, CH_JIAN2, CH_SHE, CH_ZHI, CH_CUO, CH_WU, ASC16_Dot, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; +unsigned char* STR_QRXTSJ[6] = {CH_QUE, CH_REN2, CH_XI, CH_TONG, CH_SHI3, CH_JIAN2}; +unsigned char* STR_DQSJS[11] = {CH_DANG, CH_QIAN, CH_SHI3, CH_JIAN2, CH_SHI6, ASC16_Colon, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; + +unsigned char* STR_ZMYSC[5]={CH_ZHU,CH_MI,CH_YAO,CH_SHENG,CH_CHENG}; +unsigned char* STR_ZMYSCSB[11]={CH_ZHU,CH_MI,CH_YAO,CH_SHENG,CH_CHENG,CH_SHI2,CH_BAI,ASC16_Dot,CH_SPACE,CH_SPACE,CH_SPACE}; + +unsigned char* STR_ZMYDU[5]={CH_ZHU,CH_MI,CH_YAO,CH_DU,CH_QU}; +unsigned char* STR_ZMYDUCG[11]={CH_ZHU,CH_MI,CH_YAO,CH_DU,CH_QU,CH_CHENG,CH_GONG,ASC16_Dot,CH_SPACE,CH_SPACE,CH_SPACE}; +unsigned char* STR_ZMYYC[11]={CH_ZHU,CH_MI,CH_YAO,CH_YI3,CH_XIAO,CH_HUI2,ASC16_Dot,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; + +unsigned char CH_KAO[18] = {0x20,0x8f,0xe8,0x41,0x45,0x3f,0x51,0xc5,0x90,0x0a,0x1f,0xc0,0x10,0x20,0x57,0x96,0x57,0x40}; +unsigned char CH_JI1[18] = {0x13,0x4F,0xE4,0x10,0x0F,0x82,0x0B,0xF0,0x80,0x0C,0x0F,0xC0,0x85,0x03,0xC0,0x01,0xF8,0x38}; +unsigned char *STR_KJCG2[12] = {CH_SPACE,CH_SPACE,CH_SPACE,CH_KAO,CH_JI1,CH_CHENG,CH_GONG,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; +unsigned char *STR_KJSB2[12] = {CH_SPACE,CH_SPACE,CH_SPACE,CH_KAO,CH_JI1,CH_SHI2,CH_BAI,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; + +unsigned char* STR_USBCS[6]={ASC16_U_Char,ASC16_SChar,ASC16_BChar,CH_CE,CH_SHI,ASC16_Dot}; +unsigned char* STR_DKUSBSBSB[12]={CH_DA,CH_KAI,ASC16_U_Char,ASC16_SChar,ASC16_BChar,CH_SHE,CH_BEI,CH_SHI2,CH_BAI,ASC16_Dot,CH_SPACE,CH_SPACE}; + + +//测试报告 +unsigned char* STR_WLCSBG[6]={CH_WANG,CH_LUO,CH_CE,CH_SHI,CH_BAO,CH_GAO}; +//硬件错误 + unsigned char* STR_WLCW[12]={CH_WANG,CH_LUO,CH_CUO,CH_WU,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; +unsigned char* STR_WLCSZ[12]={CH_SPACE,CH_SPACE,CH_WANG,CH_LUO,CH_CE,CH_SHI,CH_ZHONG2,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE,CH_SPACE}; +unsigned char * STR_HHXSCRWX[12]={CH_HUI, HZ_HUAN, HZ_XING, HZ_SHI5, HZ_CHA1, HZ_RU1, CH_WANG, HZ_XIAN2, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; +unsigned char * STR_AQRJJX_1[12]={HZ_AN1,HZ_QUE1,HZ_REN1,HZ_JIAN1,HZ_JI2,HZ_XU3, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; +unsigned char *STR_AQTJFH_1[12] = {HZ_AN1,HZ_QI4,HZ_TA, HZ_JIAN1,HZ_FAN1,HZ_HUI1, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; +unsigned char *STR_QJCWL[12]= {HZ_QING1, HZ_JIAN4, HZ_CHA2, HZ_WANG1, HZ_LUO, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE, CH_SPACE}; + +/*生成主密钥*/ +unsigned char *STR_SCZMY[5] = {HZ_SHENG1,HZ_CHENG1,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*生成主密钥成功*/ +unsigned char *STR_SCZMYCG[7] = {HZ_SHENG1,HZ_CHENG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_CHENG1,HZ_GONG1}; +/*生成主密钥失败*/ +unsigned char *STR_SCZMYSB[7] = {HZ_SHENG1,HZ_CHENG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2}; +/*加载主密钥*/ +unsigned char *STR_JZZMY[5] = {HZ_JIA1,HZ_ZAI,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*加载主密钥成功*/ +unsigned char *STR_JZZMYCG[7] = {HZ_JIA1,HZ_ZAI,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_CHENG1,HZ_GONG1}; +/*加载主密钥失败*/ +unsigned char *STR_JZZMYSB[7] = {HZ_JIA1,HZ_ZAI,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_SHI4,HZ_BAI2}; +/*校验主密钥*/ +unsigned char *STR_JYZMY[5] = {HZ_JIAO1,HZ_YAN2,HZ_ZHU1,HZ_MI1,HZ_YAO1}; +/*获取中*/ +unsigned char * STR_HQZ[3] = {HZ_HUO2,HZ_QU1,HZ_ZHONG1}; +/*生成主密钥中*/ +unsigned char *STR_SCZMYZ[6] = {HZ_SHENG1,HZ_CHENG1,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHONG1}; +/*加载主密钥中*/ +unsigned char *STR_JZZMYZ[6] = {HZ_JIA1,HZ_ZAI,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHONG1}; +/*校验主密钥中*/ +unsigned char *STR_JYZMYZ[6] = {HZ_JIAO1,HZ_YAN2,HZ_ZHU1,HZ_MI1,HZ_YAO1,HZ_ZHONG1}; +/* +1. 打印对称密钥分量 +2. 输入分量合成对称密钥 +3. U盾导出对称密钥分量 +4. U盾分量合成对称密钥 +5. U盾导出数字信封 +6. U盾导入数字信封 + + +*/ + +/*----------错误提示信息----------*/ + diff --git a/USER/lcddisplay.c b/USER/lcddisplay.c new file mode 100644 index 0000000..882acf4 --- /dev/null +++ b/USER/lcddisplay.c @@ -0,0 +1,1612 @@ +#include "lcddisplay.h" +#include "global.h" +#include "asc16.h" +#include "asc8.h" +#include "hzk16.h" +#include "define.h" + +static int lcdpipe = 0; +static char buf[20]; +static unsigned char cur_page, cur_col; + +void buffer_init() //写显示数据 +{ + serial_buff_init(); + cur_page = cur_col = 0; +} + +void buffer_flush(unsigned char LineBit) +{ + int ret = 0; + + ret = serial_flush(LineBit); + if (ret) + { + printf("|%s|%s|%d| : call serial_flush( %d ) fail !\n", __FILE__, __func__, __LINE__, LineBit); + } +} +/************************************************/ +/* Read\write display data\command */ +/************************************************/ +void write_databyte(unsigned int databyte) //写显示数据 +{ + //int ret = 0; + serial_write_buff((unsigned int)cur_page, (unsigned int)cur_col, (unsigned int)databyte); + + //if(ret != 0) + //{ + // printf("serial_write_buff error,ret=%d\n",ret); + //} +} +/************************************************/ +/* opration command */ +/************************************************/ + +/******************************************/ +/* 功能:设置显示起始页 */ +/* 输入:起始页值 page */ +/* 输出:无 */ +/* 返回: */ +/******************************************/ +void LcdSetPage(unsigned char Page) //数据写起始页 +{ + cur_page = Page; // page:0-8 +} +/******************************************/ +/* 功能:设置显示起始列 */ +/* 输入:起始列值column */ +/* 输出:无 */ +/* 返回:正常0,错误非0 */ +/******************************************/ +void LcdSetCol(unsigned char Col) //数据写起始列 +{ + cur_col = Col; +} +/******************************************/ +/* 功能:清屏 */ +/* 输入:无 */ +/* 输出:无 */ +/* 返回:正常0,错误非0 */ +/******************************************/ +void LcdClear() //清屏程序 +{ + serial_buff_init(); + buffer_flush(0xFF); +} + +void Lcdflush() //清屏程序 +{ + serial_buff_black(); + buffer_flush(0x0F); +} + +void initLcdSystem(void) +{ + buffer_init(); +} +/****************** 在当前位置上显示6*8点阵字符****************************** +输入参数: + Page: 显示起始页 + Col: 显示起始行 + Asc8: 显示内容(*Asc8为字模地址) + Flag: 显示方式,NORMAL/REVERSE与UPHALF/DOWNHALF的组合 +输出参数: + 无 +返回值: 无 +********************************************************************************/ +void PrintASC8(unsigned char Page, unsigned char Col, unsigned char *Asc8, unsigned char Flag) +{ + unsigned char i, j; + LcdSetPage(Page); /*设置页与栏*/ + for (i = 0; i < 6; i++) + { + LcdSetCol(Col++); + j = Asc8[i]; + switch (Flag) + { + case REVERSE: + j = ~j; /*全字符反色*/ + break; + case UPHALF: + j = j << 4; /*上半字符*/ + break; + case REVERSE | UPHALF: + j = ~(j << 4) & 0xFE; /*上半字符反色,最上边一条线不反显*/ + break; + case DOWNHALF: + j = j >> 4; /*下半字符*/ + break; + case REVERSE | DOWNHALF: + j = ~(j >> 4) & 0x7F; /*下半字符反色,最下边一条线不反显*/ + break; + default: + break; /*全字符正常显示*/ + } + write_databyte(j); + } +} + +/************** 在当前显示位置上显示8*16点阵字符*********************************** +输入参数: + Page: 显示起始页 + Col: 显示起始行 + Asc16: 显示内容(*Asc16为字模地址) + Flag: 显示方式,NORMAL/REVERSE +输出参数: + 无 +返回值: 无 +********************************************************************************/ +void PrintASC16(unsigned char Page, unsigned char Col, unsigned char *Asc16, unsigned char Flag) +{ + unsigned char i, j, k, mode, nowcol; + i = 0; + k = 8; + mode = 0xFE; + + do + { + LcdSetPage(Page); /*设置页与栏*/ + nowcol = Col; + for (; i < k; i++) /*上半部分*/ + { + LcdSetCol(nowcol++); + j = Asc16[i]; + if (Flag != NORMAL) + j = ~j & mode; /*反色,最上边一条线不反,最下边一条线不反*/ + write_databyte(j); + } + Page++; + k = 16; + mode = 0x7F; + } while (i < 16); +} + +/****************** 在当前位置上显示12*16点阵汉字*********************************** +输入参数: + Page: 显示起始页 + Col: 显示起始行 + HanZi: 显示内容(*HanZi为字模地址) + Flag: 显示方式,NORMAL/REVERSE +输出参数: + 无 +返回值: 无 +********************************************************************************/ +void PrintHANZI(unsigned char Page, unsigned char Col, unsigned char *HanZi, unsigned char Flag) +{ + + unsigned char i, nowcol; + // lrb add + unsigned char hz = 0; + LcdSetPage(Page); /*设置页与栏*/ + nowcol = Col; + for (i = 0; i < 9; i += 3) /*上半部分*/ + { + if (Flag == NORMAL) + { + LcdSetCol(nowcol++); + // lrb mixing + hz = *(HanZi + i) & 0xFC; + write_databyte(hz); + // write_databyte(HanZi[i]&0xFC); + LcdSetCol(nowcol++); + write_databyte((HanZi[i] << 6) + ((HanZi[i + 1] & 0xF0) >> 2)); + LcdSetCol(nowcol++); + write_databyte((HanZi[i + 1] << 4) + ((HanZi[i + 2] & 0xC0) >> 4)); + LcdSetCol(nowcol++); + write_databyte(HanZi[i + 2] << 2); + } + else + { + LcdSetCol(nowcol++); /*反色,最上边一条线不反*/ + write_databyte(~(HanZi[i] & 0xFC) & 0xFE); + LcdSetCol(nowcol++); + write_databyte(~((HanZi[i] << 6) + ((HanZi[i + 1] & 0xF0) >> 2)) & 0xFE); + LcdSetCol(nowcol++); + write_databyte(~((HanZi[i + 1] << 4) + ((HanZi[i + 2] & 0xC0) >> 4)) & 0xFE); + LcdSetCol(nowcol++); + write_databyte(~(HanZi[i + 2] << 2) & 0xFE); + } + } + LcdSetCol(nowcol); /* 字间距 */ + write_databyte(Flag == NORMAL ? 0x00 : 0xFE); + LcdSetPage(Page + 1); /*设置页+1,重置栏*/ + nowcol = Col; + for (; i < 18; i += 3) /*下半部分*/ + { + if (Flag == NORMAL) + { + LcdSetCol(nowcol++); + write_databyte(HanZi[i] >> 2); + LcdSetCol(nowcol++); + write_databyte(((HanZi[i] & 0x03) << 4) + ((HanZi[i + 1] & 0xF0) >> 4)); + LcdSetCol(nowcol++); + write_databyte(((HanZi[i + 1] & 0x0F) << 2) + ((HanZi[i + 2] & 0xC0) >> 6)); + LcdSetCol(nowcol++); + write_databyte(HanZi[i + 2] & 0x3F); + } + else + { + LcdSetCol(nowcol++); /*反色,最下边一条线不反*/ + write_databyte(~(HanZi[i] >> 2) & 0x7F); + LcdSetCol(nowcol++); + write_databyte(~(((HanZi[i] & 0x03) << 4) + ((HanZi[i + 1] & 0xF0) >> 4)) & 0x7F); + LcdSetCol(nowcol++); + write_databyte(~(((HanZi[i + 1] & 0x0F) << 2) + ((HanZi[i + 2] & 0xC0) >> 6)) & 0x7F); + LcdSetCol(nowcol++); + write_databyte(~(HanZi[i + 2] & 0x3F) & 0x7F); + } + } + LcdSetCol(nowcol); + write_databyte(Flag == NORMAL ? 0x00 : 0x7F); +} + +/****************** 在当前位置上显示6*8点阵字符串****************************** +输入参数: + Page: 显示起始页 + Col: 显示起始行 + ValBuf: 显示内容(*ValBuf为字模地址,**ValBuf为字模地址列表) + Num: 字符个数 + Flag: 显示方式,NORMAL/REVERSE与CENTER的组合(是否下移半行) +输出参数: + 无 +返回值: 无 +********************************************************************************/ +void PrintString8(unsigned char Page, unsigned char Col, unsigned char **ValBuf, unsigned char Num, unsigned char Flag) +{ + unsigned char i, temp; + temp = Col; +ShowString: + for (Col = temp, i = 0; i < Num; i++) + { + PrintASC8(Page, Col, ValBuf[i], Flag); + Col += 6; + } + if ((Flag & 0xFE) == UPHALF) //屏蔽NORMAL/REVERSE位,CENTER和UPHALF值相同 + { + Page++; + Flag = (Flag & 0x01) | DOWNHALF; //如果是上面半部分,则要继续显示下半部分 + goto ShowString; + } +} + +/****************** 在当前位置上显示12*16汉字和8*16字符混合字符串**************** +输入参数: + Page: 显示起始页 + Col: 显示起始行 + ValBuf: 显示内容(*ValBuf为字模地址,**ValBuf为字模地址列表) + Num: 字符个数 + Flag: 显示方式,NORMAL: 正常 REVERSE: 反显 +输出参数: + 无 +返回值: 无 +********************************************************************************/ +void PrintString16(unsigned char Page, unsigned char Col, unsigned char **ValBuf, unsigned char Num, unsigned char Flag) +{ + unsigned char i; + unsigned char *Ptr = NULL; + unsigned char flag = 0; + int num = 0; + FILE *stream; + if (lcdpipe == 0) + { + memset(buf, 0, 20); + stream = popen("uname -r", "r"); + if (stream == NULL) + { + printf("LCD pipe error\n"); + } + num = fread(buf, 20, 1, stream); + if(num == -1) + printf("fread error"); + pclose(stream); + lcdpipe = 1; + } + + if (&ASC16_End > &ASC16_Begin) + { + flag = 1; + } + + if (strncmp(buf, "2.6.9", 5)) + { + // printf("begin:%x, end:%x\n",&ASC16_Begin,&ASC16_End); + for (i = 0; i < Num; i++) + { + + Ptr = ValBuf[i]; + // printf("addr:%x\n",Ptr); +#if 1 + if (flag) + { + if (Ptr <= &ASC16_End && Ptr >= &ASC16_Begin) + { + PrintASC16(Page, Col, Ptr, Flag); + Col += 8; + } + else + { + PrintHANZI(Page, Col, Ptr, Flag); + Col += 13; + } + } + else + { + if (Ptr >= &ASC16_End && Ptr <= &ASC16_Begin) + { + PrintASC16(Page, Col, Ptr, Flag); + Col += 8; + } + else + { + PrintHANZI(Page, Col, Ptr, Flag); + Col += 13; + } + } +#else + if (sizeof(Ptr) != 18) + { + PrintASC16(Page, Col, Ptr, Flag); + Col += 8; + } + else + { + PrintHANZI(Page, Col, Ptr, Flag); + Col += 13; + } +#endif + } + } + else + { + for (i = 0; i < Num; i++) + { + Ptr = ValBuf[i]; + if (Ptr < &ASC16_Begin && Ptr > &ASC16_End) + { + PrintASC16(Page, Col, Ptr, Flag); + Col += 8; + } + else + { + PrintHANZI(Page, Col, Ptr, Flag); + Col += 13; + } + } + } +} + +/**************** 在当前位置上显示12*16汉字和8*16字符预定义混合字符串************* +输入参数: + Page: 显示起始页 + Col: 显示起始行 + CodeStr: 显示内容(字符串的地址列表位置) + Num: 字符个数,包含要加入的汉字和符号 + Flag: 显示方式,F5-FF:菜单项(FA时反显) + A?: 前面加"请输入" + C?: 前面加"请选择" + 1?/2?/3?: 将第三/四或三/四/五个字更改为导入或导出的密钥数 Flag=2:两位 Flag=3:三位 + CLAIM/COLON: 最后加上!/: + NORMAL/REVERSE: 正常显示/反显 +输出参数: + 无 +返回值: 无 +备注: STR_GG的第二/三个字显示QueryCnt的数值 + ruob.lin 修改64位兼容问题,20180326 +********************************************************************************/ +void PrintFormatStr(unsigned char Page, unsigned char Col, unsigned char **CodeStr, unsigned char Num, unsigned char Flag) +{ + unsigned char i, j, k, Offset = 0; + i = Flag & 0xF0; // 0&0xf0=>0x0000 0000 & 0x1111 0000 + if (i == 0xF0) //如果高半字节为F,表示是菜单项 0xF5-0xFF + { + if (Flag == 0xFA) + Flag = REVERSE; // MenuItem-X=0,选中反显 + else + Flag = NORMAL; //未选中,正显 + } + // memcpy(Buffer+Offset,CodeStr,Num<<2); //将CODE段中的格式化字串拷到Buffer中 + memcpy(Buffer + Offset, CodeStr, Num << 4); //将CODE段中的格式化字串拷到Buffer中 + if (i == MY_DATE_NUM_1 || i == MY_DATE_NUM_2 || i == MY_DATE_NUM_3 || i == MY_DATE_NUM_4) + { // if(ExData!=0) + if (i == MY_DATE_NUM_1) + Buffer[2] = ASC16_Num[1]; + else if (i == MY_DATE_NUM_2) + Buffer[2] = ASC16_Num[2]; + else if (i == MY_DATE_NUM_3) + Buffer[2] = ASC16_Num[3]; + else if (i == MY_DATE_NUM_4) + Buffer[2] = ASC16_Num[4]; + } + if (i == INPUT_OR_OUTPUT_MY_NUM) + { + if (INPUT_OR_OUTPUT_KEY_BIT == 2) + { + j = ExData / 10; + if (j != 0) + Buffer[2] = ASC16_Num[j]; + j = ExData % 10; + Buffer[3] = ASC16_Num[j]; + ExData = 0; + } + else if (INPUT_OR_OUTPUT_KEY_BIT == 3) + { + j = ExData / 100; + if (j != 0) + Buffer[2] = ASC16_Num[j]; + k = (ExData % 100) / 10; + if (j != 0 || k != 0) + Buffer[3] = ASC16_Num[k]; + j = ExData % 10; + Buffer[4] = ASC16_Num[j]; + ExData = 0; + } + } + PrintString16(Page, Col, (unsigned char **)Buffer, Num, Flag & 0x01); +} + +/*******************************菜单光标移动和定位******************************** +输入参数: + CurItem: 当前选择项 + AllItem: 总共可选项数 + Key: 输入键值 +输出参数: + 无 +返回值: 无 +**********************************************************************************/ +void SetItemCursor(unsigned int *CurItem, unsigned int AllItem, unsigned char Key) +{ + unsigned char i; + i = *CurItem; + if (Key == KEY_UP && i > 1) + { + i--; + } + if (Key == KEY_DOWN && i < AllItem) + { + i++; + } + + // if(Key==KEY_0&&AllItem>=10) i=10; + *CurItem = i; +} +/*******************************菜单光标移动方向键******************************** +输入参数: + CurItem: 当前选择项 + AllItem: 总共可选项数 + Key: 输入键值 +输出参数: + 无 +返回值: 无 +**********************************************************************************/ +void SetItemCursor_DownAndUp(unsigned int *CurItem, unsigned int AllItem, unsigned char Key) +{ + unsigned char i; + i = *CurItem; + if (Key == KEY_UP && i > 1) + i--; + if (Key == KEY_DOWN && i < AllItem) + i++; + /*if(Key==KEY_1 || Key==KEY_2 ||(Key==KEY_3&&AllItem>=3) + ||(Key==KEY_4&&AllItem>=4)||(Key==KEY_5&&AllItem>=5) + ||(Key==KEY_6&&AllItem>=6)||(Key==KEY_7&&AllItem>=7) + ||(Key==KEY_8&&AllItem>=8)||(Key==KEY_9&&AllItem>=9))i=Key; + //if(Key==KEY_0&&AllItem>=10) i=10;*/ + *CurItem = i; +} + +/********************* 显示一空白行 ********************************** +输入参数: + Line: 行 + Type: 类型 0: 高度8点 1: 高度16点 +输出参数: + 无 +返回值: 无 +*********************************************************************/ +void PrintEmptyLine(unsigned char Line, unsigned char Type) +{ + unsigned char k; + // unsigned char asc_space[30]; + // memset(asc_space,'\0',30); + if (Type == 1) // 16*8 + { + for (k = 17; k != 0; k--) + Buffer[k - 1] = ASC16_Space; + PrintString16(Line, 0, Buffer, 17, NORMAL); + } + else // 8*6 + { + for (k = 22; k != 0; k--) + Buffer[k - 1] = ASC8_Space; + PrintString8(Line, 0, Buffer, 22, NORMAL); + } +} +/****************显示固定菜单的前导数字编号,"多位数+点 不够前补0"*********************** +输入参数: + ItemCnt: 菜单项的数量 first_Item: 第一个菜单项的编号 + start_page: 开始放置菜单的页号,place_len: 总长度,前补0 + start_col: 开始放置菜单的行号 +输出参数: + 无 +返回值: 无 +*****************************************************************************/ +void DispPrefix(unsigned char ItemCnt, unsigned int first_Item, unsigned char start_page, unsigned char place_len, unsigned char start_col) +{ + unsigned char i, m = 0; + unsigned int Item[4]; + memset(Item, 0x00, sizeof(int) * 4); + if (place_len == 2) + { + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (i = start_page; i < 8; i += 2, m++) + { + if (Item[m] != 0) + { + PrintASC16(i, 16 + start_col, ASC16_Dot, NORMAL); + PrintASC16(i, start_col, ASC16_Num[Item[m] / 10], NORMAL); + PrintASC16(i, 8 + start_col, ASC16_Num[Item[m] % 10], NORMAL); + } + } + } + else if (place_len == 3) + { + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (i = start_page; i < 8; i += 2, m++) + { + if (Item[m] != 0) + { + + PrintASC16(i, start_col, ASC16_Num[Item[m] / 100], NORMAL); + PrintASC16(i, 8 + start_col, ASC16_Num[(Item[m] % 100) / 10], NORMAL); + PrintASC16(i, 16 + start_col, ASC16_Num[Item[m] % 10], NORMAL); + PrintASC16(i, 24 + start_col, ASC16_Dot, NORMAL); + } + } + } +} +/****************显示固定菜单的前导数字编号,"多位数 不够前补0" *********************** +输入参数: + ItemCnt: 菜单项的数量 first_Item: 第一个菜单项的编号 + start_page: 开始放置菜单的页号,place_len: 总长度,前补0 + start_col: 开始放置菜单的行号 +输出参数: + 无 +返回值: 无 +*****************************************************************************/ +void DispPrefix_NoDot(unsigned char ItemCnt, unsigned int first_Item, unsigned char start_page, unsigned char place_len, unsigned char start_col) +{ + unsigned char i, m = 0; + unsigned int Item[4]; + memset(Item, 0x00, sizeof(int) * 4); + if (place_len == 3) + { + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (i = start_page; i < 8; i += 2, m++) + { + if (Item[m] != 0) + { + + PrintASC16(i, start_col, ASC16_Num[Item[m] / 100], NORMAL); + PrintASC16(i, 8 + start_col, ASC16_Num[(Item[m] % 100) / 10], NORMAL); + PrintASC16(i, 16 + start_col, ASC16_Num[Item[m] % 10], NORMAL); + } + } + } +} +/****************显示固定菜单的前导数字编号,"一或多位数+点"*********************** +输入参数: + ItemCnt: 菜单项的数量 first_Item: 第一个菜单项的编号 + start_page: 开始放置菜单的页号 start_col: 开始放置菜单的行号 +输出参数: + 无 +返回值: 无 +**********************************************************************************/ +void DispPrefix_oneormore_col(unsigned int ItemCnt, unsigned int first_Item, unsigned char start_page, unsigned char start_col) +{ + unsigned char Item[4], i, j, k = 0; + memset(Item, 0x00, 4); + if ((ItemCnt - 1 + first_Item) <= 9) + { + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (i = start_page, k = 0; i < 8; i += 2, k++) + { + if (Item[k] != 0) + { + PrintASC16(i, 6 + start_col, ASC16_Dot, NORMAL); + PrintASC16(i, start_col, ASC16_Num[Item[k]], NORMAL); + } + } + } + else if (first_Item <= 9 && first_Item + ItemCnt - 1 > 9) + { + k = 0; + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (j = start_page; j < start_page + (10 - first_Item) * 2; j += 2) + { + if (Item[k] != 0) + { + PrintASC16(j, 6 + start_col, ASC16_Dot, NORMAL); + PrintASC16(j, start_col, ASC16_Num[Item[k++]], NORMAL); + } + } + // m=0; + for (j = start_page + (10 - first_Item) * 2; j < 8; j += 2) + { + if (Item[k] != 0) + { + PrintASC16(j, 12 + start_col, ASC16_Dot, NORMAL); + PrintASC16(j, start_col, ASC16_Num[1], NORMAL); + PrintASC16(j, 6 + start_col, ASC16_Num[Item[k++] - 10], NORMAL); + } + } + } +} +void DispPrefix_oneormore_col_1(unsigned int ItemCnt, unsigned int first_Item, unsigned char start_page, unsigned char start_col) +{ + unsigned char Item[4], i, j, k = 0; + memset(Item, 0x00, 4); + if ((ItemCnt - 1 + first_Item) <= 9) + { + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (i = start_page, k = 0; i < 8; i += 2, k++) + { + + PrintASC16(i, 6 + start_col, ASC16_Dot, NORMAL); + PrintASC16(i, start_col, ASC16_Num[Item[k]], NORMAL); + } + } + else if (first_Item <= 9 && first_Item + ItemCnt - 1 > 9) + { + k = 0; + if (ItemCnt >= 1) + Item[0] = first_Item; + if (ItemCnt >= 2) + Item[1] = first_Item + 1; + if (ItemCnt >= 3) + Item[2] = first_Item + 2; + if (ItemCnt == 4) + Item[3] = first_Item + 3; + for (j = start_page; j < start_page + (10 - first_Item) * 2; j += 2) + { + + { + PrintASC16(j, 6 + start_col, ASC16_Dot, NORMAL); + PrintASC16(j, start_col, ASC16_Num[Item[k++]], NORMAL); + } + } + // m=0; + for (j = start_page + (10 - first_Item) * 2; j < 8; j += 2) + { + + { + PrintASC16(j, 12 + start_col, ASC16_Dot, NORMAL); + PrintASC16(j, start_col, ASC16_Num[1], NORMAL); + PrintASC16(j, 6 + start_col, ASC16_Num[Item[k++] - 10], NORMAL); + } + } + } +} +/*else if(first_Item>9 && first_Item+ItemCnt-1<100) +{ + if(ItemCnt>=1) Item[0]=first_Item; + if(ItemCnt>=2) Item[1]=first_Item+1; + if(ItemCnt>=3) Item[2]=first_Item+2; + if(ItemCnt==4) Item[3]=first_Item+3; + for(j=start_page,k=0;j<8;j+=2,k++) + { + if(Item[k]!=0) + { + PrintASC16(j,12+start_col,ASC16_Dot,NORMAL); + PrintASC16(j,start_col,ASC16_Num[Item[k]/10],NORMAL); + PrintASC16(j,6+start_col,ASC16_Num[Item[k]%10],NORMAL); + } + } +} +else if(first_Item>9 && first_Item<100 && first_Item+ItemCnt-1>=100) +{ + k=0; + if(ItemCnt>=1) Item[0]=first_Item; + if(ItemCnt>=2) Item[1]=first_Item+1; + if(ItemCnt>=3) Item[2]=first_Item+2; + if(ItemCnt==4) Item[3]=first_Item+3; + for(j=start_page;j=100 && first_Item+ItemCnt-1>=100 && first_Item+ItemCnt-1<1000) +{ + //k=0; + if(ItemCnt>=1) Item[0]=first_Item; + if(ItemCnt>=2) Item[1]=first_Item+1; + if(ItemCnt>=3) Item[2]=first_Item+2; + if(ItemCnt==4) Item[3]=first_Item+3; + for(j=start_page,k=0;j<8;j+=2,k++) + { + if(Item[k]!=0) + { + PrintASC16(j,18+start_col,ASC16_Dot,NORMAL); + PrintASC16(j,start_col,ASC16_Num[Item[k]/100],NORMAL); + PrintASC16(j,6+start_col,ASC16_Num[(Item[k]%100)/10],NORMAL); + PrintASC16(j,12+start_col,ASC16_Num[Item[k]%10],NORMAL); + } + } +} +else if(first_Item>=100 && first_Item<1000 && first_Item+ItemCnt-1>=1000) +{ + k=0; + if(ItemCnt>=1) Item[0]=first_Item; + if(ItemCnt>=2) Item[1]=first_Item+1; + if(ItemCnt>=3) Item[2]=first_Item+2; + if(ItemCnt==4) Item[3]=first_Item+3; + for(j=start_page;j=1000 && first_Item+ItemCnt-1>=1000 && first_Item+ItemCnt-1<10000) +{ + //k=0; + if(ItemCnt>=1) Item[0]=first_Item; + if(ItemCnt>=2) Item[1]=first_Item+1; + if(ItemCnt>=3) Item[2]=first_Item+2; + if(ItemCnt==4) Item[3]=first_Item+3; + for(j=start_page,k=0;j<8;j+=2,k++) + { + if(Item[k]!=0) + { + PrintASC16(j,24+start_col,ASC16_Dot,NORMAL); + PrintASC16(j,start_col,ASC16_Num[Item[k]/1000],NORMAL); + PrintASC16(j,6+start_col,ASC16_Num[(Item[k]%1000)/100],NORMAL); + PrintASC16(j,12+start_col,ASC16_Num[((Item[k]%1000)%100)/10],NORMAL); + PrintASC16(j,18+start_col,ASC16_Num[Item[k]%10],NORMAL); + } + } +}*/ + +/*************** 退到上级菜单,根据当前的Function,设置MenuItem和Frame的值 ************ +输入参数: + Function: 当前处理的功能号 +输出参数: + Frame: 窗口号 + MenuItem: 菜单项号 +*************************************************************************************/ +void ExitToMenu() +{ + Frame = EXIT_Frame; + EXIT_Frame = 0; + MenuItem = MenuItem_num; + MenuItem_num = 0; + // printf("MenuItem is %d and Frame is %d\n", MenuItem, Frame); + /* add by mukesong for key flag (begin)*/ + LEDSTATE &= 0xFB; + /* add by mukesong for key flag (end)*/ +} +/************** 6*8数字串的格式化单行上下居中显示******************************** +输入参数: + Page: 行 + Col: 列 + Value: ASC-'0'格式的数据 + Len: 显示定长,偶数,最长22 + Flag: 显示格式标志 0: 正常,不足补空格 1:正常,不足补下划线 2:星号,不足补下划线 +输出参数: + 无 +返回值:无 +********************************************************************************/ +void DispDigits(unsigned char Page, unsigned char Col, unsigned char *Value, unsigned char Len, unsigned char Flag) +{ + unsigned char i; + for (i = 0; i < Len; i++) + { + if (Value[i] == 0x18) // 0x18当前缓冲区空标志 + { + if (Flag == 0) + Buffer[i] = ASC8_Space; + else + Buffer[i] = ASC8_Line; + } + else + { + if (Flag == 2) + Buffer[i] = ASC8_Star; + else + Buffer[i] = ASC8_Num[Value[i]]; + } + } + PrintString8(Page, Col, Buffer, Len, NORMAL | CENTER); +} + +void DispDigits2(unsigned char Page, unsigned char Col, unsigned char *Value, unsigned char Len) +{ + unsigned char i; + for (i = 0; i < Len; i++) + { + if (Value[i] == 0x18) // 0x18当前缓冲区空标志 + { + Buffer[i] = ASC8_Line; + } + else + { + Buffer[i] = ASC8_Num[Value[i]]; + } + } + PrintString8(Page, Col, Buffer, Len, NORMAL | CENTER); +} + +/************** 6*8数字串的格式化单行上下居中显示******************************** +输入参数: + Page: 行 + Col: 列 + Value: ASC-'0'格式的数据 + Len: 显示定长,偶数,最长22 + Flag: 显示格式标志 0: 正常,不足补空格 1:正常,不足补下划线 2:星号,不足补下划线 +输出参数: + 无 +返回值:无 +********************************************************************************/ +void DispVersion(unsigned char Page, unsigned char Col, unsigned char *Value, unsigned char Len, unsigned char Flag) +{ + unsigned char i, j = 0; /*FIXME*/ + if (Flag == 0) + { + for (i = 0; i < Len; i++) + { + if (i % 4 == 0) + Buffer[i] = ASC8_Space; + else + { + // printf("\n"); + Buffer[i] = ASC8_Num[Value[j]]; + j++; + } + } + } + else if (Flag == 1) + { + Buffer[0] = ASC8_Num[Value[0]]; + Buffer[1] = ASC8_Dot; + Buffer[2] = ASC8_Num[Value[1]]; + Buffer[3] = ASC8_Num[Value[2]]; + } + + PrintString8(Page, Col, Buffer, Len, NORMAL | CENTER); +} +/**************************显示个人密钥是否启用******************************************** +输入参数: 1 page 2 col 3 FLAG :1 启用 0 未启用 4 REVERSE_FLAG: 0 NORMAL 1 REVERSE +输出参数: 无 +返回: +*******************************************************************************/ +void DISP_TURN_ON_FLAG(unsigned char page, unsigned char col, unsigned char *FLAG, unsigned char REVERSE_Flag) +{ + if (FLAG[0] == 1) + PrintASC16(page, col, ASC16_Star, REVERSE_Flag); + else + PrintASC16(page, col, ASC16_Space, REVERSE_Flag); +} +/************** 6*8数字串的格式化单行上下居中显示******************************** +输入参数: + Page: 行 + Col: 列 + Value: ASC-'0'格式的数据 + Len: 显示定长,偶数,最长22 + Flag: 显示格式标志 0: 正常,不足补空格 1:正常,不足补下划线 2:星号,不足补下划线 + REVERSE_FLAG: 0 NORMAL 1 REVERSE +输出参数: + 无 +返回值:无 +********************************************************************************/ +void DispDigits_Reverse(unsigned char Page, unsigned char Col, unsigned char *Value, unsigned char Len, unsigned char Flag, unsigned char REVERSE_FLAG) +{ + unsigned char i; + for (i = 0; i < Len; i++) + { + if (Value[i] == 0x18) + { + if (Flag == 0) + Buffer[i] = ASC8_Space; + else + Buffer[i] = ASC8_Line; + } + else + { + if (Flag == 2) + Buffer[i] = ASC8_Star; + else + Buffer[i] = ASC8_Num[Value[i]]; + } + } + PrintString8(Page, Col, Buffer, Len, REVERSE_FLAG | CENTER); +} +/************** 日志大小8*16格式化单行上下居中显示******************************** +输入参数: + Page: 行 + Col: 列 + Value: 高、低两字节 + +输出参数: + 无 +返回值:无 +********************************************************************************/ +void Disp_LogSize(unsigned char Page, unsigned char Col, unsigned char *Value) +{ + unsigned char i, log[4]; + unsigned int j; + memset(log, '\0', 4); + i = Value[0]; + j = Value[1] * 256 + Value[2]; + log[0] = j / 1000; + log[1] = (j % 1000) / 100; + log[2] = ((j % 1000) % 100) / 10; + log[3] = j % 10; + if (log[0] != 0) + Buffer[0] = ASC16_Num[log[0]]; + else + Buffer[0] = ASC16_Space; + if (log[1] != 0 || log[0] != 0) + Buffer[1] = ASC16_Num[log[1]]; + else + Buffer[1] = ASC16_Space; + if (log[1] != 0 || log[0] != 0 || log[2] != 0) + Buffer[2] = ASC16_Num[log[2]]; + else + Buffer[2] = ASC16_Space; + Buffer[3] = ASC16_Num[log[3]]; + switch (i) + { + case UNIT_T: + Buffer[4] = ASC16_TChar; + break; + case UNIT_G: + Buffer[4] = ASC16_G_Char; + break; + case UNIT_M: + Buffer[4] = ASC16_M_Char; + break; + case UNIT_K: + Buffer[4] = ASC16_K_Char; + break; + default: + Buffer[4] = ASC16_Space; + break; + } + Buffer[5] = ASC16_B_Char; + PrintString16(Page, Col, Buffer, 6, NORMAL); +} +/************** 同步失败序号8*16格式化单行上下居中显示******************************** +输入参数: + Page: 行 + Col: 列 + Value: 根据协议 + +输出参数: + 无 +返回值:无 +********************************************************************************/ +void Disp_num_failure(unsigned char Page, unsigned char Col, unsigned char *Value) +{ + unsigned char i; + for (i = 0; i < Value[0]; i++) + { + Buffer[i] = ASC16_Num[Value[i + 1]]; + } + if (Value[0] <= 5) + PrintString16(Page, Col, Buffer, Value[0], NORMAL); + else + { + PrintString16(Page, Col, Buffer, 5, NORMAL); + PrintString16(Page + 2, Col, Buffer + 5, Value[0] - 5, NORMAL); + } +} +/************** 将BCD字符串展开为BIN字符串************************************** +输入参数: + BCDBuf: BCD字符串 + BCDLen: BCD字符串的长度 +输出参数: + BINBuf: BIN字符串(即ASC码-'0') +返回值: 无 +********************************************************************************/ +void BCDToBIN(unsigned char *BCDBuf, unsigned char BCDLen, unsigned char *BINBuf) +{ + unsigned char i, j; + for (i = BCDLen; i != 0; i--) + { + j = BCDBuf[i - 1]; + BINBuf[i * 2 - 1] = j & 0x0F; + BINBuf[i * 2 - 2] = j >> 4; + } +} +/************** 将ASC字符串展开为BIN字符串************************************** +输入参数: + ASCBuf: ASC字符串 + ASCLen: ASC字符串的长度 +输出参数: + BINBuf: BIN字符串(即ASC码-'0') +返回值: 无 +********************************************************************************/ +void ASCToBIN(unsigned char *ASCBuf, unsigned char ASCLen, unsigned char *BINBuf) +{ + unsigned char i; + for (i = 0; i <= ASCLen; i++) + { + BINBuf[i] = ASCBuf[i] - 0x30; + } +} +/************** 将BIN字符串转变为ASC字符串************************************** +输入参数: + BINBuf: BIN字符串 + BINLen: BIN字符串的长度 +输出参数: + ASCBuf: ASC字符串(即BIN码+'0') +返回值: 无 +********************************************************************************/ +void BINToASC(unsigned char *BINBuf, unsigned char BINLen, unsigned char *ASCBuf) +{ + unsigned char i; + for (i = 0; i <= BINLen; i++) + { + ASCBuf[i] = BINBuf[i] + 0x30; + } +} +/************** 将BIN字符串展开为BCD字符串************************************** +输入参数: + BINBuf: BIN字符串(即ASC码-'0') + BINLen: BIN字符串的长度 +输出参数: + BCDBuf: BCD字符串 +返回值: 无 +********************************************************************************/ +void BINToBCD(unsigned char *BINBuf, unsigned char BINLen, unsigned char *BCDBuf) +{ + unsigned char i, j, k, m; + for (i = 0, j = 0; i < BINLen; i += 2) + { + k = BINBuf[i] << 4; + m = BINBuf[i + 1]; + BCDBuf[j++] = k + m; + // BCDBuf[j++]=BINBuf[i]<<4+BINBuf[i+1]; + } +} +/********************* 根据当前选中项刷新输入箭头光标 ******************** +输入参数: + CurSel: 当前选中项 + AllSel: 总共可选项 + first_page: 放置光标的第一页 + second_page:放置光标的第二页 +输出参数: + 无 +返回值: 无 +*************************************************************************/ +void RefreshArrowPos(unsigned char CurSel, unsigned char AllSel, unsigned char first_page, unsigned char second_page) +{ + + if (AllSel == 2) + { + if (CurSel == 1) + { + PrintASC16(first_page, 119, ASC16_Arrow, NORMAL); + PrintASC16(second_page, 119, ASC16_Space, NORMAL); + } + else + { + PrintASC16(first_page, 119, ASC16_Space, NORMAL); + PrintASC16(second_page, 119, ASC16_Arrow, NORMAL); + } + } + else if (AllSel == 3) + { + if (CurSel == 1) + { + PrintASC16(first_page, 119, ASC16_Arrow, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Space, NORMAL); + } + else if (CurSel == 2) + { + PrintASC16(first_page, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Arrow, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Space, NORMAL); + } + else + { + PrintASC16(first_page, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Arrow, NORMAL); + } + } + else if (AllSel == 4) + { + if (CurSel == 1) + { + PrintASC16(first_page, 119, ASC16_Arrow, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 6, 119, ASC16_Space, NORMAL); + } + else if (CurSel == 2) + { + PrintASC16(first_page, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Arrow, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 6, 119, ASC16_Space, NORMAL); + } + else if (CurSel == 3) + { + PrintASC16(first_page, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Arrow, NORMAL); + PrintASC16(first_page + 6, 119, ASC16_Space, NORMAL); + } + else + { + PrintASC16(first_page, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 2, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 4, 119, ASC16_Space, NORMAL); + PrintASC16(first_page + 6, 119, ASC16_Arrow, NORMAL); + } + } +} +/************** 将键入数压入键盘缓冲区(BCD)************************************** +输入参数: + ValBuf: 键盘缓冲区 + BufLen: 缓冲区长度 + CurLen: 当前输入内容长度 + Key: 键入值 +输出参数: + ValBuf: 键盘缓冲区 + CurLen: 当前输入内容长度 +返回值: 无 +********************************************************************************/ +void AddIntoBuf(unsigned char *ValBuf, unsigned char BufLen, unsigned char *CurLen, unsigned char Key) +{ + unsigned char i; + if ((*CurLen) < BufLen) + { + for (i = 0; i < BufLen - 1; i++) + ValBuf[i] = ValBuf[i + 1]; + ValBuf[i] = Key; + + (*CurLen)++; + } +} +/************** 从键盘缓冲区(BCD)中删除最后一个键入值************************************** +输入参数: + ValBuf: 键盘缓冲区 + BufLen: 缓冲区长度 + CurLen: 当前输入内容长度 +输出参数: + ValBuf: 键盘缓冲区 + CurLen: 当前输入内容长度 +返回值: 无 +********************************************************************************/ +void DelFromBuf(unsigned char *ValBuf, unsigned char BufLen, unsigned char *CurLen) +{ + unsigned char i; + if ((*CurLen) > 0) + { + for (i = BufLen - 1; i > 0; i--) + ValBuf[i] = ValBuf[i - 1]; + ValBuf[0] = 0x18; // 0x18当前缓冲区空标志 + (*CurLen)--; + } +} +/**************************显示错误号******************************************** +输入参数: Buf[0] +输出参数: 无 +返回:无 +*******************************************************************************/ +void Disp_error_no(void) +{ + + unsigned char first_num, second_num; + first_num = (Buf[1] & 0xF0) >> 4; + second_num = Buf[1] & 0x0F; + PrintASC16(4, 56, ASC16_Num[0], NORMAL); + PrintASC16(4, 64, ASC16_xChar, NORMAL); + if (first_num < 10) + PrintASC16(4, 72, ASC16_Num[first_num], NORMAL); + else if (first_num == 10) + PrintASC16(4, 72, ASC16_A_Char, NORMAL); + else if (first_num == 11) + PrintASC16(4, 72, ASC16_B_Char, NORMAL); + else if (first_num == 12) + PrintASC16(4, 72, ASC16_CChar, NORMAL); + else if (first_num == 13) + PrintASC16(4, 72, ASC16_D_Char, NORMAL); + else if (first_num == 14) + PrintASC16(4, 72, ASC16_E_Char, NORMAL); + else if (first_num == 15) + PrintASC16(4, 72, ASC16_F_Char, NORMAL); + if (second_num < 10) + PrintASC16(4, 80, ASC16_Num[second_num], NORMAL); + else if (second_num == 10) + PrintASC16(4, 80, ASC16_A_Char, NORMAL); + else if (second_num == 11) + PrintASC16(4, 80, ASC16_B_Char, NORMAL); + else if (second_num == 12) + PrintASC16(4, 80, ASC16_CChar, NORMAL); + else if (second_num == 13) + PrintASC16(4, 80, ASC16_D_Char, NORMAL); + else if (second_num == 14) + PrintASC16(4, 80, ASC16_E_Char, NORMAL); + else if (second_num == 15) + PrintASC16(4, 80, ASC16_F_Char, NORMAL); + PrintASC16(4, 88, ASC16_Claim, NORMAL); +} +/**************************显示数字******************************************** +输入参数: Buf[0],page 页,col 列 +输出参数: 无 +返回:无 +*******************************************************************************/ +void Disp_digit_number(unsigned char *addr, unsigned char disp_len, unsigned char page, unsigned char col) +{ + unsigned char len, i, left, right, j = col; + len = disp_len; + for (i = len - 1; i >= 1; i--) + { + left = *(addr + i) & 0x0F; + right = (*(addr + i) & 0xF0) >> 4; + if (len == 1 && !right) + { + PrintASC16(page, j, ASC16_Num[left], NORMAL); + } + else + { + PrintASC16(page, j, ASC16_Num[left], NORMAL); + PrintASC16(page, j - 8, ASC16_Num[right], NORMAL); + j -= 16; + } + } + left = *(addr + i) & 0x0F; + right = (*(addr + i) & 0xF0) >> 4; + if (len == 1 && !right) + { + PrintASC16(page, j, ASC16_Num[left], NORMAL); + } + else if (!right) + { + PrintASC16(page, j, ASC16_Num[left], NORMAL); + j -= 8; + } + else + { + PrintASC16(page, j, ASC16_Num[left], NORMAL); + PrintASC16(page, j - 8, ASC16_Num[right], NORMAL); + j -= 16; + } +} +/**************************判断IP地址格式是否正确******************************************** +输入参数: 1、IP_value 2、FLAG 0:IP、网关和域名 1:掩码 +输出参数: 无 +返回:格式正确 1 格式错误 0 +*******************************************************************************/ +unsigned char Check_IP_Result(unsigned char *IP_value, unsigned char FLAG) +{ + unsigned char j; + for (j = 0; j < 12; j += 3) //中间6位0~255 + { + if (IP_value[j] > 2) + return 0; + else if (IP_value[j] == 2) + { + if (IP_value[j + 1] > 5) + return 0; + else if (IP_value[j + 1] == 5) + { + if (IP_value[j + 2] > 5) + return 0; + } + } + } +#if 0 /* delete it by mukesong 2011-01-19 (begin) */ + + if(!FLAG) + { + if(((!IP_value[0] && !IP_value[1] && !IP_value[2]) || (!IP_value[9] && !IP_value[10] && !IP_value[11]))==1) return 0; //前3位和后3位非0 + + if(IP_value[0]>2)//前3位不大于223 + return 0; + else if(IP_value[0]==2) + { + if(IP_value[1]>2) + return 0; + else if(IP_value[1]==2) + { + if(IP_value[2]>3) + return 0; + } + } + if(IP_value[9]>2)//后3位不大于254 + return 0; + else if(IP_value[9]==2) + { + if(IP_value[10]>5) + return 0; + else if(IP_value[10]==5) + { + if(IP_value[11]>4) + return 0; + } + } + } + else + { + if((IP_value[0]!=2) || (IP_value[1]!=5) ||(IP_value[2]!=5)) return 0;//前3位为255 + if((!IP_value[9] && !IP_value[10] && !IP_value[11])!=1) return 0;//最后3位为0 + } +#endif /* delete the code by mukesong 2011-01-19 (end) */ + return 1; +} +/**************************显示1行IP地址******************************************** +输入参数: 1 page 2 col 3 IP_addr 4 FLAG +输出参数: 无 +返回: +*******************************************************************************/ +void Disp_IP_ADDR(unsigned char page, unsigned char col, unsigned char *IP_addr, unsigned char FLAG, unsigned char REVERSE_Flag) +{ + Buffer[5] = ASC8_Dot; + DispDigits_Reverse(page, col, IP_addr, 3, FLAG, REVERSE_Flag); + PrintString8(page, col + 18, Buffer + 5, 1, REVERSE_Flag | CENTER); + DispDigits_Reverse(page, col + 24, IP_addr + 3, 3, FLAG, REVERSE_Flag); + PrintString8(page, col + 42, Buffer + 5, 1, REVERSE_Flag | CENTER); + DispDigits_Reverse(page, col + 48, IP_addr + 6, 3, FLAG, REVERSE_Flag); + PrintString8(page, col + 66, Buffer + 5, 1, REVERSE_Flag | CENTER); + DispDigits_Reverse(page, col + 72, IP_addr + 9, 3, FLAG, REVERSE_Flag); +} +/**************************显示IP地址是否同步******************************************** +输入参数: 1 page 2 col 3 FLAG :1 同步 0 不同步 4 REVERSE_FLAG: 0 NORMAL 1 REVERSE +输出参数: 无 +返回: +*******************************************************************************/ +void DISP_SYNC_FLAG(unsigned char page, unsigned char col, unsigned char *FLAG, unsigned char REVERSE_Flag) +{ + if (FLAG[0] == 0x01) + /*[是]*/ + PrintFormatStr(page, col, STR_JLGZRZS + 9, 1, REVERSE_Flag); + else + /*[否]*/ + PrintFormatStr(page, col, STR_JLGZRZF + 9, 1, REVERSE_Flag); +} +/**************************显示系统日期******************************************** +输入参数: 1 page 2 col 3 Date 4 FLAG 5 REVERSE_Flag +输出参数: 无 +返回: +*******************************************************************************/ +void Display_Date(unsigned char page, unsigned char col, unsigned char *Date, unsigned char FLAG, unsigned char REVERSE_Flag) +{ + Buffer[5] = ASC8_Bias; + DispDigits_Reverse(page, col, Date, 4, FLAG, REVERSE_Flag); + PrintString8(page, col + 25, Buffer + 5, 1, REVERSE_Flag | CENTER); + DispDigits_Reverse(page, col + 32, Date + 4, 2, FLAG, REVERSE_Flag); + PrintString8(page, col + 45, Buffer + 5, 1, REVERSE_Flag | CENTER); + DispDigits_Reverse(page, col + 52, Date + 6, 2, FLAG, REVERSE_Flag); + // PrintString8(page,col+60,Buffer+5,1,REVERSE_Flag|CENTER); +} +/**************************显示系统时间******************************************** +输入参数: 1 page 2 col 3 Time 4 FLAG 5 REVERSE_Flag +输出参数: 无 +返回: +*******************************************************************************/ +void Display_Time(unsigned char page, unsigned char col, unsigned char *Time, unsigned char FLAG, unsigned char REVERSE_Flag) +{ + Buffer[5] = ASC8_Colon; + DispDigits_Reverse(page, col, Time, 2, FLAG, REVERSE_Flag); + PrintString8(page, col + 12, Buffer + 5, 1, REVERSE_Flag | CENTER); + DispDigits_Reverse(page, col + 18, Time + 2, 2, FLAG, REVERSE_Flag); +} +/**************************判断时间格式是否正确******************************************** +输入参数: time_value +输出参数: 无 +返回: 1 格式正确 0 格式错误 +*******************************************************************************/ +unsigned char Right_Or_Error_HourAndMinute(unsigned char *time_value) +{ + unsigned char hour, minute; + hour = time_value[0] * 10 + time_value[1]; + minute = time_value[2] * 10 + time_value[3]; + if (hour <= 23 && minute <= 59) + return 1; + else + return 0; +} +/**************************判断日期格式是否正确******************************************** +输入参数: time_value +输出参数: 无 +返回: 1 格式正确 0 格式错误 +*******************************************************************************/ +unsigned char Right_Or_Error_Time(unsigned char *time_value) +{ + unsigned char month, day; + unsigned int year; + year = 2000 + time_value[0] * 10 + time_value[1]; + month = time_value[2] * 10 + time_value[3]; + day = time_value[4] * 10 + time_value[5]; + // printf("the year is %d the month is %d the day is %d\n", year, month, day); + + if (month >= 1 && month <= 12) + { + if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) + { + if (day > 31) + { + return 0; + } + } + else if (month == 2) + { + if (year % 4 == 0) + { + if (day > 29) + { + return 0; + } + } + else + { + if (day > 28) + { + return 0; + } + } + } + else + { + if (day > 30) + { + return 0; + } + } + return 1; + } + else + { + return 0; + } +} + +/**************************判断8位长度日期格式是否正确******************************************** +输入参数: time_value +输出参数: 无 +返回: 1 格式正确 0 格式错误 +*******************************************************************************/ +unsigned char Right_Or_Error_LongTime(unsigned char *time_value) +{ + unsigned char month, day; + unsigned int year; + year = time_value[0] * 1000 + time_value[1] * 100 + time_value[2] * 10 + time_value[3]; + month = time_value[4] * 10 + time_value[5]; + day = time_value[6] * 10 + time_value[7]; + // printf("the year is %d the month is %d the day is %d\n", year, month, day); + + if (month >= 1 && month <= 12) + { + if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) + { + if (day > 31) + { + return 0; + } + } + else if (month == 2) + { + if (year % 4 == 0) + { + if (day > 29) + { + return 0; + } + } + else + { + if (day > 28) + { + return 0; + } + } + } + else + { + if (day > 30) + { + return 0; + } + } + return 1; + } + else + { + return 0; + } +} + +/*************************请求发送后接收信息错误处理******************************************** +输入参数: len 接收到的数据长度 +输出参数: 无 +返回: 无 +*******************************************************************************/ +void Rev_Error_dealwith(int len) +{ + if (len == -R_NO_RESPONSE) + Buf[1] = R_NO_RESPONSE; //无应答 + else if (len == -R_TX_ERR) + Buf[1] = R_TX_ERR; // STX或ETX错误 + else if (len == -R_LRC_ERR) + Buf[1] = R_LRC_ERR; // LRC错误 + else if (len == -R_LEN_ERR) + Buf[1] = R_LEN_ERR; // LEN错误 + // else if(len==-R_ERROR) //接收数据错误,直接放在Buf[1]中 +} diff --git a/USER/serial.c b/USER/serial.c new file mode 100644 index 0000000..f67baad --- /dev/null +++ b/USER/serial.c @@ -0,0 +1,498 @@ +#include "global.h" + +#include "error_no.h" + +#include "usboperate.h" +#include "define.h" +#include +#include +#include +#include +#include +#include +int icdev = -1; + +static unsigned char serial_buf[4096]; +//static unsigned char serial_buf[1030]; + +unsigned char Display_Stx[4]= {0x55,0xAA,0x88,0x66}; +unsigned char CleanScr_Stx[4]= {0x55,0xAA,0x66,0x88}; + +int serial_buff_init() +{ + memset(serial_buf,0,1030); + return 0; +} + +int serial_buff_black() +{ + memset(serial_buf,0xff,1030); + return 0; +} + +//int serial_write_buff(unsigned char page,unsigned char col,unsigned char dat) +int serial_write_buff(unsigned int page,unsigned int col,unsigned int dat) +{ + if(page<0||page>7) + return -1; + if(col<0||col>127) + return -1; + unsigned int pos=0; + /* modify for the header by mukesong from 3 to 4 */ + pos=page*128+col+4; + serial_buf[pos]=dat; + return 0; +} +/************************************************************************************ + * serial_open [history:15:06:12,23-06-2009] + * Discription : -无阻塞模式打开串口: 数据位8;停止位1;效应位无;流控制无 ;DTR无; RTS无; + * Parameter : - baud_rate:波特率 + * Return : - 文件名描述符 + ************************************************************************************/ +void icdev_get(char *dev) +{ + FILE * FP = NULL; + char cmd[512]; + sprintf(cmd,"sg_map -i | grep SUNYARD | awk '{ print $2}'"); + FP = popen(cmd,"r"); + int num = fread(dev,8,1,FP); + if(num == -1) + printf("fread error\n"); + pclose(FP); +} +#if 0 +int serial_open(int baud_rate) +{ + char dev_path[12]; + char outbuf[128]; + int k; + sprintf(dev_path, "/dev/sdg"); + if((icdev = open(dev_path, O_RDONLY)) < 0) + { + printf(dev_path); + printf(" open fail ret:%d\n",icdev); + return 0; + } + + /* It is prudent to check we have a sg device by trying an ioctl */ + if ((ioctl(icdev, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) + { + printf("%s is not an sg device, or old sg driver\n", dev_path); + close(icdev); + return 0; + } + + if(scsi_inquiry(icdev, (unsigned char *)outbuf) == 0) + { + if(memcmp(outbuf + 8, "SUNYARD", 6) == 0) //find ukey + { +// *fd = icdev; + return 1; + } + else + { + close(icdev); + return 0; + } + } + close(icdev); + return 0; +} + +#else +int serial_open(int baud_rate) +{ + char dev[20]; + icdev_get(dev); + dev[8]='\0'; + if((icdev=open(dev,O_RDONLY))<0) + { + printf("device open err\n"); + return -1; + } + return 0; +} +#endif + +/************************************************************************************ + * serial_write [history:16:12:12,22-06-2009] + * Discription : - 写接口 + * Parameter : - + * Return : - + ************************************************************************************/ +int serial_write(unsigned char * data,int len) +{ + /* + int rv; + unsigned char buff[2048]; + read(FD,buff,sizeof(buff));//clear the data cache + //PrintHex("write",data,len); + rv=write(FD,data,len); + return rv; + */ + printf("serial write "); + close(icdev); + return 0; +} +/************************************************************************************ + * serial_read [history:16:12:48,22-06-2009] + * Discription : - 读接口 + * Parameter : - + * Return : - + ************************************************************************************/ +int serial_read(unsigned char * data,int len) +{ + //int rv = 0,remain; + //int state; + int ret,pos=0; + //int i,j; + unsigned char tmpstr[2048]; + unsigned char tmprstr[2048]; + unsigned char bufw[4096]; + unsigned char bufr[4096]; + unsigned char head[4]= {0x55,0xaa,0x88,0x66}; + //unsigned char tmp[6] = {0x00}; + memset(data,0,len); + //add by louyunchuan 20130107 +// printf("begin to usbicwrite\n"); +// printf("end open shebei \n"); + do + { + pos = 0; + memset(data,0,len); + memset(bufw,0,sizeof(bufw)); + memset(bufr,0,sizeof(bufr)); + memset(tmpstr,0,sizeof(tmpstr)); + memset(tmprstr,0,sizeof(tmprstr)); + + tmpstr[pos++]=0x00; //SEQ + tmpstr[pos++]=0x47;//0x47; //TAG + tmpstr[pos++]=0; //LEN + tmpstr[pos++]=0;//0x00; //LEN + Check_LRC(tmpstr,pos); + pos+=2; + memcpy(bufw,head,4); +// hextoasc(bufw+4,tmpstr,pos); + memcpy(bufw+4,tmpstr,pos); + bufw[pos+4]=3; +// PrintHex("wdata",bufw,64); +// PrintHex("write data1",bufw,64); + ret = USBWrite(icdev,bufw,pos+5,SCSI_TIMEOUT); + if(ret != 0) + { + printf("write hid failed!\n"); + return IC_READ_ERR; + } + memset(bufr,0,sizeof(bufr)); +// printf("retb2 = %d \n",ret); + + ret = USBRead(icdev,bufr,len+12,SCSI_TIMEOUT);//sizeof(bufr)); +// PrintHex("rdata",bufr,64); + if(ret != 0) + { + printf("read hid failed!\n"); +// close(icdev); + return IC_READ_ERR; + } + + + // printf("retb3 = %d \n",ret); +// asctohex(tmprstr,bufr+4,64-5); + + // printf("data of write:\t%s\n",bufw+4); +// printf("A!\n"); + if(bufr[8] == 0x00 && bufr[5] == 0x47) + { +// close(icdev); + data[0]=0x55; + data[1]=0xAA; + data[2]=0x88; + data[3] = 0x66; + data[4] = 0x02; + memcpy(data+5,bufr+9,1); + return ret; + } + // printf("waitkeyin\n"); + } + while(1); + + return 0; +} + +int serial_read_once(unsigned char * data,int len) +{ + //int rv,timeout; + //int state; + int ret,pos=0; + //int i,j; + unsigned char tmpstr[2048]; + unsigned char tmprstr[2048]; + unsigned char bufw[4096]; + unsigned char bufr[4096]; + unsigned char head[4]= {0x55,0xaa,0x88,0x66}; +// sleep(1); +// do{ + pos = 0; + memset(data,0,len); + memset(bufw,0,sizeof(bufw)); + memset(bufr,0,sizeof(bufr)); + memset(tmpstr,0,sizeof(tmpstr)); + memset(tmprstr,0,sizeof(tmprstr)); + + tmpstr[pos++]=0x00; //SEQ + tmpstr[pos++]=0x47;//0x47; //TAG + tmpstr[pos++]=0; //LEN + tmpstr[pos++]=0;//0x00; //LEN + Check_LRC(tmpstr,pos); + pos+=2; + memcpy(bufw,head,4); +// hextoasc(bufw+4,tmpstr,pos); + memcpy(bufw+4,tmpstr,pos); + + bufw[pos+4]=3; + // PrintHex("wdata",bufw,64); + // PrintHex("write data1",bufw,64); + ret = USBWrite(icdev,bufw,pos+5,SCSI_TIMEOUT); + if(ret != 0) + { + printf("write hid failed!\n"); +// close(icdev); + return IC_WRITE_ERR; + } + memset(bufr,0,sizeof(bufr)); + // printf("retb2 = %d \n",ret); + + ret = USBRead(icdev,bufr,4096,SCSI_TIMEOUT);//sizeof(bufr)); + // PrintHex("rdata",bufr,64); + if(ret!=0) + { + printf("read hid failed!\n"); +// close(icdev); + return IC_READ_ERR; + } + + + + // printf("retb3 = %d \n",ret); +// asctohex(tmprstr,bufr+4,64-5); + + // printf("data of write:\t%s\n",bufw+4); + // printf("A!\n"); + if(bufr[8] == 0x00 && bufr[5] == 0x47) + { +// close(icdev); + data[0]=0x55; + data[1]=0xAA; + data[2]=0x88; + data[3] = 0x66; + data[4] = 0x02; + memcpy(data+5,bufr+9,1); + return ret; + } + else if(bufr[8] == 0x00&& bufr[5] == 0x47) + { + //timeout--; + memset(data,0,len); + //continue; + } + else + { +// PrintHex("rdata",bufr,64); +// close(icdev); + memset(data,0,len); + return ret; + } + +// timeout--; + //PrintHex("rec data is :", data, 6); +// }while(((data[0]!=0x55)||(data[1]!=0xAA) +// || (data[2] != 0x88) || (data[3] != 0x66) ||(data[4] != 0x02))); + //tcflush(FD, TCIFLUSH); +// close(icdev); + return 0; +} + +/************************************************************************************ + * serial_flush [history:16:12:12,22-06-2009] + * Discription : - 清空缓存接口 + * Parameter : - + * Return : - + ************************************************************************************/ +int serial_flush(unsigned char LineBit) +{ + int pos = 0, loop = 0; + //int rv = 0, remain = 0, inLoop = 0; +// int timeout, timeout1; + //UINT lrc = 0; + unsigned char rush[20] = {0x00}, line = 0; + unsigned char Send_buf[136] = {0X00}; + //int fd; + unsigned char tmpstr[2048]; + unsigned char tmprstr[2048]; + unsigned char bufw[4096]; + unsigned char bufr[4096]; + unsigned char head[4]= {0x55,0xaa,0x88,0x66}; + int ret; + //int i; +// int j; + + memset(rush,0,10); +// timeout=9000000; +// timeout1=9000000; + memcpy(Send_buf, Display_Stx, 4); + for(loop=0; loop < 8; loop++) + { + pos =0; + if(0x01 == (LineBit>>loop &0x01) ) + { + line = (unsigned char)loop; + memset(bufw,0,sizeof(bufw)); + memset(tmpstr,0,sizeof(tmpstr)); + memset(tmprstr,0,sizeof(tmprstr)); + + tmpstr[pos++]=0x00; //SEQ + tmpstr[pos++]=0x46;//0x46; //TAG + tmpstr[pos++]=133/256; //LEN + tmpstr[pos++]=133%256;//0x00; //LEN + + if(0x04 == (LEDSTATE&0x04)) + { + tmpstr[pos++]=0xF0; + } + else + { + tmpstr[pos++]=0x0F; //ADDR + } + tmpstr[pos++]=line; //ADDR + tmpstr[pos++]=0x00; //ADDR + tmpstr[pos++]=128/256; + tmpstr[pos++]=128%256; + memcpy(tmpstr + pos,serial_buf+loop*128 + 3,128); + pos = pos + 128; + Check_LRC(tmpstr,pos); + pos+=2; + memcpy(bufw,head,4); + memcpy(bufw+4,tmpstr,pos); + + bufw[pos+4]=3; + + ret = USBWrite(icdev,bufw,pos+5,SCSI_TIMEOUT); + if(ret != 0) + { + printf("write hid failed!\n"); + return IC_NOT_EXIST; + } + memset(bufr,0,sizeof(bufr)); +// j=0; + + ret = USBRead(icdev,bufr,4096,SCSI_TIMEOUT); + if(ret!=0){ + printf("read hid failed!\n"); + return IC_READ_ERR; + } + + if(bufr[8] == 0x00 && bufr[5] == 0x46){ + ; + }else{ + printf("|%s|%s|%d| : the data return from USBRead is wrong !\n", __FILE__, __func__, __LINE__); + return ERR_SYSTEM; + } + } + } + + return 0; +} + +/****************************************************************************************** +** Function name: make_Protocol_Package +** Descriptions: 数据组包 +** input parameters: ucCmd:操作命令 + pData:发送的数据 + DataLen:发送的数据长度 +** output parameters: pPackData:组包后的数据 + packLen:组包后的数据长度 +** Returned value: +** Created by: zheh.zhang +** Created date: 2022/8/5 +**----------------------------------------------------------------------------------------- +** Modified by: +** Modified date: +******************************************************************************************/ +void make_Protocol_Package(unsigned char ucCmd, unsigned char *pData, unsigned short usDataLen, unsigned char *pPackData, unsigned short *packLen) +{ + unsigned char packageBuf[2048]; + unsigned char Packagelen = 0; + unsigned char packageHead[4]= {0X55, 0XAA, 0X88, 0X66}; + + memcpy(packageBuf, packageHead, 4); /* 协议头 */ + + packageBuf[4] = 0x00; /* SEQ */ + packageBuf[5] = ucCmd; /* CMD */ + + /* 数据长度 */ + packageBuf[6] = usDataLen>>8; + packageBuf[7] = usDataLen&0xff; + + /* 包数据 */ + memcpy(packageBuf + 8, pData, usDataLen); + + /* LRC校验码 */ + Packagelen = usDataLen + 8; + Check_LRC(packageBuf+4, Packagelen - 4); + Packagelen += 2; + + packageBuf[Packagelen++] = 0x03; /* 协议尾 */ + + *packLen = Packagelen; + memcpy(pPackData, packageBuf, Packagelen); +} + + +/****************************************************************************************** +** Function name: get_hmi_version +** Descriptions: 获取液晶控制面板版本 +** input parameters: len:buf的长度 +** output parameters: data:返回的数据 +** Returned value: none +** Created by: zheh.zhang +** Created date: 2022/9/28 +**----------------------------------------------------------------------------------------- +** Modified by: +** Modified date: +******************************************************************************************/ +int get_hmi_version(unsigned char *data, int len) +{ + int ret; + unsigned int sendLen = 0; + unsigned int recvLen = 16; + unsigned char usbSendBuf[32] = {0}; + unsigned char usbRecvBuf[32] = {0}; + + make_Protocol_Package(0x45, 0, 0, usbSendBuf, (unsigned short *)&sendLen); + + // showhexbuf("CMD_KEY send", usbSendBuf, sendLen); + + ret = USBWrite(icdev, usbSendBuf, sendLen, SCSI_TIMEOUT); + if(ret<0){ + printf(" get_hmi_version write failed!\n"); + return ret; + } + + ret = USBRead(icdev, usbRecvBuf, recvLen, SCSI_TIMEOUT); + if(ret<0){ + printf("get_hmi_version read failed! ret = %d \n",ret); + return ret; + } + + // showhexbuf("CMD_KEY recv", usbRecvBuf, recvLen); + if(usbRecvBuf[8] == 0x00 && usbRecvBuf[5] == 0x45) { + data[0] = usbRecvBuf[9]; + data[1] = usbRecvBuf[10]; + return ret; + } else { + memset(data, 0, len); + } + + return 0; +} + diff --git a/USER/sham.c b/USER/sham.c new file mode 100644 index 0000000..8768544 --- /dev/null +++ b/USER/sham.c @@ -0,0 +1,175 @@ + +#include +#include +#include +#include "public.h" +#include "define.h" +#include "custom.h" + +int msgid_recvq; +int msgid_sendq; +int msgid_print; //message queue to printer +int msgid_log; //message queue to log process +int msgid_fd; +int efd; + +key_t SemKeyCard = 0x46B;//密码卡信号量键值 + +struDataPA *g_PA = NULL; // 20141104 nifei add +unsigned long long g_TradeCount = 0; + +/*信号*/ + +int semid_KeyCard;//密码卡信号量 + + + + +/*信号键*/ +key_t SemHourKey=0x461; +key_t SemDayKey=0x462; +key_t SemCountKey=0x463; +key_t SemConnectionsKey=0x464; +key_t SemMsgInQueueCountKey=0x465; +key_t SemKeycountKey=0x466; +key_t SemTradeStatus=0x467; +key_t SemPrintErrorCode=0x468; +key_t SemThreadSwitch = 0x469; +key_t SemManageUser = 0x46A; + +int _icdev; //IC卡读卡器 +key_t _icdevKey = 0x570; + +/*******初始化IC卡个数初始值*********/ +int InitKeyCard(int semid) +{ + return semctl(semid, 0, SETVAL, 1); +} + + + +/* ------------------------------- 建立信号量 ----------------------------- */ +int initsem(int *semid, key_t semkey) +{ + int status = 0; + + if ((*semid = semget(semkey, 1, IPC_CREAT | 0666)) == -1) /* 全局变量 */ + { + perror("semget"); + } + else + status = semctl(*semid, 0, SETVAL, 1); + + if (*semid == -1 || status == -1) + { + return -1; + } + else + return 0; +} +/* ------------------------------- V 操作 ---------up-------------------------- */ +int V(int Semid, int flag) +{ + struct sembuf sops[1]; + int rtn; + sops[0].sem_num = flag; + sops[0].sem_op = +1; + sops[0].sem_flg = SEM_UNDO; + rtn = semop(Semid, sops, 1); + if(rtn == -1) + { + printf("V error\n"); + return -1; + } + return 0; +} + + +/* ------------------------------- P 操作 ------down----------------------------- */ +int P(int Semid, int flag, int senconds) +{ + + + struct sembuf sops[1]; + int rtn; + sops[0].sem_num = flag; + sops[0].sem_op = -1; + sops[0].sem_flg = SEM_UNDO; + + rtn=semop(Semid,sops,1); + + if(rtn==-1) + { + printf("P error\n"); + return -1; + } + return 0; +} + +/* ------------------------ 建消息队列,共享内存,信号量 --------------------- */ +int CreateIpc() +{ + initsem(&_icdev,_icdevKey); + + //访问密码卡信号量 + initsem(&semid_KeyCard, SemKeyCard); + InitKeyCard(semid_KeyCard); + + + return 0; +} + +/* ------------------ delete 消息队列,共享内存,信号量 ------------------- */ +int DeleteIpc() +{ + //struct shmid_ds shmds; + semctl(_icdev,_icdevKey,IPC_RMID, 0); + //访问密码卡信号量 + semctl(semid_KeyCard, SemKeyCard, IPC_RMID, 0); + return 0; +} + + + + + + + +/* ------------------------------- 建立消息队列 ----------------------------- */ +int CreateMsgQueue(int *msgid, key_t msgkey) +{ + int status = 0; + if((status = msgget(msgkey, IPC_CREAT | 0666)) == -1) /* 全局变量 */ + { + perror("msgget error!"); + return -1; + } + *msgid=status; + + return 0; +} + +int get_efd_lock(void) +{ + uint64_t e_val = 0; + int ret; + ret = read(efd, &e_val, sizeof(uint64_t)); + if(ret > 0) + return 0; + else + return -1; +} + +int put_efd_lock(void) +{ + uint64_t e_val = 1; + int ret; + ret = write(efd, &e_val, sizeof(uint64_t)); + if(ret > 0) + return 0; + else + { + printf("Failed to write efd.\n"); + return -1; + } +} \ No newline at end of file diff --git a/USER/usb.c b/USER/usb.c new file mode 100644 index 0000000..4200c39 --- /dev/null +++ b/USER/usb.c @@ -0,0 +1,134 @@ + +#include "usb.h" + +#include "public.h" + + +int usbWrite(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut) +{ + unsigned char pCDB[12]={0}; + int nCDBLen=12; + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + //int rv = 0; + + pCDB[0]=0xfe; + pCDB[1]=1; + + if(sg_fd < 0) + { + //perror(" fd invalid"); + return -1; + } + + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = nCDBLen; + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); //max sense buffer length(一般用于错误信息返回) + io_hdr.dxfer_direction = SG_DXFER_TO_DEV; //写入标记 + io_hdr.dxfer_len = nLength; //写入数据长度 + io_hdr.dxferp = pData; //写入数据 + io_hdr.cmdp = pCDB; //命令 + io_hdr.sbp = sense_buffer; //存储错误返回信息 + io_hdr.timeout = nTimeOut; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("USB Write-> SG_IO ioctl error"); + return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf("USB Write-> sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("USB Write-> SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("USB Write-> host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("USB Write-> driver_status=0x%x\n", io_hdr.driver_status); + + return -1; + } + + return 0; +} + + +int usbRead(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut) +{ + unsigned char pCDB[12]={0}; + int nCDBLen=12; + //int rv = 0; + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + pCDB[0]=0xfe; + pCDB[1]=2; + if(sg_fd < 0) + { + perror(" fd invalid"); + return -1; + } + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = nCDBLen; //命令长度 + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); //max sense buffer length(一般用于错误信息返回) + io_hdr.dxfer_direction = SG_DXFER_FROM_DEV; //读标记 + io_hdr.dxfer_len = nLength; //读入数据长度 + io_hdr.dxferp = pData; //读入数据 + io_hdr.cmdp = pCDB; //命令 + io_hdr.sbp = sense_buffer; //存储错误返回信息 + io_hdr.timeout = nTimeOut; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("USB Read-> SG_IO ioctl error"); + return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf("USB Read-> sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("USB Read SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("USB Read host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("USB Read driver_status=0x%x\n", io_hdr.driver_status); + return -1; + } + return 0; +} + diff --git a/USER/usboperate.c b/USER/usboperate.c new file mode 100644 index 0000000..8f6d117 --- /dev/null +++ b/USER/usboperate.c @@ -0,0 +1,490 @@ +#include +#include +#include +#include +#include +#include +#include /* take care: fetches glibc's /usr/include/scsi/sg.h */ +#include +#include "public.h" + +#include "define.h" +#include "sham.h" + + +//INQUIRY COMMAND + +extern int _icdev; + +int USBWrite(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut) +{ + unsigned char pCDB[12]={0}; + int nCDBLen=12; + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + int rv = 0; + + // rv = P(_icdev, 0, 10); + // if(rv == -1) + // { + // return -1; + // } + pCDB[0]=0xfe; + pCDB[1]=1; + + if(sg_fd < 0) + { + perror(" fd invalid 111"); + return -1; + } + + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = nCDBLen; //锟斤拷锟筋长锟斤拷 + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); //max sense buffer length(一锟斤拷锟斤拷锟节达拷锟斤拷锟斤拷息锟斤拷锟斤拷) + io_hdr.dxfer_direction = SG_DXFER_TO_DEV; //写锟斤拷锟斤拷 + io_hdr.dxfer_len = nLength; //写锟斤拷锟斤拷锟捷筹拷锟斤拷 + io_hdr.dxferp = pData; //写锟斤拷锟斤拷锟斤拷 + io_hdr.cmdp = pCDB; //锟斤拷锟斤拷 + io_hdr.sbp = sense_buffer; //锟芥储锟斤拷锟襟返伙拷锟斤拷息 + io_hdr.timeout = nTimeOut; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("USB Write-> SG_IO ioctl error"); + return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf("USB Write-> sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("USB Write-> SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("USB Write-> host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("USB Write-> driver_status=0x%x\n", io_hdr.driver_status); + + return -1; + } + + return 0; +} + +int USBRead(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut) +{ + unsigned char pCDB[12]={0}; + int nCDBLen=12,rv = 0; + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + pCDB[0]=0xfe; + pCDB[1]=2; + if(sg_fd < 0) + { + perror(" fd invalid 222"); + // rv = V(_icdev, 0); + // if(rv == -1) + // { + // return -1; + // } + return -1; + } + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = nCDBLen; //锟斤拷锟筋长锟斤拷 + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); //max sense buffer length(一锟斤拷锟斤拷锟节达拷锟斤拷锟斤拷息锟斤拷锟斤拷) + io_hdr.dxfer_direction = SG_DXFER_FROM_DEV; //锟斤拷锟斤拷锟? + io_hdr.dxfer_len = nLength; //锟斤拷锟斤拷锟斤拷锟捷筹拷锟斤拷 + io_hdr.dxferp = pData; //锟斤拷锟斤拷锟斤拷锟斤拷 + io_hdr.cmdp = pCDB; //锟斤拷锟斤拷 + io_hdr.sbp = sense_buffer; //锟芥储锟斤拷锟襟返伙拷锟斤拷息 + io_hdr.timeout = nTimeOut; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("USB Read-> SG_IO ioctl error"); + // rv = V(_icdev, 0); + // if(rv == -1) + // { + // return -1; + // } + return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf("USB Read-> sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("USB Read SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("USB Read host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("USB Read driver_status=0x%x\n", io_hdr.driver_status); + // rv = V(_icdev, 0); + // if(rv == -1) + // { + // return -1; + // } + return -1; + } + // rv = V(_icdev, 0); + // if(rv == -1) + // { + // return -1; + // } + return 0; +} + +int scsi_inquiry(int sg_fd, unsigned char * pData) +{ + /* This is a "standard" SCSI INQUIRY command. It is standard because the + * CMDDT and EVPD bits (in the second byte) are zero. All SCSI targets + * should respond promptly to a standard INQUIRY */ + unsigned char inqCmdBlk[INQ_CMD_LEN] = {INQ_CMD_CODE, 0, 0, 0, INQ_REPLY_LEN, 0}; + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + + if(sg_fd < 0) + { + perror("Inquiry fd invalid 333"); + return -1; + } + /* Prepare INQUIRY command */ + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = sizeof(inqCmdBlk);//锟斤拷锟筋长锟斤拷 + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); + io_hdr.dxfer_direction = SG_DXFER_FROM_DEV; + io_hdr.dxfer_len = INQ_REPLY_LEN; //锟斤拷锟截筹拷锟斤拷? + io_hdr.dxferp = pData; //锟斤拷锟斤拷buffer? + io_hdr.cmdp = inqCmdBlk; //锟斤拷锟斤拷buffer + io_hdr.sbp = sense_buffer; + io_hdr.timeout = 20000; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("Inquiry SG_IO ioctl error"); +// return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf(" sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("INQUIRY SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("INQUIRY host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("INQUIRY driver_status=0x%x\n", io_hdr.driver_status); + + return -1; + } + + return 0; +} + +int USBSCSIWrite(int sg_fd, unsigned char * pCDB,int nCDBLen, unsigned char * pData,unsigned int nLength,int nTimeOut) +{ + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + + if(sg_fd < 0) + { + perror(" fd invalid 444 "); + return -1; + } + + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = nCDBLen; //锟斤拷锟筋长锟斤拷 + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); //max sense buffer length(一锟斤拷锟斤拷锟节达拷锟斤拷锟斤拷息锟斤拷锟斤拷) + io_hdr.dxfer_direction = SG_DXFER_TO_DEV; //写锟斤拷锟斤拷 + io_hdr.dxfer_len = nLength; //写锟斤拷锟斤拷锟捷筹拷锟斤拷 + io_hdr.dxferp = pData; //写锟斤拷锟斤拷锟斤拷 + io_hdr.cmdp = pCDB; //锟斤拷锟斤拷 + io_hdr.sbp = sense_buffer; //锟芥储锟斤拷锟襟返伙拷锟斤拷息 + io_hdr.timeout = nTimeOut; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("USB Write-> SG_IO ioctl error"); + return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf("USB Write-> sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("USB Write-> SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("USB Write-> host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("USB Write-> driver_status=0x%x\n", io_hdr.driver_status); + + return -1; + } + + return 0; +} + +int USBSCSIRead(int sg_fd, unsigned char * pCDB,int nCDBLen, unsigned char * pData,unsigned int * nLength,int nTimeOut) +{ + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; + + if(sg_fd < 0) + { + perror(" fd invalid 555"); + return -1; + } + memset(&io_hdr, 0, sizeof(sg_io_hdr_t)); + io_hdr.interface_id = 'S'; + io_hdr.cmd_len = nCDBLen; //锟斤拷锟筋长锟斤拷 + /* io_hdr.iovec_count = 0; */ /* memset takes care of this */ + io_hdr.mx_sb_len = sizeof(sense_buffer); //max sense buffer length(一锟斤拷锟斤拷锟节达拷锟斤拷锟斤拷息锟斤拷锟斤拷) + io_hdr.dxfer_direction = SG_DXFER_FROM_DEV; //锟斤拷锟斤拷锟? + io_hdr.dxfer_len = *nLength; //锟斤拷锟斤拷锟斤拷锟捷筹拷锟斤拷 + io_hdr.dxferp = pData; //锟斤拷锟斤拷锟斤拷锟斤拷 + io_hdr.cmdp = pCDB; //锟斤拷锟斤拷 + io_hdr.sbp = sense_buffer; //锟芥储锟斤拷锟襟返伙拷锟斤拷息 + io_hdr.timeout = nTimeOut; /* 20000 millisecs == 20 seconds */ + /* io_hdr.flags = 0; */ /* take defaults: indirect IO, etc */ + /* io_hdr.pack_id = 0; */ + /* io_hdr.usr_ptr = NULL; */ + + if (ioctl(sg_fd, SG_IO, &io_hdr) < 0) + { + perror("USB Read-> SG_IO ioctl error"); + + return -1; + } + + /* now for the error processing */ + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + { + if (io_hdr.sb_len_wr > 0) + { + printf("USB Read-> sense data: "); + int k; + for (k = 0; k < io_hdr.sb_len_wr; ++k) + { + if ((k > 0) && (0 == (k % 10))) + printf("\n "); + printf("0x%02x ", sense_buffer[k]); + } + printf("\n"); + } + if (io_hdr.masked_status) + printf("USB Read SCSI status=0x%x\n", io_hdr.status); + if (io_hdr.host_status) + printf("USB Read host_status=0x%x\n", io_hdr.host_status); + if (io_hdr.driver_status) + printf("USB Read driver_status=0x%x\n", io_hdr.driver_status); + + return -1; + } + + return 0; +} + +//----------do with package--------------------------- +/* +func: send data and command +para: +return: success-RT_OK + fail-RT_FAIL +*/ +int CD_SendPackage(int sg_fd, TPCCmd tPCCmd, unsigned char * pData) +{ + unsigned char CDB[12]; + CDB[0] = 0xFE; + CDB[1] = 0x01; + memcpy(CDB + 2, &tPCCmd, sizeof(tPCCmd)); + + if(USBSCSIWrite(sg_fd,CDB, 12, pData, tPCCmd.LC, SCSI_TIMEOUT) < 0) + return -1; + + return 0; +} + +/* +func: receive status and data package +para: +return: success-RT_OK + fail-RT_FAIL +*/ +int CD_RecvPackage(int sg_fd, unsigned char * pData, unsigned int * lRecvLen) +{ + unsigned char CDB[12]={0}; + + CDB[0]=0xFE; + CDB[1]=0x02; + + if(USBSCSIRead(sg_fd,CDB,10,pData, lRecvLen, SCSI_TIMEOUT) < 0) + return -1; + + return 0; +} +#if 0 +int OpenUDisk(int id, int * fd) +{ + char dev_path[12]; + //char outbuf[128]; + + int sg_fd, k; + //for(i = 0; i < 10; i++) + { + sprintf(dev_path, "/dev/sr0"); + if((sg_fd = open(dev_path, O_RDONLY)) < 0) + { + printf(dev_path); + printf(" open fail ret:%d\n",sg_fd); + return 0; + } + + /* It is prudent to check we have a sg device by trying an ioctl */ + if ((ioctl(sg_fd, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) + { + printf("%s is not an sg device, or old sg driver\n", dev_path); + close(sg_fd); + return 0; + } + +// if(scsi_inquiry(sg_fd, (unsigned char *)outbuf) == 0) + { +// if(memcmp(outbuf + 8, "Sydtec", 6) == 0) //find ukey + { + *fd = sg_fd; +// return 1; + } +// else + { +// puts(outbuf); +// printf("compare sydtec fail\n"); + } + } +// close(sg_fd); + } + return 0; +} +#else +int OpenUDisk(int id, int * fd) +{ + char dev_path[12]; + char outbuf[128]; + + int sg_fd, k; + //for(i = 0; i < 10; i++) + { + sprintf(dev_path, "/dev/sr0"); + if((sg_fd = open(dev_path, O_RDONLY)) < 0) + { + printf("%s\n",dev_path); + printf(" open fail ret:%d\n",sg_fd); + return 0; + } + + /* It is prudent to check we have a sg device by trying an ioctl */ + if ((ioctl(sg_fd, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) + { + printf("%s is not an sg device, or old sg driver\n", dev_path); + close(sg_fd); + return 0; + } + + if(scsi_inquiry(sg_fd, (unsigned char *)outbuf) == 0) + { + if(memcmp(outbuf + 8, "SUNYARD", 6) == 0) //find ukey + { + *fd = sg_fd; + return 1; + } + else + { + close(sg_fd); + return 0; + } + } + close(sg_fd); + } + return 0; +} + + +#endif +int CloseUsb(int fd) +{ + + if(fd > 0) + { + printf("\nCloseUsb \n"); + close(fd); + } + + return 1; +} + diff --git a/USER/utils.c b/USER/utils.c new file mode 100644 index 0000000..25dd7d1 --- /dev/null +++ b/USER/utils.c @@ -0,0 +1,369 @@ +/*** + * @文件名称: utils.cpp + * @系统名称: 公共库 + * @模块名称: 底层函数操作库 + * @功能说明: 工具类函数 + * @当前版本: 1.0.0 + * @修改人员: 吕世健 + * @修改日期: 2012-06-01 + * @修改说明: 创建文件 + */ +#include "utils.h" + + +void EntireSleep(UINT nEntireSecs) +{ + struct timeval struTimeout; + + struTimeout.tv_sec = nEntireSecs % 10000000; + struTimeout.tv_usec = 0; + + select(0, NULL, NULL, NULL, &struTimeout); + + return; + +} + + +void MilliSleep(UINT nMilliSecs) +{ + struct timeval struTimeout; + + struTimeout.tv_sec = nMilliSecs / 1000; + struTimeout.tv_usec = (nMilliSecs % 1000) * 1000; + + select(0, NULL, NULL, NULL, &struTimeout); + + return; + +} + +int killprg(char *prgname,int sig) +{ + FILE *fp; + char *p1, *p2; + int i; + long pid[200]; + int ret=0; + char temp_prgname[80]; + int account = 0; + char buffer[256]; + + signal(SIGTERM, SIG_IGN); /*防止被自己kill掉*/ + + memset(temp_prgname, 0, sizeof(temp_prgname)); + p1 = strtok(prgname, "/"); + if (p1 == NULL) + return 0; + p2 = p1; + for ( ; ; ) + { + p1 = strtok(NULL, "/"); + if (p1 == NULL) + break; + else + p2 = p1; + } + strcpy(temp_prgname, p2); + memset(buffer, 0, sizeof(buffer)); + sprintf(buffer, "ps -ef|grep -v grep|grep %s|grep start|awk '{print $2}'|cut -c -5", temp_prgname); + if ((fp = popen(buffer, "r")) == NULL) + return -1; + + while (!feof(fp)) + { + memset(buffer, '\0', sizeof(buffer)); + ret=fscanf(fp, "%s", buffer); + if( ret == -1) + return ret; + pid[account++] = atoi(buffer); + } + pclose(fp); + + for (i = 0;i < account - 1;i++) + { + if(kill(pid[i],sig) == -1) + { + //fprintf(stderr,"向进程发送SIGTERM信号失败,可能是进程已经被关闭!\n"); + } + } + /*如果上面没有关闭程序,那么进行强行关闭*/ + MilliSleep(200); + account = 0; + memset(buffer, 0, sizeof(buffer)); + sprintf(buffer, "ps -ef|grep -v grep|grep %s|grep start|awk '{print $2}'|cut -c -5", temp_prgname); + if ((fp = popen(buffer, "r")) == NULL) + return -1; + + while (!feof(fp)) + { + memset(buffer, '\0', sizeof(buffer)); + ret = fscanf(fp, "%s", buffer); + if( ret == -1) + return ret; + pid[account++] = atoi(buffer); + } + pclose(fp); + + for (i = 0;i < account - 1;i++) + { + if(kill(pid[i], SIGKILL) == -1) + { + fprintf(stderr,"Send Singal SIGKILL hsm_test Failed ,maybe hsm_test Closed \n"); + return account; + } + fprintf(stderr,"exit hsm_test successful \n"); + } + return account; +} + +/** + * @函数说明:创建进程号记录文件 + * @pszProgName: 要创建的进程文件名称 + * @返回说明: 成功NO_ERROR 失败 ERROR_FALSE + */ +int CreateIdFile(PSTR pszProgName) +{ + FILE *pstruFile; + STR szFileName[MAX_PATH_LEN]; + + memset(szFileName, 0, sizeof(szFileName)); +/* snprintf(szFileName, sizeof(szFileName),"%s/.%sid", \ + getenv("HOME"), pszProgName);*/ + snprintf(szFileName, sizeof(szFileName),"/tmp/.%sid", pszProgName); + + pstruFile = fopen(szFileName,"w"); + if(pstruFile == NULL) + { + return ERROR_FALSE; + } + fprintf(pstruFile,"%d",getpid()); + fclose(pstruFile); + + chmod(szFileName, 0600); + + return NO_ERROR; +} + +/** + * @函数说明:停止进程的执行 + * @pszProgName: 要停止的进程名称 + * @返回说明: 无 + */ +void stopPrg(PSTR pszProgName) +{ + FILE *pstruFile; + STR szFileName[MAX_PATH_LEN]; + UINT nProgId; + int ret; + memset(szFileName, 0, sizeof(szFileName)); +/* snprintf(szFileName, sizeof(szFileName), "%s/.%sid", \ + getenv("HOME"), pszProgName);*/ + snprintf(szFileName, sizeof(szFileName), "/tmp/.%sid", pszProgName); + + pstruFile = fopen(szFileName,"r"); + if(pstruFile == NULL) + { + fprintf(stderr, + "close %s failed ... the process maybe not start or Access denied\n", \ + pszProgName); + return; + } + ret = fscanf(pstruFile, "%d", &nProgId); + if( ret == -1) + return; + if(kill(nProgId, SIGTERM) == -1) + { + EntireSleep(1); + if(kill(nProgId, SIGKILL) == -1) + { + fprintf(stderr, + "close %s failed ... the process maybe not start or Access denied\n", \ + pszProgName); + } + } + else + { + fprintf(stderr,"close %s successful \n", pszProgName); + } + + fclose(pstruFile); + unlink(szFileName); + return; +} + +/** + * @函数说明:判断进程是否启动 + * @pszProgName: 要判断的进程名称 + * @返回说明: 进程启动返回NO_ERROR 否则返回ERROR_FALSE + */ +int TestPrgStat(PSTR pszProgName) +{ + STR szFileName[MAX_PATH_LEN]; + STR szShellCmd[MAX_STR_LEN]; + UINT nProgId; + UINT nTempLen; + FILE *pstruFile; + int ret; + memset(szFileName, 0, sizeof(szFileName)); +/* snprintf(szFileName, sizeof(szFileName), "%s/.%sid", \ + getenv("HOME"), pszProgName);*/ + snprintf(szFileName, sizeof(szFileName), "/tmp/.%sid", pszProgName); + + pstruFile = fopen(szFileName, "r"); + if(pstruFile == NULL) + { + return ERROR_FALSE; + } + nProgId = 0; + ret = fscanf(pstruFile, "%d", &nProgId); + if( ret == -1) + return ret; + fclose(pstruFile); + if(nProgId < 1) + { + return ERROR_FALSE; + } + memset(szShellCmd, 0, sizeof(szShellCmd)); + snprintf(szShellCmd, sizeof(szShellCmd), \ + "ps -e|awk '$1 == %d {print $4}'", nProgId); + + pstruFile = popen(szShellCmd, "r"); + if(pstruFile == NULL) + { + return ERROR_FALSE; + } + char * iRet = fgets(szFileName, sizeof(szFileName), pstruFile); + if( iRet == NULL) + return ERROR_FALSE; + fclose(pstruFile); + nTempLen = strlen(szFileName); + if(nTempLen < 1) + { + return ERROR_FALSE; + } + szFileName[nTempLen - 1]='\0'; + if(strcmp(szFileName, pszProgName) == 0) + { + return NO_ERROR; + } + return ERROR_FALSE; +} + +/** + * @函数说明:将进程变为后台起动进程 + * @返回说明: 进程启动返回NO_ERROR 否则返回ERROR_FALSE + */ +RESULT DaemonStart() +{ + register int nChildProgId; + + signal(SIGTTOU, SIG_IGN); + signal(SIGTTIN, SIG_IGN); + signal(SIGTSTP, SIG_IGN); + signal(SIGCHLD, SIG_IGN); + + nChildProgId = fork(); + if(nChildProgId < 0) + { + printf("create pid error %s\n", strerror(errno)); + return ERROR_FALSE; + } + else if(nChildProgId > 0) + exit(0); + + if (setpgrp() == -1) + { + printf("setpgrp 设置进程组错误 %s\n", \ + strerror(errno)); + exit(0); + } + signal(SIGHUP, SIG_IGN); + + if((nChildProgId = fork()) < 0) + { + printf("创建第2个子进程错误 %s\n", \ + strerror(errno)); + exit(0); + } + else if(nChildProgId > 0) + exit(0); + + //chdir("/"); + umask(0); + return NO_ERROR; +} + +/** + * @函数说明: 扫描目录 + * @pszDirName: 目录名称 + * @pstruDirentList: 目录结构 + * @返回说明: 成功操作返回NO_ERROR 失败操作返回ERROR_FALSE + */ +int ScanDir(const char *pszDirName, struct dirent ***pstruDirentList) +{ +#ifdef SYSTEM_LINUX + return scandir(pszDirName, pstruDirentList, NULL, alphasort); +#else + DIR *pstruDir; + struct dirent *pstruDirent, *pFirst, *pSecond; + struct dirent **pDirent; + int nNumber, nLeftNumber, nSize; + int i,j; + + /* + * 打开目录 + */ + if((pstruDir = opendir(pszDirName)) == NULL) + { + printf("打开目录错误[%s][%s]\n", + pszDirName, strerror(errno)); + return -1; + } + nNumber = 0; + pDirent = (struct dirent **) + malloc((nNumber + 100) * sizeof(struct dirent *)); + nLeftNumber = 100; + + /* + * 生成数组 + */ + while((pstruDirent = readdir(pstruDir)) != NULL) + { + nSize = sizeof(struct dirent) + pstruDirent->d_reclen; + pDirent[nNumber] = (struct dirent *)malloc(nSize); + memset(pDirent[nNumber], 0, nSize); + memcpy(pDirent[nNumber], pstruDirent, nSize); + nNumber++; + nLeftNumber--; + if(nLeftNumber == 0) + { + pDirent = (struct dirent **)realloc(pDirent, + (nNumber + 100) * sizeof(struct dirent *)); + nLeftNumber = 100; + } + } + + /* + * 数组排序 + */ + for(i = 0;i < (nNumber - 1);i++) + { + pFirst = pDirent[i]; + for(j = i + 1;j < nNumber;j++) + { + pSecond = pDirent[j]; + if(strcmp(pFirst->d_name, pSecond->d_name) > 0) + { + pstruDirent = pFirst; + pDirent[i] = pDirent[j]; + pDirent[j] = pstruDirent; + pFirst = pDirent[i]; + } + } + } + *pstruDirentList = pDirent; + return nNumber; +#endif +} +