From ae7d9d1ce43c4c004742b246e425ed3e83f92444 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期六, 10 五月 2025 16:57:24 +0800 Subject: [PATCH] 测试完成版本V1.16,修改sos报警,还有电量异常,还有30秒测距休眠的问题 --- keil/include/src/TCPClient.c | 62 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 1 deletions(-) diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c index a001872..7b48189 100644 --- a/keil/include/src/TCPClient.c +++ b/keil/include/src/TCPClient.c @@ -170,6 +170,7 @@ // save_com_map_to_flash(); // delay_us(100000); uint16_t tmp = 0xCCCC; + uint8_t flag = 0; __disable_irq(); result=flash_open(FLASH_ID0,NULL); if(!result) @@ -177,7 +178,8 @@ flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE);//擦除APPFLAG flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp)); flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE);//擦除APPFLAG - flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8*)apcSplitStr[2], strlen(apcSplitStr[2]) + 1); + flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8 *)&flag, 1); + flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP+1, (HIDO_UINT8*)apcSplitStr[2], strlen(apcSplitStr[2]) + 1); } __enable_irq(); NVIC_SystemReset(); //软复位回到bootloader @@ -296,6 +298,8 @@ } tempindex = HIDO_UtilStrToInt(apcSplitStr[2]); templen = HIDO_UtilStrToInt(apcSplitStr[3]); + if(templen>10) + templen=10; buffer_len = sprintf(send_buffer,"$replypara,"); datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]); buffer_len += datalen; @@ -310,6 +314,50 @@ send_buffer[buffer_len++] = 0x0d; send_buffer[buffer_len++] = 0x0a; Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len); + } + } + /* $download_audio,http://39.106.210.13:8080/hfs/xxx.bin */ + else if (STRCMP(_u8Data, "$download_audio,") == 0) + { + u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr)); + + if (u32SplitCnt < 3) + { + return HIDO_ERR; + } + if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID]) + { + uint16_t tmp = 0xCCCC; + uint8_t flag = 1; + + __disable_irq(); + result = flash_open(FLASH_ID0, NULL); + if (!result) + { + flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE); // 擦除APPFLAG + flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t *)&tmp, sizeof(tmp)); + flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE); // 擦除APPFLAG + flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8 *)&flag, 1); + flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP + 1, (HIDO_UINT8 *)apcSplitStr[2], strlen(apcSplitStr[2]) + 1); + } + __enable_irq(); + NVIC_SystemReset(); // 软复位回到bootloader + } + } + /* $play_audio,0-9 */ + else if (STRCMP(_u8Data, "$play_audio,") == 0) + { + u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr)); + + if (u32SplitCnt < 3) + { + return HIDO_ERR; + } + if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID]) + { + PCA9555_Set_One_Value_Output(TTS_ENABLE,1);//输出高电平切换为5V输入 + delay_ms(100); + WT588E_PLAY(atoi(apcSplitStr[2])); } } @@ -463,6 +511,7 @@ HIDO_UINT32 u32Len = 0; if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState) { + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) { u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,3:%d.%d.%d.%d:%d.,1", g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\ @@ -478,6 +527,7 @@ g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),\ userkey_state,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]); } + userkey_state=0; Socket_Send(l_i32TCPClientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len); } // u32HeartLen = HIDO_UtilSnprintf((HIDO_CHAR *)acHeart, sizeof(acHeart), "$XTB,%X,%02u%%,%d.%d,%s", @@ -648,6 +698,16 @@ // uart_send(UART_ID0, str,17, NULL); // Uart_ReConfigBaudRate(UART_ID_4G,9600); } +void AIR780E_Reset_usart(void) +{ + PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G + delay_ms(1500); + PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1);//打开4G + delay_ms(3000); + Uart_ReConfigBaudRate(UART_ID_4G,115200); + uart_send(UART_ID0, str,17, NULL); + Uart_ReConfigBaudRate(UART_ID_4G,9600); +} uint8_t IfTCPConnected(void) { if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState) -- Gitblit v1.9.3