#ifndef __AT_COMMAND_H_ #define __AT_COMMAND_H_ #include #include #include 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+=? 该命令用于查询设置命令或内部程序设置的参数以及其取值范围 CT_SET_VALUE, //设置命令 AT+=<…> 该命令用于设置用户自定义的参数值 CT_READ_VALUE, //查询命令 AT+? 该命令用于返回参数的当前值 CT_READ_INFOR, //执行命令 AT+ 该命令用于读取受GSM 模块内部程序控制的不可变参数 CT_GET_CMDINFOR, //命令注释说明 CT_PRINTF, //直接调用打印 CT_MAX_COUNT, }cmdType_te; typedef struct __AT_COMMAND_STRUCT { uint16_t index; //命令在列表中的序号 char *getLimitValue; //测试命令 AT+=? 该命令用于查询设置命令或内部程序设置的参数以及其取值范围 char *setValue; //设置命令 AT+=<…> 该命令用于设置用户自定义的参数值 char *readValue; //查询命令 AT+? 该命令用于返回参数的当前值 char *readInfor; //执行命令 AT+ 该命令用于读取受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