美文网首页Luat开源硬件
LuaTask教程之Hello World

LuaTask教程之Hello World

作者: Luat物联网通信模块 | 来源:发表于2018-03-23 13:21 被阅读64次

    某程序员退休后决定练习书法,于是重金购买文房四宝。一日,饭后突生雅兴,一番研墨拟纸,并点上上好檀香。定神片刻,泼墨挥毫,郑重地写下一行字:hello world!

    上一章讲到如何验证开发板,使用的是官方提供的固件和脚本。本章先不讲Luat的运行原理,先写个Hello World压压惊。

    在此之前必须先理解几个名词:

    底层软件,也叫基础软件(core),基础软件编译后的文件称为lod。底层lod,不同功能不同lod,合宙官方提供,详见core文件中。用C语言开发完成,内嵌了Lua虚拟机,支持上层软件的运行。参见模块固件版本

    上层软件(script),二次开发部分,详见script。文件采用 Lua 脚本语言开发,是模块的应用例程源码。脚本分为两部分:Lib和demo。其中:

    ​ Lib中是库文件,对AT命令封装成API,lib 实现公用的服务,比如sms,call,audio,mqtt,gps等等;

    ​ 脚本:开发者二次开发的代码,自行编写。demo代码合宙官方提供的一些常用接口的脚本例程,用户可以在demo基础上修改糅合,实现自己的业务功能。

    基础软件和上层软件,两部分软件缺一不可,一起运行于模块之中,完成各种功能和应用。

    量产工具:用于工厂生产和远程升级。

    画了一张图来描述几者之间的关系:

    image

    接下来进入正题:

    1、从https://github.com/openLuat/Luat 下载源码

    2、目录结构如下:

    image

    core:存放基础软件

    demo:一些例子

    doc:说明文档

    drive:第三方模块驱动

    img:存放lcd显示的图片

    lib:库文件

    mp3:存放播放的音乐

    main.lua:主文件

    3、打开demo文件夹,新建一个test.lua,用自己喜欢的编辑器打开编辑(比如sublime text ,vs code,根据自己的爱好),这儿以sublime text 为例,输入

    module(..., package.seeall)                 --必须,目的是让其他文件能包含该文件
    
    
    sys.taskInit(function()                 --任务1
        while true do
            print("Hello World")
            sys.wait(1000)
        end
    end)
    
    sys.taskInit(function()                 --任务2
        while true do
            print("Luat is esay")
            sys.wait(2000)
        end
    end)
    
    

    打开main.lua,添加

    require "test"
    

    这样就将test文件包含到了main.lua里面,可以理解为C语言中的#include \

    4、下载lod,教程可在wiki上找到,就不在这儿累赘

    5、下载脚本

    image

    添加lib下面的全部Lua文件,main.lua以及自己写的test.lua。添加完成后点下载即可

    6、查看结果

    关闭下载框,进入主界面,点击开始打印

    image

    可以看到,输出两次Hello World才会输出一次Luat is esay,这是为什么呢?看一下sys.wait里面的延时就知道了。

    本章教程到此结束。有兴趣的尝试修改print的数据,增加多个任务,或者修改sys.wait的时间看看会有什么变化,下一章将会讲解运行原理。

    相关文章

      网友评论

        本文标题:LuaTask教程之Hello World

        本文链接:https://www.haomeiwen.com/subject/rjtxcftx.html