0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析篇:Air780E低功耗模组LuatOS开发的数据打包解包(pack)!

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-12-05 09:04 次阅读

本文我们解析的是低功耗4G模组Air780E的LuatOS开发的数据打包解包,示例如下:

一、LuatOS string 库pack和unpack接口

LuatOS string库的pack和unpack是一个用于在Lua程序中进行二进制数据打包和解包操作的接口,支持多种数据类型和字节序格式,方便处理二进制协议和文件。

由于Lua中字符串几乎可以用于存储所有形式的数据,所以下面先系统介绍下Lua字符串的特点,方便习惯使用C语言编程的初学者系统的了解两种语言在数据存储方面的一些差异。

1.1 字节序的概念

字节序是指在计算机存储或传输多字节数据时,字节的排列顺序,通常分为大端序(big-endian,最高有效字节在前)和小端序(little-endian,最低有效字节在前)。

大端也常被称作叫“网络序”因为 TCP、UDP 网络数据传输和存储都使用这种格式,而一些像 STM32ARM 单片机,则使用小端存储格式;

1.2 Lua 中字符串存储

Lua 中字符串可以存储所有字节数据,包括“字符串中的可见和不可见字符”,这一点与 C 语言有很大区别;

wKgZO2dOfm6AUoAuAAYmY45zbAM650.png

1.3 Lua 中字符串的序号

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

wKgZPGdOfnmAaJv0AAUI7xRcCCA758.png

二、演示功能概述

本文使用 Air780E 核心板,运用 LuatOS string 库 pack 和 unpack 接口对二进制数据进行打包和解包操作。

三、准备硬件环境

3.1 Air780E 开发板

wKgZPGdOfoSAUeC1AANm1KKASlc236.png

(注意:需要配套采购 4G 物联网卡!)

3.2 TYPE-C 数据线

wKgZO2dOfpGAd0ajABepqTA9lqw305.png

