Cellular.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. #ifndef __CELLULAR_Hx__
  2. #define __CELLULAR_Hx__
  3. enum {
  4. //genernal cmd
  5. AT_CMD_AT=0, //测试命令
  6. AT_CMD_ATI, //显示MT的ID信息
  7. AT_CMD_GMI, //请求制造商信息
  8. AT_CMD_GMM, //请求TA型号ID
  9. AT_CMD_GMR, //请求TA固件版本ID
  10. AT_CMD_CGMI, //同GMI
  11. AT_CMD_CGMM, //同GMM
  12. AT_CMD_CGMR, //同GMR
  13. AT_CMD_GSN, //请求国际移动设备识别码(IMEI)
  14. AT_CMD_CGSN, //同GSN
  15. AT_CMD_AT_F, //重置AT命令设置为出厂设置
  16. AT_CMD_AT_V, //显示当前配置
  17. AT_CMD_AT_W, //存储当前设置到用户自定义配置文件
  18. AT_CMD_ATZ, //从用户定义配置文件还原所有AT命令设置
  19. AT_CMD_ATQ, //设置结果码回显模式
  20. AT_CMD_ATV, //TA响应格式
  21. AT_CMD_ATE, //设置命令回显模式
  22. AT_CMD_ATS3, //设置命令行终止符
  23. AT_CMD_ATS4, //设置响应格式字符
  24. AT_CMD_ATS5, //设置命令行编辑字符
  25. AT_CMD_ATX, //设置CONNECT结果码格式和检测呼叫进程
  26. AT_CMD_CFUN, //设置功能模式
  27. AT_CMD_CMEE, //设置错误讯息格式
  28. AT_CMD_CSCS, //选择TE字符集
  29. AT_CMD_QURCCFG, //配置URC指示选项
  30. AT_CMD_QPPPDROP, //终止PPP连接
  31. //serial cmd
  32. AT_CMD_AT_C, //设置DCD信号模式
  33. AT_CMD_AT_D, //设置DTR信号模式
  34. AT_CMD_IFC, //设置串口的流控方
  35. AT_CMD_IPR, //设置固定的串口通信波特率
  36. //status cmd
  37. AT_CMD_CPAS, //查询ME活动状态
  38. AT_CMD_CEER, //上报扩展错误
  39. AT_CMD_QCFG, //扩展命令, 较多子命令
  40. AT_CMD_QINDCFG, //控制URC上报
  41. //sim cmd
  42. AT_CMD_CIMI, //查询IMSI
  43. AT_CMD_CLCK, //功能锁定
  44. AT_CMD_CPIN, //PIN管理
  45. AT_CMD_CPWD, //修改密码
  46. AT_CMD_CSIM, //通用(U)SIM卡访问
  47. AT_CMD_CRSM, //(U)SIM卡受限访问
  48. AT_CMD_QCCID, //查询 ICCID
  49. AT_CMD_QPINC, //获取PIN剩余重试次数
  50. AT_CMD_QINISTAT, //查询(U)SIM卡初始化状态
  51. AT_CMD_QSIMDET, //(U)SIM卡检测
  52. AT_CMD_QSIMSTAT, //(U)SIM卡插拔状态上报
  53. AT_CMD_QDSIM, //选择(U)SIM卡
  54. //network service cmd
  55. AT_CMD_COPS, //选择运营商
  56. AT_CMD_CREG, //CS域网络注册状态
  57. AT_CMD_CSQ, //查询信号强度
  58. AT_CMD_CPOL, //配置首选运营商列表
  59. AT_CMD_COPN, //查询运营商名称列表
  60. AT_CMD_CTZU, //自动更新时区
  61. AT_CMD_CTZR, //上报时区变化
  62. AT_CMD_QLTS, //获取通过网络同步的最新时间
  63. AT_CMD_QNWINFO, //查询网络信息
  64. //call cmd
  65. AT_CMD_ATA, //呼叫应答
  66. AT_CMD_ATD, //发起呼叫
  67. AT_CMD_COLP, //被叫线路识别显示
  68. AT_CMD_ATH, //挂断现有连接
  69. AT_CMD_CHUP, //挂断语音通话
  70. AT_CMD_PPP, //+++ //从数据模式切换至命令模式
  71. AT_CMD_ATO, //从命令模式切换至数据模式
  72. AT_CMD_ATSO, //设置自动应答前振铃次数
  73. AT_CMD_CLCC, //查询当前 ME 呼叫
  74. AT_CMD_DSCI, //指示呼叫状态
  75. //phonebook cmd
  76. AT_CMD_CNUM, //查询本机号码
  77. AT_CMD_CPBF, //搜索电话本
  78. AT_CMD_CPBR, //读取电话本条目
  79. AT_CMD_CPBS, //设置电话本存储器
  80. AT_CMD_CPBW, //写入电话本
  81. //sms cmd
  82. AT_CMD_CSMS, //选择短消息服务类型
  83. AT_CMD_CMGF, //配置短消息模式
  84. AT_CMD_CSCA, //设置短消息服务中心地址
  85. AT_CMD_CPMS, //配置短消息首选存储位置
  86. AT_CMD_CMGD, //删除短消息
  87. AT_CMD_CMGL, //按状态读取短消息
  88. AT_CMD_CMGR, //按照索引读取短消息
  89. AT_CMD_CMGS, //发送短消息
  90. AT_CMD_CMMS, //发送多条短消息
  91. AT_CMD_CMGW, //存储短消息
  92. AT_CMD_CMSS, //从存储器发送短消息
  93. AT_CMD_CNMA, //新短消息确认
  94. AT_CMD_CNMI, //设置短消息上报方式
  95. AT_CMD_CSCB, //选择小区广播消息类型
  96. AT_CMD_CSDH, //设置文本模式下参数显示
  97. AT_CMD_CSMP, //设置短消息文本模式参数
  98. AT_CMD_QCMGS, //发送级联短消息
  99. AT_CMD_QCMGR, //读取级联短消息
  100. //gps cmd
  101. AT_CMD_QGPSCFG, //配置GNSS
  102. AT_CMD_QGPSDEL, //删除辅助数据
  103. AT_CMD_QGPS, //打开GNSS
  104. AT_CMD_QGPSEND, //关闭GNSS
  105. AT_CMD_QGPSLOC, //获取定位信息
  106. AT_CMD_QGPSNMEA, //获取指定的NMEA语句
  107. AT_CMD_QAGPS, //启用/禁用AGPS
  108. //tcp/ip cmd
  109. AT_CMD_QICFG, //配置可选参数
  110. AT_CMD_QICSGP, //配置TCP/IP场景参数
  111. AT_CMD_QIACT, //激活PDP场景
  112. AT_CMD_QIDEACT, //去激活PDP场景
  113. AT_CMD_QIOPEN, //打开Socket服务
  114. AT_CMD_QICLOSE, //关闭Socket服务
  115. AT_CMD_QISTATE, //查询Socket服务状态
  116. AT_CMD_QISEND, //发送数据
  117. AT_CMD_QIRD, //读取收到的TCP/IP数据
  118. AT_CMD_QISENDEX, //发送16进制字符串数据
  119. AT_CMD_QISWTMD, //切换数据访问模式
  120. AT_CMD_QNTP, //使用NTP服务器同步本地时间
  121. AT_CMD_QPING, //进行远程服务器Ping操作
  122. AT_CMD_QIDNSCFG, //配置DNS服务器地址
  123. AT_CMD_QIDNSGIP, //用域名获取IP地址
  124. AT_CMD_QISDE, //控制是否回显AT+QISEND要发送的
  125. AT_CMD_QIGETERROR, //查询上一个AT命令错误代码
  126. //mqtt cmd
  127. AT_CMD_QMTCFG, //配置MQTT可选参数
  128. AT_CMD_QMTOPEN, //打开MQTT客户端网络
  129. AT_CMD_QMTCLOSE, //关闭MQTT客户端网络
  130. AT_CMD_QMTCONN, //连接客户端到MQTT服务器
  131. AT_CMD_QMTDISC, //客户端断开与MQTT服务器的连接
  132. AT_CMD_QMTSUB, //订阅主题
  133. AT_CMD_QMTUNS, //退订主题
  134. AT_CMD_QMTPUB, //发布消息
  135. AT_CMD_QMTRECV, //从缓存中读取消息
  136. //domain cmd
  137. AT_CMD_CGATT, //PS域附着或去附着
  138. AT_CMD_CGDCONT, //定义PDP上下文
  139. AT_CMD_CGQREQ, //服务质量参数请求
  140. AT_CMD_CGQMIN, //服务质量参数(最低可接受的)
  141. AT_CMD_CGEQREQ, //3G服务质量参数(请求的)
  142. AT_CMD_CGEQMIN, //3G 服务质量参数(最低可接受的)
  143. AT_CMD_CGACT, //PDP上下文激活/去激活
  144. AT_CMD_CGDATA, //进入数据传输状态
  145. AT_CMD_CGPADDR, //显示PDP地址
  146. AT_CMD_CGCLASS, //GPRS移动站点等级
  147. AT_CMD_CGEREG, //PS域网络注册状态
  148. AT_CMD_CGEREP, //分组域事件上报
  149. AT_CMD_CGSMS, //选择MO短消息服务
  150. AT_CMD_CEREG, //EPS网络注册状态
  151. AT_CMD_QGDCNT, //流量统计
  152. AT_CMD_QAUGDCNT, //自动保存流量统计
  153. AT_CMD_QNETDEVCTL, //连接USB网卡
  154. AT_CMD_QCEERCATCFG, //配置2G/4G下AT+CEER返回格式
  155. //hardware cmd
  156. AT_CMD_QPOWD, //关闭模块
  157. AT_CMD_CCLK, //实时时钟
  158. AT_CMD_QSCLK, //禁用/启用睡眠模式
  159. AT_CMD_MAX
  160. };
  161. typedef struct {
  162. char apn[32];
  163. char cnum[32];
  164. char imsi[32];
  165. char imei[32];
  166. char isp[32];
  167. }cell_info_t;
  168. typedef struct {
  169. int dbm;
  170. int ber;
  171. int nsta;
  172. int altitude;
  173. char latitude[32];
  174. char longitude[32];
  175. time_t utctime;
  176. int linked;
  177. char ipv4[16];
  178. char ipv6[64];
  179. }cell_stat_t;
  180. typedef struct {
  181. cell_info_t info;
  182. cell_stat_t stat;
  183. }cell_all_t;
  184. int cellular_init(void);
  185. int cellular_deinit(void);
  186. int cellular_reset(void);
  187. int cellular_get_all(cell_all_t *all);
  188. int cellular_is_connected(void);
  189. int UpdateCellularManager( cell_all_t *all);
  190. int cell_send_sms_all(int type, int subtype, int alarm_type,char *txt);
  191. #endif