diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 2ec7385..8d33239 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -209,7 +209,6 @@ void Error_Handler(void); #define I2C2_STANDARD_100K 0x00000E14 #define I2C2_FAST_400K 0x00000004 #define I2C2_FAST_PLUS_1M 0x00000000 - #endif #if defined(STS_R4) @@ -229,6 +228,19 @@ void Error_Handler(void); #define SOAP_DATA HAL_GPIO_ReadPin(SOAP_STATUS_GPIO_Port,SOAP_STATUS_Pin) #endif +#if defined(STS_M1) +/* Water leakage MEMS_IF_3, PA10 */ +#define WATER_LEAKAGE_STATUS_Pin GPIO_PIN_10 +#define WATER_LEAKAGE_STATUS_GPIO_Port GPIOA + +/* Water leakageON_OFF, MEMS_IF_1, PB5 */ +#define WATER_LEAKAGE_SWITCH_Pin GPIO_PIN_5 +#define WATER_LEAKAGE_SWITCH_GPIO_Port GPIOB + +#define WATER_LEAKAGE_DATA HAL_GPIO_ReadPin(WATER_LEAKAGE_STATUS_GPIO_Port,WATER_LEAKAGE_STATUS_Pin) + +#endif + /* USER CODE END Private defines */ #ifdef __cplusplus diff --git a/Core/Inc/utilities_def.h b/Core/Inc/utilities_def.h index 3f355e1..c0fe858 100644 --- a/Core/Inc/utilities_def.h +++ b/Core/Inc/utilities_def.h @@ -82,8 +82,10 @@ typedef enum /* USER CODE BEGIN CFG_SEQ_Task_Id_t */ CFG_SEQ_Task_YunhornSTSEventRFAC, /* RFAC */ -#ifdef STS_O6 +#if defined(STS_M1)||defined(STS_O6) CFG_SEQ_Task_YunhornSTSEventP1, /* REEDSWITCH, IO */ +#endif +#if defined(STS_O6) CFG_SEQ_Task_YunhornSTSEventP2, /* MOTION */ CFG_SEQ_Task_YunhornSTSEventP3, /* LAMP BAR LED */ #endif @@ -99,7 +101,7 @@ typedef enum #ifdef STS_E2 CFG_SEQ_Task_YunhornSTSEventP7, /* IAQ */ #endif -#ifdef STS_M1 +#ifdef STS_M7 CFG_SEQ_Task_YunhornSTSEventP8, /* ETR, PULSE COUNT */ #endif #ifdef MODBUS_RS485 diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 8fec7a1..2e67930 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -418,7 +418,7 @@ void LoRaWAN_Init(void) /* USER CODE BEGIN LoRaWAN_Init_LV */ uint32_t feature_version = 0UL; /* USER CODE END LoRaWAN_Init_LV */ - APP_LOG(TS_OFF, VLEVEL_M, "\n\n# YUNHORN SMARTOILETS: MTM:%d.%d HWFW:%d.%d V:%d.%d.%d #\n\n", + APP_LOG(TS_OFF, VLEVEL_M, "\n\n# YUNHORN SMARTOILETS: (%s) MTM:%d.%d HWFW:%d.%d V:%d.%d.%d #\n\n",(char*)YUNHORN_STS_PRD_STRING, (uint8_t)sts_mtmcode1, (uint8_t)sts_mtmcode2,(uint8_t)sts_hardware_ver,(uint8_t)FirmwareVersion, (uint8_t)MajorVer,(uint8_t)MinorVer,(uint8_t)SubMinorVer); /* USER CODE BEGIN LoRaWAN_Init_1 */ @@ -510,6 +510,13 @@ void LoRaWAN_Init(void) UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process); +#ifdef STS_M1 + + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_YunhornSTSEventP1_Process); + +#endif + + #ifdef STS_P2 UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process); @@ -748,6 +755,8 @@ static void SendTxData(void) sts_tof_range_data_t sts_rr_sensor_data={0x0,0x0,0x0}; #elif defined(STS_R4) sts_r_sensor_data_t sts_r4_sensor_data={0}; +#elif defined(STS_M1) + sts_r_sensor_data_t sts_m1_sensor_data={0}; #endif if (LmHandlerIsBusy() == false) @@ -767,12 +776,20 @@ static void SendTxData(void) #endif /* CAYENNE_LPP */ EnvSensors_Read(&sensor_data); + #ifdef 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 + + STS_M1_sensor_read(&sts_m1_sensor_data); +#endif + + + #ifdef VL53LX STS_people_count_sensor_Read(&sts_p2_sensor_data); #endif @@ -788,14 +805,16 @@ static void SendTxData(void) AppData.Port = YUNHORN_STS_R2_LORA_APP_DATA_PORT; /* STS-R2 Data Port */ #elif defined(STS_R5) AppData.Port = YUNHORN_STS_R5_LORA_APP_DATA_PORT; /* STS-R5 Data Port */ -#endif +#endif //STS_R1 #endif //VL53L0 -#ifdef STS_R4 +#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 + AppData.Port = YUNHORN_STS_M1_LORA_APP_DATA_PORT; /* STS-M1 Data Port */ +#endif AppData.Buffer[i++] = (uint8_t) (AppLedStateOn|0x80); // for first byte, cannot be 0x0 AppData.Buffer[i++] = (uint8_t) sts_mtmcode1; @@ -926,6 +945,14 @@ static void SendTxData(void) AppData.Buffer[i++] = (uint8_t)(sts_r4_sensor_data.measure_tech & 0xFF); AppData.Buffer[i++] = (uint8_t)(sts_r4_sensor_data.on_off_event & 0xFF); #endif //STS_R4 + +/* STS-M1 WATER LEAKAGE SENSOR */ +#ifdef STS_M1 + AppData.Buffer[i++] = 2; + AppData.Buffer[i++] = (uint8_t)(sts_m1_sensor_data.measure_tech & 0xFF); + AppData.Buffer[i++] = (uint8_t)(sts_m1_sensor_data.on_off_event & 0xFF); +#endif //STS_M1 + AppData.BufferSize = i; if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET)) @@ -964,8 +991,11 @@ static void OnTxTimerEvent(void *context) /* USER CODE BEGIN OnTxTimerEvent_1 */ /* USER CODE END OnTxTimerEvent_1 */ - +#ifdef STS_R4 UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), CFG_SEQ_Prio_0); +#elif defined(STS_M1) + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); +#endif UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 27a9d57..2d527e3 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -133,7 +133,7 @@