forked from xuos/xiuos
				
			OTA prints prompt message when upgrade is not required
This commit is contained in:
		
							parent
							
								
									aa3e6c9370
								
							
						
					
					
						commit
						c2abf66f23
					
				|  | @ -29,7 +29,7 @@ | |||
| #define REPLY_TIME_OUT 10 | ||||
| 
 | ||||
| #ifdef TOOL_USING_OTA | ||||
| #define ENTM_RECV_MAX (OTA_FRAME_SIZE + 512) | ||||
| #define ENTM_RECV_MAX (OTA_FRAME_SIZE + 1024) | ||||
| #else | ||||
| #define ENTM_RECV_MAX 256 | ||||
| #endif | ||||
|  |  | |||
|  | @ -421,13 +421,13 @@ bool MQTT_SendHeart(void) | |||
| /*******************************************************************************
 | ||||
| * 函 数 名: MQTT_DealPublishData | ||||
| * 功能描述: 处理服务器发来的等级0的推送数据,附带topic信息 | ||||
| * 形    参: redata:接收的数据,data_len:要处理的数据长度 | ||||
| * 形    参: data:接收的数据,data_len:要处理的数据长度 | ||||
| * 返 回 值: 报文中主题部分+实际负载的长度 | ||||
| *******************************************************************************/ | ||||
| uint16_t MQTT_DealPublishData(uint8_t *data, uint16_t data_len) | ||||
| { | ||||
|     uint8_t i; | ||||
|     uint16_t cmdpos,cmdlen; | ||||
|     uint16_t startPos,payloadLen; | ||||
| 
 | ||||
|     for(i = 1;i < 5;i++) | ||||
|     { | ||||
|  | @ -436,16 +436,16 @@ uint16_t MQTT_DealPublishData(uint8_t *data, uint16_t data_len) | |||
|             break; | ||||
|     } | ||||
| 
 | ||||
|     //1代表固定报头占一个字节,i代表可变报头长度字段所占用字节数,2代表主题长度字段占2字节,cmdpos代表报文里主题名称起始位置
 | ||||
|     cmdpos = 1+i+2; | ||||
|     //1代表固定报头占一个字节,i代表可变报头长度字段所占用字节数,2代表主题长度字段占2字节,startPos代表报文里主题名称起始位置
 | ||||
|     startPos = 1+i+2; | ||||
|     //data_len减去1+i+2就是报文中主题部分+实际负载的长度
 | ||||
|     cmdlen = data_len-(1+i+2); | ||||
|     payloadLen = data_len-(1+i+2); | ||||
| 
 | ||||
|     if(data_len <= CMD_SIZE) | ||||
|     { | ||||
|         memset(Platform_mqtt.cmdbuff, 0, CMD_SIZE); | ||||
|         memcpy(Platform_mqtt.cmdbuff, &data[cmdpos], cmdlen); | ||||
|         memcpy(Platform_mqtt.cmdbuff, &data[startPos], payloadLen); | ||||
|     } | ||||
| 
 | ||||
|     return cmdlen; | ||||
|     return payloadLen; | ||||
| } | ||||
|  |  | |||
|  | @ -28,8 +28,8 @@ | |||
| #define  KEEPALIVE_TIME               300   //保活时间(单位s),300s
 | ||||
| #define  HEART_TIME                200000   //空闲时发送心跳包的时间间隔(单位ms),200s
 | ||||
| #define  PACK_SIZE                    512   //存放报文数据缓冲区大小
 | ||||
| #define  MQTT_FRAME_SIZE             3072   //保存推送的PUBLISH报文中的数据负载大小,最大3k
 | ||||
| #define  CMD_SIZE (MQTT_FRAME_SIZE + 512)   //保存推送的PUBLISH报文中的数据缓冲区大小
 | ||||
| #define  MQTT_FRAME_SIZE             2048   //保存推送的PUBLISH报文中的数据负载大小,最大2k
 | ||||
| #define  CMD_SIZE (MQTT_FRAME_SIZE + 1024)  //保存推送的PUBLISH报文中的数据缓冲区大小
 | ||||
| #define  CLIENTID_SIZE                 64   //存放客户端ID的缓冲区大小
 | ||||
| #define  USERNAME_SIZE                 64   //存放用户名的缓冲区大小
 | ||||
| #define  PASSWARD_SIZE                 64   //存放密码的缓冲区大小
 | ||||
|  |  | |||
|  | @ -67,9 +67,9 @@ menu "OTA function" | |||
|          | ||||
|         config OTA_FRAME_SIZE | ||||
|             int "OTA receive data frame size." | ||||
|             default 3072 if OTA_BY_PLATFORM | ||||
|             default 2048 if OTA_BY_PLATFORM | ||||
|             default 1024 if OTA_BY_TCPSERVER | ||||
|             default 256 if MCUBOOT_BOOTLOADER | ||||
|             default 0 if MCUBOOT_BOOTLOADER | ||||
|     endif | ||||
| 
 | ||||
