商米电子秤服务插件
概述
SunmiScaleUTS封装商米电子秤服务模块,支持商米旗下S2, S2CC, S2L CC等设备,设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。
功能说明
SDK插件下载
一. 电子秤参数
型号: | S2, S2CC, S2L CC |
---|---|
最大量程 | 6kg≤Max≤30kg |
n(等级) | 3000 (III) |
检定分度 | 1/2g,2/5g,5/10g |
工作温度 | -10~+40℃ |
二. 计量量相关基础知识
-
零点
每次智能电子秤重新上电的时候,电子秤都会自动记录初始零点作为后续称重的参考。开机重启的零点范围通常是满量程的10%。当重量超过满量程的10%的时候,电子秤将无法找到零点位置。例如,对15kg的电子秤而言,如果开机的时候秤盘的重量超过1.5kg的时候,电子秤将无法找到零点位置。如果重量小于1.5kg的时候,电子秤将默认从零点开始称量。
推荐您在上电开机的前清空秤盘上所有的物品。
-
手动清零/零点设置
在日常称重时,倘若需要回到零点时,可以通过手动清零回到初始零点位置。手动清零的范围是满量程的2%。对15kg的电子秤而言,手动清零的范围是300g。例如,在您清洁完秤盘后,可能称重显示为-0.004kg。当您点击清零按钮后,称重显示即回归“0.000kg”。
注意:在有皮重的情况下,清零按钮将无效。
-
去皮
在称重过程中,如果需要将商品包装的重量去除的时候,可以通过去皮操作执行。去皮的重量将会影响到称量的范围。例如,如果一台15kg的电子秤设置了5kg的皮重之后,那么剩余的称重范围将仅剩余10kg。
称重去皮:先把包装放在秤盘上,点击去皮按钮后,包装的重量将自动记录为皮重;
预置皮重如果您已知包装重量的时候,可以手动输入皮重值;
对多量程的电子秤而言,最大去皮重量通常是Max1-e1。例如,6/15kg的电子秤,最大皮重是-5.998kg。
注意:预置皮重的值必须准确设置。首先,预置皮重的值必须小于最大皮重;其次,预置皮重值必须按照正确的分度值设置。例如,对一台6/15kg(n=3000)的电子秤,6.005kg或者是0.019kg的预置皮重值都是不对。
-
净重
净重是指消费者应该支付商品的重量值。如果商品带包装,需要先将包装作为皮重去掉。
-
毛重
毛重=皮重+净重
三.电⼦秤软件开发
认证组件共由4个板块组成,分别为:
1.基础信息
计量单位信息:用于展示秤AD的基础信息。
显示内容 | 显示数值 |
---|---|
Max=XX/XXkg | 6/15kg、3/6kg、15/30kg、15kg、30kg、6kg |
Min=XXg | 40g、20g、100g、100g、200g、40g |
e=X/Xg | 2/5g、1/2g、5/10g、5g、10g、2g |
T=-XX.XXXkg | -5.998kg、-2.999kg、-14.995kg、-14.995kg、-29.990kg、-5.998kg |
认证组件基础信息:用于展示秤相关服务版本信息。
显示内容 | 显示说明 |
---|---|
ADFW:XXX | 显示称重AD版固件的版本 |
DISPLAY Version:XXX | 显示当前秤应用的版本号 |
SERVICE :XXX | 显示当前秤服务Scale Service的版本号 |
CRC status | 显示AD秤重上的数据与上位机的数据进行校验结果匹配一致:显示绿色锁图标匹配不一致:显示未锁定图标 |
2.称重状态
显示在称重过程的事件状态。
事件 | 显示说明 |
---|---|
稳定 | 当称重台重量稳定时,进行稳定状态提示。稳定时,状态灯显示颜色为绿色未稳定时,状态灯显示颜色为灰色 |
零位 | 当净重和皮重之和为0的时候(「net+tare=0」),进行零位状态提示。零位时,状态灯显示颜色为绿色未零位时,状态灯显示颜色为灰色 |
净重 | 当去皮操作后,皮重不为0,进行净重状态提示。进行去皮时,状态灯显示颜色为绿色未进行去皮时,状态灯显示颜色为灰色 |
3.称重数值
显示在称重过程的物品重量信息。
称重区域 | 显示说明 |
---|---|
皮重(kg) | 当有去皮操作时,对应的皮重信息数据显示在该数据栏中。皮重的重量数值信息,无物体时,数值为0.000。在实际的物理显示屏中的显示高度,不低于9.5mm。 |
净重(kg) | 显示为实际的净重重量。当净重重量大于过载门限(皮重+净重+9*e2)时,应当显示过载提示。当净重重量低于欠载门限(皮重+净重<-20e),应当显示欠载提示。净重的重量数值信息,无物体时,数值为0.000。净重的重量数字信息,在实际的物理显示屏中的显示高度,不低于9.5mm。 |
单价(元/kg) | 显示为当前选中商品的单价信息。价格的数值信息,无物体时,数值为0.00。单价的数字信息,在实际的物理显示屏中的显示高度,不低于9.5mm。 |
总价(元) | 显示为当前选中商品的总价信息,重量*单价。总价的数值信息,无物体时,数值为0.00。总价的数字信息,在实际的物理显示屏中的显示高度,不低于9.5mm。 |
4.称重操作
可对秤进行相关业务操作。
操作 | 说明 |
---|---|
去皮 | 将当前秤上的物体进行去皮操作,让皮重不计入数值。 |
预去皮 | 将当前秤上的物体进行预去皮操作,让皮重不计入数值。 |
置零 | 将当前秤上所有数值清空。 |
设置 | 对认证组件自身的参数进行设置设置小数点显示样式货币符号设置可设置货币符号人民币、美元、英镑、欧元可自定义符号主屏认证组件控制允许认证组件在主屏移动副屏图片设置可选择系统默认图片(黑色商米logo)可通过上传图片,自定义副屏背景图片展示风格设置可选择白色、黑色的颜色风格 |
四.电子秤服务使用方法
1.注意事项
1).从应用市场下载插件导入自己项目后,要先制作自定义插件后,才可以运行使用(示例程序已经打好基座,可以直接运行)
2).插件需在 Android 5.0 版本及以上方可正常使用
3).尽量使用 HBuilderX 4.0+ 以上的最新版本,以便更好在uni-app和uni-app x中使用uts插件
4).使用前要先调用connectScaleService()方法绑定服务,结束要及时调用onDestroy()方法断开销毁服务
2.完整代码示例
<template><view style="display: flex;justify-content: space-between;margin: 0 20px;"><view style="display: flex;margin:10px;flex-direction: column;font-size: 18px;"><view style="display: flex;">{{isStable?'true稳定':'false不稳定'}} {{net===0?'零位':'净重'}}</view><view style="display: flex;margin-top: 10px;">净重:{{net}} 克 </view><view style="display: flex;margin-top: 10px;">皮重:{{tare}} 克 </view><view style="display: flex;margin-top: 10px;">单价:{{unitPrice}} </view><view style="display: flex;margin-top: 10px;">计算重量单位:{{unit}} </view><view style="display: flex;margin-top: 10px;">计量类型:{{scaleType===0?'0公斤秤':'1磅秤'}} </view><view style="display: flex;margin-top: 10px;">固件的版本号:{{firmwareVersion}} </view><view style="display: flex;margin-top: 10px;">获取铅封状态 :{{sealState===0?'0正常':'1铅封被破坏'}} </view><view style="display: flex;margin-top: 10px;">标定按钮开关状态 :{{calStatus===0?'0未按下':'1按下'}} </view><view style="display: flex;margin-top: 10px;">加速度数据 :{{acceleData}} </view><view style="display: flex;margin-top: 10px;">电子秤参数信息 :{{calInfo}} </view><view style="display: flex;margin-top: 10px;">状态: {{isLightWeight?'电子秤过轻':''}} {{overload?'电子秤已过载,量程最大15KG':''}} {{clearZeroErr?'电子秤清零错误':''}} {{calibrationErr?'电子秤标定错误':''}}</view></view><view style="display: flex;"><view style="padding: 10px;"><button @click="connectScaleService()" style="margin-top: 10px;">服务绑定</button><button @click="disconnectScaleService()" style="margin-top: 10px;">服务断开</button><button @click="toRestart()" style="margin-top: 10px;">重启电子秤</button><button @click="toGetScaleType()" style="margin-top: 10px;">获取计量类型</button><button @click="toGetServiceVersion()" style="margin-top: 10px;">版本号</button><button @click="toReadAcceleData()" style="margin-top: 10px;">加速度数据</button><button @click="toReadSealState()" style="margin-top: 10px;">铅封状态</button><button @click="toGetCalStatus()" style="margin-top: 10px;">标定状态</button><button @click="toGetCalInfo()" style="margin-top: 10px;">秤参数信息</button></view><view style="padding: 10px;"><button @click="toTare()" style="margin-top: 10px;">去皮/清皮</button><button @click="toDigitalTare(2)" style="margin-top: 10px;">数字去皮</button><button @click="toZero()" style="margin-top: 10px;">清零</button></view><view style="padding: 10px;"><button @click="toSetUnitPrice('2')" style="margin-top: 10px;">设置单价</button><button @click="toGetUnitPrice()" style="margin-top: 10px;">获取单价</button><button @click="toSetUnit(1)" style="margin-top: 10px;">设置计算重量单位</button><button @click="toGetUnit()" style="margin-top: 10px;">获取计算重量单位</button></view></view> </view>
</template>
<script>import { connectScaleService,zero,tare,digitalTare,setUnitPrice,getUnitPrice,setUnit,getUnit,restart,getScaleType,getServiceVersion,getFirmwareVersion,cancelGetData,readAcceleData,readSealState,getCalStatus,getCalInfo,onDestroy} from "@/uni_modules/sunmi-scale";//引入方式export default {data() {return {unitPrice:'-',//单价unit:'-',//计算重量单位scaleType:'-',//0表示秤为公斤秤 1表示秤为磅秤firmwareVersion:'-',//固件的版本号sealState:'-',//铅封状态 0:正常 1:铅封被破坏calStatus:'-',//标定按钮开关状态 0:未按下 1:按下acceleData:'-',//读取加速度数据 [0][1][2]分别为 X,Y,Z方向数据calInfo:'-',//电子秤参数信息net: '-',//获取称量净重 单位:克tare:'-',//皮重,单位:克isStable:true,//秤稳定状态 true:稳定 false:浮动isLightWeight:false, //秤是否过轻(小于20E)overload:false,//秤是否过载clearZeroErr:false,//秤是否清零错误calibrationErr:false//秤是否标定错误}},created() {},methods: {// 连接Sunmi电子秤服务connectScaleService() {let _this = thisconnectScaleService({//这里返回称重结果getData(net,tare,isStable){_this.net = net_this.tare = tare_this.isStable = isStable// console.log('---->',net,tare,isStable)},//这里返回称重状态getStatus(isLightWeight, overload, clearZeroErr, calibrationErr){_this.isLightWeight = isLightWeight_this.overload = overload_this.clearZeroErr = clearZeroErr_this.calibrationErr = calibrationErr},})},// 断开Sunmi电子秤服务disconnectScaleService(){onDestroy()},//重启电子秤 toRestart(){restart()},//获取电子秤服务版本号 返回当前电子秤服务的版本号字符串toGetScaleType(){this.scaleType = getScaleType()},//获取固件版本号 接返回当前固件的版本号-五位整型数据,如10034toGetServiceVersion(){this.firmwareVersion = getFirmwareVersion()},//读取加速度数据 [0][1][2]分别为 X,Y,Z方向数据toReadAcceleData(){this.acceleData = readAcceleData()},//读取标定按钮开关状态 0:未按下 1:按下toGetCalStatus(){this.calStatus = getCalStatus()},//读取标定按钮开关状态 0:未按下 1:按下toReadSealState(){this.sealState = readSealState()},//读取电子秤参数信息//返回值为一个多个量程的二维数组例如量程为6/15kg e=2/5g 多量程电子秤将返回[[6, 2],[15,5]]toGetCalInfo(){this.calInfo = getCalInfo()},//清零toZero(){zero()},//去皮/清皮toTare(){tare()},//数字去皮 直接给电子秤下发去皮的重量toDigitalTare(i){digitalTare(i)},//设置单价 由电子秤服务计算价格时设置,将影响返回的计价结果toSetUnitPrice(unitPrice){setUnitPrice(unitPrice)},//获取当前已经设置的单价toGetUnitPrice(){this.unitPrice = getUnitPrice()},//设置价格计算时的重量单位 0:按g计重 1:按100g计重 2:按500g计重 3:按kg计重toSetUnit(unit){setUnit(unit)},//获取当前价格计算的重量单位toGetUnit(){this.unit = getUnit()}}}
</script>
商米官网地址
长期维护,持续更新,提供终身免费技术支持
相关文章:

