From 903a245a364052d5ba612e3e53b685fca26a09d4 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期三, 21 八月 2024 11:44:58 +0800 Subject: [PATCH] 4G 打印调通,能正常联网 --- keil/include/components/internet/src/AIR780EFSM.c | 242 +----------------------------------------------- 1 files changed, 6 insertions(+), 236 deletions(-) diff --git a/keil/include/components/internet/src/AIR780EFSM.c b/keil/include/components/internet/src/AIR780EFSM.c index edefa2b..619c33e 100644 --- a/keil/include/components/internet/src/AIR780EFSM.c +++ b/keil/include/components/internet/src/AIR780EFSM.c @@ -106,52 +106,6 @@ Socket_OnRecv(u32ID); break; } -#ifdef TTS - case AIR780E_EVENT_QTTS: - { - HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; - - if (strcmp((HIDO_CHAR *) pstData->m_pData, "+CTTS:0\r\n") != 0) - { - break; - } - - AIR780EAudio_TTSOver(); - - break; - } - case AIR780E_EVENT_QLTONE: - { - HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; - - if (strcmp((HIDO_CHAR *) pstData->m_pData, "+QLTONE: 0\r\n") != 0) - { - break; - } - - AIR780EAudio_TONEOver(); - - break; - } - #endif -#ifdef __AIR780E_MQTT__ - case AIR780E_EVENT_QMTRECV: - { - HIDO_UINT32 u32ClientID = 0; - HIDO_UINT32 u32MsgID = 0; - HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; - - if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QMTRECV: %d,%d\r\n", - &u32ClientID, &u32MsgID) != 2) - { - break; - } - - MQTT_HaveRecvData(u32ClientID); - - break; - } -#endif default: { return HIDO_EVENT_NO_PROC; @@ -253,8 +207,6 @@ { AIR780E_SUB_STATE_POWER_OFF, AIR780E_SUB_STATE_POWER_ON, - AIR780E_SUB_STATE_PWRKEY_RESET, - AIR780E_SUB_STATE_PWRKEY_SET, } l_eAIR780ESubState; HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; @@ -273,7 +225,7 @@ l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_OFF; AIR780EDriver_PowerOff(); - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(3), _pstFSM, AIR780E_EVENT_DELAY); + HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); break; } case HIDO_EVENT_EXIT: @@ -291,25 +243,10 @@ { l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_ON; AIR780EDriver_PowerOn(); - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); + HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM, AIR780E_EVENT_DELAY); break; } case AIR780E_SUB_STATE_POWER_ON: - { - l_eAIR780ESubState = AIR780E_SUB_STATE_PWRKEY_RESET; - AIR780EDriver_PWRKEYReset(); - //Uart_ReConfigBaudRate(UART_ID_4G, 921600); - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); - break; - } - case AIR780E_SUB_STATE_PWRKEY_RESET: - { - l_eAIR780ESubState = AIR780E_SUB_STATE_PWRKEY_SET; - AIR780EDriver_PWRKEYSet(); - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_MS(800), _pstFSM, AIR780E_EVENT_DELAY); - break; - } - case AIR780E_SUB_STATE_PWRKEY_SET: { HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); break; @@ -319,108 +256,6 @@ break; } case AIR780E_EVENT_RDY: - { -#if 0 - HIDO_UINT32 Power_r = 0,Open_PJ,dev_id; - HIDO_CHAR TTS_Open[60]; - - if(Power_GetBatteryPercentage() < 5.0) //低电量自动关机 - { - GPIOD->BSRR = 0x0004; //打开TTS电源 - HAL_Delay(800); //必要延时,延时是为了避免说不出来第一个字 - - HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CTTS=2,\"%s\"\r\n", "电量过低"); - HAL_Delay(2000); - - // 调用关机接口 - while(1) - { - GPIOA->BSRR = 0X0100 << 16; - } - } -#endif -#if 0 -// HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+QTTS=2,\"开机\"\r\n"); - Power_r = Power_GetBatteryPercentage(); - - dev_id = ((g_com_map[DEV_ID]>>12)&0xf)*1000+((g_com_map[DEV_ID]>>8)&0xf)*100+((g_com_map[DEV_ID]>>4)&0xf)*10+(g_com_map[DEV_ID]&0xf); - Open_PJ = sprintf(TTS_Open, "设备编号%d剩余电量百分之%d",dev_id, Power_r); - TTS_Play((HIDO_UINT8 *)TTS_Open, strlen(TTS_Open)); -#endif - break; - } - default: - { - return HIDO_EVENT_NO_PROC; - } - } - - return HIDO_EVENT_OK; -} - -/******************************************************************************* - * State Name : AIR780EWaitReady - * Parent State : AIR780EInit - * Description : - * Author : www.hido-studio.com - * Modified Date: : 2018-05-01 - *******************************************************************************/ -extern int Last4G; - -HIDO_FSM_STATE_IMPLEMENT(AIR780EWaitReady, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL) -{ - static HIDO_BOOL bReady = HIDO_FALSE; - static HIDO_UINT32 u32RetryCnt = 0,Power_r = 0,Open_PJ,dev_id; - HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; - HIDO_UINT32 u32FSMTimerID = ((ST_AIR780EDriverData *)pstATDevice->m_pUserData)->m_u32FSMTimerID; - - HIDO_CHAR TTS_Open[60]; - - - switch (_u32Event) - { - case HIDO_EVENT_ENTRY: - { - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), - _pstFSM, AIR780E_EVENT_DELAY); - break; - } - case HIDO_EVENT_EXIT: - { - HIDO_ATLiteCmdSendOver(pstATDevice); - HIDO_TimerCancel(u32FSMTimerID); - break; - } - case AIR780E_EVENT_RDY: - { -#if 0 - if(Power_GetBatteryPercentage() < 5.0) //低电量自动关机 - { - GPIOD->BSRR = 0x0004; //打开TTS电源 - HAL_Delay(800); //必要延时,延时是为了避免说不出来第一个字 - - HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CTTS=2,\"%s\"\r\n", "电量过低"); - HAL_Delay(2000); - - // 调用关机接口 - while(1) - { - GPIOA->BSRR = 0X0100 << 16; - } - } - -// HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+QTTS=2,\"开机\"\r\n"); - Power_r = Power_GetBatteryPercentage(); - - dev_id = ((g_com_map[DEV_ID]>>12)&0xf)*1000+((g_com_map[DEV_ID]>>8)&0xf)*100+((g_com_map[DEV_ID]>>4)&0xf)*10+(g_com_map[DEV_ID]&0xf); - Open_PJ = sprintf(TTS_Open, "设备编号%d剩余电量百分之%d",dev_id, Power_r); - TTS_Play((HIDO_UINT8 *)TTS_Open, strlen(TTS_Open)); -#endif - break; - } - case HIDO_AT_EVENT_OK: - case AIR780E_EVENT_DELAY: - case HIDO_AT_EVENT_TIMEOUT: { HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); break; @@ -443,12 +278,8 @@ *******************************************************************************/ HIDO_FSM_STATE_IMPLEMENT(AIR780EATCmdTest, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL) { -#define USE_115200 -//#define USE_921600 static HIDO_UINT32 l_u32ReadyCnt = 0; static HIDO_UINT32 l_u32TimeoutCnt = 0; - static HIDO_UINT32 l_u32BaudRate = 0; - static HIDO_BOOL l_bConfigBaudRate = HIDO_FALSE; HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; HIDO_UINT32 u32FSMTimerID = ((ST_AIR780EDriverData *)pstATDevice->m_pUserData)->m_u32FSMTimerID; @@ -456,15 +287,6 @@ { case HIDO_EVENT_ENTRY: { -#ifdef USE_115200 - l_u32BaudRate = 115200; -#else - l_u32BaudRate = 921600; -#endif - - Uart_ReConfigBaudRate(UART_ID_4G, l_u32BaudRate); - - l_bConfigBaudRate = HIDO_FALSE; l_u32ReadyCnt = 0; l_u32TimeoutCnt = 0; HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); @@ -478,43 +300,13 @@ } case HIDO_AT_EVENT_OK: { - if (HIDO_TRUE == l_bConfigBaudRate) - { -#ifdef USE_115200 - l_u32BaudRate = 115200; -#else - l_u32BaudRate = 921600; -#endif - Uart_ReConfigBaudRate(UART_ID_4G, l_u32BaudRate); - - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); - break; - } - l_u32TimeoutCnt = 0; l_u32ReadyCnt++; if (l_u32ReadyCnt >= 1) { -#ifdef USE_115200 - if (921600 == l_u32BaudRate) -#else - if (115200 == l_u32BaudRate) -#endif - { - l_bConfigBaudRate = HIDO_TRUE; -#ifdef USE_115200 - HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+IPR=115200;&W\r\n"); -#else - HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+IPR=921600;&W\r\n"); -#endif - - } - else - { - /* 上电成功 */ - Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON); - HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL); - } + /* 上电成功 */ + Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON); + HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL); } else { @@ -535,18 +327,6 @@ if (5 == l_u32TimeoutCnt) { -#ifdef USE_115200 - l_u32BaudRate = 921600; -#else - l_u32BaudRate = 115200; -#endif - Uart_ReConfigBaudRate(UART_ID_4G, l_u32BaudRate); - - HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, - AIR780E_EVENT_DELAY); - } - else if (l_u32TimeoutCnt > 10) - { HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); } else @@ -559,17 +339,7 @@ } case AIR780E_EVENT_DELAY: { - if (HIDO_TRUE == l_bConfigBaudRate) - { - /* 上电成功 */ - Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON); - HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL); - break; - } - else - { - HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "ATE0\r\n"); - } + HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "ATE0\r\n"); break; } case AIR780E_EVENT_POLL: -- Gitblit v1.9.3