[求助讨论] MTK2503模块上实现LUA脚本解析

[复制链接]
查看2332 | 回复8 | 2017-4-13 15:14:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在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,&quotIN_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",&quotIN_NETLIGHT",1);  //控制GPIO输出电平
      flag=1;
   else
      Ql.SysCtrl("GPIO","SET",&quotIN_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",&quotIN_NETLIGHT",1)
   --else
   --   Ql.SysCtrl("GPIO","SET",&quotIN_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
回复

使用道具 举报

地沟油 | 2017-4-13 19:34:27 | 显示全部楼层
回复

使用道具 举报

lfc | 2017-4-13 19:52:12 | 显示全部楼层
回复

使用道具 举报

郑先生 | 2017-4-14 08:01:45 | 显示全部楼层
回复

使用道具 举报

lgt | 2017-4-14 08:08:35 | 显示全部楼层
回复

使用道具 举报

zhifang88 | 2017-4-14 08:56:47 | 显示全部楼层
回复

使用道具 举报

zebin | 2017-4-14 10:00:28 | 显示全部楼层
回复

使用道具 举报

desig | 2018-7-26 08:59:54 | 显示全部楼层
回复

使用道具 举报

木子清风 | 2018-10-30 09:21:45 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

9

主题

67

回帖

169

积分

二级逆天

积分
169

社区居民终身成就奖

QQ