Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-虚拟AT
目录
- 简介
- 实现方法
- 示例
- 常见问题
- 相关资料以及购买链接
- 测试源码
- 相关开发板购买链接
简介
虚拟AT 也叫 VAT , ‘V’ 的英文就是 virtual 虚拟的意思; ,传统的AT 是上位机何下位机之间的通信指令,通常是通过物理串口进行交互;VAT 则不依赖具体的硬件串口,而是通过软件接口来实现等效功能,所以称它为虚拟AT.
实现方法
##命令一
ril.setrilcb(cb)
参数cb 是一个回调函数, 用于将底层AT 指令返回的内容通过cb 输出到指定通道(如示例中的:usb_write ),或者应用自己的处理函数
##命令二
ril.request(strcmd)
参数 strcmd 就是用户要发给底层的 AT指令字符串。
示例
--- 模块功能:MYVAT
-- @author JWL
-- @license MIT
-- @copyright HEZHOU
-- @release 2020.04.02require"ril"
require "utils"
require "sys"
require "pm"
require "net"
require "record"
require "audio"
require "rtos"
require "misc"
require "common"module(..., package.seeall)--开机就关掉RNDIS 否则物联网卡流量会被网卡给消耗掉。
ril.request("AT+RNDISCALL=0,1")--VAT是否打开 "1" 开 ,"0" 关
local flag_enatc = "1"
-- 串口ID,串口读缓冲区
local recvQueue = {}
-- 串口超时,串口准备好后发布的消息
local uartimeout, recvReady,RECV_MAXCNT = 100, "UART_RECV_ID",1024--向PC 写入数据,目的是将AT指令的返回数据呈现给电脑一方
local function usb_write(data)uart.write(uart.USB, data)
end--配置USB 的虚拟串口
uart.setup(uart.USB, 0, 0, uart.PAR_NONE, uart.STOP_1)
uart.on(uart.USB, "receive", function()table.insert(recvQueue, uart.read(uart.USB, RECV_MAXCNT))sys.timerStart(sys.publish, uartimeout, recvReady)
end)--处理PC 发过来的AT 指令
function app_procmd(str_recv)log.info("str_recv------------",str_recv)local flag_handled=true --用来判断AT指令是否已经被应用层处理,如果已经被处理的就不需要发到底层去了。local str_rsp ="" --临时存放应用层已经处理的AT指令返回字符串local prefix = string.match(str_recv, "[aA][tT](%+%u+)")if prefix ~=nil thenif prefix == "+RIL?" then --读取VAT标志开关标志str_rsp = "+RIL:"..flag_enatcelseif prefix == "+RIL" then --设置VAT 开或者关 local temp_enatc = string.match( str_recv, "+RIL=(%d+)")if temp_enatc ~= nil thenflag_enatc = temp_enatcendif flag_enatc == "0" then ril.setrilcb(nil) endstr_rsp = "+RIL:"..flag_enatcelseflag_handled=falseendelseif string.upper(str_recv) =="AT\r\n" thenstr_rsp ="OK\r\n"elseflag_handled=falseendendif str_rsp ~="" thenusb_write(str_rsp)endif (not flag_handled) and (flag_enatc == "1") thenlog.info("send at cmd ==>" ,str_recv)ril.setrilcb(usb_write)ril.request(str_recv)end
end--将从VAT 串口收到的内容进行拼接
sys.subscribe(recvReady, function()local str_recv = table.concat(recvQueue)recvQueue = {}app_procmd(str_recv)
end)
常见问题
1,VAT 的指令和标准AT 指令,大部分都相同,由于标准AT 指令里面的CIP 开头的网络通信指令在LUAT 中通过 socket 接口实现,所以LUAT 不支持CIP 的AT 指令。
2,PC 端输入的AT 指令需要大写,比如 AT+CSQ 不要写成 At+CsQ
相关资料以及购买链接
测试源码
myvat.lua
相关开发板购买链接
Air724UG开发板
Air724 开发板使用说明
Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-虚拟AT相关推荐
- Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-长连接超低功耗方案
目录 简介 什么是超低功耗 能降低多少功耗 什么时候用 哪个版本才支持 实现方法 主要命令 示例 实现原理 两种心跳包 实现代码 常见问题 相关资料以及购买链接 相关开发板购买链接 简介 什么是超低功 ...
- Luat模块应用手册-示例-Luat DEMO-长连接超低功耗方案
如何用开发板实现 低功耗长连接 功能 目录名称 如何用开发板实现 低功耗长连接 功能 简介 材料准备 步骤 实现代码 常见问题 相关资料以及购买链接 简介 socket是物联网中最常用的功能,本文介绍 ...
- 开发指南专题二:JEECG微云快速开发平台JEECG框架初探
开发指南专题二:JEECG微云快速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境地址:http://demo.jeecg.org:8090/可以看 ...
- Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld...
Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述---- 隐鹤 / HelloWorld 1. 引言 自本人第一篇博文"Excel阅读模式/单元格行列指示/聚光灯 ...
- NC65二开单据单据追溯功能开发
NC65二开单据单据追溯功能开发 一.单据元数据字段增加字段 来源单据主键 来源单据类型 二.设置单据按钮&&修改单据类型 单据增加按钮 <bean id="linkQ ...
- 3D格式转换工具HOOPS Exchange最全技术指南(二):4大功能特征与典型使用场景
什么是 HOOPS Exchange? HOOPS Exchange 是一组软件库,可以帮助开发人员在开发应用程序时读取和写入主流的 2D 和 3D 格式.HOOPS Exchange 支持 在主流的 ...
- Luat模块应用手册-指南-luat二次开发教程-功能开发教程-HTTP
关键词:HTTP,POST,GET 目录 http 简介 API说明 实现流程 示例 执行HTTP请求的回调函数 HTTP请求函数 常见问题 是否支持HTTPS 为什么频繁请求会失败 为什么POST ...
- 二.office-Excel 2010 办公常用功能操作教程
一.Excel 常用技能的说明目录. 1.数据的自动填充方式. 2.输入框中下拉选择框数据的绑定 3.简单的公式计算. 4.超链接的创建. 5.工作簿的保护. 二.说明目录的详细操作. 1.数据的自动 ...
- 百度URL自动推送收录插件【土拨鼠网站日记管理(分析推送二合一)】推送功能配置教程
推送功能配置教程(推送功能和网站日记分析功能可以单独分开始用,需要哪个功能就单独设置这个功能即可): 第一次使用推送功能需要在[工具设置]先生成缓存数据库和配置推送计划 初次设置: 自动爬取整站URL ...
最新文章
- JSP简单练习-数组应用实例
- acwing3132. 食物(BZOJ3028)
- 2019世界大学排名全新出炉!清华北大排名大幅下滑?
- linux分区par,linux基础篇(磁盘分区)
- 华为存储设备管理ip修改
- 股指期货开户的条件和流程
- Windows Server 2016域控服务器如何取消密码复杂性规则
- L298N电机驱动器
- 五十一个经典小故事5
- 【Scratch 3.0游戏】—— 乒乓弹球游戏
- 广告创意设计的灵感来源
- android layout.inflater,LayoutInflater.inflate详解
- 关于不锈钢管TIG+MAG
- ERROR: No matching distribution found for xxx
- 形容计算机老师风采的句子,形容教师的优美句子
- 入职阿里一周年,我能谈点什么 | 可惜主语不是我~
- Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息
- 用cocos2d3.0写一个srpg游戏-srpg介绍
- 水库安全监测主要包含什么内容(大坝安全监测、水雨情自动测报)
- eclipse 配置字符集 字体大小 护眼
热门文章
- debian通过odbc连接mysql_PHP从Debian Etch使用ODBC和FreeTDS访问MSSQL数据库
- 美团给应届生开年薪35万+ 倒挂老员工:加油、打工人
- TZT3801G无线振弦在线监测系统
- AWFWD改进后的融合算法
- CAD绘制填充,从中间挖去一块(网页版)
- 办公协同应用「我来 wolai」获数千万人民币融资
- ROS修改小乌龟程序背景颜色
- 2022年制冷与空调设备运行操作考试题库模拟考试平台操作
- C语言实现动态二维数组及相乘
- “互联网+“项目路演PPT制作学习笔记分享