zhangbo
2 天以前 f39c69839382ee3890906e96211527dcb2eaeb51
keil/include/src/TCPClient.c
@@ -82,6 +82,9 @@
uint16_t g_com_position;
uint16_t g_com_num;
uint8_t testdata[100];
uint8_t uwb_OpenClose_flag=1;
extern uint32_t state_start_time;
extern uint32_t uwb_time_count;
static HIDO_INT32 TCPClient_DataProc(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
{
    HIDO_CHAR *apcSplitStr[12];
@@ -319,8 +322,9 @@
    /* $download_audio,http://39.106.210.13:8080/hfs/xxx.bin */
    else if (STRCMP(_u8Data, "$download_audio,") == 0)
    {
        uint16_t buffer_len,datalen;
        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
        char send_buffer[20]={"$rec_voicece\r\n"};
        if (u32SplitCnt < 3)
        {
            return HIDO_ERR;
@@ -329,7 +333,10 @@
        {
            uint16_t tmp = 0xCCCC;
            uint8_t flag = 1;
//            buffer_len = sprintf(send_buffer,"$rec_voicece,");
//            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
//            buffer_len += datalen;
//            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
            __disable_irq();
            result = flash_open(FLASH_ID0, NULL);
            if (!result)
@@ -347,8 +354,10 @@
    /* $play_audio,0-9 */
    else if (STRCMP(_u8Data, "$play_audio,") == 0)
    {
        uint16_t buffer_len,datalen;
        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
        char send_buffer[20]={"$Receivevoice \r\n"};
        if (u32SplitCnt < 3)
        {
            return HIDO_ERR;
@@ -358,6 +367,10 @@
            PCA9555_Set_One_Value_Output(TTS_ENABLE,1);//输出高电平切换为5V输入
            delay_ms(100);
            WT588E_PLAY(atoi(apcSplitStr[2]));
            buffer_len = sprintf(send_buffer,"$Receivevoice,");
            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
            buffer_len += datalen;
            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
        }
    }
    else if (STRCMP(_u8Data, "$set_gpsuwbpara,") == 0)
@@ -432,7 +445,60 @@
            Socket_Send(l_i32TCPClientID,send_buffer,9+160);
        }
    }
    else if (STRCMP(_u8Data, "$set_uwb_work,") == 0)
    {
     uint16_t temp,buffer_len,datalen;
     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
     char send_buffer[20]={"$rec_uwb_work\r\n"};
     if (u32SplitCnt < 3)
     {
       return HIDO_ERR;
     }
       if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
        {
             temp=HIDO_UtilStrToInt(apcSplitStr[2]);
             if(temp==1)
             {
              OpenUWB();
              uwb_OpenClose_flag=1;
             }
             else if(temp==0)
             {
              CloseUWB();
              uwb_OpenClose_flag=0;
             }
          buffer_len = sprintf(send_buffer,"$rec_uwb_work,");
          datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
          buffer_len += datalen;
          Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
        }
    }
    else if (STRCMP(_u8Data, "$set_uwb_frequency,") == 0)
    {
     uint16_t temp,buffer_len,datalen;
     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
     char send_buffer[20]={"$rec_frequency\r\n"};
     if (u32SplitCnt < 3)
     {
       return HIDO_ERR;
     }
        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
        {
           HIDO_INT32 uwb_fre;
           uwb_fre=HIDO_UtilStrToInt(apcSplitStr[2]);
           g_com_map[UWBFrequency]=uwb_fre;
           state_start_time=0;
           uwb_time_count=0;
           buffer_len = sprintf(send_buffer,"$rec_frequency,");
           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
           buffer_len += datalen;
           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
        }
    }
    return HIDO_OK;
}
@@ -481,6 +547,7 @@
        i32Ret = Socket_Recv(l_i32TCPClientID, l_au8CmdBuff, sizeof(l_au8CmdBuff) - 1, &u32RecvLen);
        if(HIDO_OK == i32Ret)
        {
            l_au8CmdBuff[u32RecvLen]=0;
            TCPClient_DataProc(l_au8CmdBuff, u32RecvLen);
        }
        break;
@@ -515,14 +582,24 @@
extern uint8_t GPS_ParseGGA_data[256];
extern uint8_t GPS_ParseGGA_changdu;
uint8_t uwbsendnum,gpssendnum;
void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
extern uint8_t exercise_state;
extern uint32_t step_count;
extern uint16_t gaodu;void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
{
    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
    {
        
        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,0,0,0);
#ifdef JIBU_XIUMIAN
        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
//                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,0,0,0);
                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,(uint8_t)(step_count),exercise_state);
#else
        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,0,0);
#endif
       
//        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
//        {
@@ -749,18 +826,39 @@
    return HIDO_OK;
}
//char str[19]= {"AT+IPR=115200;&W\r\n"};
//void AIR780E_Reset(void)
//{
//      PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
//    delay_ms(100);
//    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
//    delay_ms(3000);
//    Uart_ReConfigBaudRate(UART_ID_4G,9600);
//    uart_send(UART_ID0, str,19, NULL);
#ifdef _GPS_115200
char str[19]= {"AT+IPR=115200;&W\r\n"};
void AIR780E_Reset(void)
{
      PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
    delay_ms(1500);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
    delay_ms(3000);
//    Uart_ReConfigBaudRate(UART_ID_4G,115200);
//}
//    uart_send(UART_ID0, str,17, NULL);
//    Uart_ReConfigBaudRate(UART_ID_4G,9600);
}
void AIR780E_Reset_usart(void)
{
   PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
    delay_ms(1500);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
    delay_ms(3000);
    Uart_ReConfigBaudRate(UART_ID_4G,9600);
    uart_send(UART_ID0, str,19, NULL);
    Uart_ReConfigBaudRate(UART_ID_4G,115200);
    delay_ms(200);
    rtkled=GREEN;
    uwbled=GREEN;
    led4g=GREEN;
    powerled=GREEN;
    Set4LEDColor(uwbled,rtkled,led4g,powerled);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
    delay_ms(1500);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);
    NVIC_SystemReset();
}
#else
char str[17]= {"AT+IPR=9600;&W\r\n"};
void AIR780E_Reset(void)
{
@@ -774,14 +872,25 @@
}
void AIR780E_Reset_usart(void)
{
      PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
   PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G
    delay_ms(1500);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G
    delay_ms(3000);
    Uart_ReConfigBaudRate(UART_ID_4G,115200);
    uart_send(UART_ID0, str,17, NULL);
    Uart_ReConfigBaudRate(UART_ID_4G,9600);
    delay_ms(200);
    rtkled=GREEN;
    uwbled=GREEN;
    led4g=GREEN;
    powerled=GREEN;
    Set4LEDColor(uwbled,rtkled,led4g,powerled);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
    delay_ms(1500);
    PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);
    NVIC_SystemReset();
}
#endif
uint8_t IfTCPConnected(void)
{
    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)