From acce179c49a6a9c625e9402e6f9046d1325ffcea Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期三, 26 二月 2025 18:04:26 +0800
Subject: [PATCH] 初步写完键盘驱动和串口初始化
---
keil/include/src/gps.c | 138 +++++++++++++++++++++++++++++++---------------
1 files changed, 93 insertions(+), 45 deletions(-)
diff --git a/keil/include/src/gps.c b/keil/include/src/gps.c
index 67b4889..82a9ced 100644
--- a/keil/include/src/gps.c
+++ b/keil/include/src/gps.c
@@ -1,16 +1,15 @@
#include "board.h"
-#include "TCPClient.h"
+#include "HIDO_Util.h"
#include "global_param.h"
-#define GPS_OPEN_TIME_OUT 240
-#define GPS_RESTART_TIME1 1200
-#define GPS_RESTART_TIME2 120
-#define GPS_RESTART_TIME3 3600
-#define GPS_OPEN_TIME_OUT1 600
-extern uint16_t gps_wait_count;
-uint8_t gps_power_state,gps_uwb_flag,gps_4g_flag,gps_timeout_flag,gps_need_data_flag = 1,gps_1h_open_flag=1;
-extern uint8_t air780_success_state;
-extern HIDO_INT32 l_i32TCPClientID;
-extern double jd,wd;
+#define GPS_OPEN_TIME_OUT 120 //1分钟开启
+#define GPS_RESTART_TIME1 480 //10分钟
+#define GPS_RESTART_TIME2 48 //1分钟
+#define GPS_RESTART_TIME3 30 //30s
+extern uint16_t gps_wait_count,g_com_map[COM_MAP_SIZE];
+extern uint8_t flag_first_TCPconnect;
+extern uint16_t gps_wait_count2;
+uint16_t g_spsum,g_snum,ave_sp;
+uint8_t gps_power_state,gps_uwb_flag,gps_4g_flag,gps_timeout_flag,gps_need_data_flag = 1,gps_open_flag,gps_first_flag=1;
void GPS_Poll(void)
{
@@ -59,40 +58,6 @@
gps_need_data_flag=1;
}
}
-
-
-void GPS_Poll_1h(void)
-{
-
- if(gps_1h_open_flag) {
-
- if(gps_need_data_flag) {
- gps_power_state = 1; //打开GPS电源
-
- gps_wait_count++;
- if(gps_wait_count>=GPS_OPEN_TIME_OUT1) { //超时切换工作状态
- gps_timeout_flag=1;//串口添加改变timeout逻辑
- gps_wait_count=0;
- gps_need_data_flag=0;//切换为关闭模式
- TCPHeartBeatUpload();//上传GPS超时无效数据
- }
- } else {
- gps_wait_count++;
- gps_power_state=0;//关闭GPS
-
- if(gps_wait_count>GPS_RESTART_TIME3) {
- gps_power_state=1;//开启GPS
- gps_need_data_flag=1;
- gps_wait_count=0;
- }
- }
- } else {
- gps_power_state=0;//关闭gps
- gps_wait_count=0;
- gps_timeout_flag=0;
- gps_need_data_flag=1;
- }
-}
void GpsConrol(uint8_t flag_4g_uwb,uint8_t open_close)
{
if(gps_4g_flag==0&&gps_uwb_flag==0)
@@ -109,4 +74,87 @@
gps_uwb_flag = open_close;
}
+}
+void Gps_change(void)
+{
+ if(gps_open_flag){
+ if(gps_need_data_flag) {
+ gps_power_state = 1; //打开GPS电源
+
+ gps_wait_count++;
+ if(gps_wait_count>34)
+ gps_first_flag=0;//新加入第一次开启
+ if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //超时切换工作状态
+
+ gps_timeout_flag=1;//串口添加改变timeout逻辑
+ gps_wait_count=0;
+ gps_need_data_flag=0;//切换为关闭模式
+ UDPClient_UploadGPS();//上传GPS超时无效数据
+ }
+ } else {
+ gps_wait_count++;
+ gps_power_state=0;//关闭GPS
+
+ if(gps_wait_count>g_com_map[SEND_4G_SECOND]) {
+ gps_power_state=1;//开启GPS
+ gps_need_data_flag=1;
+ gps_wait_count=0;
+ }
+ }
+ gps_wait_count2=0;
+ }else{
+ gps_wait_count2++;
+ if(gps_wait_count2>=g_com_map[SEND_4G_SECOND]) { //超时切换工作状态
+ gps_wait_count=0;
+ gps_timeout_flag=1;
+ UDPClient_UploadGPS();//上传GPS 30s固定数据
+ gps_wait_count2=0;
+ }
+ gps_power_state=1;//开启gps
+ gps_need_data_flag=1;
+ }
+ update_led_power_state();
+}
+
+void gps_power_on(void)
+{
+ gpio_pin_set_dir(GPS_Power_Pin , GPIO_DIR_OUT, 1);
+}
+void gps_power_down(void)
+{
+ gpio_pin_set_dir(GPS_Power_Pin , GPIO_DIR_OUT, 0);
+}
+
+HIDO_INT32 GPS_ParseGSV(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
+{
+ HIDO_DataStruct spower[4];
+
+// if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK)
+// {
+// return HIDO_ERR;
+// }
+
+ if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%*,%p,%*,%*,%*,%p,%*,%*,%*,%p,%*,%*,%*,%p,%**", &spower[0], &spower[1], &spower[2], &spower[3]) == 21)
+ {
+ g_snum+=4;
+ g_spsum+=atoi((HIDO_CHAR *)spower[0].m_pData)+atoi((HIDO_CHAR *)spower[1].m_pData)+atoi((HIDO_CHAR *)spower[2].m_pData)+atoi((HIDO_CHAR *)spower[3].m_pData);
+ }else if(HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%*,%p,%*,%*,%*,%p,%*,%*,%*,%p,%**", &spower[0], &spower[1], &spower[2]) == 17)
+ {
+ g_snum+=3;
+ g_spsum+=atoi((HIDO_CHAR *)spower[0].m_pData)+atoi((HIDO_CHAR *)spower[1].m_pData)+atoi((HIDO_CHAR *)spower[2].m_pData);
+
+ }else if(HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%*,%p,%*,%*,%*,%p,%**", &spower[0], &spower[1]) == 13)
+ {
+ g_snum+=2;
+ g_spsum+=atoi((HIDO_CHAR *)spower[0].m_pData)+atoi((HIDO_CHAR *)spower[1].m_pData);
+
+ }else if(HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%*,%p,%**", &spower[0]) == 9)
+ {
+ g_snum+=1;
+ g_spsum+=atoi((HIDO_CHAR *)spower[0].m_pData);
+
+ }
+ // l_u8PosState = atoi((HIDO_CHAR *)stPosState.m_pData);
+
+ return HIDO_OK;
}
\ No newline at end of file
--
Gitblit v1.9.3