商米电子秤服务插件
概述
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等技术掌握起来会更…...

在线机考|2024华为实习秋招春招编程题(最新)——第3题_PCB印刷电路板布线_300分(八)
题目内容 在PCB印刷电路板设计中,器件之间的连线需要避免线路的阻抗值增大、而且赛件之间还有别的器件和别的干扰源,在布线时我们希望受到的干扰尽量小。现将电路板简化成一个MN的矩阵,每个位置(单元格)的值表示其源干扰度。 如果单元格的值为0,表示此位置没有干扰源;如果单…...

Spring源码分析之事件机制——观察者模式(三)
目录 自定义事件 事件监听器 事件发布者(服务层) 使用示例controller层 Spring源码分析之事件机制——观察者模式(一)-CSDN博客 Spring源码分析之事件机制——观察者模式(二)-CSDN博客 这两篇文章是这…...

C#实现画图,及实现图像运动,C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)C#之快速入门GDI+绘图 C#实现快速画图功能
下载源码 <-------- 在C#的世界里,GDI如同一位多才多艺的艺术家,以其强大的绘图能力,让开发者能够轻松地在应用程序中挥洒创意,绘制出丰富多彩的图形世界。GDI不仅支持基本的几何图形绘制,还能处理复杂的图像处理任…...

【51单片机零基础-chapter6:LCD1602调试工具】
实验0-用显示屏LCD验证自己的猜想 如同c的cout,前端的console.log() #include <REGX52.H> #include <INTRINS.H> #include "LCD1602.h" int var0; void main() {LCD_Init();LCD_ShowNum(1,1,var211,5);while(1){;} }实验1-编写LCD1602液晶显示屏驱动函…...

算法题(24):只出现一次的数字(二)
审题: 数组中除了答案元素只出现一次外,其他元素都会出现三次,我们需要找到并返回答案元素 思路: 由于现在会出现三次,所以利用异或运算符的方法就会失效。而所有数据都在32位二进制范围内,所以我们采用依次…...

趣味编程:心形曲线
目录 1.序言 2.代码展示 3.代码详解 3.1 头文件包含 3.2 绘制坐标轴函数 3.3 main 函数主体部分 4. 小结 1.序言 2025年的第一篇博客就用这个笛卡尔心形图开篇吧,寓意着新年大家能够有心有所属,祝诸位程序猿 / 程序媛 能够早点遇到自己的另一半。…...

C# 设计模式(结构型模式):享元模式
C# 设计模式(结构型模式):享元模式 (Flyweight Pattern) 在软件开发中,尤其是在处理大量对象时,我们常常会面临内存和性能上的挑战。当多个对象具有相似的状态时,通常会占用大量的内存资源,从而…...

计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

mysql 死锁案例及简略分析
准备数据 # 创一个测试表,存储引擎使用 innodb create table test_lock (id int primary key auto_increment,name varchar(20),age int )engine innodb;insert into test_lock (name,age) values (ionc001,10); insert into test_lock (name,age) values (ionc00…...

第四届计算机、人工智能与控制工程
第四届计算机、人工智能与控制工程 The 4th International Conference on Computer, Artificial Intelligence and Control Engineering 重要信息 大会官网:www.ic-caice.net 大会时间:2025年1月10-12日 大会地点:中国合肥 (安徽大学磬苑…...