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