商米电子秤服务插件
概述 SunmiScaleUTS封装商米电子秤服务模块,支持商米旗下S2, S2CC, S2L CC等设备,设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。 功能说明 SDK插件下载 一. 电子秤参数 型号:S2, S2CC, …...

华为ensp-BGP路由过滤
学习新思想,争做新青年,今天学习的是BGP路由过滤 实验目的: 掌握利用BGP路由属性AS_Path进行路由过滤的方法 掌握利用BGP路由属性Community进行路由过滤的方法 掌握利用BGP路由属性Next_Hop进行路由过滤的方法 实验内容: 本实…...

Sigrity System SI SerialLink模式进行Pcie3协议仿真分析操作指导-pcie3_client_single_post
Sigrity System SI SerialLink模式进行Pcie3协议仿真分析操作指导-pcie3_client_single_post Sigrity System SI SerialLink模式提供了10个协议合规性检查工具模板,用户可以将根据实际应用替换模板中的SPICE文件,然后进行协议仿真分析,同时软件还提供了目标结果的模板MASK以…...

Python提取目标Json键值:包含子嵌套列表和字典
目标:取json中所有的Name、Age字典 思路:递归处理字典中直接包含子字典的情况, import jsondef find_targ_dicts(data,key1,key2):result {}if isinstance(data, dict):if key1 in data and key2 in data: # 第一层字典中包含key1和key2re…...
分享6个对象数组去重的方法
大家好,关于对象数组去重的业务场景,想必大家都遇到过类似的需求吧,针对这样的需求,你是怎么做的呢。 下面我就先和大家讨论下基于对象的某个属性如何去重。 方法一:使用 .filter() 和 .findIndex() 相结合的方法 使…...