| endmenu | ||||
|  |  | |||
|  | @ -401,6 +401,13 @@ static bool UpdateNewApplication(void) | |||
|     } | ||||
|     else | ||||
|     { | ||||
|         // 如果OTA升级状态为准备状态但APP分区与download分区版本相同,不需要进行升级,重置status,打印提示信息
 | ||||
|         if((ota_info.status == OTA_STATUS_READY) && (ota_info.os.crc32 == ota_info.down.crc32))  | ||||
|         { | ||||
|             ota_info.status == OTA_STATUS_IDLE; | ||||
|             UpdateOTAFlag(&ota_info); | ||||
|             mcuboot.print_string("\r\n------The app partition is the same as the download partition, no need to upgrade!------\r\n"); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| finish: | ||||
|  | @ -801,7 +808,7 @@ SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHE | |||
| #else | ||||
|     #error "The value of FRAME_LEN should not be greater than MQTT_FRAME_SIZE!!" | ||||
| #endif | ||||
| static uint8_t MqttRxbuf[FRAME_LEN + 512]; | ||||
| static uint8_t MqttRxbuf[FRAME_LEN + 1024]; | ||||
| static uint8_t FrameBuf[FRAME_LEN]; | ||||
| static OTA_TCB platform_ota; | ||||
| 
 | ||||
|  | @ -828,12 +835,12 @@ static void PropertyVersion(void) | |||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*-------------------------------------------------*/ | ||||
| /*函数名:OTA下载数据                              */ | ||||
| /*参  数:size:本次下载量                         */ | ||||
| /*参  数:offset:本次下载偏移量                   */ | ||||
| /*返回值:无                                       */ | ||||
| /*-------------------------------------------------*/ | ||||
| /*******************************************************************************
 | ||||
| * 函 数 名: OTA_Download | ||||
| * 功能描述: OTA下载数据 | ||||
| * 形    参: size:本次下载量,offset:本次下载偏移量 | ||||
| * 返 回 值: 无 | ||||
| *******************************************************************************/ | ||||
| static void OTA_Download(int size, int offset) | ||||
| { | ||||
|     uint8_t tempdatabuff[128]; | ||||
|  | @ -860,7 +867,7 @@ static void mqttCloudInteraction(void* parameter) | |||
|     uint32_t flashdestination = DOWN_FLAH_ADDRESS; | ||||
|     uint8_t topicdatabuff[2][32]; | ||||
|     char *ptr1, *ptr2; | ||||
|     uint16_t cmdlen; | ||||
|     uint16_t payloadLen; | ||||
| 
 | ||||
|     mcuboot.flash_init(); | ||||
|     memset(&ota_info, 0, sizeof(ota_info_t)); | ||||
|  | @ -916,7 +923,7 @@ reconnect: | |||
|         else if(MqttRxbuf[0] == 0x30) | ||||
|         { | ||||
|             freecnt = 0; | ||||
|             cmdlen = MQTT_DealPublishData(MqttRxbuf, datalen); | ||||
|             payloadLen = MQTT_DealPublishData(MqttRxbuf, datalen); | ||||
| 
 | ||||
|             // 1.获取新版本固件大小及版本信息
 | ||||
|             ptr1 = strstr((char *)Platform_mqtt.cmdbuff,topicdatabuff[0]);  | ||||
|  | @ -1021,7 +1028,7 @@ reconnect: | |||
|                 KPrintf("------Start download joson file !------\r\n"); | ||||
|                 memset(jsonfilename,0,sizeof(jsonfilename)); | ||||
|                 memset(FrameBuf,0,sizeof(FrameBuf)); | ||||
|                 memcpy(FrameBuf, &Platform_mqtt.cmdbuff[strlen(jsontopicdatabuff)],cmdlen-strlen(jsontopicdatabuff));  | ||||
|                 memcpy(FrameBuf, &Platform_mqtt.cmdbuff[strlen(jsontopicdatabuff)],payloadLen-strlen(jsontopicdatabuff));  | ||||
|                  | ||||
|                 cJSON *json_obj = cJSON_Parse(FrameBuf); | ||||
|                 char* product_name = cJSON_GetObjectItem(json_obj, "productName")->valuestring; | ||||
|  | @ -1113,12 +1120,12 @@ static void PropertyVersion(void) | |||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*-------------------------------------------------*/ | ||||
| /*函数名:OTA下载数据                              */ | ||||
| /*参  数:size:本次下载量                         */ | ||||
| /*参  数:offset:本次下载偏移量                   */ | ||||
| /*返回值:无                                       */ | ||||
| /*-------------------------------------------------*/ | ||||
| /*******************************************************************************
 | ||||
| * 函 数 名: OTA_Download | ||||
| * 功能描述: OTA下载数据 | ||||
| * 形    参: size:本次下载量,offset:本次下载偏移量 | ||||
| * 返 回 值: 无 | ||||
| *******************************************************************************/ | ||||
| static void OTA_Download(int size, int offset) | ||||
| { | ||||
|     uint8_t topicdatabuff[64]; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue