当前位置: 首页 > news >正文

uniApp 对接安卓平板刷卡器, 读取串口数据

背景:

设备: 鸿合 电子班牌 刷卡对接 WS-B22CS, 安卓11;

需求: 将刷卡器的数据传递到自己的App中, 作为上下岗信息使用, 以完成业务;

对接方式:

1. 厂家技术首先推荐使用 接收自定义广播的方式来获取, 参考代码如下

 对应到uniApp 中的实现如下

<template><view class="content"><text class="title">内容: {{cardnumber}}</text></view>
</template><script>var main, receiver, filter;export default {name: 'GetCardNumber',data() {return {cardnumber: ''}},created: function(option) {this.init();setTimeout(() => {this.start();}, 2000)},onHide: function() {this.stop();},destroyed: function() {this.stop();},methods: {init() {let _this = this;main = plus.android.runtimeMainActivity(); //获取activity  var IntentFilter = plus.android.importClass('android.content.IntentFilter');filter = new IntentFilter();filter.addAction("android.intent.action.getcardnumber"); // 换你的广播动作 receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {onReceive: function(context, intent) {plus.android.importClass(intent);let code = intent.getStringExtra("cardnumber"); // 换你的广播标签  console.log('code', code)_this.cardnumber = code}});},start() {main.registerReceiver(receiver, filter);},stop() {main.unregisterReceiver(receiver);},}}
</script>

2. 使用uniApp 市场的 Fvv-UniSerialPort  插件实现与设备串口交互, 读取数据并转换

https://github.com/looooooooooooooooooooooool/UniSerialPort/tree/master/uni-app/nativeplugins/Fvv-UniSerialPort

安卓串口通信 Fvv-UniSerialPort - DCloud 插件市场

<template><view class="content"><text class="title">读取到的内容: {{cardnumber}}</text></view>
</template><script>const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort')export default {name: 'GetCardNumber',data() {return {cardnumber: '1111111111'}},created: function(option) {serialPort.getAllDeviceList(res => {console.log('//设备列表', res)})serialPort.getAllDevicePath(res => {console.log('//路径列表', res)}),setTimeout(() => {serialPort.setPath('/dev/ttyS3')serialPort.setBaudRate(9600)serialPort.open(res => {if (!res.status) {uni.showToast({title: res.msg,duration: 2000,icon: "none"});return}uni.showToast({title: "已打开",duration: 2000,});serialPort.onMessageHex(rec => {console.log(rec)this.cardnumber += rec + "\r\n"}, send => {console.log(send)})})}, 10000)},}
</script>

注意事项:

1. 使用 Fvv-UniSerialPort 插件时, 控制台一直报错

==> 因为你编辑完代码就直接调试的原因, 你编辑完代码重启app再调试就可以了, 而且串口不要多次打开和关闭,直接在全局的地方打开一次,不用关闭的

2. 读卡出来内容不完整或不一样

==> 指令要按照设备的文档来处理分割和拼接之后再使用

附一张设备实物图 

http://www.lryc.cn/news/104061.html

相关文章:

  • Go new 与 make
  • centos系统离线安装k8s v1.23.9最后一个版本并部署服务,docker支持的最后一个版本
  • (学习笔记-内存管理)如何避免预读失效和缓存污染的问题?
  • 【arthas】入门与实战(一)
  • vim、awk、tail、grep的使用
  • vue拖拽改变宽度
  • 华为数通HCIA-ARP(地址解析协议)详细解析
  • 【Python机器学习】实验04(1) 多分类(基于逻辑回归)实践
  • 【ChatGLM_01】ChatGLM2-6B本地安装与部署(大语言模型)
  • 谷歌Tsunami(海啸)扫描器搭建扩展使用教程
  • 诚迈科技承办大同首届信息技术产业峰会,共话数字经济崭新未来
  • 【Python】Python使用TK实现动态爱心效果
  • Unity3d C#快速打开萤石云监控视频流(ezopen)支持WebGL平台,替代UMP播放视频流的方案(含源码)
  • 【Android】APP启动优化学习笔记
  • docker的使用
  • iOS使用Rust调研
  • 抖音引流推广的几个方法,抖音全自动引流脚本软件详细使用教学
  • k8s概念-DaemonSet
  • Mac 终端快捷键设置:如何给 Mac 中的 Terminal 设置 Ctrl+Alt+T 快捷键快速启动
  • VR 变电站事故追忆反演——正泰电力携手图扑
  • fpga开发——蜂鸣器
  • 【Liux下6818开发板(ARM)】触摸屏
  • 苍穹外卖day11——数据统计图形报表(Apache ECharts)
  • 在制作PC端Game Launcher游戏启动器时涉及到的技术选型
  • SQL力扣练习(九)
  • 软考高级架构师笔记-10数学计算题
  • 设计模式五:建造者模式(Builder Pattern)
  • C++多线程编程(包含c++20内容)
  • 【C语言】通讯录2.0 (动态增长版)
  • 详解AMQP协议以及JAVA体系中的AMQP