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这两个方法即可。

分享完毕。

审核编辑 黄宇

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

    关注

    2939

    文章

    47353

    浏览量

    408398
  • 低功耗
    +关注

    关注

    12

    文章

    3003

    浏览量

    106271
  • LuatOS
    +关注

    关注

    0

    文章

    134

    浏览量

    2576
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Air780EPM嵌入式开发LuatOS下的MQTT通信实践

    通过LuatOS脚本在Air780EPM开发板上实现MQTT通信,是物联网设备开发中高效且便捷的解决方案。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT(Messa
    的头像 发表于 09-30 16:11 1635次阅读
    <b class='flag-5'>Air780</b>EPM嵌入式<b class='flag-5'>开发</b>:<b class='flag-5'>LuatOS</b>下的MQTT通信实践

    Air780EPM开发板FTP功能实战:LuatOS嵌入式开发解析

    本文深入讲解Air780EPM模组LuatOS环境下的FTP应用开发,涵盖AT指令配置、网络连接与文件传输流程,助你高效完成嵌入式通信项目。 一、什么是 FTP   1.1 基本概念
    的头像 发表于 09-29 15:37 269次阅读
    <b class='flag-5'>Air780</b>EPM<b class='flag-5'>开发</b>板FTP功能实战:<b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>全<b class='flag-5'>解析</b>

    LuatOS Air780EPM 开发板 HTTP 教程:原理讲解与项目实操!

    本篇教程将系统介绍 LuatOS Air780EPM 在 HTTP 通信中的应用,从请求机制到响应解析,配合完整代码演示,让你轻松实现设备端与云端的数据交互。 一、HTTP 概述 1.
    的头像 发表于 09-26 20:36 447次阅读
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>Air780</b>EPM <b class='flag-5'>开发</b>板 HTTP 教程:原理讲解与项目实操!

    解锁Air780EPM:N种GPIO操控LED的实战技巧!

    ——通过硬件层精确控制电路参数,结合LuatOS高效API实现快速原型开发,适用于智能照明、状态指示等物联网场景。   一、GPIO直接驱动LED 1.1 适用场景 低功耗场景:LED电流 ≤ 5mA
    的头像 发表于 05-28 16:56 567次阅读
    解锁<b class='flag-5'>Air780</b>EPM:N种GPIO操控LED的实战技巧!

    深度解析Air780EPM模组LuatOS下CAN总线通信的完整方案!

    本文聚焦Air780EPM的CAN通信能力,结合LuatOS实时操作系统,从底层驱动到应用层协议,详细拆解如何实现工业级CAN总线数据传输,助力开发者快速落地项目。 最新资料详见: h
    的头像 发表于 05-06 14:22 695次阅读
    深度<b class='flag-5'>解析</b><b class='flag-5'>Air780</b>EPM<b class='flag-5'>模组</b>:<b class='flag-5'>LuatOS</b>下CAN总线通信的完整方案!

    开发宝典:4路低功耗ADC接口,Air780EPM二次开发必看!

    本文将深入探讨如何通过硬件参数配置、软件算法优化及系统级功耗管理,实现ADC接口性能与能耗的最佳平衡。从寄存器设置到驱动程序编写,从采样策略到噪声抑制,我们将全面揭秘Air780EPM低功耗ADC
    的头像 发表于 04-01 14:57 496次阅读
    <b class='flag-5'>开发</b>宝典:4路<b class='flag-5'>低功耗</b>ADC接口,<b class='flag-5'>Air780</b>EPM二次<b class='flag-5'>开发</b>必看!

    快速开发实战——4路低功耗ADC接口,Air780EPM二次开发必看!

    Air780EPM 模组,内置4MB大内存RAM,支持LCD、摄像头、Modbus、以太网、CAN;具备更强大的二次开发资源,更完善的外设能力,也更适于工业场景。   最新开发资料详见
    的头像 发表于 04-01 14:56 534次阅读
    快速<b class='flag-5'>开发</b>实战——4路<b class='flag-5'>低功耗</b>ADC接口,<b class='flag-5'>Air780</b>EPM二次<b class='flag-5'>开发</b>必看!

    从零开始:Air780EPM与LuatOS的硬件与软件配置全解析

    在物联网开发领域,选择合适的硬件平台与操作系统是项目成功的关键。本文将带领你从零开始,通过详细的步骤与示例代码,掌握Air780EPM与LuatOS的入门开发流程,并深入探讨其核心功能
    的头像 发表于 03-25 16:45 3137次阅读
    从零开始:<b class='flag-5'>Air780</b>EPM与<b class='flag-5'>LuatOS</b>的硬件与软件配置全<b class='flag-5'>解析</b>

    血泪教训总结:Air780EPM的LuatOS二次开发——OneWire协议调试注意事项

    在物联网设备开发中,精准且稳定的数据传输是构建智能系统的核心。通过本文,开发者不仅能掌握规避常见陷阱的方法,还能学习如何利用Air780EPM的硬件特性与
    的头像 发表于 03-20 17:52 918次阅读
    血泪教训总结:<b class='flag-5'>Air780</b>EPM的<b class='flag-5'>LuatOS</b>二次<b class='flag-5'>开发</b>——OneWire协议调试注意事项

    新手必看!4G模组Air780EPM——GPIO的设计说明

    Air780EPM的GPIO设计需兼顾硬件可靠性与软件灵活性,开发者应基于具体应用场景权衡复用功能优先级,并遵循电源管理规范以延长设备生命周期。通过模块化配置与精细化调试,可最大化释放模组性能潜力
    的头像 发表于 03-20 17:48 617次阅读
    新手必看!4G<b class='flag-5'>模组</b><b class='flag-5'>Air780</b>EPM——GPIO的设计说明

    干货预警!4G模组Air780EPM其他硬件接口

    Air780EPM 4G模组不仅凭借高速稳定的数据传输能力在智能终端、工业自动化、车载设备等领域大放异彩,更以其“全栈式”硬件接口设计,为开发者提供了近乎无限的扩展可能。 一、ADC
    的头像 发表于 03-17 17:37 755次阅读
    干货预警!4G<b class='flag-5'>模组</b>:<b class='flag-5'>Air780</b>EPM其他硬件接口

    手把手教你!4G模组Air780EPM——GPIO的设计说明

    4G模组Air780EPM作为广和通推出的高性能Cat.1bis无线通信模块,凭借其低功耗、高集成度及丰富的外设接口,在工业物联网、智能终端、车载设备等领域展现出卓越的适配性。 一、概述
    的头像 发表于 03-17 16:07 853次阅读
    手把手教你!4G<b class='flag-5'>模组</b><b class='flag-5'>Air780</b>EPM——GPIO的设计说明

    功耗表现最佳有没有?——Air780EPS

    今天一起来聊聊Air780EPS模组~ 一、Air780EPS核心信息描述 软件开发Air780EPS软件上既支持传统的AT指令,也支持
    的头像 发表于 01-10 15:29 914次阅读
    <b class='flag-5'>功耗</b>表现最佳有没有?——<b class='flag-5'>Air780</b>EPS

    拥有低功耗低成本的Open开发应用,开发人员必看!

    Open开发应用需求,有没有低功耗、低成本方案? 今天我们一起来聊聊Air780EP模组。 一、Air780EP实网
    的头像 发表于 12-26 11:50 831次阅读
    拥有<b class='flag-5'>低功耗</b>低成本的Open<b class='flag-5'>开发</b>应用,<b class='flag-5'>开发</b>人员必看!

    要Open开发,又要低功耗低成本?建议等新方案

    Open开发应用需求,有没有低功耗、低成本方案? 今天我们一起来聊聊Air780EP模组。 一、Air780EP核心信息描述 运营商支持:
    的头像 发表于 12-24 17:09 728次阅读
    要Open<b class='flag-5'>开发</b>,又要<b class='flag-5'>低功耗</b>低成本?建议等新方案