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