一、功能简述
功能:硬件对接,耐克斯ADS设备,支持秤一键设置。POS支持串口读重,厂家提供读重协议,默认读重com2,波特率4800;POS支持端口打印,默认打印端口com3,波特率115200;POS支持端口开钱箱,同读重端口。
秤默认配置:
读重:端口com2、波特率4800、读重频率200ms
打印:端口com3,波特率115200
钱箱:端口com2、波特率4800
秤读重协议,POS对接应答通信协议,发送一次称重指令0x13,接收一次串口数据,协议解析
一段完整的串口数据:
固定开头 | 皮重数据帧 | 重量数据帧 | 结束尾 | |||||||||
Head1 | Head2 | Tare | CheckSum | Tail1 | Head2 | Flag1 | Sign | Weight | Unit | CheckSum | Tail1 | Tail2 |
开始符号 (固定0x01) | 皮重开始符号 (固定0x02) | 2~9 8个字节 用ASCII码表示屏上皮重 | 异或检验和 1字节 | 皮重结束符号 (固定0x03) | 1字节 (固定0x02) | 1字节 转换成bit LAMP1: 稳定 (0:称重不稳定,1:称重稳定) LAMP2: 超载标志 (0:表示在允许的测量范围内,1:则表示超过允许的测量范围内) LAMP3: 负重标志 (0:未负重,1重量值为负重) LAMP4:去皮操作标志(0:表示无去皮操作,1:则表示有去皮操作) LAMP5:零位指示 (0:非零位 ,1:零位 ) LAMP6:初始置零范围报警(0:正常 ,1:报警) LAMP7:单双量程状态(0:单量程 ,1:双量程) LAMP8:保留 | 1字节 符号: ‘-’:重量为负。 ‘ ’:重量为正 | 6字节 采取ASCII码表示屏上重量 | 2字节 单位为KG时为’K’,’G’两个字符的ASCII码 | 1字节 从Flag1字节开始的前面10个字节的异或值 | 1字节 固定为0x03 | 1字节 固定为0x04 |
串口指令
去皮、清皮:0x7E,0x00,0xE5,0x9B,0x7F
操作结果:
0x7E,0x01,0xE5,0x00,0x9A,0x7F 或 0x7E,0x05,0xE6,0x00,0x10,0x00,0x00,0x03,0x8E,0x7F (代表去皮成功)
0x7E,0x01,0xE5,0x01,0x9B,0x7F(代表去皮失败)
置零:0x7E,0x00,0xE4,0x9A,0x7F
操作结果:
7E 01 E4 00 9B 7F(代表置零成功)
7E 01 E4 01 9A 7F(代表置零失败)
开钱箱:0x1B,0x70,0x00,0x14,0xC8
秤配置
打印配置
钱箱配置
应用场景:门店的耐克斯一体机,查看设备铭牌注明的设备型号(ADS),POS安装后,可下载硬件模板【M_NAIKESI_ADS】,同时读重、打印、钱箱会选择到默认配置
适配机型:耐克斯一体机
二、流程图
三、代码结构
代码文件 | 实现的函数方法 | 方法作用 | |
---|---|---|---|
代码文件 | 实现的函数方法 | 方法作用 | |
weighthelper_naikesi_win.h | 耐克斯ADS Class |
1 plaintext | 秤读重初始化 |
1 plaintext | 读重 | ||
1 plaintext | 清零,指令
1 plaintext | ||
1 plaintext | 设置皮重,指令
1 plaintext | ||
1 plaintext | 清除皮重,指令
1 plaintext | ||
1 plaintext | 开钱箱,支持LPT口开钱箱,指令 {0x1B,0x70,0x00,0x14,0xC8} | ||
bool print(const char* text , double fontSizeMul); | |||
1 plaintext | 返回打印类型(驱动打印) | ||
1 plaintext | 返回秤默认配置 | ||
void readPort(); | 读取串口数据 | ||
void readSetZeroRet(); | 读写零位标记 | ||
void readSetTareRet(); | 读写皮重标记 | ||
void writePort(const QByteArray&commond); | 写入串口数据 |
四、接口
无