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