From 63bf8ea65ca11349d5fae93580f91a87d3633dba Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期五, 14 三月 2025 18:45:47 +0800 Subject: [PATCH] 工卡改为通道9,加入ntrip跟tcp。ntrip不能用 shell不能用 --- keil/include/main/main.c | 93 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 70 insertions(+), 23 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index dd85189..4f5e77a 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -24,12 +24,6 @@ #include "PCA9555.h" #include "WS2812.h" #include "DBG.h" -typedef enum -{ - RTCMMODE_NONE, - RTCMMODE_TCP, - RTCMMODE_NTRIP, -}RTCMMode; //#define DEBUG_MODE extern int simple_main(void); @@ -102,7 +96,7 @@ .flow = UART_FLOW_CONTROL_NONE, .rx_level = UART_RXFIFO_CHAR_1, .tx_level = UART_TXFIFO_EMPTY, - .baud = BAUD_9600, + .baud = BAUD_115200, #if (TEST_UART_MODE == TEST_UART_POLL_MODE) .dma_en = false, .int_rx = false, @@ -126,14 +120,14 @@ uint32_t lock; trace_flush(); lock = int_lock(); - LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); // gps_air780_power_change(0,0);//关闭gps,4G PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G sleep_timer_stop(); //adc_close(); power_enter_power_down_mode(1); - LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); sys_reset(0); int_unlock(lock); } @@ -163,11 +157,11 @@ { //power_low_flag=1; //gps_air780_power_change(gps_power_state,0);//gps原样,关闭4G - LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n"); }else{ //power_low_flag=0; //gps_air780_power_change(gps_power_state,1);//gps原样,开启4G - LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n"); } PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//拉高 } @@ -282,6 +276,9 @@ uint8_t uwb_enable_flag=0; uint8_t input5v_time; extern uint8_t taglist_num; +extern uint8_t ceshidata[500]; +extern uint8_t ceshichangdu; +uint8_t gps_ntripsend; static void sleep_timer_callback(void *dev, uint32_t time) { if(secondtask_count++%2==0) @@ -299,6 +296,7 @@ ledonflag=1; // ledontime=HIDO_TimerGetTick(); Set4LEDColor(uwbled,rtkled,led4g,powerled); +// uart_send(UART_ID1, ceshidata, 50,NULL); } input5v_time=1; if(taglist_num==0) @@ -309,6 +307,10 @@ } }else{ flag_secondtask = 0; + } + if(gps_ntripsend==1) + { + gps_ntripsend=2; } if(delaysleep_count>0) delaysleep_count--; @@ -352,7 +354,7 @@ Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 parameter_init_anchor();//g_com_map表初始化角色默认为基站 dev_id=g_com_map[DEV_ID];//这里不太对 - g_com_map[GROUP_ID]=9; +// g_com_map[GROUP_ID]=9; group_id=g_com_map[GROUP_ID];//组ID memcpy(&disoffset,&g_com_map[DIST_OFFSET],2); warning_distance=g_com_map[ALARM_DISTANCE1]; @@ -362,12 +364,31 @@ memcpy(&send_struct.gunLableId,&g_com_map[BIND_DEV_ID],2);//更新绑定ID send_struct.tagId=dev_id;//更新设备ID - g_com_map[IP_0]=111; - g_com_map[IP_1]=198; - g_com_map[IP_2]=60; - g_com_map[IP_3]=6; - g_com_map[PORT]=6666; - g_com_map[RTCMMODE_INDEX] = RTCMMODE_NTRIP; +// g_com_map[IP_0]=111; +// g_com_map[IP_1]=198; +// g_com_map[IP_2]=60; +// g_com_map[IP_3]=6; +// g_com_map[PORT]=6666; + + g_com_map[IP_0]=117; + g_com_map[IP_1]=72; + g_com_map[IP_2]=111; + g_com_map[IP_3]=237; + g_com_map[PORT]=7000; + + g_com_map[TCP_IP_0]=111; + g_com_map[TCP_IP_1]=198; + g_com_map[TCP_IP_2]=60; + g_com_map[TCP_IP_3]=6; + g_com_map[TCP_PORT]=1234; + /* + RTCMMODE_NONE, + RTCMMODE_TCP, + RTCMMODE_NTRIP, + */ + g_com_map[RTCMMODE_INDEX] = RTCMMODE_TCP; + + snprintf((char *)&g_com_map[NTRIP_HOST_INDEX], 32, "140.143.212.42"); g_com_map[NTRIP_PORT_INDEX] = HIDO_UtilStrToInt("8005"); // snprintf((char *)&g_com_map[NTRIP_PORT_INDEX], 32, "8005"); @@ -468,6 +489,8 @@ // PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1); Shell_Init(); } + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + {TCPClient_Poll_1();} HIDO_InputPoll(); Internet_Poll(); HIDO_TimerPoll(); @@ -480,7 +503,14 @@ flag_secondtask = 0; SecondTask(); } + if(DBG_GetMode() == DBG_MODE_SHELL) + { + Set4LEDColor(uwbled,rtkled,led4g,powerled); + } + else + { Set4LEDColor(0,0,0,powerled); + } if(input5v_time) { if(!read_5v_input_pca()) @@ -545,6 +575,8 @@ int test1,test3; uint32_t test4; extern uint8_t receive_flag; +extern uint8_t YUANGPS_ParseGGA_data[256]; +extern uint8_t YUANGPS_ParseGGA_changdu; int main(void) { board_clock_run(); @@ -578,6 +610,10 @@ NTRIPClient_Init(); NTRIPApp_Init(); } + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + { + TCPClient_Init_1(); + } gpio_open(); LED_output_init();//配置彩色灯引脚 IIC2_Init(); @@ -594,6 +630,7 @@ Uwb_init(); OpenUWB(); DBG_Init(); +// DBG_SetMode(DBG_MODE_SHELL); // Shell_Init(); if(!read_5v_input_pca()) @@ -604,11 +641,12 @@ delay_ms(500); Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); } -// state5v=1; -// state5V_prase_flag=state5v; -// gps_prase_flag=0;//解除gps解析 -// uart1_change_from_gps_to_debug();//测试 -// PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 + g_com_map[MODBUS_MODE] = 0; + state5v=0; + state5V_prase_flag=state5v; + gps_prase_flag=1;//恢复gps解析 + uart1_change_from_debug_to_gps();//测试 + PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS while (1) { uwb_app_poll(); @@ -616,6 +654,15 @@ HIDO_TimerPoll(); HIDO_ATLitePoll(); TCPClient_Poll(); + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + {TCPClient_Poll_1();} +// if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP&&gps_ntripsend==2) +// { +// gps_ntripsend=0; +// NTRIPApp_ReportGGA(YUANGPS_ParseGGA_data, YUANGPS_ParseGGA_changdu); +// memset(YUANGPS_ParseGGA_data,0,YUANGPS_ParseGGA_changdu); +// YUANGPS_ParseGGA_changdu=0; +// } if(flag_secondtask) { flag_secondtask = 0; -- Gitblit v1.9.3