AT Device神器简介
AT device 软件包是由 RT-Thread AT 组件针对不同 AT 设备的移植文件和示例代码组成,目前支持的 AT 设备有:ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X 、SIM76XX、A9/A9G、BC26 、AIR720、ME3616、M6315、BC28、EC200X、M5311、L610系列设备等,目前上述设备都完成对 AT socket 功能的移植,及设备通过 AT 命令实现标准 socket 编程接口,完成 socket 通讯的功能。
开发之前推荐先阅读官方AT命令部分的官方文档,对整体概念和开发方法有个整体的了解。
AT Device开启步骤
AT Device软件包自带SIM76XX的支持,开启方法如下:
1、在scons --dist命令生成的dist目录中运行menuconfig,选中软件包。
见图一
建议不选择Enable sample,sample文件名为at_sample_sim76xx.c,随后可以自己打开参考。后续我们会在port目录下建立port_sim76xx.c用于向at系统注册设备,采用我们自定义的名称和引脚。
2、运行pkgs --update自动下载软件包
3、运行scons --target=mdk5生成工程
4、参考软件保重sim76xx的例子,添加注册代码,并加入工程。
针对官方驱动,我们做了哪些修改
1、修改了电源管理引脚的定义。
官方手册上这样定义上电时序,对于低功耗应用通常我们会控制VBAT,因此就是三个控制引脚。VBAT、PWRKEY、STATUS。因此我们修改struct at_device_sim76xx结构的控制引脚为三个,并修改上下此电时序以满足手册要求。
同时支持不配置电源引脚,不配置status引脚的情况。
2、sim76xx_netdev_set_info函数中获取IP地址时增加重试,避免网络条件不好的时候获取IP地址慢导致整体失败
3、修改sim76xx_init_thread_entry注释掉AT+CREG?过程,直接使用AT+CGREG?检测网络状态,电信卡来说AT+CREG总是失败
4、修改sim76xx_init_thread_entry把设置PDP context放在检查网络状态之前
5、增加控制GPS电源开关和获取GPS坐标的代码
GPS采用模块内部控制的方式,这样才能利用模块内部的GPS热启动、AGPS等功能。
新增GPS上下电的命令字。
实现GPS上电代码
实现GPS断电代码
如果GPS已经开启,优先从GPS获取坐标,不成功或没有开启则采用基站定位。