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