主题
电子秤
电子秤当前支持 大华协议、顶尖协议(ACLAS)、台衡协议(TSCALE)、 XK3118T1、TX60;
language
// 导入 class
import com.hcd.hcdpos.elecscale.ElecScale;
// 定义电子秤类
private ElecScale mElecScale;
// 初始化,如可放置于 onCreate 中
mElecScale = new ElecScale(this);
// 打开电子秤,带监听
mElecScale.startGetElecScaleData(new ElecScale.ElecScaleListener() {
@Override
public void onDeviceConnect(int status) {
if (ElecScale.CONNECT_STATUS_CONNECT == status) {
// 电子秤已连接
} else if (ElecScale.CONNECT_STATUS_DISCONNECT == status) {
// 电子秤断开 (USB端断开)
} else if (ElecScale.CONNECT_STATUS_CONNECT_NO_DATA == status) {
// 电子秤无数据 (USB端OK,电子秤DB9端可能有问题或者电子秤无数据发出)
} else {
// 未知的连接状态
}
}
@Override
public void onDataReport(String value) {
// 获取当前重量数值
String weightValue = mElecScale.getWeightFromReportString(value);
// 获取当前电子秤是否稳定状态【S->稳定;U->不稳定;F->电子秤异常】
String status = mElecScale.getStableStatusFromReportString(value);
}
@Override
public void onDeviceElecScaleType(String type) {
// type 为获取电子秤类型 (可忽略) ;
//【COMMON->通用类型;ACLAS->顶尖电子秤;F->电子秤异常】
}
});
// 控制电子秤清零
mElecScale.doElecScaleZero();
// 控制电子秤去皮
mElecScale.doElecScalePeel();
// 关闭电子秤(使用完需调用)
mElecScale.stopGetElecScaleData();
mElecScale = null; //建议释放上述电子秤接口为“默认”启动接口,当POS硬件为不同类型时,“默认”电子秤数据来源规则为:
当POS设备无外露DB9串口,那么系统ROM中不会做对应配置,“默认”电子秤数据来源为 U转串口 线;
当POS设备有外露DB9串口,那么系统ROM中会做相应配置,“默认”电子秤数据来源为 DB9 串 口;
同时,电子秤SDK中,另外有一个“启动”接口,可用来强制设置数据来源:
language
// 上述打开电子秤的接口
startGetElecScaleData(ElecScaleListener listener);
// ------> 替换为
startGetElecScaleDataInterface(ElecScaleListener listener, int interfaceType);
// 其中 listener 与原本上述函数调用逻辑相同
// interfaceType 表示电子秤输入来源,0 表示 U转串口线, 1 表示 DB9端口;
// 应用层若需要同时支持 外露 DB9 及 U转串,需要增加 UI 层面配置交互,映射为 interfaceType 传入SDK中;