WXK
2025-02-24 f313a9ae0ed73b1343280de648b8a19e2d36983c
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)
    {
@@ -433,11 +463,12 @@
extern uint8_t fangchai_flag;
extern uint8_t nomove_flag;
extern uint8_t zuihoufasong_falg;
extern uint32_t main_time;
HIDO_INT32 UDPClient_Poll(void)
{
    if(Internet_IsIPReady() == HIDO_TRUE)
    {
        loraled=RED;
        loraled=GREEN;
        if(UDP_CLIENT_STATE_IDLE == l_eUDPCLientState)
        {
            l_eUDPCLientState = UDP_CLIENT_STATE_CONNECTING;
@@ -454,34 +485,35 @@
        }
        else if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
        {
            HIDO_UINT32 u32CurTick =  HIDO_TimerGetTick();
            if(fangchai_flag==0)
            {
                if((u32CurTick - l_u32HeartBeatTick) >= 10000)
//            HIDO_UINT32 u32CurTick =  main_time;
//            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((main_time - l_u32HeartBeatTick) >= 300)
                {
                    printf("发送4G心跳包\r\n");
                    heartbeasend_flag = 0;
                    l_u32HeartBeatTick = u32CurTick;
                    UDPClient_Heartbeat();
//                    if(nomove_flag==1)
//                    {zuihoufasong_falg=1;}
                    userkey_state4g = 0;
                }
            }
            else
            {
                if((u32CurTick - l_u32HeartBeatTick) >= 1000)
                {
                    heartbeasend_flag = 0;
                    l_u32HeartBeatTick = u32CurTick;
                    l_u32HeartBeatTick = main_time;
                    UDPClient_Heartbeat();
                    userkey_state4g = 0;
                }
            }
//            }
        }
    }
    else
    {
        loraled=LEDOFF;
        loraled=RED;
        l_eUDPCLientState = UDP_CLIENT_STATE_IDLE;
    }
@@ -509,8 +541,8 @@
    static HIDO_UINT32 l_u32UploadBuffLen = 0;
    static HIDO_UINT32 l_u32UdpsendTick = 0;
    
//    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
//    {
    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
    {
//            state_flag = 0;
//    state_flag = fangchai_flag;
//        
@@ -553,16 +585,16 @@
//    }
        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
        {
            l_u32UdpsendTick = HIDO_TimerGetTick();
//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
//        {
//            l_u32UdpsendTick = HIDO_TimerGetTick();
            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)
{
@@ -575,12 +607,12 @@
        memcpy(l_acUploadBuff + l_u32UploadBuffLen, _pcGGA, u32Len);
        l_u32UploadBuffLen += u32Len;
       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
        {
            l_u32UdpsendTick = HIDO_TimerGetTick();
//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
//        {
//            l_u32UdpsendTick = HIDO_TimerGetTick();
            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
            l_u32UploadBuffLen = 0;
        }
//        }
    }
@@ -634,3 +666,12 @@
    return HIDO_OK;
}
uint8_t IfTCPConnected(void)
{
    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
    {
        return 1;
    } else {
        return 0;
    }
}