chen
2024-09-10 2c4086173a8915035aee593d16b3ea7edc6f5c15
keil/include/src/TCPClient.c
@@ -43,6 +43,10 @@
static HIDO_UINT32 l_u32HeartBeatTick = 0;
static HIDO_UINT8 l_au8CmdBuff[1024];
uint8_t TCPfail_flag = 0,flag_first_TCPconnect=1;
uint32_t TCPfailetimer;
uint16_t ip0,ip1,ip2,ip3,port;
/*******************************************************************************
 *                        Local Function Declaration                           *
 *******************************************************************************/
@@ -177,6 +181,7 @@
    {
        if(l_eTCPClientState ==  TCP_CLIENT_STATE_CONNECTING)
        {
            TCPfail_flag = 0;
            l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
        }
@@ -192,6 +197,7 @@
    }
    case SOCKET_EVENT_CLOSED:
    {
        TCPfail_flag = 0;
        l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
        break;
    }
@@ -234,14 +240,17 @@
{
    HIDO_CHAR acHeart[200];
    HIDO_UINT32 u32HeartLen;
    if(alarm_type)
    {
        u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,alarm,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%d,0\r\n", \
                               g_com_map[DEV_ID],GetUWBBindState(),g_com_map[BIND_DEV_ID],alarm_type,bat_percent,g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],jd,wd,applyid,result,distance);
    } else {
        u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,heart,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%d,0\r\n", \
                               g_com_map[DEV_ID],GetUWBBindState(),g_com_map[BIND_DEV_ID],alarm_type,bat_percent,g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],jd,wd,applyid,result,distance);
    }
//    if(alarm_type)
//    {
//        u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,alarm,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%d,0\r\n", \
//                               g_com_map[DEV_ID],GetUWBBindState(),g_com_map[BIND_DEV_ID],alarm_type,bat_percent,g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],jd,wd,applyid,result,distance);
//    } else {
//        u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,heart,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%d,0\r\n", \
//                               g_com_map[DEV_ID],GetUWBBindState(),g_com_map[BIND_DEV_ID],alarm_type,bat_percent,g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],jd,wd,applyid,result,distance);
//    }
      u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,GPS,%04x,%lf,%lf\r\n", \
                               g_com_map[DEV_ID],jd,wd);
    Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
}
@@ -254,13 +263,11 @@
void _4GAlarmUpload(uint8_t alarm)
{
    alarm_type = alarm;
    TCPHeartBeatUpload();
    //TCPHeartBeatUpload();
    if(alarm_type == 2)
        alarm_type = 0;
}
uint8_t TCPfail_flag = 0,flag_first_TCPconnect=1;
uint32_t TCPfailetimer;
uint16_t ip0,ip1,ip2,ip3,port;
HIDO_INT32 TCPClient_Poll(void)
{
    if (Internet_IsIPReady() == HIDO_TRUE)
@@ -279,7 +286,10 @@
//             HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "123.57.87.125");
//                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 8888);
                TCPfail_flag = 1;
//                          HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "111.198.60.6");
//                Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 1234);
               TCPfail_flag = 1;
            }
            else
            {
@@ -295,13 +305,13 @@
            if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(g_com_map[SEND_4G_SECOND])||flag_first_TCPconnect)
      //      if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(15)||flag_first_TCPconnect)
      //      if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(g_com_map[SEND_4G_SECOND])||flag_first_TCPconnect)
            if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(15)||flag_first_TCPconnect)
            {
                flag_first_TCPconnect = 0;
                l_u32HeartBeatTick = u32CurTick;
                // 这里是自定义心跳
                TCPHeartBeatUpload();
                //TCPHeartBeatUpload();
//                HIDO_CHAR acHeart[128];
//                HIDO_UINT32 u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message heart,%04x,00001,1,50,50,50,,,,\r\n", g_com_map[DEV_ID]);
//                Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen);
@@ -332,6 +342,11 @@
    return HIDO_OK;
}
HIDO_BOOL TCPClient_IsSendOver(HIDO_VOID)
{
    return Socket_IsSendQueueEmpty(l_i32TCPClientID);
}
/*******************************************************************************
 * Function Name     : TCPClient_Init
 * Description       : TCP客户端初始化
@@ -344,7 +359,7 @@
HIDO_INT32 TCPClient_Init(void)
{
    l_eTCPClientState = TCP_CLIENT_STATE_IDLE;
    Socket_Create(&l_i32TCPClientID, SOCKET_TYPE_UDP, TCPClient_SocketEventProc, HIDO_NULL);
    Socket_Create(&l_i32TCPClientID, SOCKET_TYPE_TCP, TCPClient_SocketEventProc, HIDO_NULL);
    // 这里是固定的心跳,由4G自行发送
#if 0