友讯达模块学习记录 1. 软件功能的使用 设备可以设置为3种模式 (Master/slaver/repeater(中继) ) 下图的信息设置,这里就是C字段 和CI 字段中间部分 表示设备制造信息, M1、M2是制造商域,ID1~ID4 表示的是身份识别域 具体的帧结构如下: Data存放的是具体要发送的数据,C-Field 字段表示 是主机发给从…
友讯达模块调试笔记 仪表为 Slave 模式, 主动上报数据, 网关为 Master 模式, 负责接收数据 模块配置 设备以 ATJ 为起始指令, 配置结束后通过 ATJX 退出寄存器配置模式, 再用 ATQ 退出配置模式, 配置命令执行成功均会返回 OK 配置模式包含两种, AT 命令和寄存器配置命令, AT 命令掉电丢失, 寄存器命令掉电保存,…
2023.4.14 #include "stdio.h" #include "stdint.h" //typedef unsigned char uint8_t; //typedef unsigned short uint16_t; typedef struct { //uint8_t start; // 判…
友讯达模块调试笔记 仪表为 Slave 模式, 主动上报数据, 网关为 Master 模式, 负责接收数据 模块配置 设备以 ATJ 为起始指令, 配置结束后通过 ATJX 退出寄存器配置模式, 再用 ATQ 退出配置模式, 配置命令执行成功均会返回 OK 配置模式包含两种, AT 命令和寄存器配置命令, AT 命令掉电丢失, 寄存器命令掉电保存,…
2023-4-7 更新设备信息, 通过注册码实现自动注册设备,刷入固件就注册。 Lua 中的回调函数注意事项 在回调函数中,无法将回调函数中的值传给外面,那么应该怎么办呢? 这个问题有了答案,就是回调函数 和 外部函数 同时运行的时机,外部函数要在回调函数之后拿取数据,最好加一个延时函数,保证回调函数nvm 写完之后在执行 读取nvm的操作(之前产…
qos = qos or 0 的问题 qos = qos or 0 此处的qos 就当它是一个随机变量吧, 这行代码类似于C++的 三元运算符 int num = a > b ? a:b; lua下的解读: 如果qos 存在,那么就选qos ,如果不存在就qos 默认为0 lua 语言中的 for 循环的键值对 -- 以http 为例 loc…
关于Lua 语言中:的使用,以及MQTT 遇到的问题 博客文档 Lua 中关键字self 类似于C++ 的this 关键字。而且,Lua 中的 ":" 代表隐藏这个参数,需要使用self 来进行调用。(强烈建议看前方的[ 博客文档 ] ) self 就是给Lua 的冒号提供的关键字,为了让语法更加简洁。 self指向的是自己:前…
今天遇到的问题和解决办法。 MQTT 其中token 的加密方式 无论是 md5 还是 sha256都可以,因为在token 的字段里面保存了加密方式,如下图,是可以被服务器解码的. 注意:加密方法不只是单纯地改method 的字段,改了字段之后,下面的计算sign 的算法函数也要更改,否则云平台会报错1006,签名不匹配, 订阅发布函数,在调用的…
今天遇到的问题 我想调用string 的一个函数, 我像C++ 或者JAVA 一样直接 . 它,其实我想调用它的是一个参数,应该用:,这个BUG 找了好久。 在不同的分文件下面的函数,要调用它的函数需要 前面写文件名,以示区分。在C/C++ 中,这种调用往往是在头文件中引入的,所以会区分。由于在lua 中没有头文件,所以需要人为手动调用。 就是因为…
module(..., package.seeall) require "utils" require "pm" require "testJson" -- 引入JSON 使用JSON 解包 local UartID = 2 function UartReceive() local cac…