From d0ecbb6b662da93cf85096bd628d41729cd47b24 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期一, 11 十一月 2024 18:16:49 +0800 Subject: [PATCH] 手环加入上位机配置4G和GPS更新频率设置,加入供电过低保护,减少搜索为1s,震动逻辑变为10s停,500ms震,搜索模式加入校准时间函数,满足功耗稳定测距版本,加入SOS报警上传,初步加入查询伪代码,加入休眠唤醒逻辑 --- keil/include/src/TCPClient.c | 46 ++++++++++++++++++++++++++++++---------------- 1 files changed, 30 insertions(+), 16 deletions(-) diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c index 31c53c9..edf055b 100644 --- a/keil/include/src/TCPClient.c +++ b/keil/include/src/TCPClient.c @@ -67,8 +67,10 @@ *******************************************************************************/ extern uint8_t gps_4g_flag,search_open_flag; extern Operation_step UWB_work_state; +uint16_t air780e_send_second; Commend_Datestruct TCP_command; uint8_t result; +uint8_t query_open_flag; char applyid[10]; static HIDO_INT32 TCPClient_DataProc(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len) { @@ -138,12 +140,14 @@ break; case QUARY_INFORMATION: + query_open_flag=1; //?? break; case CHANGE_POLL_FREQUENCY: - g_com_map[SEND_4G_SECOND]=TCP_command.frequency*60; + g_com_map[SEND_4G_MINUTE]=TCP_command.frequency; + air780e_send_second=g_com_map[SEND_4G_MINUTE]*60; break; } result = 1; @@ -232,7 +236,8 @@ * Author : www.hido-studio.com * Modified Date: : 2021?1?9? *******************************************************************************/ -extern uint8_t bat_percent,taglist_num; +extern uint8_t bat_percent,taglist_num,userkey_state; + uint8_t alarm_type; extern double jd,wd; extern int32_t distance; @@ -240,15 +245,23 @@ { HIDO_CHAR acHeart[200]; HIDO_UINT32 u32HeartLen; - if(alarm_type) + if(alarm_type==1) { - 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); + u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,alarm,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%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,userkey_state); } 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,heart,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%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,userkey_state); } + if(query_open_flag) + { + u32HeartLen = snprintf(acHeart, sizeof(acHeart), "$message,query,%04x,%d,%04x,%d,%02u%%,%d,%d,%lf,%lf,%s,%d,%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,userkey_state); + } + userkey_state=0; + query_open_flag=0;//关闭查询模式 Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)acHeart, u32HeartLen); + } void TCPReceiveMessageReply(void) @@ -264,12 +277,12 @@ if(alarm_type == 2) alarm_type = 0; } - +HIDO_UINT32 u32CurTick; HIDO_INT32 TCPClient_Poll(void) { if (Internet_IsIPReady() == HIDO_TRUE) { - HIDO_UINT32 u32CurTick = HIDO_TimerGetTick(); + u32CurTick = HIDO_TimerGetTick(); if (TCP_CLIENT_STATE_IDLE == l_eTCPClientState) { if (!TCPfail_flag) @@ -277,15 +290,15 @@ l_eTCPClientState = TCP_CLIENT_STATE_CONNECTING; -// HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", ip0,ip1, ip2, ip3); + HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", ip0,ip1, ip2, ip3); -// Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, port); + Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, port); // HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "123.57.87.125"); // Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 8888); - HIDO_UtilSnprintf((HIDO_CHAR *) l_au8CmdBuff, sizeof(l_au8CmdBuff), "111.198.60.6"); - Socket_Connect(l_i32TCPClientID, (HIDO_CHAR *) l_au8CmdBuff, 1234); +// 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 @@ -302,8 +315,9 @@ - // 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(15)||flag_first_TCPconnect) + if ((u32CurTick - l_u32HeartBeatTick) >= HIDO_TIMER_TICK_S(air780e_send_second)||flag_first_TCPconnect) { flag_first_TCPconnect = 0; l_u32HeartBeatTick = u32CurTick; @@ -356,7 +370,7 @@ HIDO_INT32 TCPClient_Init(void) { l_eTCPClientState = TCP_CLIENT_STATE_IDLE; - Socket_Create(&l_i32TCPClientID, SOCKET_TYPE_TCP, TCPClient_SocketEventProc, HIDO_NULL); + Socket_Create(&l_i32TCPClientID, SOCKET_TYPE_UDP, TCPClient_SocketEventProc, HIDO_NULL); // 这里是固定的心跳,由4G自行发送 #if 0 -- Gitblit v1.9.3