Formality:官方Tutorial(一)
相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 本文是对Synopsys Formality User Guide Tutorial中第一个实验的翻译(有删改),Lab文件可以从以下链接获取。 Formality官方Tu…...

力扣28找出字符串中第一个匹配项的下标
class Solution:def strStr(self, haystack: str, needle: str) -> int:# 特殊情况处理if not needle:return 0# 获取 haystack 和 needle 的长度a len(needle)b len(haystack)# 遍历 haystack,检查每个子字符串是否与 needle 匹配for i in range(b - a 1):if…...
【JAVA】java中将一个list进行拆解重新组装
一、使用场景 1、当需要对一个list中的元素属性进行重新赋值,比如一个list中存储了订单数据,我们需要改变list中每个订单的id,然后再重新输出订单list if(CollectionUtils.isNotEmpty(orderList)){ orderList.forEach(p->{ …...
在 Windows 上使用 SSH 密钥访问 Linux 服务器
本章目录: 前言1. 准备工作2. 生成 SSH 密钥对步骤 1:打开命令行步骤 2:运行 ssh-keygen 命令步骤 3:选择密钥保存位置步骤 4:设置密钥密码(可选)步骤 5:生成密钥对 3. 查看生成的密钥文件4. 将…...

小白0基础centos8安装docker
总述:博主作为0基础小白将详细记录第一次从centos8的下载到安装docker的过程,包括中间出现的问题和解决方案 1Centos8下载 参见博文CentOS 8 的安装(官方安装、清华大学开源软件镜像站、阿里云镜像、网易镜像下的安装步骤)_cent…...

机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告
逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准…...

openGauss连接是报org.opengauss.util.PSQLException: 尝试连线已失败
安装好高斯数据库后然后用java连接时报如下错误: 解决方法: 在openGauss数据库的安装路径下/opt/opengauss/data/single_node(这个路径根据自己实际情况变化)有个pg_hba.conf文件,修改里面host内容如下,我这里设置的是所有ip都能…...
详细的一条SQL语句的执行流程
SQL 语句的执行流程会因数据库管理系统的不同而略有差异,但一般来说,主要包括以下几个阶段: 查询解析 词法分析:数据库系统首先将输入的 SQL 语句按字符流进行扫描,依据词法规则把它分割成一个个的单词,如…...
适用于小白的程序报错提问 AI 模板
#工作记录 程序报错提问 AI 模板 1、你现在将扮演python专家,请保持连续对话,请基于你的专业知识修改代码并回答! 2、可以向我询问任何有利于你分析问题的信息。 3、你修改的程序代码,运行后报错,报错信息我放在最后…...

web实操9——session
概念 数据保存在服务器HttpSession对象里。 session也是域对象,有setAttribute和getAttribute方法 快速入门 代码 获取session和塞入数据: 获取session获取数据: 请求存储: 请求获取: 数据正常打印:…...

OFDM学习-(二)长短序列和PPDU整体数据处理流程
OFDM学习 (二)长短序列和PPDU整体数据处理流程 OFDM学习前言一、短序列短序列的作用 二、长序列三、PLCP/SIGNAL/DATA数据处理流程三、fpga实现STS模块LTS模块训练序列模块仿真波形 总结 前言 根据框图可以知道发射机这部分信号在DA转换之前,…...

.NET周刊【12月第4期 2024-12-22】
国内文章 dotnet 简单使用 ICU 库进行分词和分行 https://www.cnblogs.com/lindexi/p/18622917 本文将和大家介绍如何使用 ICU 库进行文本的分词和分行。 dotnet 简单聊聊 Skia 里的 SKFontMetrics 的各项属性作用 https://www.cnblogs.com/lindexi/p/18621674 本文将和大…...

Conda 安装 Jupyter Notebook
文章目录 1. 安装 Conda下载与安装步骤: 2. 创建虚拟环境3. 安装 Jupyter Notebook4. 启动 Jupyter Notebook5. 安装扩展功能(可选)6. 更新与维护7. 总结 Jupyter Notebook 是一款非常流行的交互式开发工具,尤其适合数据科学、机器…...
鸿蒙开发:实现键值数据库存储
前言 鸿蒙当中数据持久化存储,为我们提供了多种的实现方式,比如用户首选项方式,关系型数据库方式,键值型数据库方式,文件存储方式等等,对于数据量比较的小的,我们直接选择轻量级的用户首选项方式…...

WebGL 实践(一)开发环境搭建
WebGL 是一种基于 JavaScript 的 API,用于在浏览器中渲染 2D和3D 图形,很多场景都能用,例如游戏开发、数据可视化、在线教育和虚拟现实等应用领域。 零、基础知识 相关基础知识很重要,如果会html、JavaScript等技术掌握起来会更…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...