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

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

3天内不再提示

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

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-12-03 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文要说的是低功耗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 语言有很大区别;

wKgZPGdNvJuAXpOwAAWs3wSNnN0725.png

1.3 Lua 中字符串的序号

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

wKgZO2dNvKeAWo1EAASxrBq-K2A301.png

二、演示功能概述

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

三、准备硬件环境

3.1 Air780E 开发板

wKgZO2dNvLOAPmOoAAMn5hxol-U495.png

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

3.2 TYPE-C 数据线

wKgZPGdNvMKAaHiwABXVR3Q417M048.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 开发板按钮与指示灯图示与说明

wKgZO2dNvNeANFoRAANgv9R2Lfo842.png

wKgZO2dNvOWALXrfAA9Fhmkft7k269.png

5.2 硬件安装与连接

5.2.1 SIM 卡安装

wKgZPGdNvO-ATacLAA4MVjG4lZk125.png

5.2.2 实物连接图

wKgZPGdNvPyAY02WAAg_Kzqj0I4431.png

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

六、代码示例介绍

6.1 完整程序清单

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

wKgZO2dNvQ6AOd4DAATcnedzMZo797.png

wKgZO2dNvR2ATG6RAASvv2jzu7M607.png

wKgZO2dNvSyAT_uuAAVc5_syJYc942.png

wKgZPGdNvTuAc9n_AANFXrzQ0uU740.png

七、功能验证

7.1 开机

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

wKgZPGdNvUmAJVhoAAlraMg0Cs8393.png

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

wKgZO2dNvVeAFEnoAAmY7gFn7tk451.png


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

wKgZPGdNvWGAZ9NeAAN5hVdcPhM782.png

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

wKgZO2dNvWyAVG_AAAKvmVwMkrQ946.png

7.3 按序号步骤创建项目

wKgZPGdNvXeAFUIGAAKVP_95RTo693.png

wKgZO2dNvYGAStmvAAM-aDNwlHI292.png

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

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

wKgZPGdNvYuAL4RxAAKfKnbcRzI281.png

wKgZPGdNvZSAWsIbAAK9o8T9Qg4498.png

wKgZO2dNvaSAdRA_AAxuflmfTqo802.png

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

wKgZPGdNva6Aar3RAAIYrN2IBLY760.png

wKgZO2dNvbaAQqHUAAHYoq-YzHM671.png

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

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

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

审核编辑 黄宇

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

    关注

    6

    文章

    1719

    浏览量

    32015
  • 数据打包
    +关注

    关注

    0

    文章

    2

    浏览量

    997
  • LuatOS
    +关注

    关注

    0

    文章

    134

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从0到1,10+年资深LabVIEW专家,手把手教你攻克机器视觉+深度学习(5000分钟实战课)

    “告别检测系统能力缺陷!10+年LabVIEW视觉资深专家手把手教你:5000+分钟高清教程(含工具、算法原理、实战操作、项目优化全流程讲解)”——从传统视觉算法→深度学习建模→工业级部署"
    的头像 发表于 12-02 08:07 80次阅读
    从0到1,10+年资深LabVIEW专家,<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>攻克机器视觉+深度学习(5000分钟<b class='flag-5'>实战</b>课)

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用
    的头像 发表于 11-11 14:21 535次阅读
    【迅为RK3568<b class='flag-5'>开发</b>板NPU<b class='flag-5'>实战</b>】别再闲置你的NPU!<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>玩转RKNN-Toolkit2 的使用

    【RK3568 NPU实战】别再闲置你的NPU!手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果

    【RK3568 NPU实战】别再闲置你的NPU!手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果
    的头像 发表于 11-10 15:58 858次阅读
    【RK3568 NPU<b class='flag-5'>实战</b>】别再闲置你的NPU!<b class='flag-5'>手把手</b>带你用迅为资料跑通Android AI检测Demo,附完整流程与效果

    LuatOS编程基础教程:手把手带你入门物联网开发

    对于渴望进入物联网开发领域的初学者来说,LuatOS是一个理想的起点。本教程将通过由浅入深的教学方式,从搭建开发环境、理解核心API到编写简单应用,逐步引导你掌握LuatOS编程的核心
    的头像 发表于 06-11 13:03 599次阅读
    <b class='flag-5'>LuatOS</b>编程基础教程:<b class='flag-5'>手把手</b>带你入门物联网<b class='flag-5'>开发</b>!

    手把手教你如何调优Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何调优Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 641次阅读

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门!

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门! 一、视频观看 正点原子手把手教你学STM32MP257
    发表于 05-16 10:42

    手把手教你!利用Air780EPM快速体验LuatOS的入门

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

    《零基础开发AI Agent——手把手教你用扣子做智能体》

    《零基础开发AI Agent——手把手教你用扣子做智能体》是一本为普通人量身打造的AI开发指南。它不仅深入浅出地讲解了Agent的概念和发展,还通过详细的工具介绍和
    发表于 03-18 12:03

    手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程课件汇总

    —KaihongOS星闪无人机开发实战》系列课程,该课程与《手把手教你做PC—KaihongOS笔记本电脑开发
    发表于 03-18 10:33

    手把手教你做PC-KaihongOS笔记本电脑开发实战》课件汇总

    ”携手“电子发烧友”联合推出了 《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。 此次首发内容是《手把手教你做PC-Kaihong
    发表于 03-18 10:25

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

      开发方式 :Air780EPM 仅支持 LuatOS 软件开发方式,不支持 AT 指令开发方式。若使用 AT 指令
    的头像 发表于 03-17 16:07 837次阅读
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>!4G<b class='flag-5'>模组</b><b class='flag-5'>Air780</b>EPM——GPIO的设计说明

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!
    的头像 发表于 02-17 19:40 647次阅读
    <b class='flag-5'>开发</b>者集结!《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星闪无人机》第二课开讲啦!

    手把手教你做星闪无人机》即将开播,锁定15日晚七点!

    ”再次联合推出《手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程,该课程与《手把手
    的头像 发表于 01-13 19:42 875次阅读
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星闪无人机》即将开播,锁定15日晚七点!

    手把手教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    ”携手“电子发烧友”联合推出了《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。此次首发内容是《手把手教你做PC-
    的头像 发表于 01-06 20:46 861次阅读
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑<b class='flag-5'>开发</b><b class='flag-5'>实战</b>

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

    、联通三大运营商。 仅比Air700E系列相对大一些: Air700ECQ/Air700EAQ/Air700EMQ; 与Air780E系列
    的头像 发表于 12-24 17:09 716次阅读
    要Open<b class='flag-5'>开发</b>,又要低功耗低成本?建议等新方案