forked from xuos/xiuos
				
			add ota error_message for platform
This commit is contained in:
		
							parent
							
								
									a473111e5d
								
							
						
					
					
						commit
						dbfa37bf44
					
				| 
						 | 
					@ -886,7 +886,7 @@ static void mqttCloudInteraction(void* parameter)
 | 
				
			||||||
    ota_info_t ota_info;
 | 
					    ota_info_t ota_info;
 | 
				
			||||||
    uint32_t heart_time = 0;
 | 
					    uint32_t heart_time = 0;
 | 
				
			||||||
    uint32_t flashdestination = DOWN_FLAH_ADDRESS;
 | 
					    uint32_t flashdestination = DOWN_FLAH_ADDRESS;
 | 
				
			||||||
    uint8_t topicdatabuff[2][32];
 | 
					    uint8_t topicdatabuff[2][64];
 | 
				
			||||||
    char *ptr1, *ptr2;
 | 
					    char *ptr1, *ptr2;
 | 
				
			||||||
    uint16_t payloadLen;
 | 
					    uint16_t payloadLen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -912,7 +912,7 @@ reconnect:
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef USING_DOWNLOAD_JSON
 | 
					#ifdef USING_DOWNLOAD_JSON
 | 
				
			||||||
    uint8_t jsontopicdatabuff[32];
 | 
					    uint8_t jsontopicdatabuff[64];
 | 
				
			||||||
    uint8_t jsonfilename[32];
 | 
					    uint8_t jsonfilename[32];
 | 
				
			||||||
    memset(jsontopicdatabuff,0,sizeof(jsontopicdatabuff));
 | 
					    memset(jsontopicdatabuff,0,sizeof(jsontopicdatabuff));
 | 
				
			||||||
    sprintf(jsontopicdatabuff,"protocol/%s/files",CLIENTID);
 | 
					    sprintf(jsontopicdatabuff,"protocol/%s/files",CLIENTID);
 | 
				
			||||||
| 
						 | 
					@ -1071,7 +1071,7 @@ reconnect:
 | 
				
			||||||
                    cJSON_free(json_print_str);
 | 
					                    cJSON_free(json_print_str);
 | 
				
			||||||
                    cJSON_Delete(json_obj);
 | 
					                    cJSON_Delete(json_obj);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                KPrintf("download %s file done!------\r\n",jsonfilename);
 | 
					                KPrintf("------download %s file done!------\r\n",jsonfilename);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -1174,19 +1174,20 @@ static void mqttCloudInteraction(void* parameter)
 | 
				
			||||||
    ota_info_t ota_info;
 | 
					    ota_info_t ota_info;
 | 
				
			||||||
    uint32_t heart_time = 0;
 | 
					    uint32_t heart_time = 0;
 | 
				
			||||||
    uint32_t flashdestination = DOWN_FLAH_ADDRESS;
 | 
					    uint32_t flashdestination = DOWN_FLAH_ADDRESS;
 | 
				
			||||||
    uint8_t topicdatabuff[64];
 | 
					    uint8_t topicdatabuff[2][64];
 | 
				
			||||||
    char *ptr;
 | 
					    char *ptr1, *ptr2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mcuboot.flash_init();
 | 
					    mcuboot.flash_init();
 | 
				
			||||||
    memset(&ota_info, 0, sizeof(ota_info_t));
 | 
					    memset(&ota_info, 0, sizeof(ota_info_t));
 | 
				
			||||||
    mcuboot.op_flash_read(FLAG_FLAH_ADDRESS, (void*)&ota_info, sizeof(ota_info_t));
 | 
					    mcuboot.op_flash_read(FLAG_FLAH_ADDRESS, (void*)&ota_info, sizeof(ota_info_t));
 | 
				
			||||||
    ota_info.status = OTA_STATUS_DOWNLOADING;
 | 
					    ota_info.status = OTA_STATUS_DOWNLOADING;
 | 
				
			||||||
    UpdateOTAFlag(&ota_info);
 | 
					    UpdateOTAFlag(&ota_info);
 | 
				
			||||||
    memset(topicdatabuff,0,64); 
 | 
					    memset(topicdatabuff,0,sizeof(topicdatabuff));
 | 
				
			||||||
    sprintf(topicdatabuff,"/sys/%s/%s/thing/file/download_reply",PLATFORM_PRODUCTKEY,CLIENT_DEVICENAME);  
 | 
					    sprintf(topicdatabuff[0],"/ota/device/upgrade/%s/%s",PLATFORM_PRODUCTKEY,CLIENT_DEVICENAME);  
 | 
				
			||||||
 | 
					    sprintf(topicdatabuff[1],"/sys/%s/%s/thing/file/download_reply",PLATFORM_PRODUCTKEY,CLIENT_DEVICENAME);  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
