diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 2661f50..db49324 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -50,12 +50,12 @@ extern "C" { * #define VLEVEL_M 2 functional traces * #define VLEVEL_H 3 all traces */ -#define VERBOSE_LEVEL VLEVEL_OFF +#define VERBOSE_LEVEL VLEVEL_H /** * @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 @@ -78,7 +78,7 @@ extern "C" { * @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 */ -#define DEBUGGER_ENABLED 0 +#define DEBUGGER_ENABLED 1 /** * @brief Disable Low Power mode diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h index 1ff9599..1043fcf 100644 --- a/Core/Inc/yunhorn_sts_prd_conf.h +++ b/Core/Inc/yunhorn_sts_prd_conf.h @@ -270,9 +270,6 @@ #ifdef STS_O6 #define sts_mtmcode2 3U //MTM-03 for O6, MTM-07 for O7 #endif -#ifdef STS_O7 -#define sts_mtmcode2 7U //MTM-03 for O6, MTM-07 for O7 -#endif #ifdef STS_P2 #define sts_mtmcode2 106 #define sts_senddataport (YUNHORN_STS_P2_LORA_APP_DATA_PORT) @@ -287,10 +284,15 @@ #define sts_senddataport (YUNHORN_STS_O6_LORA_APP_DATA_PORT) #define sts_sendhtbtport (YUNHORN_STS_O6_LORA_APP_HTBT_PORT) #endif + #ifdef STS_O7 +#define sts_mtmcode1 0U +#define sts_mtmcode2 7U //MTM-03 for O6, MTM-07 for O7 +#define YUNHORN_STS_PRD_STRING "STS_O7" #define sts_senddataport (YUNHORN_STS_O7_LORA_APP_DATA_PORT) #define sts_sendhtbtport (YUNHORN_STS_O7_LORA_APP_HTBT_PORT) #endif + #if defined(STS_O6)||defined(STS_O7) #define sts_appctrlport (YUNHORN_STS_O7_USER_APP_CTRL_PORT) #define sts_appctrl_reply_port (YUNHORN_STS_O7_USER_APP_CTRL_REPLY_PORT) diff --git a/Core/Src/main.c b/Core/Src/main.c index 413e83d..a9a319e 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -99,8 +99,8 @@ int main(void) MX_LoRaWAN_Init(); /* USER CODE BEGIN 2 */ - APP_LOG(TS_OFF, VLEVEL_M,"\r\n Before TOF ...................\r\n"); - STS_TOF_VL53LX_PeopleCounting_Process_Init(); + //APP_LOG(TS_OFF, VLEVEL_M,"\r\n Before TOF ...................\r\n"); + //STS_TOF_VL53LX_PeopleCounting_Process_Init(); /* USER CODE END 2 */ /* Infinite loop */ diff --git a/Core/Src/yunhorn_sts_distance_rss.c b/Core/Src/yunhorn_sts_distance_rss.c index c580fc5..a553f69 100644 --- a/Core/Src/yunhorn_sts_distance_rss.c +++ b/Core/Src/yunhorn_sts_distance_rss.c @@ -76,7 +76,7 @@ int sts_distance_rss_detector_distance(void) if (!acc_rss_activate(hal)) { - APP_LOG(TS_OFF, VLEVEL_L, "Failed to activate RSS\n"); + APP_LOG(TS_OFF, VLEVEL_M, "Failed to activate RSS\n"); return EXIT_FAILURE; } @@ -91,13 +91,15 @@ int sts_distance_rss_detector_distance(void) return EXIT_FAILURE; } + APP_LOG(TS_OFF, VLEVEL_M, "\r\n UPDATE CONFIG \r\n"); + sts_distance_rss_update_configuration(distance_configuration); acc_detector_distance_handle_t distance_handle = acc_detector_distance_create(distance_configuration); if (distance_handle == NULL) { - APP_LOG(TS_OFF, VLEVEL_L, "acc_detector_distance_create() failed\n"); + APP_LOG(TS_OFF, VLEVEL_M, "acc_detector_distance_create() failed\n"); acc_detector_distance_configuration_destroy(&distance_configuration); acc_rss_deactivate(); return EXIT_FAILURE; @@ -107,7 +109,7 @@ int sts_distance_rss_detector_distance(void) if (!acc_detector_distance_activate(distance_handle)) { - APP_LOG(TS_OFF, VLEVEL_L, "acc_detector_distance_activate() failed\n"); + APP_LOG(TS_OFF, VLEVEL_M, "acc_detector_distance_activate() failed\n"); acc_detector_distance_destroy(&distance_handle); acc_rss_deactivate(); return EXIT_FAILURE; @@ -127,7 +129,7 @@ int sts_distance_rss_detector_distance(void) if (!success) { - APP_LOG(TS_OFF, VLEVEL_L, "acc_detector_distance_get_next() failed\n"); + APP_LOG(TS_OFF, VLEVEL_M, "acc_detector_distance_get_next() failed\n"); break; } for(uint8_t j=0; j< result_info.number_of_peaks; j++) diff --git a/Core/Src/yunhorn_sts_process.c b/Core/Src/yunhorn_sts_process.c index 214e009..cbdaed4 100644 --- a/Core/Src/yunhorn_sts_process.c +++ b/Core/Src/yunhorn_sts_process.c @@ -67,7 +67,7 @@ volatile uint16_t sts_sensor_install_height=0;//in mm // RSS motion and distance #ifdef USE_ACCONEER_A111 -volatile uint16_t sts_distance_rss_distance=0, sts_sensor_install_height=0;//in mm +volatile uint16_t sts_distance_rss_distance=0;//in mm extern volatile float sts_presence_rss_distance, sts_presence_rss_score; volatile uint8_t sts_rss_config_updated_flag = STS_RSS_CONFIG_NON; extern volatile uint8_t sts_occupancy_overtime_state; @@ -115,8 +115,6 @@ extern volatile uint8_t detected_hs_zone; extern volatile STS_OO_RSS_SensorTuneDataTypeDef sts_presence_rss_config; volatile uint32_t cnt=0; -volatile uint8_t sts_tof_result_changed_flag = 0; - volatile uint8_t sts_rss_result_changed_flag = 0; volatile uint8_t sts_rss_result = STS_RESULT_NO_MOTION; volatile uint8_t sts_rss_2nd_result = STS_RESULT_NO_MOTION; //2nd RSS sensor status diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 16cb4e9..405ccce 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -36,6 +36,7 @@ #include "sys_sensors.h" #include "flash_if.h" #include "main.h" +#include #ifdef CLOCK_SYNC #include "LmhpClockSync.h" #endif @@ -51,6 +52,7 @@ extern volatile uint8_t sts_service_mask; extern volatile uint32_t rfac_timer; volatile uint8_t sts_ac_code[YUNHORN_STS_AC_CODE_SIZE]={0x0}; +static void STS_Show_STS_CFG_NVM(uint8_t * nvm_store_value); extern hmac_result_t hmac_result; extern volatile uint8_t ToF_EventDetected; extern volatile uint8_t sts_hall1_read, sts_hall2_read, sts_hall3_read, sts_hall4_read; @@ -86,7 +88,7 @@ volatile bool p2_work_finished=true; extern volatile uint8_t luminance_level; uint8_t outbuf[255]={0x0}; volatile static bool r_b=true; -volatile sts_cfg_nvm_factory_default[64]={0xF0}; +volatile uint8_t sts_cfg_nvm_factory_default[64]={0xF0}; volatile sts_cfg_nvm_t sts_cfg_nvm = { sts_mtmcode1, sts_mtmcode2, @@ -1437,6 +1439,15 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode; APP_LOG(TS_OFF, VLEVEL_L,"\r\n STS_LoRa_WAN_Joined = %s \r\n", (STS_LoRa_WAN_Joined == 1)?"ABP":"OTAA"); + + AppData.Port = 1; + AppData.BufferSize = 16; + UTIL_MEM_cpy_8((uint8_t*)AppData.Buffer, (uint8_t *)YUNHORN_STS_PRD_STRING, sizeof(YUNHORN_STS_PRD_STRING)); + AppData.BufferSize = sizeof(YUNHORN_STS_PRD_STRING); + LmHandlerParams.IsTxConfirmed = true; + LmHandlerErrorStatus_t status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); + if (status ==LORAMAC_HANDLER_SUCCESS ) LmHandlerParams.IsTxConfirmed = false; + } else { @@ -1451,10 +1462,6 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) heart_beat_timer = 1; //SendTxData(); - 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); UTIL_TIMER_Start(&STSDurationCheckTimer); OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity); @@ -1467,8 +1474,8 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) #elif defined(STS_P2) APP_LOG(TS_OFF, VLEVEL_H, "\r\nTOF Measured Distance=[%u] mm \r\n", (uint16_t)sts_sensor_install_height); #endif - UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_ONESHOT, OnYunhornSTSOORSSWakeUpTimerEvent, NULL); - UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); + UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_ONESHOT, OnYunhornSTSOORSSWakeUpTimerEvent, NULL); + UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); } @@ -1795,7 +1802,7 @@ static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity) UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); /* USER CODE BEGIN OnTxPeriodicityChanged_2 */ - APP_LOG(TS_OFF, VLEVEL_H,"**************** HeartBeatPeriodicity = %u (sec)\r\n", periodicity/1000 ); + APP_LOG(TS_OFF, VLEVEL_M,"**************** HeartBeatPeriodicity = %u (sec)\r\n", periodicity/1000 ); /* USER CODE END OnTxPeriodicityChanged_2 */ } @@ -1942,11 +1949,11 @@ static void OnYunhornSTSSamplingCheckTimerEvent(void *context) void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_size) { - uint8_t i=0, mems_ver, invalid_flag=1, tlv_buf[128]={0x0}; + uint8_t i=0, mems_ver, invalid_flag=1, tlv_buf[128]={0x0}, tlv_buf_size=parse_buffer_size; UTIL_MEM_set_8((void*)outbuf,0x0, sizeof(outbuf)); UTIL_MEM_cpy_8((void*)tlv_buf,(void*)parse_buffer, parse_buffer_size&0x7F); /* 127 BYTES MAX */ - if (((char)tlv_buf[CFG_CMD1] == 'Y') && (tlv_buf_size <=5)) // BEGIN OF *** BOARD LEVEL CONTROL OR REPORT + if (((char)tlv_buf[CFG_CMD1] == 'Y') && (parse_buffer_size <=5)) // BEGIN OF *** BOARD LEVEL CONTROL OR REPORT { switch ((char)tlv_buf[CFG_CMD2]) { @@ -2170,9 +2177,9 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s PME_ON; // 2024-07-31 UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf)); - UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size); + UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,parse_buffer_size); - i = tlv_buf_size; + i = parse_buffer_size; STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else { STS_SENSOR_Upload_Config_Invalid_Message(); @@ -2186,8 +2193,8 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s PME_OFF; // 2024-07-31 UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf)); - UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size); - i = tlv_buf_size; + UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,parse_buffer_size); + i = parse_buffer_size; STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else { STS_SENSOR_Upload_Config_Invalid_Message(); @@ -2880,12 +2887,15 @@ void STS_REBOOT_CONFIG_Init(void) /* USER CODE END OnRestoreContextRequest_1 */ //UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE); + + APP_LOG(TS_OFF, VLEVEL_M, "\r\nfactory default 0=%02x \r\n", sts_cfg_nvm_factory_default[0]); if (sts_cfg_nvm_factory_default[0] != 0x46) // for reset to factory default { FLASH_IF_Read(nvm_stored_value, STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE); - + STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value); } else { // RESET TO FACTORY DEFAULT,CONFIG TO ORIGINAL SETTINGS FLASH_IF_Read(nvm_stored_value, FLASH_MFG_DEFAULT_START_ADDR, YUNHORN_STS_MAX_NVM_CFG_SIZE); + STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value); sts_cfg_nvm_factory_default[0] = 0xF3; } /* USER CODE BEGIN OnRestoreContextRequest_Last */ @@ -2936,7 +2946,7 @@ void STS_REBOOT_CONFIG_Init(void) } } //#endif - + STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value); OnRestoreSTSCFGContextProcess(); @@ -3022,6 +3032,7 @@ void OnRestoreSTSCFGContextProcess(void) #if defined(STS_O7)||defined(STS_O6) + APP_LOG(TS_OFF, VLEVEL_M, "\n--------STS_PRESENCE_SENSOR_Init()---------------------------------\n"); // if ((sts_version == sts_cfg_nvm.version)&& (NVM_CFG_PARAMETER_SIZE == sts_cfg_nvm.length)) { STS_PRESENCE_SENSOR_Init(); @@ -3033,6 +3044,21 @@ void OnRestoreSTSCFGContextProcess(void) } + +static void STS_Show_STS_CFG_NVM(uint8_t * store_value) +{ + APP_LOG(TS_OFF, VLEVEL_M, "\n-----------------------------------------------\n"); + APP_LOG(TS_OFF, VLEVEL_M, "\n00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15\n"); + for (uint8_t i=0; i + + @@ -34,7 +36,7 @@ - + diff --git a/readme.txt b/readme.txt index 402673e..98c0480 100644 --- a/readme.txt +++ b/readme.txt @@ -43,7 +43,6 @@ STS_O7 For Occupancy sensors 2024-06-06 before STS_FALL_DETECTION_MODE change 2024-06-17 good for sensor 1 and sensor 2 start stop timer freezed for now 2024-06-26 RTM for pixel-network STS_RSS_MODE = 3 P113 switch -<<<<<<< HEAD ****************************************************************************** 2024-08-05 PIXEL-NETWORK RM2 @@ -53,6 +52,5 @@ STS_O7 For Occupancy sensors 2024-08-06 fall detection for O7, Motion detection for O6 2024-08-28 STS-P2 ***************************************************************************** ->>>>>>> da4c2742329b0ee8493739f64b95f19a6d5daea3 - +2025-03-12 PIXEL-NETWORK WITH RESET TO FACTORY DEFAULT CMD */