"); //-->
本文我们解析的是低功耗4G模组Air780E的LuatOS开发的数据打包解包,示例如下:
一、LuatOS string 库pack和unpack接口
LuatOS string库的pack和unpack是一个用于在Lua程序中进行二进制数据打包和解包操作的接口,支持多种数据类型和字节序格式,方便处理二进制协议和文件。
由于Lua中字符串几乎可以用于存储所有形式的数据,所以下面先系统介绍下Lua字符串的特点,方便习惯使用C语言编程的初学者系统的了解两种语言在数据存储方面的一些差异。
1.1 字节序的概念
字节序是指在计算机存储或传输多字节数据时,字节的排列顺序,通常分为大端序(big-endian,最高有效字节在前)和小端序(little-endian,最低有效字节在前)。
大端也常被称作叫“网络序”因为 TCP、UDP 网络数据传输和存储都使用这种格式,而一些像 STM32 等 ARM 单片机,则使用小端存储格式;
1.2 Lua 中字符串存储
Lua 中字符串可以存储所有字节数据,包括“字符串中的可见和不可见字符”,这一点与 C 语言有很大区别;

1.3 Lua 中字符串的序号
注:Lua 中字符串首字节从序号 1 开始,而不像 C 语言是从序号 0 开始;并且 Lua 字符串有正数序号也有负数序号,这一点也与 C 语言不同;

二、演示功能概述
本文使用 Air780E 核心板,运用 LuatOS string 库 pack 和 unpack 接口对二进制数据进行打包和解包操作。
三、准备硬件环境
3.1 Air780E 开发板

(注意:需要配套采购 4G 物联网卡!)
3.2 TYPE-C 数据线

(注意:必须是具备USB通信的数据线!)
四、准备软件环境
4.1 Luatools
Luatools日志打印与程序烧录软件下载:
https://docs.openluat.com/Luatools/
4.2 core 固件和源码脚本
注:core 固件,是基础环境,该固件由官方提供,用户不可修改;源码脚本,为应用程序,可由客户自行修改
五、软硬件资料
1、Air780E 开发板原理图
打开 Air780E 产品手册 ,访问页面中的 《EVB_Air780X_V1.6.zip》:
https://docs.openluat.com/air780e/product/
2、API 使用介绍说明
3、Air780E开发板使用说明
打开Air780E 产品手册 ,访问页面中的 《开发板Core_Air780E使用说明 V1.0.5.pdf》
5.1 开发板按钮与指示灯图示与说明


5.2 硬件安装与连接
5.2.1 SIM 卡安装

5.2.2 实物连接图

注:开发板与电脑通过 TYPE-C 线连接,用于通信与供电,所以必须使用具有 USB 通信功能的 TYPE-C 线才可以;
六、代码示例介绍
6.1 完整程序清单
注:完整复制后保存为 main.lua,可直接使用




七、功能验证
7.1 开机
按下图所示通过TYPE-C线将开发板与电脑连接无误后,开发板电源指示红灯常亮,网络指示灯灭:

此时按下开机键,约2秒后释放,等待几秒网络指示绿灯常亮,即开机成功,如下图:

此时电脑设备管理器中会发现下图所示几个设备,即代表开机成功!

7.2 打开 Luatool 软件工具并进入项目管理测试页面

7.3 按序号步骤创建项目


7.4 按如下步骤进行程序烧录
注:如果出现下图警告,请点“确认”(首次使用该软件一定要升级到最新版本)



7.5 观察下载过程后确认烧录结果


7.6 关闭项目管理界面,回到调试页面,观察输出
注:详细日志输出内容,在程序中有增强注释说明,请详细查看。

八、总结
至此,我们已使用 Air780E 开发板验证了 LuatOS string 库 pack 和 unpack 接口对二进制数据进行打包和解包的功能。
九、拓展说明
lua 5.3 之前,string 不支持这两个接口,当时我们移植了 pack 库,使用方法和 string 库的两个接口原理一样,函数入口参数顺序有少许差别,具体可以参考 api(https://docs.openluat.com/air780e/luatos/api/core/pack/),当前最新固件 string 已完全支持 pack 和 unpack 两个接口,所以开发者可直接使用string这两个方法即可。
分享完毕。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
《AVR单片机C语言库》
物联网与RFID芯片
SmartDV展示完整的边缘与连接IP解决方案,以高速和低功耗特性赋能移动、物联网和媒体处理设备创新
基于物联网的电池组均衡充电与监控系统
芯科科技驱动和重塑智能门锁行业格局
MSP430 电表解决方案
MSP430单片机TIMER_A在产品设计中的应用
MSP430x2xx4xx系列
嵌入式系统与物联网
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
长虹R2118A型彩电开关电源(LA单片机)电路
GD32E230F6V6实用指南:为下一个项目选择合适单片机
语音合成芯片T6668和单片机8031的接口电路图
用单片机制作的纯正弦波逆变电源电路
16位语言函数工具库
AVR 单片机专栏,资料下载!之二
AVR 单片机专栏,资料下载!
纳米电力将nPZero集成电路推向超低功耗物联网的量产
Kwikset:超低功耗Wi-Fi解锁无缝体验
利用PIC12C508单片机来实现加密狗技术[转帖]
TDK 发布 SensorStage 传感器评估平台,大幅加速 IMU 开发进程
被收购后的芯科实验室:物联网与人工智能的未来走向
《ATmega8原理及应用手册》
用AT89C2051单片机实验合弦乐
[转帖]从Cygnal C8051F看8位单片机发展之路
5V 单片机与5V 耐压单片机有何区别,为什么至关重要
创维数码5000系列彩电开关电源(AN单片机)电路
倾情奉献:MSP430汇编指令集(中文),详解带实例!
超低功率高性能新一代产品MSP430F5xx
单片机语言C51应用实战集锦