mobile: Add lua examples for basic functions that are available

Link to Lua docs, link to our manual. Demo logging, timer, MS
on/off, sms sending and sms receiving. For the MM state I will
need to export constants/names to make this usable. Currently
it is a bit of a hack (first time to MM_IDLE) to send a SMS. We
would know when we attached though.

Change-Id: I10ac656330b65e3905d6cbbb7865aa0f969cd9ff
This commit is contained in:
Holger Hans Peter Freyther 2017-12-27 10:51:32 +08:00
parent ceb0875f1a
commit 96e5f8cbe5
5 changed files with 91 additions and 0 deletions

View File

@ -0,0 +1,9 @@
-- See https://www.lua.org/manual/5.3/ for Lua
-- See http://ftp.osmocom.org/docs/latest/osmocombb-usermanual.pdf -- Scripting with Lua
-- Standard print and log_* are forwarded to the Osmocom logging framework
print("Hellp from Lua");
log_notice("Notice from lua");
log_debug("Debug from Lua");
log_error("Error from Lua");
log_fatal("Fatal from Lua");

View File

@ -0,0 +1,23 @@
-- See https://www.lua.org/manual/5.3/ for Lua
-- See http://ftp.osmocom.org/docs/latest/osmocombb-usermanual.pdf -- Scripting with Lua
-- Switch the MS on/off but this can only be done if the MS
-- is in the right state. This assumes that the MS is fully
-- connected and doesn't stall.
local start = false
osmo.ms().start()
function toggle_ms_state()
timer = osmo.timeout(20, function()
if start then
print("STARTING", osmo.ms().start())
start = false
else
print("STOPPING", osmo.ms().stop(true))
start = true
end
toggle_ms_state()
end)
end
toggle_ms_state()

View File

@ -0,0 +1,32 @@
-- See https://www.lua.org/manual/5.3/ for Lua
-- See http://ftp.osmocom.org/docs/latest/osmocombb-usermanual.pdf -- Scripting with Lua
-- State change
local sent_sms = false
function mm_cb(new_state, new_substate, old_substate)
-- The system has attached and returned to idle. Send a SMS the first time
-- it happens.
if new_state == 19 and new_substate == 1 then
if not sent_sms then
sent_sms = true
osmo.ms():sms_send_simple("1234", "21321324", "fooooooo", 23)
end
end
end
-- Called when a new SMS arrives or status for delivery
-- is updated. Check the msg_ref field.
function sms_cb(sms, cause, valid)
print("SMS data cb", sms, cause, valid)
for i, v in pairs(sms) do
print(i, v)
end
end
-- We need to register a callback
local cbs = {
Sms=sms_cb,
Mm=mm_cb
}
osmo.ms():register(cbs)

View File

@ -0,0 +1,15 @@
-- See https://www.lua.org/manual/5.3/ for Lua
-- See http://ftp.osmocom.org/docs/latest/osmocombb-usermanual.pdf -- Scripting with Lua
function sms_cb(sms, cause, valid)
print("SMS data cb", sms, cause, valid)
for i, v in pairs(sms) do
print(i, v)
end
end
local cbs = {
Sms=sms_cb,
}
osmo.ms():register(cbs)

View File

@ -0,0 +1,12 @@
-- See https://www.lua.org/manual/5.3/ for Lua
-- See http://ftp.osmocom.org/docs/latest/osmocombb-usermanual.pdf -- Scripting with Lua
-- Start and stop timer with callback. Schedule a timeout and
-- resume execution then.
-- Timeout in 10 seconds
local timer = osmo.timeout(10, function()
print("Timeout occurred");
end)
-- We can cancel it. The callback will not be called
timer:cancel()