reconnect:
 | 
					reconnect:
 | 
				
			||||||
    if((AdapterNetActive() == 0) && MQTT_Connect() && MQTT_SubscribeTopic(topicdatabuff))
 | 
					    if((AdapterNetActive() == 0) && MQTT_Connect() && MQTT_SubscribeTopic(topicdatabuff[0]) && MQTT_SubscribeTopic(topicdatabuff[1]))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        KPrintf("Log in to the cloud platform and subscribe to the topic successfully.\n"); 
 | 
					        KPrintf("Log in to the cloud platform and subscribe to the topic successfully.\n"); 
 | 
				
			||||||
        PropertyVersion();
 | 
					        PropertyVersion();
 | 
				
			||||||
| 
						 | 
					@ -1222,10 +1223,11 @@ reconnect:
 | 
				
			||||||
            MQTT_DealPublishData(MqttRxbuf, datalen);
 | 
					            MQTT_DealPublishData(MqttRxbuf, datalen);
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            // 1.获取新版本固件大小及版本信息
 | 
					            // 1.获取新版本固件大小及版本信息
 | 
				
			||||||
            ptr = strstr((char *)Platform_mqtt.cmdbuff,"{\"code\":\"1000\"");
 | 
					            ptr1 = strstr((char *)Platform_mqtt.cmdbuff,topicdatabuff[0]); 
 | 
				
			||||||
            if(ptr != NULL)
 | 
					            ptr2 = strstr((char *)Platform_mqtt.cmdbuff,"{\"code\":\"1000\"");
 | 
				
			||||||
 | 
					            if((ptr1 != NULL) &&(ptr2 != NULL))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if(sscanf(ptr,"{\"code\":\"1000\",\"data\":{\"size\":%d,\"streamId\":%d,\"sign\":\"%*32s\",\"dProtocol\":\"mqtt\",\"version\":\"%11s\"",&platform_ota.size,&platform_ota.streamId,platform_ota.version)==3)
 | 
					                if(sscanf(ptr2,"{\"code\":\"1000\",\"data\":{\"size\":%d,\"streamId\":%d,\"sign\":\"%*32s\",\"dProtocol\":\"mqtt\",\"version\":\"%11s\"",&platform_ota.size,&platform_ota.streamId,platform_ota.version)==3)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    KPrintf("OTA firmware information:file size is %d,file id is %d,file version is %s!\r\n",platform_ota.size,platform_ota.streamId,platform_ota.version);
 | 
					                    KPrintf("OTA firmware information:file size is %d,file id is %d,file version is %s!\r\n",platform_ota.size,platform_ota.streamId,platform_ota.version);
 | 
				
			||||||
                    KPrintf("------Start the firmware file transfer!------\r\n");                    
 | 
					                    KPrintf("------Start the firmware file transfer!------\r\n");                    
 | 
				
			||||||
| 
						 | 
					@ -1244,6 +1246,10 @@ reconnect:
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        KPrintf("Failed to erase download partition!\n");
 | 
					                        KPrintf("Failed to erase download partition!\n");
 | 
				
			||||||
                        ret = -1;
 | 
					                        ret = -1;
 | 
				
			||||||
 | 
					                        ota_info.status = OTA_STATUS_ERROR;
 | 
				
			||||||
 | 
					                        memset(ota_info.error_message,0,sizeof(ota_info.error_message));
 | 
				
			||||||
 | 
					                        strncpy(ota_info.error_message, "Failed to erase download partition!",sizeof(ota_info.error_message));
 | 
				
			||||||
 | 
					                        UpdateOTAFlag(&ota_info);
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    platform_ota.counter = (platform_ota.size%FRAME_LEN != 0)? (platform_ota.size/FRAME_LEN + 1):(platform_ota.size/FRAME_LEN);
 | 
					                    platform_ota.counter = (platform_ota.size%FRAME_LEN != 0)? (platform_ota.size/FRAME_LEN + 1):(platform_ota.size/FRAME_LEN);
 | 
				
			||||||
| 
						 | 
					@ -1264,7 +1270,7 @@ reconnect:
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // 2.分片接收新版本固件
 | 
					            // 2.分片接收新版本固件
 | 
				
			||||||
            if(strstr((char *)Platform_mqtt.cmdbuff,"download_reply"))
 | 
					            if(strstr((char *)Platform_mqtt.cmdbuff,topicdatabuff[1]))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                memset(FrameBuf,0,sizeof(FrameBuf));
 | 
					                memset(FrameBuf,0,sizeof(FrameBuf));
 | 
				
			||||||
                memcpy(FrameBuf, &MqttRxbuf[datalen-platform_ota.downlen-2], platform_ota.downlen);
 | 
					                memcpy(FrameBuf, &MqttRxbuf[datalen-platform_ota.downlen-2], platform_ota.downlen);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue