Swap tabbar positions and enable MQTT by default Exchange network settings and device information tabbar positions Move network settings to first position and device information to third Enable MQTT switch by default in settings Update app.json tabBar configuration for new order 交换tabbar位置并默认开启MQTT 交换网络设置和设备信息tabbar位置 将网络设置移至第一位,设备信息移至第三位 在设置中默认开启MQTT开关 更新app.json tabBar配置以适应新顺序
Swap tabbar positions and enable MQTT by default
交换tabbar位置并默认开启MQTT
|-- app.js:定义小程序全局变量 |-- app.json:tabBar(底部导航栏)配置 |-- weui.wxss:weui库 |-- pages | |-- device-information:设备信息页面 | | |-- device-information.js | | |-- device-information.json | | |-- device-information.wxml | | |-- device-information.wxss | |-- device-interface:设备接口页面 | | |-- device-interface.js | | |-- device-interface.json | | |-- device-interface.wxml | | |-- device-interface.wxss | |-- images:项目所有图标 | | |-- Dmp设备接口-active.png | | |-- Dmp设备接口.png | | |-- Dmp设备接口new-active.png | | |-- hero.svg | | |-- scan.png | | |-- scan.svg | | |-- 以太网-active.png | | |-- 以太网.png | | |-- 以太网new-active.png | | |-- 网络设置-active.png | | |-- 网络设置.png | | |-- 网络设置new-active.png | | |-- 联通4G-active.png | | |-- 联通4G.png | | |-- 联通4Gnew-active.png | | |-- 设备信息-active.png | | |-- 设备信息.png | | |-- 设备信息new-active.png | | |-- 首页-active.png | | |-- 首页.png | |-- search:搜索页面(首页) | | |-- search.js | | |-- search.json | | |-- search.wxml | | |-- search.wxss | |-- settings:网络设置页面 | |-- settings.js | |-- settings.json | |-- settings.wxml | |-- settings.wxss |-- utils |-- util.js:工具库
如下图所示,搜索页面的初始界面只有一个“搜索蓝牙设备”按钮。点击该按钮,手机开始搜索周围所有的蓝牙设备。
点击搜索按钮后,可以显示搜索到的每一个蓝牙设备的设备名称,设备ID以及信号强度。
如果再次点击按钮,则会停止蓝牙设备搜索。停止搜索后,如果再点击按钮,会重新搜索蓝牙设备。
如果点击任意设备,微信小程序会尝试使用蓝牙连接设备。若连接成功,会跳转至device-information页面;若连接失败,则会显示“蓝牙连接失败”的Toast。
设备信息页面用于显示设备信息,包括系统ID、模块编号、设备序列号、固件版本、硬件版本、软件版本、设备生产商,如下图所示:
这些设备信息通过读取特征值来获取,相关的服务ID和特征值ID详见附录2 蓝牙特征值 设备信息。
该页面用于配置设备接口相关参数,目前实现的设备接口仅有RS485。
RS485可以配置的参数有波特率、数据位、停止位、校验位。点击对应的选项可以弹出选择界面,如下所示:
点击确定按钮,会向设备发送设备接口设置报文。
settings页面主要用于进行网络设置,目前可以配置的模块为4G模块和以太网模块。点击上方导航栏可以切换模块,如下所示:
目前的字段校验工作由微信小程序前端来完成,如果字段填写不规范,小程序前端不会发送配置请求报文,而是会弹出相应的错误Toast,用于提醒用户哪个字段填写有误,如下所示:
字段填写规范如下:
a.b.c.d
4G模块可以配置的字段有:目的IP地址、目的端口号、MQTT开关、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
如果关闭MQTT开关,则无法配置MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
打开MQTT开关之后的页面如下所示:
关闭MQTT开关之后的页面如下所示:
Ethernet模块可以配置的字段有:目的IP地址、目的端口号、DHCP开关、源IP地址、源端口号、子网掩码、网关地址。
如果打开DHCP开关,则无法配置源IP地址、源端口号、子网掩码、网关地址。
关闭DHCP开关后的页面如下所示:
打开DHCP开关后的页面如下所示:
点击确认按钮后,若字段校验全部通过,则会发送一个请求报文。此时微信小程序会等待网络连接状态的响应报文,并且显示正在连接的标识,如下所示:
若连接成功,则显示“连接成功”的标识,如下所示:
若连接失败,则显示“连接失败”的标识,如下所示:
ch32v208与微信小程序通过蓝牙交互。一个请求报文分成多个蓝牙包,每个蓝牙包固定20字节。
微信小程序发出请求报文,ch32v208响应确认报文并解析请求报文。如果配置的是4G模块或者以太网模块,还会响应一个网络连接状态报文。
微信小程序向ch32v208发送请求报文。
==蓝牙每个包固定20个字节,每次发送请求可能有多个包,根据报文类型决定==
4G模块:关闭MQTT开关,设置目的IP地址、目的端口号。
4G模块:打开MQTT开关,设置目的IP地址、目的端口号、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
以太网模块:打开DHCP开关,设置目的IP地址、目的端口号。
以太网模块:关闭DHCP开关,设置目的IP地址、目的端口号、源IP地址、源端口号、子网掩码、网关地址。
RS485模块,设置波特率、数据位、停止位、校验位。
2400
0x01
4800
0x02
9600
0x03
19200
0x04
38400
0x05
57600
0x06
115200
0x07
230400
0x08
8
9
1
2
None
Odd
Even
ch32v208向微信小程序发送响应报文。
如果ch32v208收到设置报文,会通过类型为notification的特征值向微信小程序返回设置确认报文。
如果微信小程序发送网络设置报文,ch32v208会通过类型为notification的特征值向小程序返回网络连接状态报文。
ch32v208通过两个特征值与微信小程序进行交互:
ble_uart_RxChar
ble_uart_TxChar
如下图所示:
基于xizi工业物联网操作系统的微信小程序,旨在实现智能设备与服务的无缝互联,构建出一个万物皆可智能交互、互联互通的未来生态体系
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
1. 项目结构
2. 页面路由
3. 功能详解
3.1 search
3.1.1 初始界面
如下图所示,搜索页面的初始界面只有一个“搜索蓝牙设备”按钮。点击该按钮,手机开始搜索周围所有的蓝牙设备。
3.1.2 显示周围所有蓝牙设备
点击搜索按钮后,可以显示搜索到的每一个蓝牙设备的设备名称,设备ID以及信号强度。
如果再次点击按钮,则会停止蓝牙设备搜索。停止搜索后,如果再点击按钮,会重新搜索蓝牙设备。
如果点击任意设备,微信小程序会尝试使用蓝牙连接设备。若连接成功,会跳转至device-information页面;若连接失败,则会显示“蓝牙连接失败”的Toast。
3.2 device-information
设备信息页面用于显示设备信息,包括系统ID、模块编号、设备序列号、固件版本、硬件版本、软件版本、设备生产商,如下图所示:
这些设备信息通过读取特征值来获取,相关的服务ID和特征值ID详见附录2 蓝牙特征值 设备信息。
3.3 device-interface
该页面用于配置设备接口相关参数,目前实现的设备接口仅有RS485。
RS485可以配置的参数有波特率、数据位、停止位、校验位。点击对应的选项可以弹出选择界面,如下所示:
点击确定按钮,会向设备发送设备接口设置报文。
3.4 settings
3.4.1 切换模块
settings页面主要用于进行网络设置,目前可以配置的模块为4G模块和以太网模块。点击上方导航栏可以切换模块,如下所示:
3.4.2 字段校验
目前的字段校验工作由微信小程序前端来完成,如果字段填写不规范,小程序前端不会发送配置请求报文,而是会弹出相应的错误Toast,用于提醒用户哪个字段填写有误,如下所示:
字段填写规范如下:
a.b.c.d,a,b,c,d是0~255之间的十进制整数a.b.c.d,a,b,c,d是0~255之间的十进制整数a.b.c.d,a,b,c,d是0~255之间的十进制整数a.b.c.d,a,b,c,d是0~255之间的十进制整数3.4.3 模块字段
3.4.3.1 4G
4G模块可以配置的字段有:目的IP地址、目的端口号、MQTT开关、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
如果关闭MQTT开关,则无法配置MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
打开MQTT开关之后的页面如下所示:
关闭MQTT开关之后的页面如下所示:
3.4.3.2 Ethernet
Ethernet模块可以配置的字段有:目的IP地址、目的端口号、DHCP开关、源IP地址、源端口号、子网掩码、网关地址。
如果打开DHCP开关,则无法配置源IP地址、源端口号、子网掩码、网关地址。
关闭DHCP开关后的页面如下所示:
打开DHCP开关后的页面如下所示:
3.4.4 连接状态
点击确认按钮后,若字段校验全部通过,则会发送一个请求报文。此时微信小程序会等待网络连接状态的响应报文,并且显示正在连接的标识,如下所示:
若连接成功,则显示“连接成功”的标识,如下所示:
若连接失败,则显示“连接失败”的标识,如下所示:
附录1 蓝牙帧格式
ch32v208与微信小程序通过蓝牙交互。一个请求报文分成多个蓝牙包,每个蓝牙包固定20字节。
微信小程序发出请求报文,ch32v208响应确认报文并解析请求报文。如果配置的是4G模块或者以太网模块,还会响应一个网络连接状态报文。
请求报文
微信小程序向ch32v208发送请求报文。
请求蓝牙包格式
==蓝牙每个包固定20个字节,每次发送请求可能有多个包,根据报文类型决定==
网络设置报文
4G模块:关闭MQTT开关,设置目的IP地址、目的端口号。
4G模块:打开MQTT开关,设置目的IP地址、目的端口号、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
以太网模块:打开DHCP开关,设置目的IP地址、目的端口号。
以太网模块:关闭DHCP开关,设置目的IP地址、目的端口号、源IP地址、源端口号、子网掩码、网关地址。
设备接口设置报文
RS485模块,设置波特率、数据位、停止位、校验位。
2400->0x014800->0x029600->0x0319200->0x0438400->0x0557600->0x06115200->0x07230400->0x088->0x019->0x021->0x012->0x02None->0x01Odd->0x02Even->0x03响应报文
ch32v208向微信小程序发送响应报文。
设置确认报文
如果ch32v208收到设置报文,会通过类型为notification的特征值向微信小程序返回设置确认报文。
网络连接状态报文
如果微信小程序发送网络设置报文,ch32v208会通过类型为notification的特征值向小程序返回网络连接状态报文。
附录2 蓝牙特征值
设备信息
交互
ch32v208通过两个特征值与微信小程序进行交互:
ble_uart_RxChar(在ch32v208视角中是读取该特征值)。ble_uart_TxChar(在ch32v208视角中是写入该特征值)。如下图所示: