⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 59054库函数api说明.c

📁 利用POS机具硬件改为条纹码扫描器的编程代码
💻 C
📖 第 1 页 / 共 4 页
字号:
		         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 + -