📄 59054库函数api说明.c
字号:
59054库函数API说明
函数说明:
(一).基本I/O库
1. 液晶显示 (LCD)
A. void cls(void)
功能: 清屏.
B. void display(char dln,const char *format,..)
功能: 按format定义的格式在液晶上显示相应数据.
入口: (dln)->显示行(1--4)
(format)->显示格式,与BC用printf(...)相同
(...)->所显示数据
出口: 无
C.void disp(char dln,char dcl,const char *format,...);
功能: 按format定义的格式在液晶相应的行列上定位显示相应数据.
入口: (dln)->显示行(1--4)
(dcl)->显示列(1--16)
(format)->显示格式,与BC用printf(...)相同
(...)->所显示数据
出口: 无
D. void displays(char dln,char dcl,const char *format, ...);
功能: 按format定义的格式在液晶上以5*7点阵形式显示相应ASCII字符.
入口: (dln)->显示行(1--8)
(dcl)->显示列(1--21)
(format)->显示格式,与BC用printf(...)相同
(...)->所显示数据
出口: 无
E. void dispdot(char line,char array,unsigned char length,char *dot);
功能: 在液晶上以8*1点阵形式显示点阵.
入口: (line)->显示行(1--8)
(array)->显示列(1--128)
(length)->显示点阵长度(1--128)
(*dot)->欲显示的点阵数据
出口: 无
F. void set_inverse(char n);
功能: 反白显示(反白对dispdot无效)
入口: 0-正常 1-反白
出口: 无
G. void disable_lcd_light(void);
功能:关闭液晶的背光
入口:无
出口:无
H. void enable_lcd_light(void);
功能:打开液晶的背光
入口:无
出口:无
I . void lcdlight_manage(char seconds);
功能:液晶的背光开关控制
入口:背光打开的持续时间
出口:无
2. 键盘输入 (KEY)
A.char inkey(int second);
功能: 在规定时间内等待按键,若超时且无按键,返回\0否则返回相应键码.
入口: second为等待按键的时限(单位为秒)
若second=0,则无限等待.
出口: 对应键码
按键 键码(16进制)
0--9 30--39H
A--Z 41--5AH
*/. 2A/2EH
ENTER 0DH
清除 03H
退格 01H
查询 11H
消费 12H
撤消 13H
结算 14H
退货 15H
锁定 16H
打印 17H
IC卡 18H
B. char kbhit(void)
功能: 从输入缓冲区读取一个字符按键
入口: 无
出口: 0-无按键
1-按键
C. char getastr(char ln,char *str)
功能:从键盘在指定的行输入字符串,直至按ENTER键为止,
输入完成后去除光标。
入口: (ln)->指定行(1--4)
str->键盘输入串缓冲区
出口: 键盘输入的串长度.cancel键返回1,str[0]返回0xff.
D. char getnstr(char ln,char *str)
功能:从键盘在指定的行输入数字串,直至按ENTER键为止,
输入完成后去除光标。
入口: (ln)->指定行(1--4)
str->键盘输入串缓冲区
出口: 键盘输入的串长度.cancel键返回1,str[0]返回0xff.
E. char getamount(char ln,char *str)
功能:从键盘在指定的行输入金额串,直至按ENTER键为止
入口: (ln)->指定行(1--4)
str->键盘输入串缓冲区
出口: 键盘输入的串长度.cancel键返回1,str[0]返回0xff.
F. char getstr(char line,char col,char font,char mode,char *str);
功能:从键盘在指定行列以指定字体(8*16或5*7)输入数字串或数字字母串。不改变本行原有内容,输入长度以本行剩余长度为限。
入口:line----->指定行
col----->指定列
font----->0:8*16字体,1:5*7字体
mode--->0:输入数字串,1:输入字母串
出口: 键盘输入的串长度.cancel键返回1,str[0]返回0xff.
3. 打印机
A. char printer(const char *format,...);
功能: 往打印机送ESC命令集或打印ASCii字符串(最大40bytes),一次只打印一行,多余字节忽略。
入口: format->打印格式
... -> 打引内容
出口: 0-ESC命令解释完毕或数据已提交后台打印。
1--缺纸,同时缺纸灯亮,蜂鸣器响一声。
2--过温保护,蜂鸣器响四声(对M311/M312有效)。
3-马达卡住或不能移动太快,同时蜂鸣器响二声,590E告警灯亮。
4-M311/M312机芯复位错,同时蜂鸣器响三声。
B. char cprinter(const char *format,...);
功能: 打印汉字或ASCII字符(最大46字符),一次打印一行,多余字节忽略。
入口: 与A相同。
出口: 与A相同。
C. int get_printer_status(void);
功能: 返回打印机当前状态
入口: 无
出口: 0--打印机准备好
1--缺纸,同时缺纸灯亮,蜂鸣器响一声。
2--过温保护,蜂鸣器响四声(对M311/M312有效)。
3--马达卡住或不能移动太快,同时蜂鸣器响二声,590E告警灯亮。
4-M311/M312机芯复位错,同时蜂鸣器响三声。
D. int feed_printer(char line_num);
功能: 快速进纸line_num行(最大44行)
入口: line_num->进纸行数
出口: 0--进纸正常
1--缺纸,同时缺纸灯亮,蜂鸣器响一声。
2--过温保护,蜂鸣器响四声(对M311/M312有效)。
3--马达卡住或不能移动太快,同时蜂鸣器响二声,590E告警灯亮。
4--M311/M312机芯复位错,同时蜂鸣器响三声。
E. void semiautoloadpaper(void);
功能: 等待插入纸,并自动进纸20行(若无纸插入则等待)
入口: 无
出口: 无
F. int feed_back_printer(char line_num);
功能:退纸line_num行(最大44行),仅对590E有此功能,590无此功能。
入口:line_num,退纸行数。
出口: 0-退纸正常
1--缺纸,同时缺纸灯亮,蜂鸣器响一声。
3--马达卡住或不能移动太快,同时蜂鸣器响二声,590E告警灯亮。
二、打印机部分ESC命令集:
1、 ESC5X7DOUBLE "\x1b!\x32"
设置5x7倍宽模式。
2、 ESC5X7SINGLE "\x1b!\x30"
设置西文5x7正常模式。
3、 ESC7X7DOUBLE "\x1b!\x33"
设置7x7倍宽模式。
4、ESC7X7SINGLE "\x1b!\x31"
设置西文7x7正常模式(开模正常模式)。
5、 ESC7X7 "\x1bM"
设置选择7x7西文字体。
6、 ESC5X7 "\x1bP"
设置选择5x7西文字体。
7、 ESCLF16 "\x1b\x34"
设置1/6 inch换行量
8、 ESCLF18 "\x1b\x32"
设置1/8 inch换行量(对590----固定为1/8inch)。
9、 ESCINIT "\x1b@"
初始化命令,设置各参数为默认置。
10、 ESCHZDOUBLE "\x1bH\x30"
设置汉字打印为正常宽度方式。
11、 ESCHZNORMAL "\x1bH\x31"
设置汉字打印为缩小宽度方式。
12、 ESC_HZASCII_16X8 "\x1bN\x31"
设置cprinter()中的西文字体为16X8点阵方式。
13、 ESC_HZASCII_NORMAL "\x1bN\x30"
设置cprinter()中的西文字体为当前字体模式。
14、 ESC_HZ_UNI_DIR "\x1bU\x31"
设置单向打印汉字方式。
15、 ESC_HZ_BI_DIR "\x1bU\x30"
设置双向打印汉字方式(仅对590E有效)。
注:
1、 当票据的第一行打印位置在很靠近票据顶部时,由于票据的撕纸
线必须露出到出纸口,
下一次打印时,可能就打不到票据的第一行打印位置,解决办法
是可以在每次打印票
据前调用feed_back_printer(n)先退纸若干行。
2、 因采用步进马达进纸,允许行距为1/8英寸或1/6英寸,用外卡的
商户可能会用1/6英寸
行距,此时可通过“ESCLF16”命令设置。默认为1/8英寸进纸。
3、 通常590E所用机芯双向打印汉字时的效果是可以接受的,但使用
时间长后,不能保证
汉字的上下两行对齐。所以建议正常使用中采用默认的单向打印
汉字方式,在其它需
要提高打印速度的地方,可通过命令“ESC_HZ_BI_DIR”设置,该
命令对590POS无效。
4. 密码键盘 (PIN)
A. char reset_pinpad(void);
功能: 软件复位
返回: 'S':成功
'E':失败
B. char load_master_key(char key_id, char *s);
功能: 下装主密钥表*
入口: key_id: 主密钥号 (00h-1fh)
*s: 主密钥指针 (8 bytes)
返回: 'S':成功
'E':失败
C. char select_master_key(char key_id);
功能: 选择主密钥号
入口: key_id:主密钥号 (00h-1fh)
返回: 'S':成功
'E':失败
D. char load_workkey(char *s);
功能: 下装工作密钥
入口: *s: 工作密钥指针(8 bytes)
返回: 'S':成功
'E':失败
E. char load_card_no(char *s);
功能: 下装卡号
入口: *s: 卡号指针 (8 bytes)
返回: 'S':成功
'E':失败
F. char read_pinpad(char len,char disp_mode,char encrypt_mode,char *s);
功能: 下装密码长度,显示方式,加密方式,等待输入PIN。增加超时返回功能,超时时限由
settimer(char seconds)函数确定
入口: len: 设置 pin 长度 (1--15bytes)
(为0时密码输入长度为1-15任意)
disp_mode: 0-显示PIN
1-显示 '*'
encrypt_mode: 0-不做A算法
1-进行A算法加密
*s-返回数据指针 (16 bytes)
返回: 'S':成功
'E':失败
'C':POS 按<CANCEL>键退出或settimer(int seconds)超时退出
G. char user_encrypt(char *s1,char *s2);
功能: 用户数据加密
入口: *s1: 加密数据指针 (0-16字节)
*s2: 返回数据指针
返回: 'S': 成功
'E': 失败
H. char display_pinpad(char *s);
功能: 显示数据 (0-15字节)
入口: *s 字符串指针
返回: 'S': 成功
'E': 失败
密码键盘按确认键清屏,若密码键盘未按确认键则密码键盘始终点亮
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -