Luat開發簡介

2021-10-25 20:38:09 字數 3295 閱讀 1174

luat = lua + at, luat推出的物聯網開源架構,依託於通訊模組做簡易快捷的開發,將傳統的at命令用lua語言封裝成api,並提供各種功能應用的demo,大大減少使用者的開發成本。

開發者可以通過呼叫api輕鬆,便捷的實現tts、gps、socket、mqtt、ota等功能。例如下面通過幾行**既可以實現gps,mqtt功能。

gps

`--引用gpsv2.lua` 

`require "gpsv2"`

`module(..., package.seeall)`

`sys.taskinit(function(...)`

`gpsv2.open(2, 115200, 2, 5)`

`while true do`

`log.info("testgps isfix:", gpsv2.isfix())`

`log.info("testgps lng,lat:", gpsv2.getintlocation())`

`log.info("testgps message:", gpsv2.getaltitude(), gpsv2.getspeed(),`

`gpsv2.getazimuth(), gpsv2.getusedsatecnt(), gpsv2.getviewedsatecnt())`

`sys.wait(1000)`

`end`

`end)`

mqtt

`--引用mqtt.lua` 

`require "mqtt"`

`module(..., package.seeall)`

`-- 這裡請填寫修改為自己的ip和埠`

`local host, port = "lbsmqtt.airm2m.com", 1884`

`socket.setsendmode(1)`

`-- 測試mqtt的任務**`

`sys.taskinit(function()`

`while true do`

`while not socket.isready() do sys.wait(1000) end`

`local mqttc = mqtt.client(misc.getimei(), 300, "user", "password")`

`while not mqttc:connect(host, port) do sys.wait(2000) end`

`if mqttc:subscribe(string.format("/device/%s/req", misc.getimei())) then`

`if mqttc:publish(string.format("/device/%s/report", misc.getimei()), "test publish " .. os.time()) then`

`while true do`

`local r, data, param = mqttc:receive(120000, "pub_msg")`

`if r then`

`log.info("這是收到了伺服器下發的訊息:", data.payload or "nil")`

`elseif data == "pub_msg" then`

`log.info("這是收到了訂閱的訊息和引數顯示:", data, param)`

`mqttc:publish(string.format("/device/%s/resp", misc.getimei()), "response " .. param)`

`elseif data == "timeout" then`

`log.info("這是等待超時主動上報資料的顯示!")`

`mqttc:publish(string.format("/device/%s/report", misc.getimei()), "test publish " .. os.time())`

`else`

`break`

`end`

`end`

`end`

`end`

`mqttc:disconnect()`

`end`

`end)`

`-- 測試**,用於傳送訊息給socket`

`sys.taskinit(function()`

`while true do`

`sys.publish("pub_msg", "11223344556677889900aabbccddeeff" .. os.time())`

`sys.wait(180000)`

`end`

`end)`

lua指令碼是內嵌在模組基礎軟體core中執行的(core編譯生成的檔案是.lod檔案),lod中有支援lua執行的環境,lua指令碼就在這個環境中執行。指令碼實現功能是通過api(對at命令進行了封裝)實現的。

在模組內部,lua發出at命令,並通過虛擬的uart.atc 口和lod之間進行at命令的互動。即lua發出at命令,lod接收後進行解析並返回at命令執行結果,不需要上位機(一般是微控制器)通過物理串列埠給模組發at命令,這樣就節省了微控制器的花費。

名稱

含義

底層軟體

也叫基礎軟體,位於/core,用c語言開發完成,支撐lua的執行。

庫指令碼lib目錄中的「庫指令碼」(所有專案都應該使用)

應用指令碼

使用者自己編寫的「應用指令碼」(例如demo目錄下的指令碼)

如果您需要檢視demo,可在luatools工具檔案中查詢到你需要的檔案,2g為luatools\script\script_luatask\demo,4g為luatools\asr1802\lib\demo

如果您需要查詢介面文件,左側的luat api介面來檢視完整的介面文件。

如果您有其他問題,可以前往doc社群查詢或提問。

群名

群號

合宙luat通訊模組(1)

合宙luat通訊模組(2)

合宙luat通訊模組

合宙luat通訊模組(4g)

合宙luat(稀飯放薑irtu)

Luat實現socket tcp通訊

以下 需要在luat通訊模組中使用 建立連線後無法主動關閉,只能靠斷網關閉或者伺服器端關閉 模組功能 tcp連線,報文收發 需要使用合宙官方lib 作者 wangjiaw 983893384 qq.com 版本 20210309 修改記錄1 20210309 require socket modul...

敏捷開發簡介

敏捷軟體開發宣言 n 個體和互動 勝過 過程和工具 n 可以工作的軟體 勝過 面面俱到的文件 n 客戶合作 勝過 合同談判 n 響應變化 勝過 遵循計畫 雖然右項也有價值,但是我們認為左項具有更大的價值。敏捷宣言遵循的原則 n 我們最優先要做的是通過盡早的 持續的交付有價值的軟體來使客戶滿意。n 即...

開發spring簡介

1 spring 依賴庫 spring framework 2.0.6 spring framework 2.0.6 dist spring.jar spring framework 2.0.6 with dependencies spring framework 2.0.6 lib jakarta...