APL/UDPClient.c
@@ -74,6 +74,9 @@
 * Modified Date:    : 2021年1月9日
 *******************************************************************************/
uint16_t beepontime;
uint8_t receive1_gotosleep_flag;
uint8_t receive2_gotosleep_flag;
uint8_t receive3_gotosleep_flag;
static HIDO_INT32 UDPClient_CmdParse(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
{
    HIDO_CHAR *apcSplitStr[12];
@@ -191,6 +194,33 @@
            }
        }
    }
    else if(STRCMP(_u8Data, "$receive,") == 0)
    {
        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
        if(u32SplitCnt < 3)
        {
            return HIDO_ERR;
        }
        /* 设备ID检查 */
        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
        {
           if(HIDO_UtilHexStrToInt(apcSplitStr[2])==1)
           {
           receive1_gotosleep_flag=1;
           }
           if(HIDO_UtilHexStrToInt(apcSplitStr[2])==2)
           {
           receive2_gotosleep_flag=1;
           }
           if(HIDO_UtilHexStrToInt(apcSplitStr[2])==3)
           {
           receive3_gotosleep_flag=1;
           }
        }
    }
    /* $update,id,url,version */
    else if(STRCMP(_u8Data, "$update,") == 0)
    {
@@ -430,6 +460,9 @@
 *******************************************************************************/
uint8_t heartbeasend_flag = 0,userkey_state4g;
extern uint32_t uwbled,gpsled,loraled,powerled;
extern uint8_t fangchai_flag;
extern uint8_t nomove_flag;
extern uint8_t zuihoufasong_falg;
HIDO_INT32 UDPClient_Poll(void)
{
    if(Internet_IsIPReady() == HIDO_TRUE)
@@ -452,14 +485,28 @@
        else if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
        {
            HIDO_UINT32 u32CurTick =  HIDO_TimerGetTick();
            if((u32CurTick - l_u32HeartBeatTick) >= 10000)
            {
                heartbeasend_flag = 0;
                l_u32HeartBeatTick = u32CurTick;
                UDPClient_Heartbeat();
                userkey_state4g = 0;
            }
//            if(fangchai_flag==0)
//            {
//                if((u32CurTick - l_u32HeartBeatTick) >= 10000)
//                {
//                    heartbeasend_flag = 0;
//                    l_u32HeartBeatTick = u32CurTick;
//                    UDPClient_Heartbeat();
////                    if(nomove_flag==1)
////                    {zuihoufasong_falg=1;}
//                    userkey_state4g = 0;
//                }
//            }
//            else
//            {
                if((u32CurTick - l_u32HeartBeatTick) >= 5000)
                {
                    heartbeasend_flag = 0;
                    l_u32HeartBeatTick = u32CurTick;
                    UDPClient_Heartbeat();
                    userkey_state4g = 0;
                }
//            }
        }
    }
    else
@@ -483,41 +530,69 @@
extern uint8_t fangchai_flag;
extern  uint8_t bat_percent;
extern uint8_t GPS_ParseGGA_data[256];
extern uint8_t GPS_ParseGGA_changdu;
HIDO_INT32 UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
{uint16_t state_flag;
{
//    uint16_t state_flag;
    static HIDO_CHAR l_acUploadBuff[1024];
    static HIDO_UINT32 l_u32UploadBuffLen = 0;
    static HIDO_UINT32 l_u32UdpsendTick = 0;
    
    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
    {
            state_flag = 0;
    state_flag = fangchai_flag;
        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,0,0,0,state_flag);
//    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
//    {
//            state_flag = 0;
//    state_flag = fangchai_flag;
//
//        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n",
//                _pcGGA, g_com_map[DEV_ID], bat_percent,0,0,0,state_flag,gpsbaoxu);
//        gpsbaoxu++;
//
//        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
//        {
//            memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
//            l_u32UploadBuffLen += u32Len;
//        }
//        //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
//        //l_u32UploadBuffLen += u32Len;
//       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
//        {
//            l_u32UdpsendTick = HIDO_TimerGetTick();
//            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
//            l_u32UploadBuffLen = 0;
//        }
        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
        {
            memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
            l_u32UploadBuffLen += u32Len;
        }
        //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
        //l_u32UploadBuffLen += u32Len;
       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
//    }
//    return HIDO_OK;
//    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
//    {
////        memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
////        l_u32UploadBuffLen += u32Len;
//       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
//        {
//            l_u32UdpsendTick = HIDO_TimerGetTick();
//            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
//            memset(l_au8CmdBuff,0,u32Len);
//            l_u32UploadBuffLen = 0;
//        }
//    }
        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
        {
            l_u32UdpsendTick = HIDO_TimerGetTick();
            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
            l_u32UploadBuffLen = 0;
            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)GPS_ParseGGA_data, GPS_ParseGGA_changdu);
            memset(GPS_ParseGGA_data,0,GPS_ParseGGA_changdu);
            GPS_ParseGGA_changdu = 0;
        }
    }
    return HIDO_OK;
//    }
}
HIDO_INT32 UDPClient_Uploadhex(uint8_t *_pcGGA,uint16_t u32Len)
{
@@ -553,26 +628,22 @@
 *******************************************************************************/
uint8_t bat_percent2 = 0;
extern uint8_t input_5v_flag;
extern uint8_t nomove_flag;
//extern qxwz_sdk_config_t sdk_config;
uint8_t xintiaobaoxu;
HIDO_INT32 UDPClient_Heartbeat(HIDO_VOID)
{
    HIDO_UINT32 u32Len = 0;
    
    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
    {
    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
    {       u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,3:%d.%d.%d.%d:%d.",
                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
    }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP)
    {
          u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,2%s %s",
                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,(char *)&g_com_map[NTRIP_HOST_INDEX],(char *)&g_com_map[NTRIP_USERNANME_INDEX]);
     }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE)
    {
         u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.,%d,%d",
                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,input_5v_flag,fangchai_flag,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
         u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.,%d,%d,%d,%d",
                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,input_5v_flag,fangchai_flag,nomove_flag,xintiaobaoxu);
         xintiaobaoxu ++;
    }      
        Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
    memset(l_au8CmdBuff,0,u32Len);
    }
    return HIDO_OK;