diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 5d8ee64..d52a238 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -300,9 +300,17 @@ void Error_Handler(void); #define SOAP_DATA HAL_GPIO_ReadPin(SOAP_STATUS_GPIO_Port,SOAP_STATUS_Pin) #endif + +// STS_M1, WATER LEAKAGE PA1 READ DATA, PA1 +#ifdef STS_M1 +#define WATER_DETECT_Pin GPIO_PIN_1 +#define WATER_DETECT_Port GPIOA +#define WATER_DETECT_STATE HAL_GPIO_ReadPin(WATER_DETECT_Port, WATER_DETECT_Pin) +#endif + #if defined(STS_M1) -/* Water leakage MEMS_IF_3, PA10 */ -#define WATER_LEAKAGE_STATUS_Pin GPIO_PIN_10 +/* Water leakage MEMS_IF_1, PA1 */ +#define WATER_LEAKAGE_STATUS_Pin GPIO_PIN_1 #define WATER_LEAKAGE_STATUS_GPIO_Port GPIOA /* Water leakageON_OFF, MEMS_IF_1, PB5 */ diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c index 290f19e..8aa30e7 100644 --- a/Core/Src/stm32wlxx_it.c +++ b/Core/Src/stm32wlxx_it.c @@ -227,7 +227,9 @@ void EXTI0_IRQHandler(void) /* USER CODE BEGIN EXTI0_IRQn 0 */ /* USER CODE END EXTI0_IRQn 0 */ +#if defined(STS_O5) HAL_GPIO_EXTI_IRQHandler(HALL1_Pin); +#endif /* USER CODE BEGIN EXTI0_IRQn 1 */ /* USER CODE END EXTI0_IRQn 1 */ @@ -241,7 +243,11 @@ void EXTI1_IRQHandler(void) /* USER CODE BEGIN EXTI1_IRQn 0 */ /* USER CODE END EXTI1_IRQn 0 */ +#if defined(STS_M1) + HAL_GPIO_EXTI_IRQHandler(WATER_LEAKAGE_STATUS_Pin); +#else HAL_GPIO_EXTI_IRQHandler(BUT2_Pin); +#endif /* USER CODE BEGIN EXTI1_IRQn 1 */ /* USER CODE END EXTI1_IRQn 1 */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 975f3cb..99f2170 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -586,6 +586,10 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); break; +#elif defined(STS_M1) + case WATER_LEAKAGE_STATUS_Pin: + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + break; #else case BUT1_Pin: /* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */ @@ -594,12 +598,14 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); } break; -#endif + + #ifndef STS_R4 case BUT2_Pin: UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), CFG_SEQ_Prio_0); break; #endif +#endif #ifdef STM32WL55xx case BUT3_Pin: UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), CFG_SEQ_Prio_0); @@ -826,16 +832,11 @@ static void SendTxData(void) #ifdef STS_O5 STS_O5_SENSOR_Read(&oo_data); -#endif - -#ifdef STS_R4 +#elif defined(STS_R4) //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), CFG_SEQ_Prio_0); //STS_YunhornSTSEventP6_Process(); STS_R4_sensor_read(&sts_r4_sensor_data); -#endif - -#ifdef STS_M1 - +#elif defined(STS_M1) STS_M1_sensor_read(&sts_m1_sensor_data); #endif @@ -868,11 +869,11 @@ static void SendTxData(void) #ifdef STS_R4 //SOAP/SANITIZER LEVEL AppData.Port = YUNHORN_STS_R4_LORA_APP_DATA_PORT; /* STS-R4 Data Port */ -#endif -#ifdef STS_M1 // WATER LEAKAGE SENSOR + +#elif defined(STS_M1) // WATER LEAKAGE SENSOR AppData.Port = YUNHORN_STS_M1_LORA_APP_DATA_PORT; /* STS-M1 Data Port */ -#endif -#ifdef STS_O5 + +#elif defined(STS_O5) AppData.Port = YUNHORN_STS_O5_LORA_APP_DATA_PORT; /* STS-O5 Data Port */ #endif @@ -1499,6 +1500,8 @@ static void OnYunhornSTSHeartBeatTimerEvent(void *context) appHeartBeatDataPort = YUNHORN_STS_T6_LORA_APP_HTBT_PORT; #elif defined(STS_O5) appHeartBeatDataPort = YUNHORN_STS_O5_LORA_APP_HTBT_PORT; +#elif defined(STS_M1) + appHeartBeatDataPort = YUNHORN_STS_M1_LORA_APP_HTBT_PORT; #endif appHeartBeatBufferSize = 2; diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 5bf6f2e..7992632 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -133,7 +133,7 @@