Compare commits

..

3 Commits

Author SHA1 Message Date
Yunhorn 0f836996ca error , recycling in every few seconds 2024-03-26 12:33:16 +08:00
Yunhorn cf3a92f937 revised with lower power 2024-03-25 20:04:27 +08:00
Yunhorn e2a0f3c384 minor change 2024-03-25 13:48:29 +08:00
7 changed files with 66 additions and 40 deletions

View File

@ -47,12 +47,12 @@ extern "C" {
/** /**
* @brief Verbose level for all trace logs * @brief Verbose level for all trace logs
*/ */
#define VERBOSE_LEVEL VLEVEL_M #define VERBOSE_LEVEL VLEVEL_OFF
/** /**
* @brief Enable trace logs * @brief Enable trace logs
*/ */
#define APP_LOG_ENABLED 1 #define APP_LOG_ENABLED 0
/** /**
* @brief Activate monitoring (probes) of some internal RF signals for debug purpose * @brief Activate monitoring (probes) of some internal RF signals for debug purpose
@ -75,7 +75,7 @@ extern "C" {
* @brief Enable/Disable MCU Debugger pins (dbg serial wires) * @brief Enable/Disable MCU Debugger pins (dbg serial wires)
* @note by HW serial wires are ON by default, need to put them OFF to save power * @note by HW serial wires are ON by default, need to put them OFF to save power
*/ */
#define DEBUGGER_ENABLED 1 #define DEBUGGER_ENABLED 0
/** /**
* @brief Disable Low Power mode * @brief Disable Low Power mode

View File

@ -80,7 +80,7 @@ typedef enum
CFG_SEQ_Task_LoRaStoreContextEvent, CFG_SEQ_Task_LoRaStoreContextEvent,
CFG_SEQ_Task_LoRaStopJoinEvent, CFG_SEQ_Task_LoRaStopJoinEvent,
/* USER CODE BEGIN CFG_SEQ_Task_Id_t */ /* USER CODE BEGIN CFG_SEQ_Task_Id_t */
CFG_SEQ_Task_YunhornSTSP1CheckingEvent,
/* USER CODE END CFG_SEQ_Task_Id_t */ /* USER CODE END CFG_SEQ_Task_Id_t */
CFG_SEQ_Task_NBR CFG_SEQ_Task_NBR
} CFG_SEQ_Task_Id_t; } CFG_SEQ_Task_Id_t;

View File

@ -55,8 +55,8 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
__HAL_RCC_GPIOB_CLK_DISABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_DISABLE(); __HAL_RCC_GPIOC_CLK_ENABLE();
GPIO_InitStruct.Pin = BUT1_Pin; GPIO_InitStruct.Pin = BUT1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;

View File

@ -96,8 +96,7 @@ void PWR_EnterStopMode(void)
/* USER CODE END EnterStopMode_1 */ /* USER CODE END EnterStopMode_1 */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_All, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_All, GPIO_PIN_RESET);
//HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_RESET); //HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, ~GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, GPIO_PIN_RESET);
HAL_SuspendTick(); HAL_SuspendTick();
/* Clear Status Flag before entering STOP/STANDBY Mode */ /* Clear Status Flag before entering STOP/STANDBY Mode */
LL_PWR_ClearFlag_C1STOP_C1STB(); LL_PWR_ClearFlag_C1STOP_C1STB();
@ -124,7 +123,7 @@ void PWR_ExitStopMode(void)
SRAM ctrls, DMAx, DMAMux, AES, RNG, HSEM */ SRAM ctrls, DMAx, DMAMux, AES, RNG, HSEM */
/* Resume not retained USARTx and DMA */ /* Resume not retained USARTx and DMA */
//MX_GPIO_Init(); MX_GPIO_Init();
vcom_Resume(); vcom_Resume();
/* USER CODE BEGIN ExitStopMode_2 */ /* USER CODE BEGIN ExitStopMode_2 */

View File

