diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index ea70373..51ca3b6 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -52,7 +52,7 @@ extern "C" { /** * @brief Enable trace logs */ -#define APP_LOG_ENABLED 0 +#define APP_LOG_ENABLED 1 /** * @brief Activate monitoring (probes) of some internal RF signals for debug purpose diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h index 19ec9c4..94edfcd 100644 --- a/Core/Inc/yunhorn_sts_prd_conf.h +++ b/Core/Inc/yunhorn_sts_prd_conf.h @@ -42,7 +42,7 @@ */ //#define USE_OLED_SSD1306 //#define USE_TOF_VL53L1X -#define STS_USE_TOF_VL53L0X 1U +//#define STS_USE_TOF_VL53L0X 1U //#define YUNHORN_STS_R5_ENABLED @@ -235,7 +235,7 @@ #define MajorVer 23U #define MinorVer 11U -#define SubMinorVer 02U +#define SubMinorVer 10U #define FirmwareVersion 3U #define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U #define YUNHORN_STS_AC_CODE_SIZE 20U @@ -265,7 +265,7 @@ #ifdef STS_O5 #define YUNHORN_STS_O5_ENABLED 1U #define sts_mtmcode1 0U -#define sts_mtmcode2 5U +#define sts_mtmcode2 24U #define sts_hardware_ver 1U #define sts_version 1U #define sts_senddataport (YUNHORN_STS_O5_LORA_APP_DATA_PORT) diff --git a/Core/Src/yunhorn_sts_process.c b/Core/Src/yunhorn_sts_process.c index f928e5b..02e104d 100644 --- a/Core/Src/yunhorn_sts_process.c +++ b/Core/Src/yunhorn_sts_process.c @@ -41,13 +41,12 @@ extern volatile uint8_t sts_ac_code[20]; volatile uint8_t sts_service_mask; volatile uint32_t rfac_timer; extern volatile uint8_t sensor_data_ready; -extern volatile uint8_t sts_work_mode; volatile uint8_t sts_reed_hall_result, last_sts_reed_hall_result,sts_reed_hall_changed_flag; volatile uint32_t event_start_time, event_stop_time; volatile uint8_t sts_soap_level_state; -extern volatile uint8_t sts_reed_hall_result, sts_work_mode, sts_service_mask; +extern volatile uint8_t sts_work_mode, sts_service_mask; volatile uint8_t sts_reed_hall_ext_int = 0; volatile uint8_t sts_occupancy_status; volatile uint8_t sts_reed_hall_changed_flag = 0; @@ -581,6 +580,9 @@ void STS_SENSOR_NVM_CFG_SIMPLE(void) void STS_O5_SENSOR_Read(STS_OO_SensorDataTypeDef *oo_data) { + + sts_reed_hall_result = (STS_Reed_Hall_State==0)?1:0; + oo_data->state_sensor1_on_off = sts_reed_hall_result; diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 25da2e6..41726e7 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -580,7 +580,9 @@ void LoRaWAN_Init(void) // UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_YunhornSTSEventP2_Process); // UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process); +#if defined(TOF_1)||defined(TOF_2)||defined(TOF_3) UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process); +#endif // UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process); // UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process); // UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP7), UTIL_SEQ_RFU, STS_YunhornSTSEventP7_Process); @@ -614,7 +616,7 @@ void LoRaWAN_Init(void) // Heart Beat Timer // FOR Event trigger type sensor, use this as Heart Beat Timer, such as O1/O2/O3/M1 -#if (defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)) +#if (defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)||defined(YUNHORN_STS_O5_ENABLED)) UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity, UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL); UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); @@ -634,16 +636,16 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) case BUT1_Pin: #if (defined(STS_USE_STM32WL55)||defined(STS_USE_STM32WLE5)) #ifdef YUNHORN_STS_O5_ENABLED - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); + + uint8_t pinstate = (STS_Reed_Hall_State== 0)?1:0; + APP_LOG(TS_OFF, VLEVEL_L, "## BUTTON-1 DETECTED: %2d \r\n", pinstate); + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); -#elif - uint8_t pinstate = HAL_GPIO_ReadPin(BUT1_GPIO_Port,BUT1_Pin); - APP_LOG(TS_OFF, VLEVEL_H, "## BUTTON-1 DETECTED: %2d \r\n", pinstate); //if (EventType == TX_ON_EVENT) if (pinstate == 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); } else { #ifdef LED_ONBOARD @@ -785,7 +787,7 @@ static void SendTxData(void) LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR; uint8_t batteryLevel = GetBatteryLevel(); //uint16_t batteryLevelmV = SYS_GetBatteryLevel(); - sensor_t sensor_data; + //sensor_t sensor_data; #if defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED) STS_R0_SensorDataTypeDef r0_data; #endif @@ -794,10 +796,10 @@ static void SendTxData(void) #endif UTIL_TIMER_Time_t nextTxIn = 0; - APP_LOG(TS_ON, VLEVEL_H, "\r\n Flag: Heart-beat-timer = %u \r\n upload_message_timer %u \r\n sensor_data_ready = %u \r\n", - heart_beat_timer, upload_message_timer, sensor_data_ready); + //APP_LOG(TS_ON, VLEVEL_H, "\r\n Flag: Heart-beat-timer = %u \r\n upload_message_timer %u \r\n sensor_data_ready = %u \r\n", + //heart_beat_timer, upload_message_timer, sensor_data_ready); + - APP_LOG(TS_ON, VLEVEL_H, "\r\nVDDA: %4d (mV)\r\n", batteryLevelmV); //if (LmHandlerIsBusy() == false) { uint8_t i = 0; @@ -819,7 +821,7 @@ static void SendTxData(void) #endif //r0_data.battery_Pct = batteryLevel; //(uint8_t)(99*batteryLevel/254); - EnvSensors_Read(&sensor_data); +// EnvSensors_Read(&sensor_data); // APP_LOG(TS_ON, VLEVEL_M, "\r\nVDDA: %d\r\n", batteryLevel); // APP_LOG(TS_ON, VLEVEL_M, "\r\ntemp: %d\r\n", (int16_t)(sensor_data.temperature)); @@ -841,6 +843,7 @@ static void SendTxData(void) if (heart_beat_timer != 0U) { heart_beat_timer = 0U; + AppData.Buffer[0] = AppLedStateOn|0x80; // For heartbeat message indication AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1; #ifdef ROCTEC_R5 AppData.Buffer[i++] = AppLedStateOn; @@ -856,6 +859,7 @@ static void SendTxData(void) AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm)&0xff; //#06 #elif defined(STS_O5) + AppData.Buffer[i++] = (uint8_t)(0x01)&0xff; // length of the following bytes AppData.Buffer[i++] = (uint8_t)(oo_data.state_sensor1_on_off)&0xff; #elif defined(YUNHORN_STS_R0_ENABLED) diff --git a/TOF/App/app_tof.c b/TOF/App/app_tof.c index 70edfae..07f9eee 100644 --- a/TOF/App/app_tof.c +++ b/TOF/App/app_tof.c @@ -48,15 +48,18 @@ extern "C" { /* Private define ------------------------------------------------------------*/ #define TIMING_BUDGET (30U) /* 16 ms < TimingBudget < 500 ms */ #define POLLING_PERIOD (250U) /* refresh rate for polling mode (milliseconds, shall be consistent with TimingBudget value) */ - +#define MAX_TOF_COUNT (03U) /* Private variables ---------------------------------------------------------*/ //static RANGING_SENSOR_Capabilities_t Cap; //static RANGING_SENSOR_ProfileConfig_t Profile; //static int32_t status = 0; -volatile uint8_t ToF_EventDetected = 0; + extern volatile uint8_t sensor_data_ready; +#if (defined(TOF_1)|| defined(TOF_2) || defined(TOF_3)) +volatile uint8_t ToF_EventDetected = 0; extern volatile int sts_tof_distance_data[MAX_TOF_COUNT]; +#endif //volatile uint8_t sensor_data_ready=0; /* Private function prototypes -----------------------------------------------*/ #ifdef STS_USE_TOF_VL53L1X @@ -76,9 +79,9 @@ void MX_TOF_Init(void) /* Initialize the peripherals and the TOF components */ APP_LOG(TS_OFF,VLEVEL_L,"\r\n###################### MX TOF Init... \r\n"); - +#if (defined(TOF_1)|| defined(TOF_2) || defined(TOF_3)) XWL55_WLE5_53L0X_Init(); - +#endif //MX_53L1A2_SimpleRanging_Init(); /* USER CODE BEGIN TOF_Init_PostTreatment */ @@ -160,9 +163,9 @@ uint8_t STS_SENSOR_MEMS_Get_ID(uint8_t *mems_Dev_ID) { uint16_t Id = 0xEEAA; //0xeeaa for VL53L0X uint8_t cnt =0; - +#if (defined(TOF_1)|| defined(TOF_2) || defined(TOF_3)) cnt = sts_tof_vl53l0x_DetectSensors(); - +#endif if (cnt > 0) mems_Dev_ID[0] = (Id >>8)&0xff; mems_Dev_ID[1] = (Id & 0xff);