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

📄 59054库函数api说明.c

📁 利用POS机具硬件改为条纹码扫描器的编程代码
💻 C
📖 第 1 页 / 共 4 页
字号:


      (3). 通过RS485网控卡/器同步或X.25通讯
           A.void init_nac_sdlc(char BPS,SDSD,SST)
                功能: 以同步联接方式初始化母POS或NAC495的MODEM口
                入口: BPS=通讯速率 (1=1200BPS)
                      SDSD=站地址 (48)
                      SST=重发次数 (5)
                出口: 无
B.void init_nac_x25(char *source_ad, char singal_grp,unsigned char singal_num,
int packet_len,char bit_flag)
	功能:	初始化母POS的X.25通信方式
	入口:	source_ad-X.25源地址
		singal_grp-信道群号,置0
		singal_num-信道号,0-0XF
		packet_len-X.25包长,256字节
		bit_flag-D/Q比特标志,置0
              出口:无
           C.char sendsdlc_nac(int LEN,char *STR)
                功能: 把数据送往母POS或NAC495
                       (适用于同步拨号线或X.25通讯)
                入口: (STR)->发送缓冲区头指针
                      (LEN)->发送数据长度
                出口:  EXIT=‘S’ 发送成功
                          ='E' 发送失败
                          ='F' 发送长度错 (1-512bytes)
           D.char readsdlc_nac(char *STR,char SECONDS,)
                功能: 从母POS或NAC495接收数据
                       (适用于同步拨号线或X.25通讯)
                入口:  (STR)->接收缓冲区头指针
                       (SECONDS)->等待接收时限 (秒)(SECONDS>=5秒)
                出口:  EXIT=0 超时未收到数据
                           =其它  实际接收到的数据个数
           E.char send_lea_sdlc_nac(int  LEN, char  * STR
                                         char SECONDS)
                功能:通过NAC495与主机NAC之间的专线发送
                       (适用于同步专线通讯)
                入口: (STR)->发送缓冲区头指针
                      (LEN)->发送数据长度
                      (SECONDS)->发送时间
                出口:  EXIT=S 发送成功
                           =E 发送失败
           F.int read_lea_sdlc_nac(char *STR,char SECONDS)
                功能:通过NAC495与主机NAC之间的专线接收
                       (适用于同步专线通讯)
                入口:  (STR)->接收缓冲区头指针
                       (SECONDS)->等待接收时限 (秒)
                出口:  EXIT=0 超时未收到数据
                           =其它  实际接收到的数据个数
          (4). 与PINPAD通讯
                A. void init_pin_port(char bps)
                功能:初始化PINPAD口通讯参数
                入口:
                char bps        波特率
                                1-9600, 2-19200, 3-28800, 4-57600 (N,8,1)
                返回:   无
              B. int  read_pin_str(char *s,char timeout,int len,char mode)
                功能:   读通讯数据
                入口:
                        char *str       读入数据的指针
                        char timeout    等待时间(秒)
                        int len         需要读的数据长度
                        char mode  1-允许按取消键退出
                                   0-禁止
                返回:   xxxx-实际读到的数据长度
                        -1   按取消键

            C. void send_pin_str(char *s,int len);
                功能:   发通讯数据
                入口:
                        char *str       要发送的数据指针
                        int  len        要发送的数据长度
                返回:   无
            D. char getdot(char *s,int i);
                功能:   取字符/汉字点阵送往PINPAD显示,因为PINPAD自身不带字库。
                入口:
                        char *str       写入点阵的指针
                        int  i          字符/汉字代码
                        0x20 < i <0x80  字符
                返回:   0-代码错, 16-字符 32-汉字

      (5). 其它
                A.char dial_nac(char *str)
                功能: 拨号
                入口: (str)->电话号码
                出口: EXIT='S'   拨号成功
                          ='E'   拨号失败
                B. char connect_nac(void)
                功能: 与RS485网控卡/器联系,以取得
                      RS485总线控制权
                出口: EXIT='S'   联系成功
                          ='E'   联系失败
               C. void dialoff_nac(void)
                功能: 切断与母POS或网控器/卡联系,释放RS485总线控制权,挂端母POS下链
D.	void  NAC_dialoff(char type);
功能:	子POS挂断母POS上链
入口:	type=1   挂断全链
=2   挂断X.25的分组层
                 出口:无


  (三).文件系统
  (1)基本文件系统
       1. char    check_pfinit(void);
        功能:   检查文件是否已初始化。
        返回:   1-初始化
                0-未初始化
        2. void pfinit(unsigned char block_long);
           功能:文件初始化,清除所有文件及记录
           入口:block_long - 块长,32-255
                 应比最大记录长度多一字节
           返回: 无
        3. unsigned char        pfopen(char *filename,char open_mode);
           功能: 以读或写方式打开文件
           入口: filename:  文件名指针,取前八字节,不足八字节后补空格
                 open_mode: 文件打开模式, 'W'-写/ 'R'-读
                        空文件不能以读方式打开
           返回: 0-文件打开错误
                 1-255 打开的文件号
        4. char pfdel(unsigned char file_no);
           功能:  删除文件
           入口: file_no: 文件号 1-255
           返回: 0--成功
                 1--文件号错误
                 2-写FLASH错误
                 3-未初始化文件系统
        5. char pfdelrec(unsigned char file_no, int rec_no);
           功能: 删除文件的一个记录,可在读或写方式下进行
           入口: file_no: 文件号 1-255
                 rec_no:  记录号 1-
           返回: 0-成功
                 1-文件号错误
                 2-记录号错误
                 3-写FLASH错误
                 4-未初始化文件系统
        6. char pfwrite(unsigned char file_no, int rec_no, char *string, unsigned char len);
           功能: 写文件的一个记录
           入口: file_no: 文件号 1-255
                 rec_no:  记录号 0/原记录数+1 -添加在文件尾
                             1-N -改写该记录
                 string:  要写的记录指针
                 len:     记录长度
           返回: 0-成功
                 1-文件号错误
                 2-未以写方式打开
                 3-记录长度大于等于块长
                 4-记录号错误
                 5-无剩余空间
                 6-写FLASH错误
                 7-未初始化文件系统
        7. int  pfread(unsigned char file_no, int start_rec_no, int rec_count,char *string);
           功能: 读文件的一个或多个记录
           入口: file_no: 文件号
                 start_rec_no: 读的起始记录号
                 rec_count: 要读的记录数
                 string: 读入指针
           出口: 读出记录的长度
                 错误时长度为零,(未以读方式打开,起始记录超出,起始记录号为0)
        8. int  pfreerec(void);
           功能: 查询文件剩余空间
           入口: 无
           返回: 剩余的记录数
           错误时返回为零(未初始化文件系统)

