硬件 - 耐克斯ACS - qt
最后更新于 2025/02/11   阅读数 4

一、功能简述

功能:硬件对接,耐克斯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

bool init();
1
plaintext

秤读重初始化

WeightInfo readData();
1
plaintext

读重

bool setZero();
1
plaintext

清零,指令

{0x7E,0x00,0xE4,0x9A,0x7F}
1
plaintext

bool setTare(double tare);
1
plaintext

设置皮重,指令

{0x7E,0x00,0xE5,0x9B,0x7F}
1
plaintext

bool setYTare(double tare);
1
plaintext

清除皮重,指令

{0x7E,0x00,0xE5,0x9B,0x7F}
1
plaintext

bool openCashDrawer();
1
plaintext

开钱箱,支持LPT口开钱箱,指令

{0x1B,0x70,0x00,0x14,0xC8}

bool print(const char* text , double fontSizeMul);

int getPrintType(){return PrintOnDriver;}
1
plaintext

返回打印类型(驱动打印)

static WeightHard getDefaultSetting();
1
plaintext

返回秤默认配置

void readPort();

读取串口数据

void readSetZeroRet();

读写零位标记

void readSetTareRet();

读写皮重标记

void writePort(const QByteArray&commond);

写入串口数据

四、接口

未能解决您的问题?请联系
本篇目录

一、功能简述

二、流程图

三、代码结构

四、接口