at_command.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. #ifndef __AT_COMMAND_H_
  2. #define __AT_COMMAND_H_
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include <stdio.h>
  6. typedef enum __AT_CMD
  7. {
  8. /*000*/ AC_CGMI, //查询制造商名称
  9. /*001*/ AC_CGMM, //查询模块型号
  10. /*002*/ AC_CGMR, //查询模块版本信息
  11. /*003*/ AC_CGSN, //查询 IMEI 号
  12. /*004*/ AC_CCID_ICCID, //查询 SIM 卡 ICCID 号码
  13. /*005*/ AC_CIMI, //查询 IMSI
  14. /*006*/ AC_ATI, //查询产品信息
  15. /*007*/ AC_VER, //查询模块 FIRMWARE 版本
  16. /*008*/ AC_AT_HVER, //查询平台硬件版本
  17. /*009*/ AC_AT_I, //查询各种信息
  18. /*010*/ AC_WISN, //写 SN 号命令
  19. /*011*/ AC_RESET, //重启模块
  20. /*012*/ AC_RSTSET, //重启模块并恢复出厂设置
  21. /*013*/ AC_CSCS, //选择 TE 字符集
  22. /*014*/ AC_AT_W, //保存用户当前的配置
  23. /*015*/ AC_ATE, //设置命令回显模式
  24. /*016*/ AC_AT_F, //恢复所有参数为出厂配置
  25. /*017*/ AC_ATQ, //设置结果码抑制模式
  26. /*018*/ AC_ATV, //设置 TA 响应内容的格式
  27. /*019*/ AC_ATX, //设置 CONNECT 结果码格式和监测呼叫进程
  28. /*020*/ AC_ATS0, //设置自动应答前振铃次数
  29. /*021*/ AC_UPGRADE, //FOTA 空中升级
  30. /*022*/ AC_ATS3, //设置指令行终止符
  31. /*023*/ AC_ATS5, //设置命令行编辑字符
  32. /*024*/ AC_AT_C, //设置 CDC 功能模式
  33. /*025*/ AC_AT_D, //设置 DTR 功能模式
  34. /*026*/ AC_CCLK, //实时时钟
  35. /*027*/ AC_SETUSB, //设置 USB 模式
  36. /*028*/ AC_CMEE, //设备错误
  37. /*029*/ AC_CPAS, //手机活动状态
  38. /*030*/ AC_CFUN, //模块功能模式
  39. /*031*/ AC_CPOWD, //关机
  40. /*032*/ AC_CPIN, //输入 PIN 码
  41. /*033*/ AC_CLCK, //设备锁定
  42. /*034*/ AC_CPWD, //修改密码
  43. /*035*/ AC_SLEDS, //网络灯闪烁的时间间隔
  44. /*036*/ AC_IPR, //设置 TE-TA 波特率
  45. /*037*/ AC_ICF, //设置 TE-TA 帧格式
  46. /*038*/ AC_ATS4, //设置指令行换行字符
  47. /*039*/ AC_IFC, //TE-TA 本地流量控制
  48. /*040*/ AC_CMUX, //多路复用
  49. /*041*/ AC_CSDT, //开启和关闭 SIM 卡在位硬件检测
  50. /*042*/ AC_AT_SIMDETEC, //检测某个插槽的 SIM 卡是否在位
  51. /*043*/ AC_AT_CARDMODE, //控制 SIM 卡状态主动上报
  52. /*044*/ AC_AT_EUICC, //获取 SIM 类型
  53. /*045*/ AC_CSCLK, //通过 UART 口设置睡眠唤醒
  54. /*046*/ AC_WAKETIM, //设置睡眠等待时间
  55. /*047*/ AC_CFGRI, //设置 RI 指示功能
  56. /*048*/ AC_AT_CMCRI, //短信特定字符触发 RI 功能
  57. /*049*/ AC_MIFIMAC, //设置 MAC 地址
  58. /*050*/ AC_CADC, //读取 ADC
  59. /*051*/ AC_CBC, //读取 VBAT 电压
  60. /*052*/ AC_CNETLIGHT, //打开/关闭网络灯
  61. /*053*/ AC_SIMCROSS, //SIM 卡切换
  62. /*054*/ AC_RNDISCALL, //RNDIS/ECM 功能开关
  63. /*055*/ AC_CSQ, //查询信号质量
  64. /*056*/ AC_CESQ, //查询信号质量(扩展)
  65. /*057*/ AC_AT_CSQ, //打开 CSQ 主动上报
  66. /*058*/ AC_CREG, //网络注册信息
  67. /*059*/ AC_CEREG, //E-UTRAN EPS 网络注册状态
  68. /*060*/ AC_AT_SYSCONFIG, //设置网络模式
  69. /*061*/ AC_CGCONTRDP, //查询 CID 相关的上下文定义
  70. /*062*/ AC_COPS, //运营商查询和选择
  71. /*063*/ AC_CTZU, //自动时区更新
  72. /*064*/ AC_CTZR, //打开 NITZ 自动上报
  73. /*065*/ AC_BGLTEPLMN, //设置小区背景搜寻
  74. /*066*/ AC_AT_EHSDPA, //使能 HSDPA 和 HSUPA
  75. /*067*/ AC_AT_BAND, //GSM/UMTS/LTE 模式和频段设置
  76. /*068*/ AC_AT_BANDIND, //查询当前工作频段
  77. /*069*/ AC_AT_CACAP, //查询接入机制(ACCESS TECHNOLOGY)
  78. /*070*/ AC_AT_SYSINFO, //查询当前的系统信息
  79. /*071*/ AC_CTEC, //设置无线接入方式
  80. /*072*/ AC_AT_CELL, //小区/频率锁
  81. /*073*/ AC_CIPGSMLOC, //读取基站定位(LBS)信息和时间
  82. /*074*/ AC_WIFILOC, //读取 WIFI 定位信息和时间
  83. /*075*/ AC_WIFISCAN, //获取 WIFI 信息
  84. /*076*/ AC_AT_DATAINFO, //流量查询命令
  85. /*077*/ AC_CCED, //小区信息查询
  86. /*078*/ AC_EEMOPT, //设置工程模式
  87. /*079*/ AC_EEMGINFO, //在工程模式下查询 GSM/UMTS/LTE 信息
  88. /*080*/ AC_SETVOLTE, //打开 VOLTE 功能
  89. /*081*/ AC_ATD, //发起呼叫
  90. /*082*/ AC_ATA, //接听来电
  91. /*083*/ AC_ATH, //挂断通话
  92. /*084*/ AC_CHUP, //挂断通话
  93. /*085*/ AC_CLCC, //列出所有当前的呼叫
  94. /*086*/ AC_CLIP, //设置主叫号码显示
  95. /*087*/ AC_CHLD, //呼叫保持和多方通话
  96. /*088*/ AC_VTS, //产生 DTMF 音
  97. /*089*/ AC_VTD, //DTMF TONE 周期
  98. /*090*/ AC_CTTS, //TTS(TEXT TO SPEECH)功能
  99. /*091*/ AC_CTTSPARAM, //设置 TTS 播放模式
  100. /*092*/ AC_CAUDREC, //音频录制
  101. /*093*/ AC_CAUDPLAY, //语音文件播放
  102. /*094*/ AC_AUDCH, //语音通道切换
  103. /*095*/ AC_CLVL, //通话音量控制
  104. /*096*/ AC_CRSL, //本地音频播放音量控制
  105. /*097*/ AC_SPKPA, //音频功放类型设置指令
  106. /*098*/ AC_CACCP, //音频 MIC 增益设置指令
  107. /*099*/ AC_CPMS, //短消息优先存储区选择
  108. /*100*/ AC_CSCA, //短消息中心地址
  109. /*101*/ AC_CMGF, //短消息格式
  110. /*102*/ AC_CSMP, //设置短信 TEXT 模式参数
  111. /*103*/ AC_CSDH, //控制 TEXT 模式下短信头信息显示
  112. /*104*/ AC_CNMI, //新消息指示
  113. /*105*/ AC_CNMA, //新短消息确认
  114. /*106*/ AC_CMGS, //发送短信
  115. /*107*/ AC_CMGW, //把消息写入存储器
  116. /*108*/ AC_CMSS, //从存储器发送短信
  117. /*109*/ AC_CMMS, //短信链路控制命令
  118. /*110*/ AC_CMGR, //读短信
  119. /*111*/ AC_CMGL, //列举短消息
  120. /*112*/ AC_CMGD, //删除短消息
  121. /*113*/ AC_CSCB, //小区广播短消息类型选择
  122. /*114*/ AC_CPBS, //选择电话本存储类型
  123. /*115*/ AC_CPBR, //读取电话本记录
  124. /*116*/ AC_CPBF, //查找电话本记录
  125. /*117*/ AC_CPBW, //写电话本记录
  126. /*118*/ AC_CNUM, //本机号码
  127. /*119*/ AC_CGREG, //GPRS 网络注册状态
  128. /*120*/ AC_CGATT, //GPRS 附着分离
  129. /*121*/ AC_CGDCONT, //PDP 上下文定义
  130. /*122*/ AC_CGAUTH, //PDP 上下文鉴权参数
  131. /*123*/ AC_CGPADDR, //显示 PDP 地址
  132. /*124*/ AC_CGACT, //PDP 上下文激活
  133. /*125*/ AC_CGQMIN, //可接受的最小服务质量简报
  134. /*126*/ AC_CGQREQ, //请求的服务质量简报
  135. /*127*/ AC_CGEREP, //控制非请求 GPRS 事件上报
  136. /*128*/ AC_AT_GETIP, //通过 CID 查询本地 IP 地址
  137. /*129*/ AC_AUTOAPN, //打开或关闭自动获取 APN
  138. /*130*/ AC_AT_CGDFLT, //设置 LTE 下缺省的 PDP 承载
  139. /*131*/ AC_AT_CGDFAUTH, //设置 LTE 缺省的 PDP 承载的鉴权参数
  140. /*132*/ AC_CNTPCID, //设置 GPRS 承载场景 ID
  141. /*133*/ AC_CNTP, //同步网络时间
  142. /*134*/ AC_FSCREATE, //创建一个文件
  143. /*135*/ AC_FSREAD, //读文件
  144. /*136*/ AC_FSWRITE, //写文件
  145. /*137*/ AC_FSDRIVE, //获取盘符
  146. /*138*/ AC_FSLS, //显示文件目录列表
  147. /*139*/ AC_FSMEM, //获取可用空间大小
  148. /*140*/ AC_FSMKDIR, //创建目录
  149. /*141*/ AC_FSRMDIR, //删除目录
  150. /*142*/ AC_FSDEL, //删除文件
  151. /*143*/ AC_FSFLSIZE, //获取文件大小
  152. /*144*/ AC_CIPMUX, //启动多 IP 连接
  153. /*145*/ AC_CSTT, //启动任务并设置接入点 APN、用户名、密码
  154. /*146*/ AC_CPNETAPN, //专网卡设置 APN、用户名、密码和鉴权方式
  155. /*147*/ AC_CIICR, //激活移动场景(或发起 GPRS 或 CSD 无线连接)
  156. /*148*/ AC_CIFSR, //查询本地 IP 地址
  157. /*149*/ AC_CIPSSL, //设置 TCP 使用 SSL 功能
  158. /*150*/ AC_SSLCFG, //配置 TCP SSL 参数
  159. /*151*/ AC_CLPORT, //配置本地 TCP 端口
  160. /*152*/ AC_CIPSTART, //建立 TCP 连接或注册 UDP 端口号
  161. /*153*/ AC_CIPMODE, //选择 TCPIP 应用模式
  162. /*154*/ AC_CIPQSEND, //选择非透传数据发送模式
  163. /*155*/ AC_CIPRXF, //设置接收的数据末尾是否自动添加回车换行
  164. /*156*/ AC_CIPCCFG, //配置透明传输模式
  165. /*157*/ AC_CIPSEND, //发送数据
  166. /*158*/ AC_CIPATS, //设置自动发送数据前的定时时间
  167. /*159*/ AC_CIPSPRT, //设置发送数据时是否显示‘>’和发送情况提示
  168. /*160*/ AC_CIPSTATUS, //查询当前连接状态
  169. /*161*/ AC_CIPACK, //查询已连接数据传输状态
  170. /*162*/ AC_CIPCSGP, //设置为 CSD 或 GPRS 连接模式
  171. /*163*/ AC_CDNSCFG, //配置域名服务器 DNS
  172. /*164*/ AC_CDNSGIP, //域名解析
  173. /*165*/ AC_CIPSRIP, //设置单链接接收数据时是否显示发送方的 IP 地址和端口号
  174. /*166*/ AC_CIPHEAD, //设置单链接接收数据是否显示 IP 头
  175. /*167*/ AC_CIPSHOWTP, //设置单链接接收数据是否在 IP 头显示传输协议
  176. /*168*/ AC_TCPUSERPARAM, //配置 TCP 协议的参数
  177. /*169*/ AC_CIPSCONT, //保存 TCPIP 应用上下文
  178. /*170*/ AC_CIPRXGET, //手动获得网络数据
  179. /*171*/ AC_CIPCLOSE, //关闭 TCP 或 UDP 连接
  180. /*172*/ AC_CIPSHUT, //关闭移动场景
  181. /*173*/ AC_ROUTEIP, //修改 RNDIS 网卡网关 IP 地址
  182. /*174*/ AC_ATO, //从命令模式切换至数据模式
  183. /*175*/ AC_SAPBR, //IP 应用设置
  184. /*176*/ AC_HTTPINIT, //初始化 HTTP 服务
  185. /*177*/ AC_HTTPSSL, //启用 SSL
  186. /*178*/ AC_HTTPPARA, //设置 HTTP 参数值
  187. /*179*/ AC_HTTPDATA, //写数据
  188. /*180*/ AC_HTTPACTION, //HTTP 方式激活
  189. /*181*/ AC_HTTPREAD, //查询 HTTP 服务响应
  190. /*182*/ AC_HTTPHEAD, //查询 HTTP 头信息
  191. /*183*/ AC_HTTPSCONT, //保存 HTTP 应用上下文
  192. /*184*/ AC_HTTPTERM, //终止 HTTP 任务
  193. /*185*/ AC_FTPPORT, //设置 FTP 控制端口
  194. /*186*/ AC_FTPMODE, //设置 FTP 主动或被动模式
  195. /*187*/ AC_FTPTYPE, //设置 FTP 数据传输类型
  196. /*188*/ AC_FTPPUTOPT, //设置 FTP 输入类型
  197. /*189*/ AC_FTPCID, //设置 FTP 承载标识
  198. /*190*/ AC_FTPREST, //设置 FTP 下载续传
  199. /*191*/ AC_FTPSERV, //设置 FTP 服务器地址
  200. /*192*/ AC_FTPUN, //设置 FTP 用户名称
  201. /*193*/ AC_FTPPW, //设置 FTP 密码
  202. /*194*/ AC_FTPGETNAME, //设置 FTP 下载文件名称
  203. /*195*/ AC_FTPGETPATH, //设置 FTP 下载文件路径
  204. /*196*/ AC_FTPPUTNAME, //设置 FTP 上传文件名称
  205. /*197*/ AC_FTPPUTPATH, //设置 FTP 上传文件路径
  206. /*198*/ AC_FTPMKD, //远程服务器上创建文件目录
  207. /*199*/ AC_FTPRMD, //远程服务器上删除文件目录
  208. /*200*/ AC_FTPGET, //下载文件
  209. /*201*/ AC_FTPPUT, //上传文件
  210. /*202*/ AC_FTPEXTGET, //下载文件(扩展)
  211. /*203*/ AC_FTPEXTPUT, //上传文件(扩展)
  212. /*204*/ AC_FTPGETTOFS, //下载文件并保存到文件系统中
  213. /*205*/ AC_FTPPUTFRMFS, //从文件系统上传文件到服务器
  214. /*206*/ AC_FTPFILEPUT, //从文件系统加载到 RAM 中并用 FTPPUT 上传
  215. /*207*/ AC_FTPLIST, //获取远程服务器上文件目录
  216. /*208*/ AC_FTPSIZE, //获取远程服务器上文件大小
  217. /*209*/ AC_FTPSTATE, //获取 FTP 状态
  218. /*210*/ AC_FTPSCONT, //保存 FTP 应用上下文
  219. /*211*/ AC_FTPDELE, //删除服务器上指定的文件
  220. /*212*/ AC_FTPQUIT, //退出当前 FTP 会话
  221. /*213*/ AC_MCONFIG, //设置 MQTT 相关参数
  222. /*214*/ AC_MIPSTART, //建立 TCP 连接
  223. /*215*/ AC_MCONNECT, //客户端向服务器请求会话连接
  224. /*216*/ AC_MPUB, //发布消息
  225. /*217*/ AC_MPUBEX, //发布长消息
  226. /*218*/ AC_MSUB, //订阅主题
  227. /*219*/ AC_MUNSUB, //取消订阅主题
  228. /*220*/ AC_MQTTMSGGET, //打印收到的所有的订阅消息
  229. /*221*/ AC_MQTTMSGSET, //设置订阅消息的打印模式
  230. /*222*/ AC_MQTTMODE, //MQTT 消息编码格式切换
  231. /*223*/ AC_MIPCLOSE, //关闭 TCP 连接
  232. /*224*/ AC_MDISCONNECT, //关闭 MQTT 连接
  233. /*225*/ AC_MQTTSTATU, //查询 MQTT 连接状态
  234. /*226*/ AC_BTCOMM_ENABLE, //蓝牙开关
  235. /*227*/ AC_BLECOMM_NAME, //设置名称
  236. /*228*/ AC_BLEADV_ADVDATA, //设置广播数据
  237. /*229*/ AC_BLEADV_SCANRSPDATA, //设置响应数据
  238. /*230*/ AC_BLEADV_ADVPARAM, //设置广播参数
  239. /*231*/ AC_BLEADV_BEACONDATA, //设置 BEACON 数据
  240. /*232*/ AC_BLEADV_ENABLE, //广播开关
  241. /*233*/ AC_BLESCAN_SCANPARAM, //设置扫描参数
  242. /*234*/ AC_BLESCAN_ENABLE, //扫描开关
  243. /*235*/ AC_BLECOMM_CONNECT, //连接从设备
  244. /*236*/ AC_BLECOMM_DISCONNECT, //断开从设备
  245. /*237*/ AC_BLECOMM_FINDSERVICE, //发现服务 UUID
  246. /*238*/ AC_BLECOMM_FINDCHARACTERISTIC, //发现服务内的特征
  247. /*239*/ AC_BLECOMM_NOTIFICATION, //通知开关
  248. /*240*/ AC_BLECOMM_SENDDATA, //发送数据
  249. /*241*/ AC_BTMAC, //蓝牙 MAC 地址
  250. /*242*/ AC_CGNSPWR, //GPS 开关
  251. /*243*/ AC_CGNSINF, //读取 GNSS 信息
  252. /*244*/ AC_CGNSURC, //打开 GNSS URC 上报
  253. /*245*/ AC_CGNSTST, //将读取到的 GNSS 数据发送到 AT 口
  254. /*246*/ AC_CGNSCMD, //给 GNSS 发送控制命令
  255. /*247*/ AC_CGNSVER, //读取 GNSS 版本
  256. /*248*/ AC_CGNSAID, //设置辅助定位
  257. /*249*/ AC_CGNSDEL, //删除 EPO 文件
  258. }atCmd_te;
  259. typedef enum __CMD_TYPE
  260. {
  261. CT_GET_LIMITVALUE, //测试命令 AT+<X>=? 该命令用于查询设置命令或内部程序设置的参数以及其取值范围
  262. CT_SET_VALUE, //设置命令 AT+<X>=<…> 该命令用于设置用户自定义的参数值
  263. CT_READ_VALUE, //查询命令 AT+<X>? 该命令用于返回参数的当前值
  264. CT_READ_INFOR, //执行命令 AT+<X> 该命令用于读取受GSM 模块内部程序控制的不可变参数
  265. CT_GET_CMDINFOR, //命令注释说明
  266. CT_PRINTF, //直接调用打印
  267. CT_MAX_COUNT,
  268. }cmdType_te;
  269. typedef struct __AT_COMMAND_STRUCT
  270. {
  271. uint16_t index; //命令在列表中的序号
  272. char *getLimitValue; //测试命令 AT+<X>=? 该命令用于查询设置命令或内部程序设置的参数以及其取值范围
  273. char *setValue; //设置命令 AT+<X>=<…> 该命令用于设置用户自定义的参数值
  274. char *readValue; //查询命令 AT+<X>? 该命令用于返回参数的当前值
  275. char *readInfor; //执行命令 AT+<X> 该命令用于读取受GSM 模块内部程序控制的不可变参数
  276. char *cmdInfor; //命令注释说明
  277. }atCommandStruct_ts;
  278. #define ATCMD_REC_LEN 255 //
  279. #define ATCMD_REC_BUFFER_LEVEL 8 //
  280. typedef struct
  281. {
  282. bool isValid;
  283. uint8_t packet[ATCMD_REC_LEN];
  284. uint16_t len;
  285. }atCmdBuffer_ts;
  286. typedef void (*ATCMD_CALLBACK)(uint8_t *buf, uint16_t count);
  287. char *strDelteStr(char *src, char *str2);
  288. void atCmd_init(void);
  289. void atCmdExport(cmdType_te cmdType, uint16_t cmdIndex, char *fmt, ...);
  290. void atCmd_proccess(void);
  291. #endif