Skip to content

电子秤

电子秤当前支持 大华协议、顶尖协议(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中;