Luat实例教程:call电话功能
2018-03-24 本文已影响22人
Luat物联网通信模块
本示例实现的功能是:通话测试,测试呼入呼出
1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随便取名)
2.设置本文件被全体可见。也就意味着,一旦test被某一文件加载,则test在任何文件中均可被看见,即test中全局变量和函数均可被任何文件调用。
module(...,package.seeall)
3.test文件头需要 require "xxx" 模块。加载后,就可以调用xxx.lua库文件中的全局变量和函数了
require"cc"
require"audio"
require"common"
4.定义print函数,调试用
local function print(...)
_G.print("test",...)
end
5.注册消息的用户回调函数
cc.regcb("READY",ready,"INCOMING",incoming,"CONNECTED",connected,"DISCONNECTED",disconnected,"DTMF",dtmfdetected,"ALERTING",alerting)
6.编写消息处理函数
--CONNECTED消息对应connected()回调函数
local function connected()
print("connected")
--5秒后播放TTS给对端,底层软件必须支持TTS功能
sys.timer_start(audio.play,5000,0,"TTSCC",common.binstohexs(common.gb2312toucs2("通话中播放TTS测试")),audiocore.VOL7)
--50秒之后主动结束通话
sys.timer_start(cc.hangup,50000,"AUTO_DISCONNECT")
end
--DISCONNECTED消息对应disconnected(para)回调函数
local function disconnected(para)
print("disconnected:"..(para or "nil"))
sys.timer_stop(cc.hangup,"AUTO_DISCONNECT")
end
--INCOMING消息对应incoming(num)回调函数
local function incoming(num)
print("incoming:"..num)
--接听来电
cc.accept()
end
--READY消息对应ready()回调函数
local function ready()
print("ready")
--呼叫10086
cc.dial("10086")
end
--DTMF消息对应dtmfdetected(dtmf)回调函数
local function dtmfdetected(dtmf)
print("dtmfdetected",dtmf)
end
--ALERTING消息对应alerting()回调函数
local function alerting()
print("alerting")
end
7.在编辑工具中建立一个名为main.lua的文件。lua脚本的执行从main.lua开始,main.lua是入口文件(注意:main.lua只能有一个)。在main.lua中把test加载进去就好了。sys.init()是对系统初始化,sys.run()是系统主程序。这两句必须有。
--重要提醒:必须在这个位置定义MODULE_TYPE、PROJECT和VERSION变量
--MODULE_TYPE:模块型号,目前仅支持Air201、Air202、Air800
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
MODULE_TYPE = "Air202"
PROJECT = "CALL"
VERSION = "1.0.0"
require"sys"
require"test"
if MODULE_TYPE=="Air201" then
require"wdt"
end
sys.init(0,0)
sys.run()
!!!attention
一个工程只有一个main.lua
- 完整代码见下链接