From 02f59c4bba193be7c008bd9386ba8e9994ca2990 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Tue, 19 Nov 2024 23:44:38 +0800 Subject: [PATCH] workable L8 --- Core/Src/main.c | 2 +- LoRaWAN/App/lora_app.c | 11 +++ STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 261776 -> 262156 bytes STS/Core/Inc/yunhorn_sts_sensors.h | 4 +- STS/Core/Src/yunhorn_sts_process.c | 7 +- STS/TOF/App/app_tof.c | 96 +++++++++++++---------- 6 files changed, 75 insertions(+), 45 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 6e229fe..b01f0ea 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -115,7 +115,7 @@ int main(void) MX_LoRaWAN_Init(); } - MX_TOF_Process(); + //MX_TOF_Process(); /* USER CODE BEGIN 2 */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index a302a3c..6c895de 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -1514,6 +1514,17 @@ static void OnYunhornSTSWakeUpScanTimerEvent(void *context) } +void STSWakeupScanTimerStop(void) +{ + UTIL_TIMER_Stop(&YunhornSTSWakeUpScanTimer); +} + + + +void STSWakeupScanTimerStart(void) +{ + UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); +} /** * @brief Yunhorn STS Tx Periodicity Change function * @param duration of periodicty in ms (1/1000 sec) diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf index 0506f66488ae68b3064c179a107505483909860b..fdd85dc13f9cb7901d412982fb71fe088e36cd20 100644 GIT binary patch delta 58614 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 z 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 0) - { - range_distance = (uint32_t)Result.ZoneResult[i].Distance[0]; + /* Print distance and status */ + if ((Result.ZoneResult[i].NumberOfTargets > 0)) + { + range_distance = (uint32_t)Result.ZoneResult[i].Distance[0]; - if (sts_sensor_install_height > range_distance) - sts_fhmos_bg.h2cm[i] = sts_fhmos_bg.h2cm[i] + ((uint32_t)sts_sensor_install_height - range_distance); - printf("|%4d %4d ", range_distance, sts_fhmos_bg.h2cm[i]); - if (i%8==0) printf("\r\n"); - //sts_fhmos_bg.h2cm[i] += ((uint32_t)sts_sensor_install_height - range_distance; - //sts_fhmos_bg.h2cm[i] += ((uint32_t)sts_sensor_install_height - (uint32_t)Result.ZoneResult[i].Distance[0]); - } - else { - sts_fhmos_bg.h2cm[i] += 0; - printf(" .%2d. ", i); - } + if (sts_sensor_install_height > range_distance) + sts_fhmos_bg.h2cm[i] += ((uint32_t)sts_sensor_install_height - range_distance); + printf("|%4d %4d ", range_distance, sts_fhmos_bg.h2cm[i]); + if (i%8==0) printf("\r\n"); + } + else { + sts_fhmos_bg.h2cm[i] += 0; + //printf(" .%d. ", i); + } } @@ -199,7 +198,13 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) for (i=0; i<64; i++) { sts_fhmos_bg.h2cm[i] /= 10; - printf("|%4d ", (uint32_t)sts_fhmos_bg.h2cm[i]); + if (fabs(sts_sensor_install_height - sts_fhmos_bg.h2cm[i]) <500) { + sts_fhmos_bg.maskoff[i] = 0; + } else { + sts_fhmos_bg.maskoff[i] = 1; + } + + printf("|%d ", (uint32_t)sts_fhmos_bg.maskoff[i]); if (i%8==0) printf("\r\n"); } @@ -218,13 +223,17 @@ uint16_t MX_TOF_Ranging_Process(void) #elif defined(L8) uint32_t range_distance=0; uint8_t center_roi[4] = {27,28,35,36}; - uint8_t range_mode = 2; //STS_TOF_LONG_RANGE; - //int status = VL53L8A1_RANGING_SENSOR_GetDistance(VL53L8A1_DEV_CENTER, &Result); + // uint8_t range_mode = 2; //STS_TOF_LONG_RANGE; + // int status = VL53L8A1_RANGING_SENSOR_GetDistance(VL53L8A1_DEV_CENTER, &Result); - printf("\r| 27 | 28 | 35 | 36 |\r\n"); + // printf("\r| 27 | 28 | 35 | 36 |\r\n"); for (uint8_t k=0; k<10; k++) { - int status = VL53L8A1_RANGING_SENSOR_GetDistance(VL53L8A1_DEV_CENTER, &Result); + STS_TOF_L8_Process(); + + // int status = VL53L8A1_RANGING_SENSOR_GetDistance(VL53L8A1_DEV_CENTER, &Result); + // printf("\r\n status =%d \r\n", status); + for (uint8_t zone_nbr = 0; zone_nbr < 4; zone_nbr++) { @@ -240,11 +249,9 @@ uint16_t MX_TOF_Ranging_Process(void) } range_distance += Result.ZoneResult[center_roi[zone_nbr]].Distance[RANGING_SENSOR_NB_TARGET_PER_ZONE-1]; - //printf("| %6d -- ", range_distance); - } - printf("\n\r"); } + printf("\n\r"); range_distance /=40; @@ -284,8 +291,6 @@ void STS_TOF_L8_Init(void) } void STS_TOF_L8_Process(void) { - //printf("\r\n Tof L8 Process\r\n"); - //while (1) { /* interrupt mode */ @@ -294,10 +299,10 @@ void STS_TOF_L8_Process(void) ToF_EventDetected = 0; status = VL53L8A1_RANGING_SENSOR_GetDistance(VL53L8A1_DEV_CENTER, &Result); - + //printf("\r\n status =%d \r\n", status); if (status == BSP_ERROR_NONE) { - //print_result(&Result); + print_result(&Result); } } } @@ -365,12 +370,14 @@ static void MX_53L8A1_ThresholdDetection_Process(void) printf("VL53L8A1_RANGING_SENSOR_Start failed\n"); while (1); } - +#if 0 printf("\033[2H\033[2J"); printf("53L8A1 Threshold Detection demo application\n\r"); printf("-------------------------------------------\n\r"); printf("please put a target between %d and %d millimeters from the sensor\n\r", LOW_THRESHOLD, HIGH_THRESHOLD); +#endif + #if 0 while (1) { @@ -457,9 +464,13 @@ static void print_result(RANGING_SENSOR_Result_t *Result) int32_t roi_distance =(uint32_t)(Result->ZoneResult[j + k].Distance[l]); /* state tree */ if ((roi_distance > LOW_THRESHOLD)&&(roi_distance < OCCUPANCY_THRESHOLD)) - fhmos_occupancy = 1; + //fhmos_occupancy = 1; + sts_fhmos_data.occupancy_state = 1; if ((roi_distance < HIGH_THRESHOLD)&&(roi_distance > OCCUPANCY_THRESHOLD)) { + sts_fhmos_data.fall_state = 1; + sts_fhmos_data.human_movement_state = 1; + fhmos_fall = 1; fhmos_human_movement = 1; fhmos_fall_counter ++; @@ -556,13 +567,14 @@ static void print_result(RANGING_SENSOR_Result_t *Result) * */ -void STS_FHMOS_sensor_read(sts_fhmos_sensor_data_t *sts_fhmos_data) +void STS_FHMOS_sensor_read(sts_fhmos_sensor_data_t *sts_data) { //uint8_t fhmos_fall=0, fhmos_human_movement=0, fhmos_occupancy=0, fhmos_sos_alarm=0; - sts_fhmos_data->fall_state = fhmos_fall; - sts_fhmos_data->human_movement_state =fhmos_human_movement; - sts_fhmos_data->occupancy_state =fhmos_occupancy; - sts_fhmos_data->sos_alarm_state =fhmos_sos_alarm; + sts_data->occupancy_state = sts_fhmos_data.occupancy_state; + sts_data->fall_state = sts_fhmos_data.fall_state; + sts_data->human_movement_state =sts_fhmos_data.human_movement_state; + sts_data->occupancy_state = sts_fhmos_data.occupancy_state; + sts_data->sos_alarm_state = sts_fhmos_data.sos_alarm_state; } @@ -577,7 +589,7 @@ uint8_t IsInterruptDetected(uint16_t dev) // return 1 when an interrupt is raised by the ToF on GPIO1 pin (pin7) if (ToF_EventDetected ) { - APP_LOG(TS_OFF, VLEVEL_L,"############### TOF EVENT DETECTED \r\n"); + APP_LOG(TS_OFF, VLEVEL_M,"############### TOF EVENT DETECTED \r\n"); ToF_EventDetected =0; return 1; } else {