|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在MTK2503模块上实现了LUA脚本解析,可以很方便的通过脚本编写实现2G通信,GPS定位等等应用,下面是脚本样本
print("begin lua\r\n")
Ql.GprsInit(1); //初始化GPRS,参数1 active 0 deactive
Ql.Sleep(5000); //sleep 5000ms
local stat=Ql.SysGet("GPRS"); //获取GPRS状态 IDLE ACTIVING ACTIVED三种状态
print(stat);
print("\r\n")
while (stat~="ACTIVED")
do //等待GPRS激活
if stat=="IDLE" then
Ql.GprsInit(1);
else
print(stat)
print("\r\n")
end
Ql.Sleep(1000)
stat=Ql.SysGet("GPRS")
end
Ql.OpenSocket("UDP","115.28.214.128",8000); //创建UDP连接,参数是服务器地址和端口
Ql.Sleep(1000);
--Ql.Write("UDP","cytest",6); //发送UDP报文
--Ql.OpenSocket("TCP","115.28.214.128",8000); //创建TCP连接
local udpstat=Ql.SysGet("UDP"); //获取UDP状态,>=0 成功 -1 失败
print(udpstat);
while udpstat<0 do
udpstat=Ql.SysGet("UDP");
Ql.Sleep(500);
end
print("UDP ok\r\n")
local T0=0
local T0_period=3000 //定时器时长3000ms
local msg
local rbuf
local rbuf_len
Ql.TimerStart(T0,T0_period); //启动定时器
print("T0 started\r\n")
Ql.SysCfg("GPIO",1,"IN_NETLIGHT",1,0,0) //配置GPIO;
//1 初始化 0 取消初始化;
//引脚名字;
//1 输出 0 输入;
//1 高电平 0 低电平
//0 无上下拉 1 下拉 2 上拉
local flag=0
while (true)
do //主循环
msg=Ql.GetMsg(); //获取消息
if msg=="TIMER" then //定时器消息 最多可以创建T0~T9个定时器
print("T0 expired\r\n")
--Ql.Write("UDP","rep:",4)
if flag==0 then
Ql.SysCtrl("GPIO","SET","IN_NETLIGHT",1); //控制GPIO输出电平
flag=1;
else
Ql.SysCtrl("GPIO","SET","IN_NETLIGHT",0);
flag=0;
end
Ql.TimerStart(T0,T0_period)
elseif msg=="UDP" then //UDP收到数据消息
rbuf,rbuf_len=Ql.Read("UDP");
print(rbuf)
--if rbuf=="red_on" then
-- Ql.SysCtrl("GPIO","SET","IN_NETLIGHT",1)
--else
-- Ql.SysCtrl("GPIO","SET","IN_NETLIGHT",0)
--end
elseif msg=="UART1" then //UART1收到数据消息
rbuf,rbuf_len=Ql.Read("UART1");
if rbuf=="q" then
break;
end
else
print(msg)
print("\r\n")
--break
end
end |
|