(注意:必须是具备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 开发板按钮与指示灯图示与说明

wKgZPGdOfqSAJq_3AAOpxvLqt-I130.png

wKgZO2dOfrGAVoE8ABJvZxUalRw683.png

5.2 硬件安装与连接

5.2.1 SIM 卡安装

wKgZPGdOfr2AO02AAA-IbrTzyRg412.png

5.2.2 实物连接图

wKgZPGdOfsyAXleKAAedVAB-b8A403.png

注:开发板与电脑通过 TYPE-C 线连接,用于通信与供电,所以必须使用具有 USB 通信功能的 TYPE-C 线才可以;

六、代码示例介绍

6.1 完整程序清单

注:完整复制后保存为 main.lua,可直接使用

wKgZO2dOfuCAKHzoAAXXwF8wJ6k968.pngwKgZPGdOfvKAa28fAAWF-gi9pU4349.pngwKgZPGdOfwSAb0JGAAYEilzeixA353.pngwKgZPGdOfxSAGwTVAAIwbCuRqHg364.png

七、功能验证

7.1 开机

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

wKgZO2dOfySAHCa_AArvjnL6J48145.png

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

wKgZO2dOfzOAf5AxAAlnOJvCf54338.png


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

wKgZO2dOfz6AHNUJAAPA0oiHUCU646.png

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

wKgZO2dOf0mAfjB7AAL3RPGF0bA593.png

7.3 按序号步骤创建项目

wKgZPGdOf1KATNsqAALGys_3Kx8649.png

wKgZPGdOf1-AE2kyAAN8h9EUgGs385.png

7.4 按如下步骤进行程序烧录

注:如果出现下图警告,请点“确认”(首次使用该软件一定要升级到最新版本)

wKgZO2dOf2yAXW-_AALRkPuqR_Q029.png

wKgZO2dOf3aAFHG-AAL93NAPIRs097.png

wKgZO2dOf4WARcAKAAvC9gdDKSw466.png

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

wKgZO2dOf4-AJQphAAI_XoGo1YA820.png

wKgZO2dOf5mAIMZYAAH53hAKSpg328.png

7.6 关闭项目管理界面,回到调试页面,观察输出

注:详细日志输出内容,在程序中有增强注释说明,请详细查看。

wKgZO2dOf7GAIgRpAAhl8LDj4AQ142.png

八、总结

至此,我们已使用 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这两个方法即可。

分享完毕。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2909

    文章

    44452

    浏览量

    372405
  • 低功耗
    +关注

    关注

    10

    文章

    2385

    浏览量

    103641
  • LuatOS
    +关注

    关注

    0

    文章

    75

    浏览量

    1930
收藏 人收藏

    评论

    相关推荐

    来来来,看这里:低功耗模组LuatOS开发的日志输出!

    本文以低功耗4G模组Air780E为例,学会低功耗模组LuatOS
    的头像 发表于 12-05 09:09 112次阅读
    来来来,看这里:<b class='flag-5'>低功耗</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的日志输出!

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780ELuatOS开发实战,我将手把手教你搞定数据
    的头像 发表于 12-03 11:17 119次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>实战 —— 手把手教你搞定<b class='flag-5'>数据</b><b class='flag-5'>打包</b><b class='flag-5'>解包</b>

    4G模组Air780ELuatOS开发之位运算(bit)示例

    本文我要说的是低功耗4G模组Air780ELuatOS开发,关于位运算(bit)示例,我将详细解析
    的头像 发表于 12-02 14:33 128次阅读
    4G<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>之位运算(bit)示例

    4G模组Air780ELuatOS开发:关于通用加解密函数(crypto)教程!

    本次我将讲解低功耗4G模组Air780ELuatOS开发,关于通用加解密函数(crypto)教程分享给大家。我会从加解密概述、演示功能概述
    的头像 发表于 12-01 15:50 165次阅读
    4G<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>:关于通用加解密函数(crypto)教程!

    低功耗模组Air780E的AT指令:FTP示例!

    本文说的是关于4G模组AT指令的FTP示例,以Air780E为例,希望大家有所收获。
    的头像 发表于 11-30 09:40 153次阅读
    <b class='flag-5'>低功耗</b><b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的AT指令:FTP示例!

    解析Air780E模组LuatOS开发的随机数(random) 示例

    本文主要解析的是低功耗4G模组Air780ELuatOS开发随机数(random)实例,我以整
    的头像 发表于 11-29 20:23 95次阅读
    <b class='flag-5'>解析</b><b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的随机数(random) 示例<b class='flag-5'>篇</b>

    Air780E模组LuatOS开发的位运算(bit)教程

    本次我们要学习的是4G模组Air780ELuatOS开发,关于位运算(bit)教程分享给大家。
    的头像 发表于 11-26 11:58 120次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>的位运算(bit)教程<b class='flag-5'>篇</b>!

    Air780E模组的ADC之旅 LuatOS开发实例

    今天学习一个新的示例,关于Air780E模组LuatOS开发的ADC应用实例,希望大家有所收获。
    的头像 发表于 11-11 09:33 187次阅读
    <b class='flag-5'>Air780E</b><b class='flag-5'>模组</b>的ADC之旅  <b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>实例

    LuatOS与ADC:Air780E模组开发的新篇章!

    今天我们学习的是Air780E模组LuatOS开发之ADC应用,希望能帮助到大家。
    的头像 发表于 11-07 14:12 229次阅读
    <b class='flag-5'>LuatOS</b>与ADC:<b class='flag-5'>Air780E</b><b class='flag-5'>模组</b><b class='flag-5'>开发</b>的新篇章!

    硬件设计很简单?低功耗4G模组Air780E—开机启动及外围电路设计

    Air780E是合宙低功耗4G-Cat.1模组经典型号之一,上期我们解答了大家关心的系列问题,并讲解了[选型的注意要点] 有朋友问:能不能讲些硬件设计相关的内容? 模组的上电开机,是
    的头像 发表于 10-15 10:18 370次阅读
    硬件设计很简单?<b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>—开机启动及外围电路设计

    干货低功耗4G模组Air780E的串口通信

    ​ 今天我们来讲解低功耗4G模组Air780E的串口通信的基本用法,小伙伴们,学起来吧!
    的头像 发表于 10-05 14:38 497次阅读
    干货<b class='flag-5'>篇</b>:<b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>的串口通信

    RNDIS网卡应用看这篇!合宙Air780EP低功耗4G模组AT开发示例

    Air780EP是合宙的低功耗4G模组之一,支持全系列的AT指令以及LuatOS脚本二次开发。 本文应各位大佬邀请,特别讲解
    的头像 发表于 09-30 06:59 523次阅读
    RNDIS网卡应用看这篇!合宙<b class='flag-5'>Air780</b>EP<b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b>AT<b class='flag-5'>开发</b>示例

    硬件设计很简单?合宙低功耗4G模组Air780E—开机启动及外围电路设计

    Air780E是合宙低功耗4G-Cat.1模组经典型号之一,上期我们解答了大家关心的系列问题,并讲解了[选型的注意要点] 有朋友问:能不能讲些硬件设计相关的内容? 模组的上电开机,是
    的头像 发表于 09-27 07:04 2115次阅读
    硬件设计很简单?合宙<b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>—开机启动及外围电路设计

    合宙Air780E硬件设计手册02

    合宙低功耗4G模组Air780E硬件设计介绍
    的头像 发表于 09-06 12:02 445次阅读
    合宙<b class='flag-5'>Air780E</b>硬件设计手册02

    合宙低功耗4G模组Air780E——产品规格书

    合宙低功耗4G模组Air780E的规格信息速览
    的头像 发表于 09-02 18:04 948次阅读
    合宙<b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b><b class='flag-5'>Air780E</b>——产品规格书