@ -215,7 +215,6 @@ static void OnPingSlotPeriodicityChanged(uint8_t pingSlotPeriodicity);
static void OnSystemReset(void); static void OnSystemReset(void);
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN PFP */
static void OnYunhornSTSP1CheckingEvent(void);
/** /**
* @brief LED Tx timer callback function * @brief LED Tx timer callback function
@ -301,7 +300,7 @@ static UTIL_TIMER_Object_t TxTimer;
/** /**
* @brief Tx Timer period * @brief Tx Timer period
*/ */
static UTIL_TIMER_Time_t TxPeriodicity = 1000; static UTIL_TIMER_Time_t TxPeriodicity = APP_TX_DUTYCYCLE;
/** /**
* @brief Join Timer period * @brief Join Timer period
@ -344,7 +343,6 @@ static UTIL_TIMER_Object_t JoinLedTimer;
/* Exported functions ---------------------------------------------------------*/ /* Exported functions ---------------------------------------------------------*/
/* USER CODE BEGIN EF */ /* USER CODE BEGIN EF */
volatile uint8_t door_status=0, door_changed_flag=0, door_previous_status=0; volatile uint8_t door_status=0, door_changed_flag=0, door_previous_status=0;
volatile uint32_t checking_sn=0;
/* USER CODE END EF */ /* USER CODE END EF */
void LoRaWAN_Init(void) void LoRaWAN_Init(void)
@ -406,7 +404,7 @@ void LoRaWAN_Init(void)
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), UTIL_SEQ_RFU, SendTxData); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), UTIL_SEQ_RFU, SendTxData);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), UTIL_SEQ_RFU, StoreContext); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), UTIL_SEQ_RFU, StoreContext);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), UTIL_SEQ_RFU, StopJoin); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), UTIL_SEQ_RFU, StopJoin);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSP1CheckingEvent),UTIL_SEQ_RFU, OnYunhornSTSP1CheckingEvent);
/* Init Info table used by LmHandler*/ /* Init Info table used by LmHandler*/
LoraInfo_Init(); LoraInfo_Init();
@ -425,7 +423,7 @@ void LoRaWAN_Init(void)
if (EventType == TX_ON_TIMER) if (EventType == TX_ON_TIMER)
{ {
/* send every time timer elapses */ /* send every time timer elapses */
UTIL_TIMER_Create(&TxTimer, TxPeriodicity, UTIL_TIMER_PERIODIC, OnTxTimerEvent, NULL); UTIL_TIMER_Create(&TxTimer, TxPeriodicity, UTIL_TIMER_ONESHOT, OnTxTimerEvent, NULL);
UTIL_TIMER_Start(&TxTimer); UTIL_TIMER_Start(&TxTimer);
} }
else else
@ -448,11 +446,19 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{ {
case BUT1_Pin: case BUT1_Pin:
/* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */ /* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */
door_changed_flag = 1;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSP1CheckingEvent), CFG_SEQ_Prio_0);
if (EventType == TX_ON_EVENT) HAL_Delay(10); //eliminate bouncing back 5ms
door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
if (door_status != door_previous_status)
{ {
door_changed_flag = 1;
door_previous_status = door_status;
}
//if (EventType == TX_ON_EVENT)
{
// door_changed_flag =1;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
} }
break; break;
@ -471,21 +477,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
/* Private functions ---------------------------------------------------------*/ /* Private functions ---------------------------------------------------------*/
/* USER CODE BEGIN PrFD */ /* USER CODE BEGIN PrFD */
static void OnYunhornSTSP1CheckingEvent(void)
{
door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
if (door_status != door_previous_status)
{
door_previous_status = door_status;
door_changed_flag = 1;
APP_LOG(TS_OFF,VLEVEL_M,"\r\n----- Door Status Changed-------------\r\n");
}
//UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
}
/* USER CODE END PrFD */ /* USER CODE END PrFD */
static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params) static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params)
@ -576,6 +568,17 @@ static void SendTxData(void)
sensor_t sensor_data; sensor_t sensor_data;
UTIL_TIMER_Time_t nextTxIn = 0; UTIL_TIMER_Time_t nextTxIn = 0;
#if 0
if (door_changed_flag ==1 )
{
door_changed_flag = 0;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
UTIL_TIMER_Start(&TxTimer);
}
#endif
if (LmHandlerIsBusy() == false) if (LmHandlerIsBusy() == false)
{ {
#ifdef CAYENNE_LPP #ifdef CAYENNE_LPP
@ -591,10 +594,10 @@ static void SendTxData(void)
#endif /* CAYENNE_LPP */ #endif /* CAYENNE_LPP */
EnvSensors_Read(&sensor_data); EnvSensors_Read(&sensor_data);
#if 0
APP_LOG(TS_ON, VLEVEL_M, "VDDA: %d\r\n", batteryLevel); APP_LOG(TS_ON, VLEVEL_M, "VDDA: %d\r\n", batteryLevel);
APP_LOG(TS_ON, VLEVEL_M, "temp: %d\r\n", (int16_t)(sensor_data.temperature)); APP_LOG(TS_ON, VLEVEL_M, "temp: %d\r\n", (int16_t)(sensor_data.temperature));
#endif
AppData.Port = LORAWAN_USER_APP_PORT; AppData.Port = LORAWAN_USER_APP_PORT;
#ifdef CAYENNE_LPP #ifdef CAYENNE_LPP
@ -685,12 +688,35 @@ static void SendTxData(void)
static void OnTxTimerEvent(void *context) static void OnTxTimerEvent(void *context)
{ {
/* USER CODE BEGIN OnTxTimerEvent_1 */ /* USER CODE BEGIN OnTxTimerEvent_1 */
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSP1CheckingEvent), CFG_SEQ_Prio_0); #if 0
door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
if (door_status != door_previous_status)
{
door_changed_flag = 1;
door_previous_status = door_status;
}
/* USER CODE END OnTxTimerEvent_1 */
if (door_changed_flag ==1 ) if (door_changed_flag ==1 )
{ {
door_changed_flag = 0; door_changed_flag = 0;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
//UTIL_TIMER_Start(&TxTimer);
/*Wait for next tx slot*/
UTIL_TIMER_Start(&TxTimer);
}
#endif
MX_GPIO_Init();
door_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
if (door_status != door_previous_status)
{
door_changed_flag = 1;
door_previous_status = door_status;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
UTIL_TIMER_Start(&TxTimer);
} }
/* USER CODE BEGIN OnTxTimerEvent_2 */ /* USER CODE BEGIN OnTxTimerEvent_2 */

View File

@ -151,6 +151,7 @@
<listOptionValue builtIn="false" value="../../../../../../../Drivers/CMSIS/Include"/> <listOptionValue builtIn="false" value="../../../../../../../Drivers/CMSIS/Include"/>
<listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/STM32WLxx_Nucleo"/> <listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/STM32WLxx_Nucleo"/>
</option> </option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.otherflags.2006508446" name="Other flags" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.otherflags" useByScannerDiscovery="true" valueType="stringList"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1477344818" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/> <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1477344818" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool> </tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1464259023" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler"> <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1464259023" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">

View File

@ -33,7 +33,7 @@
</natures> </natures>
<linkedResources> <linkedResources>
<link> <link>
<name>LoRaWAN_End_Node.ioc</name> <name>WL55JC_AS923.ioc</name>
<type>1</type> <type>1</type>
<locationURI>copy_PARENT/LoRaWAN_End_Node.ioc</locationURI> <locationURI>copy_PARENT/LoRaWAN_End_Node.ioc</locationURI>
</link> </link>