|
@@ -438,28 +438,40 @@ void Tcp_Recv_fota(uint8_t* P)
|
|
|
#ifdef USING_PRINTF
|
|
|
printf("fota data handle\n");
|
|
|
#endif
|
|
|
+ if(*(P+3)==0x01)
|
|
|
+ {
|
|
|
+ Fota_S.Fota_All_Data_Len = *(P+5)<<24|*(P+6)<<16|*(P+7)<<8|*(P+8);
|
|
|
+ }
|
|
|
+ else if(*(P+3)==0x02)
|
|
|
+ {
|
|
|
+ Fota_S.Fota_Current_Addres = *(P+9)<<24|*(P+10)<<16|*(P+11)<<8|*(P+12);
|
|
|
+ Fota_S.Fota_Recv_Data_Len = *(P+13);
|
|
|
+ memcpy(Fota_S.Fota_Recv_Data,*(P+14),*(P+13));
|
|
|
+ }
|
|
|
}
|
|
|
void Tcp_Recv_info(uint8_t* P)
|
|
|
{
|
|
|
- switch(*(P+1))
|
|
|
+ switch(*(P))
|
|
|
{
|
|
|
- case 0x00://非应答
|
|
|
+ case 0x80://查询
|
|
|
Tcp_serviece=01;
|
|
|
+ if(*(P+2)==0x08)
|
|
|
+ {
|
|
|
+ tcpipConnectionSend(socContext.id, {08,01,08,00}, 5, 0, 0, 0);
|
|
|
+ }
|
|
|
break;
|
|
|
- case 0xfe://应答
|
|
|
+ case 0x82://控制
|
|
|
Tcp_serviece=01;
|
|
|
- switch(*(P))
|
|
|
+ if(*(P+2)==0x01)
|
|
|
{
|
|
|
- case 0x80:
|
|
|
- break;
|
|
|
- case 0x82:
|
|
|
- Fota_S.Fota_update_flag=true;
|
|
|
- Tcp_Recv_fota(P);
|
|
|
- break;
|
|
|
- default:
|
|
|
- Fota_S.Fota_update_flag = false;
|
|
|
+ Fota_S.Fota_update_flag=true;
|
|
|
+ Tcp_Recv_fota(P);
|
|
|
}
|
|
|
break;
|
|
|
+ default:
|
|
|
+ P = NULL;
|
|
|
+ Tcp_serviece=00;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
uint8_t Fota_crc_chk(uint8_t* data,uint8_t length)
|
|
@@ -560,7 +572,7 @@ static void Tcp_Task(void* arg)
|
|
|
case QMSG_ID_SOCK_SENDPKG:
|
|
|
if (socContext.id >= 0 && socContext.status == APP_SOCKET_CONNECTION_CONNECTED)
|
|
|
{
|
|
|
- if(Tcp_Servies)
|
|
|
+ if(Tcp_serviece==0)
|
|
|
{
|
|
|
Tcp_Send_info();
|
|
|
}
|