9.unsigned char fopen_black(char *filename,char len);
功能:   打开或建立黑名单文件
入口:
        char *filename  文件名,最多8字节
        char len  每条黑名单的长度,在文件建立时使用,需<=10字节
返回:   0-文件打开错误
        1-255--打开的文件号
10.unsigned int fsearch_black(unsigned char file_no,char *string);
功能:   查找一条黑名单
入口:   unsigned char file_no 文件名 1-255
        char *string 黑名单记录
返回:
        int
        0-未查到(未初始化文件系统)
        非0-查到
11.unsigned int  fupdate_black(unsigned char file_no,char *s1,unsigned int n1,char *s2,unsigned int n2);
功能:   成批更新黑名单
入口:
        unsigned char file_no  文件号
        char *s1      要删除的黑名单记录
        int  n1       要删除的黑名单条数
        char *s2      要添加的黑名单记录
        int  n2       要添加的黑名单条数
返回:   0-正确
        n-后n条黑名单未添加(指定的文件号不存在/该文件不是黑名单文件/无空间)

(2)扩展文件系统
1.void finit_ext(void);
功能: 文件初始化,清除所有文件及记录
入口: 无
返回: 无
2.unsigned char fcreate_ext(char  *filename,char  len);
功能:   建立文件
入口:
        char  *filename  文件名,最多8字节.
        char  len        每条记录的长度(1-16).
返回:   0-文件建立错误或该POS不配置扩展FLASH.
        1-255--建立的文件号
说明:   黑名单文件共可建立255个
3.int fsearch_ext(unsigned char file_no,char *string);
功能:   查找一条记录
入口:   char  file_no 文件名 1-255
        char  *string 记录数据指针
返回:
        int
        0-未查到
        1-查到
        2-文件不存在
4.int  finsert_ext(unsigned char file_no,char *string);
功能:   添加一条记录
入口:
        char  file_no  文件号
        char  *string  要添加的记录
返回:   0-正确
        1-文件不存在
        2-该条记录已存在
        -1-空间满
5.int  fdelrec_ext(unsigned char file_no,char *string);
功能:   删除一条记录
入口:
        char  file_no  文件号
        char  *string  要删除的记录
返回:   0-正确
        1-文件不存在
        2-该条记录不存在


590E子母POS使用注意事项
l	一台母POS最多可带31台子POS(令牌1-32,母POS固定为1),总共32台POS构建局域网,令牌不可重复;一个局域网中只允许其中的一台设置为母POS(母POS接外线),否则整个网络将不能运行;使用590E作为母POS;
l	联网使用电话线不必交叉;两台POS之间距离不宜太远(一般不超过1000米);
l	超时时间的设置必须考虑当前可能延迟的最长时间。对于同步拨号与X.25的全链挂断,默认设置的12S挂断时间应该足够了;而对于X.25分组层挂断,12S也许太长;此时用户软件可通过API进行设置;
l	用户程序输入的拨号号码与X.25地址必须以0结尾;母POS采用了不挂断上链机制,即前一台子POS通信结束之后在一定时间内不挂断上链,在此时间之内若有其它子POS需要通信且号码与前一台相同,则允许直接通信而跳过拨号/挂断,否则将进行先挂断再拨号处理;在前一种情况下,若POS网通信繁忙且号码频繁一致的情况下,效率将达最高;
l	拨号/握手成功后,若发送接收数据出错必须进行挂断上链(X.25为全链)处理;拨号/握手失败底层已经进行处理,用户程序不必理会;
l	对于同步拨号,子POS通信结束后提供了三种选择:即不挂断、挂断下链、挂断上链;对于X.25则提供了四种选择:即不挂断、挂断下链、挂断上链全链、挂断上链分组层。这些方式中,挂断下链的效率最高,推荐使用;
l	母POS由于其特殊性,即既当母POS同时允许作为子POS供正常交易使用,有些时候速度会稍慢,这属于正常现象;特别是母POS在进行自己的需要关闭中断的操作过程中是绝对不能为子POS提供服务的,因此反向决定了母POS自己的这些操作必须在母POS空闲时才能进行(如流水、打印等),从而导致母POS在通信繁忙之时会稍慢;
l	若系统不幸崩溃或子POS不能通过母POS通讯,请尝试对母POS重新上电;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -