商米电子秤服务插件

概述

SunmiScaleUTS封装商米电子秤服务模块,支持商米旗下S2, S2CC, S2L CC等设备,设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。

功能说明

SDK插件下载

一. 电子秤参数

型号:S2, S2CC, S2L CC
最大量程6kg≤Max≤30kg
n(等级)3000 (III)
检定分度1/2g,2/5g,5/10g
工作温度-10~+40℃

二. 计量量相关基础知识

  1. 零点

    每次智能电子秤重新上电的时候,电子秤都会自动记录初始零点作为后续称重的参考。开机重启的零点范围通常是满量程的10%。当重量超过满量程的10%的时候,电子秤将无法找到零点位置。例如,对15kg的电子秤而言,如果开机的时候秤盘的重量超过1.5kg的时候,电子秤将无法找到零点位置。如果重量小于1.5kg的时候,电子秤将默认从零点开始称量。

    推荐您在上电开机的前清空秤盘上所有的物品。

  2. 手动清零/零点设置

    在日常称重时,倘若需要回到零点时,可以通过手动清零回到初始零点位置。手动清零的范围是满量程的2%。对15kg的电子秤而言,手动清零的范围是300g。例如,在您清洁完秤盘后,可能称重显示为-0.004kg。当您点击清零按钮后,称重显示即回归“0.000kg”。

    注意:在有皮重的情况下,清零按钮将无效。

  3. 去皮

    在称重过程中,如果需要将商品包装的重量去除的时候,可以通过去皮操作执行。去皮的重量将会影响到称量的范围。例如,如果一台15kg的电子秤设置了5kg的皮重之后,那么剩余的称重范围将仅剩余10kg。

    称重去皮:先把包装放在秤盘上,点击去皮按钮后,包装的重量将自动记录为皮重;

    预置皮重如果您已知包装重量的时候,可以手动输入皮重值;

    对多量程的电子秤而言,最大去皮重量通常是Max1-e1。例如,6/15kg的电子秤,最大皮重是-5.998kg。

    注意:预置皮重的值必须准确设置。首先,预置皮重的值必须小于最大皮重;其次,预置皮重值必须按照正确的分度值设置。例如,对一台6/15kg(n=3000)的电子秤,6.005kg或者是0.019kg的预置皮重值都是不对。

  4. 净重

    净重是指消费者应该支付商品的重量值。如果商品带包装,需要先将包装作为皮重去掉。

  5. 毛重

    毛重=皮重+净重

三.电⼦秤软件开发

认证组件共由4个板块组成,分别为:

电子秤认证组件.png

1.基础信息

计量单位信息:用于展示秤AD的基础信息。

显示内容显示数值
Max=XX/XXkg6/15kg、3/6kg、15/30kg、15kg、30kg、6kg
Min=XXg40g、20g、100g、100g、200g、40g
e=X/Xg2/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 = this
				connectScaleService({
					//这里返回称重结果
					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()
			},
			//获取固件版本号 接返回当前固件的版本号-五位整型数据,如10034
			toGetServiceVersion(){
				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>

在这里插入图片描述
在这里插入图片描述

商米官网地址

长期维护,持续更新,提供终身免费技术支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份&#xff0c;并在需要时进行编辑。这可以做到吗&#xff1f;如何做到&#xff1f;作为助手我需要下载什么工具吗&#xff1f; 当您的 Android 手机上存储了如此多的重要联系人&#xff0c;而您又不想丢失它们时&#…

linux安装redis及Python操作redis

目录 一、Redis安装 1、下载安装包 2、解压文件 3、迁移文件夹 4、编译 5、管理redis文件 6、修改配置文件 7、启动Redis 8、将redis服务交给systemd管理 二、Redis介绍 1、数据结构 ①字符串String ②列表List ③哈希Hash ④集合Set ⑤有序集合Sorted Set 2、…

聆听音乐 1.5.9 | 畅听全网音乐,支持无损音质下载

聆听音乐手机版是面向广大音乐爱好者的移动应用程序&#xff0c;用户可以随时随地通过手机享受丰富的音乐资源。它提供了多种魅力功能&#xff0c;让用户在手机上畅享更舒适的音乐体验&#xff0c;每位用户都能享受精彩纷呈的收听体验。此外&#xff0c;软件还支持无损音质音乐…

在React中引入tailwind css(图文详解)

Tailwind CSS 是一个功能强大的 CSS 框架&#xff0c;旨在使开发者能够以更高效、灵活的方式创建现代、响应式的网页。与传统的 CSS 框架&#xff08;如 Bootstrap 或 Foundation&#xff09;不同&#xff0c;Tailwind 采取了“实用类”&#xff08;Utility-First&#xff09;的…

双指针算法详解

目录 一、双指针 二、双指针题目 1.移动零 解法&#xff1a; 代码&#xff1a; 2.复写零 ​编辑 解法&#xff1a; 代码&#xff1a; 边界情况处理: 3.快乐数 ​编辑 解法:快慢指针 代码&#xff1a; 4.盛水最多的容器 解法&#xff1a;&#xff08;对撞指针&#xff09;…

每天40分玩转Django:Django Celery

Django Celery 一、知识要点概览表 模块知识点掌握程度要求Celery基础配置、任务定义、任务执行深入理解异步任务任务状态、结果存储、错误处理熟练应用周期任务定时任务、Crontab、任务调度熟练应用监控管理Flower、任务监控、性能优化理解应用 二、基础配置实现 1. 安装和…

Web安全扫盲

1、建立网络思维模型的必要 1 . 我们只有知道了通信原理&#xff0c; 才能够清楚的知道数据的交换过程。 2 . 我们只有知道了网络架构&#xff0c; 才能够清楚的、准确的寻找漏洞。 2、局域网的简单通信 局域网的简单通信&#xff08;数据链路层&#xff09; 一般局域网都通…

【MATLAB APP Designer】小波阈值去噪(第一期)

代码原理及流程 小波阈值去噪是一种信号处理方法&#xff0c;用于从信号中去除噪声。这种方法基于小波变换&#xff0c;它通过将信号分解到不同的尺度和频率上来实现。其基本原理可以分为以下几个步骤&#xff1a; &#xff08;1&#xff09;小波变换&#xff1a;首先对含噪信…

CDP集群安全指南-动态数据加密

[〇]关于本文 集群的动态数据加密主要指的是加密通过网络协议传输的数据&#xff0c;防止数据在传输的过程中被窃取。由于大数据涉及的主机及服务众多。你需要更具集群的实际环境来评估需要为哪些环节实施动态加密。 这里介绍一种通过Cloudera Manager 的Auto-TLS功能来为整个…

信息安全、网络安全和数据安全的区别和联系

1. 前言 有次有朋友问我 信息安全、网络安全和数据安全&#xff0c;这三个词平时写文档时怎么用&#xff1f; 我想很多人都说不清。这次我查阅了资料&#xff0c;尽量讲清楚这三者之间的区别和联系。 2. 信息安全 2.1 定义 信息安全是指为数据处理系统建立和采用的技术和管…

vim 的基础使用

目录 一&#xff1a;vim 介绍二&#xff1a;vim 特点三&#xff1a;vim 配置四&#xff1a;vim 使用1、vim 语法格式2、vim 普通模式&#xff08;1&#xff09;保存退出&#xff08;2&#xff09;光标跳转&#xff08;3&#xff09;文本删除&#xff08;4&#xff09;文本查找&…

Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结

注&#xff1a;因为本人也是第一次接入广告与支付SDK相关的操作&#xff0c;网上也查了很多教程&#xff0c;很多也都是只言片语或者缺少一些关键步骤的说明&#xff0c;导致本人也是花了很多时间与精力踩了很多的坑才搞定&#xff0c;发出来也是希望能帮助到其他人在遇到相似问…

【嵌入式硬件】直流电机驱动相关

项目场景&#xff1a; 驱动履带车&#xff08;双直流电机&#xff09;前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案&#xff08;这是修改之后的图&#xff09; 原因分析&#xff1a; 1.主要原因是4路PWM没有限幅&#xff0c;修改…

数据库知识汇总1

一. 数据库系统概述 信息需要媒体&#xff08;文本、图像视频等&#xff09;表现出来才能被人类所获取&#xff0c;媒体可以转换成比特或者符号&#xff0c;这些称为数据&#xff1b; 数据/信息的特点&#xff1a;爆炸式增长、无限复制、派生&#xff1b; 数据库是指长期长期…

Dubbo扩展点加载机制

加载机制中已经存在的一些关键注解&#xff0c;如SPI、©Adaptive> ©Activateo然后介绍整个加载机制中最核心的ExtensionLoader的工作流程及实现原理。最后介绍扩展中使用的类动态编译的实 现原理。 Java SPI Java 5 中的服务提供商https://docs.oracle.com/jav…

Elasticsearch向量检索需要的数据集以及768维向量生成

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) Elasticsearch检索之三&#xff1a;官方推荐方案search_after…

网关的主要作用

在网络安全领域&#xff0c;网关扮演着举足轻重的角色&#xff0c;它不仅是网络间的桥梁&#xff0c;更是安全防线的守护者。以下是网关在网络安全中的几个关键作用&#xff1a; 1. 防火墙功能&#xff1a;网关常常集成了防火墙技术&#xff0c;能够对进出网络的数据包进行严格…

【Cocos TypeScript 零基础 4.1】

目录 背景滚动 背景滚动 创建一个 空节点 背景丟进去 ( 复制一个,再丢一次都行) 新建TS脚本 并绑定到 空节点 上 再对TS脚本进行编辑 export class TS2bg extends Component {property (Node) // 通过属性面板去赋值bg1:Node nullproperty (Node) bg2:Node nullprope…

如何利用群晖NAS实现远程访问你的网页版Linux虚拟桌面环境

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 今天我要给大家介绍一下如何在群晖NAS设备上部署Docker-Webtop&#x…

MySQL 04 章——运算符

一、算数运算符 算数运算符主要用于数学运算&#xff0c;其可以连接运算符前后的两个数值或表达式 运算符名称作用示例加法运算符计算两个值或表达式的和SELECT AB-减法运算符计算两个值或表达式的差SELECT A-B*乘法运算符计算两个值或表达式的乘积SELECT A*B/或DIV除法运算符…