更新记录

1.0.2(2022-12-09)

优化底层引用代码

1.0.1(2022-12-09)

  • Modbus读写指令封装
  • CRC校验
  • 十六进制字符串与整型数组之间的转换
  • 整型与高低位之间转换
  • ArrayBuffer与十六进制转换

平台兼容性

阿里云 腾讯云 支付宝云
×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


功能

  • Modbus读写指令封装
  • CRC校验
  • 十六进制字符串与整型数组之间的转换
  • 整型与高低位之间转换
  • ArrayBuffer与十六进制转换

uniCloud

uniCloud云函数的使用 请参考简书https://www.jianshu.com/p/a01f0edc7c60?v=1670549138333 或 请参考官网https://uniapp.dcloud.net.cn/uniCloud/cf-callfunction.html

函数API

  1. 获取Modbus的读指令

                uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "getReadModbus",
                        params: {
                            address: parseInt(this.address), // 设备地址,十进制
                            start: parseInt(this.start), // 寄存器起始地址,十进制
                            count: parseInt(this.count) // 寄存器个数,十进制
                        }
                    }
                }).then((res) => {
                    // UCloud getReadModbus:FF0300AA000AF033
                    this.showMsg("读指令:" + res.result.data);
                }).catch((err) => {
                    this.showMsg("读指令失败:" + err);
                })
  1. 获取Modbus的写指令

                uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "getWriteModbus",
                        params: {
                            address: parseInt(this.address), // 设备地址
                            start: parseInt(this.start), // 寄存器起始地址
                            data: "0001" // 数据,这里的data可以是十六进制的字符串,如"0001", 也可以是十进制的字节数据,如[0, 1]
                        }
                    }
                }).then((res) => {
                    // UCloud getWriteModbus:FF0600AA00017DF4
                    this.showMsg("写指令:" + res.result.data);
                }).catch((err) => {
                    this.showMsg("写指令失败:" + err);
                })
  1. 获取CRC值校验值

    uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "getCRC",
                        params: {
                            data: "0105000300" // 数据,这里的data可以是十六进制的字符串,如"0001", 也可以是十进制的字节数据,如[0, 1]
                        }
                    }
                }).then((res) => {
                    // CRC:64537 高位:252 底位:25
                    var data = res.result.data;
                    this.showMsg("CRC:" + data.crc + " 高位:" + data.high + " 底位:" + data.low);
                }).catch((err) => {
                    this.showMsg("CRC失败:" + err);
                })
  1. 十六进制字符串转十进制数组

            uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "hexToIntArray",
                        params: {
                            data: "0022FFAA" // 数据
                        }
                    }
                }).then((res) => {
                    // 结果:0,34,255,170
                    this.showMsg("结果:" + res.result.data);
                }).catch((err) => {
                    this.showMsg("失败:" + err);
                })
  1. 十进制数组转十六进制字符串

uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "intArrayToHex",
                        params: {
                            data: [0,34,255,170] 
                        }
                    }
                }).then((res) => {
                    this.showMsg("结果:" + res.result.data);
                }).catch((err) => {
                    this.showMsg("失败:" + err);
                })
  1. 整型转高低位

            uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "intToHighLow",
                        params: {
                            data: 100 // 数据
                        }
                    }
                }).then((res) => {
                    var high = res.result.data.high;
                    var low = res.result.data.low;
                }).catch((err) => {
                    this.showMsg("失败:" + err);
                })
  1. 高低位转整型

        uniCloud.callFunction({
                    name: 'wrs-modbuscrchex-cloud',
                    data: {
                        funcName: "highLowToInt",
                        params: {
                            high: 100, 
                            low: 10
                        }
                    }
                }).then((res) => {
                    var high = res.result.data.high;
                    var low = res.result.data.low;
                }).catch((err) => {
                    this.showMsg("失败:" + err);
                })

支持定制,联系方式 QQ:252797991

如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,您的关注就是我们创作的动力!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问