소스 검색

1、微调升级逻辑
2、继续完善蜂窝接口

guohui 1 년 전
부모
커밋
b6a6c5654b
3개의 변경된 파일과 499개의 추가작업 그리고 1127개의 파일을 삭제
  1. 306 1121
      pro/src/Cellular.c
  2. 178 0
      pro/src/Cellular.h
  3. 15 6
      pro/src/upg.c

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 306 - 1121
pro/src/Cellular.c


+ 178 - 0
pro/src/Cellular.h

@@ -1,6 +1,178 @@
 #ifndef __CELLULAR_Hx__
 #define __CELLULAR_Hx__
 
+enum {
+    //genernal cmd
+    AT_CMD_AT=0,                       //测试命令
+    AT_CMD_ATI,                        //显示MT的ID信息
+    AT_CMD_GMI,                        //请求制造商信息
+    AT_CMD_GMM,                        //请求TA型号ID
+    AT_CMD_GMR,                        //请求TA固件版本ID
+    AT_CMD_CGMI,                       //同GMI
+    AT_CMD_CGMM,                       //同GMM
+    AT_CMD_CGMR,                       //同GMR
+    AT_CMD_GSN,                        //请求国际移动设备识别码(IMEI) 
+    AT_CMD_CGSN,                       //同GSN
+    AT_CMD_AT_F,                       //重置AT命令设置为出厂设置
+    AT_CMD_AT_V,                       //显示当前配置
+    AT_CMD_AT_W,                       //存储当前设置到用户自定义配置文件
+    AT_CMD_ATZ,                        //从用户定义配置文件还原所有AT命令设置
+    AT_CMD_ATQ,                        //设置结果码回显模式
+    AT_CMD_ATV,                        //TA响应格式
+    AT_CMD_ATE,                        //设置命令回显模式
+    AT_CMD_ATS3,                       //设置命令行终止符
+    AT_CMD_ATS4,                       //设置响应格式字符
+    AT_CMD_ATS5,                       //设置命令行编辑字符
+    AT_CMD_ATX,                        //设置CONNECT结果码格式和检测呼叫进程
+    AT_CMD_CFUN,                       //设置功能模式
+    AT_CMD_CMEE,                       //设置错误讯息格式
+    AT_CMD_CSCS,                       //选择TE字符集
+    AT_CMD_QURCCFG,                    //配置URC指示选项
+    AT_CMD_QPPPDROP,                   //终止PPP连接
+                                    
+    //serial cmd                    
+    AT_CMD_AT_C,                       //设置DCD信号模式
+    AT_CMD_AT_D,                       //设置DTR信号模式
+    AT_CMD_IFC,                        //设置串口的流控方
+    AT_CMD_IPR,                        //设置固定的串口通信波特率
+                                    
+    //status cmd                    
+    AT_CMD_CPAS,                       //查询ME活动状态
+    AT_CMD_CEER,                       //上报扩展错误
+    AT_CMD_QCFG,                       //扩展命令, 较多子命令
+    AT_CMD_QINDCFG,                    //控制URC上报
+                                   
+    //sim cmd                       
+    AT_CMD_CIMI,                       //查询IMSI
+    AT_CMD_CLCK,                       //功能锁定
+    AT_CMD_CPIN,                       //PIN管理
+    AT_CMD_CPWD,                       //修改密码
+    AT_CMD_CSIM,                       //通用(U)SIM卡访问
+    AT_CMD_CRSM,                       //(U)SIM卡受限访问
+    AT_CMD_QCCID,                      //查询 ICCID
+    AT_CMD_QPINC,                      //获取PIN剩余重试次数
+    AT_CMD_QINISTAT,                   //查询(U)SIM卡初始化状态
+    AT_CMD_QSIMDET,                    //(U)SIM卡检测
+    AT_CMD_QSIMSTAT,                   //(U)SIM卡插拔状态上报
+    AT_CMD_QDSIM,                      //选择(U)SIM卡
+                                    
+    //network service cmd           
+    AT_CMD_COPS,                       //选择运营商
+    AT_CMD_CREG,                       //CS域网络注册状态
+    AT_CMD_CSQ,                        //查询信号强度
+    AT_CMD_CPOL,                       //配置首选运营商列表
+    AT_CMD_COPN,                       //查询运营商名称列表
+    AT_CMD_CTZU,                       //自动更新时区
+    AT_CMD_CTZR,                       //上报时区变化
+    AT_CMD_QLTS,                       //获取通过网络同步的最新时间
+    AT_CMD_QNWINFO,                    //查询网络信息
+                                    
+    //call cmd                      
+    AT_CMD_ATA,                        //呼叫应答
+    AT_CMD_ATD,                        //发起呼叫
+    AT_CMD_COLP,                       //被叫线路识别显示
+    AT_CMD_ATH,                        //挂断现有连接
+    AT_CMD_CHUP,                       //挂断语音通话
+    AT_CMD_PPP,    //+++               //从数据模式切换至命令模式
+    AT_CMD_ATO,                        //从命令模式切换至数据模式
+    AT_CMD_ATSO,                       //设置自动应答前振铃次数
+    AT_CMD_CLCC,                       //查询当前 ME 呼叫
+    AT_CMD_DSCI,                       //指示呼叫状态
+                                    
+    //phonebook cmd                 
+    AT_CMD_CNUM,                       //查询本机号码
+    AT_CMD_CPBF,                       //搜索电话本
+    AT_CMD_CPBR,                       //读取电话本条目
+    AT_CMD_CPBS,                       //设置电话本存储器
+    AT_CMD_CPBW,                       //写入电话本
+                                    
+    //sms cmd                       
+    AT_CMD_CSMS,                       //选择短消息服务类型
+    AT_CMD_CMGF,                       //配置短消息模式
+    AT_CMD_CSCA,                       //设置短消息服务中心地址
+    AT_CMD_CPMS,                       //配置短消息首选存储位置
+    AT_CMD_CMGD,                       //删除短消息
+    AT_CMD_CMGL,                       //按状态读取短消息
+    AT_CMD_CMGR,                       //按照索引读取短消息
+    AT_CMD_CMGS,                       //发送短消息
+    AT_CMD_CMMS,                       //发送多条短消息
+    AT_CMD_CMGW,                       //存储短消息
+    AT_CMD_CMSS,                       //从存储器发送短消息
+    AT_CMD_CNMA,                       //新短消息确认
+    AT_CMD_CNMI,                       //设置短消息上报方式
+    AT_CMD_CSCB,                       //选择小区广播消息类型
+    AT_CMD_CSDH,                       //设置文本模式下参数显示
+    AT_CMD_CSMP,                       //设置短消息文本模式参数
+    AT_CMD_QCMGS,                      //发送级联短消息
+    AT_CMD_QCMGR,                      //读取级联短消息
+                                  
+    //gps cmd                       
+    AT_CMD_QGPSCFG,                    //配置GNSS
+    AT_CMD_QGPSDEL,                    //删除辅助数据
+    AT_CMD_QGPS,                       //打开GNSS
+    AT_CMD_QGPSEND,                    //关闭GNSS
+    AT_CMD_QGPSLOC,                    //获取定位信息
+    AT_CMD_QGPSNMEA,                   //获取指定的NMEA语句
+    AT_CMD_QAGPS,                      //启用/禁用AGPS
+
+    //tcp/ip cmd
+    AT_CMD_QICFG,                      //配置可选参数
+    AT_CMD_QICSGP,                     //配置TCP/IP场景参数
+    AT_CMD_QIACT,                      //激活PDP场景
+    AT_CMD_QIDEACT,                    //去激活PDP场景
+    AT_CMD_QIOPEN,                     //打开Socket服务
+    AT_CMD_QICLOSE,                    //关闭Socket服务
+    AT_CMD_QISTATE,                    //查询Socket服务状态
+    AT_CMD_QISEND,                     //发送数据
+    AT_CMD_QIRD,                       //读取收到的TCP/IP数据
+    AT_CMD_QISENDEX,                   //发送16进制字符串数据
+    AT_CMD_QISWTMD,                    //切换数据访问模式
+    AT_CMD_QPING,                      //进行远程服务器Ping操作
+    AT_CMD_QNTP,                       //使用NTP服务器同步本地时间
+    AT_CMD_QIDNSCFG,                   //配置DNS服务器地址
+    AT_CMD_QIDNSGIP,                   //用域名获取IP地址
+    AT_CMD_QISDE,                      //控制是否回显AT+QISEND要发送的
+    AT_CMD_QIGETERROR,                 //查询上一个AT命令错误代码
+
+    //mqtt cmd
+    AT_CMD_QMTCFG,                     //配置MQTT可选参数
+    AT_CMD_QMTOPEN,                    //打开MQTT客户端网络
+    AT_CMD_QMTCLOSE,                   //关闭MQTT客户端网络
+    AT_CMD_QMTCONN,                    //连接客户端到MQTT服务器
+    AT_CMD_QMTDISC,                    //客户端断开与MQTT服务器的连接
+    AT_CMD_QMTSUB,                     //订阅主题
+    AT_CMD_QMTUNS,                     //退订主题
+    AT_CMD_QMTPUB,                     //发布消息
+    AT_CMD_QMTRECV,                    //从缓存中读取消息
+
+    //domain cmd                    
+    AT_CMD_CGATT,                      //PS域附着或去附着
+    AT_CMD_CGDCONT,                    //定义PDP上下文
+    AT_CMD_CGQREQ,                     //服务质量参数请求
+    AT_CMD_CGQMIN,                     //服务质量参数(最低可接受的)
+    AT_CMD_CGEQREQ,                    //3G服务质量参数(请求的)
+    AT_CMD_CGEQMIN,                    //3G 服务质量参数(最低可接受的)
+    AT_CMD_CGACT,                      //PDP上下文激活/去激活
+    AT_CMD_CGDATA,                     //进入数据传输状态
+    AT_CMD_CGPADDR,                    //显示PDP地址
+    AT_CMD_CGCLASS,                    //GPRS移动站点等级
+    AT_CMD_CGEREG,                     //PS域网络注册状态
+    AT_CMD_CGEREP,                     //分组域事件上报
+    AT_CMD_CGSMS,                      //选择MO短消息服务
+    AT_CMD_CEREG,                      //EPS网络注册状态
+    AT_CMD_QGDCNT,                     //流量统计
+    AT_CMD_QAUGDCNT,                   //自动保存流量统计
+    AT_CMD_QNETDEVCTL,                 //连接USB网卡
+    AT_CMD_QCEERCATCFG,                //配置2G/4G下AT+CEER返回格式
+                                
+    //hardware cmd                  
+    AT_CMD_QPOWD,                      //关闭模块
+    AT_CMD_CCLK,                       //实时时钟
+    AT_CMD_QSCLK,                      //禁用/启用睡眠模式 
+
+    AT_CMD_MAX
+};
+
 typedef struct {
     char apn[32];
     char cnum[32];
@@ -12,6 +184,12 @@ typedef struct {
 typedef struct {
     int  dbm;
     int  ber;
+
+    int nsta;
+    int  altitude;
+    char latitude[32];
+    char longitude[32];
+    char utctime[32];
 }cell_stat_t;
 
 int cellular_init(void);

+ 15 - 6
pro/src/upg.c

@@ -571,6 +571,16 @@ static int md5_check(buf_t *fb)
 
     return 0;
 }
+static void upg_print(fw_hdr_t *h)
+{
+    char magic[20]={0};
+    
+    memcpy(magic, h->hdr.magic, sizeof(h->hdr.magic));
+    LOGD("hdr.magic:     %s\n", magic);
+    LOGD("hdr.size:      %d\n", h->hdr.size);
+    LOGD("hdr.version:   %x\n", h->hdr.version);
+    LOGD("hdr.partition: %d\n", h->hdr.partition);
+}
 
 int upg_board_file_check(char *path)
 {
@@ -590,15 +600,14 @@ int upg_board_file_check(char *path)
     fw_hdr_t *fh=(fw_hdr_t*)fb.buf;
     if(memcmp(fh->hdr.magic,FW_HEAD_MAGIC,sizeof(FW_HEAD_MAGIC))) {
         LOGE("not found %s, invalid board firmware\n", FW_HEAD_MAGIC);
+        upg_print(fh);
         r = UPG_HDR_FAIL;
     }
-
-    if(md5_check(&fb)) {
-        LOGE("md5 check failed, invalid board firmware\n");
-        r = UPG_MD5_FAIL;
-    }
     else {
-        r = UPG_OK;
+        if(md5_check(&fb)) {
+            LOGE("md5 check failed, invalid board firmware\n");
+            r = UPG_MD5_FAIL;
+        }
     }
     free(fb.buf);