📄 59054库函数api说明.c
字号:
(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 + -