---- good heart beat, yet rss unstable for distance detector
This commit is contained in:
parent
aa4214983d
commit
1fe94926e5
|
@ -34,6 +34,10 @@ extern "C" {
|
||||||
#define STS_Status_Door_Open (1) //Normal Close NC:Close **2024-07-15 changed
|
#define STS_Status_Door_Open (1) //Normal Close NC:Close **2024-07-15 changed
|
||||||
#define STS_Status_SOS_Pushdown (0) //Normal Open NO:Open
|
#define STS_Status_SOS_Pushdown (0) //Normal Open NO:Open
|
||||||
#define STS_Status_SOS_Release (1) //Normal Open NO:Close
|
#define STS_Status_SOS_Release (1) //Normal Open NO:Close
|
||||||
|
#define STS_Status_Alarm_Mute_Pushdown (0) //Normal Open NO:Open
|
||||||
|
#define STS_Status_Alarm_Mute_Release (1) //Normal Open NO:Close#
|
||||||
|
#define STS_Status_Alarm_Reset_Pushdown (0) //Normal Open NO:Open
|
||||||
|
#define STS_Status_Alarm_Reset_Release (1) //Normal Open NO:Close#
|
||||||
|
|
||||||
enum sts_lamp_color {
|
enum sts_lamp_color {
|
||||||
STS_DARK = 0, //灭:0, Code 0x00
|
STS_DARK = 0, //灭:0, Code 0x00
|
||||||
|
|
|
@ -238,8 +238,8 @@
|
||||||
#define IS_STS_RS485_OUTPUT_ENABLE STS_IOC_OUT_1
|
#define IS_STS_RS485_OUTPUT_ENABLE STS_IOC_OUT_1
|
||||||
|
|
||||||
#define MajorVer 24U
|
#define MajorVer 24U
|
||||||
#define MinorVer 07U
|
#define MinorVer 8U
|
||||||
#define SubMinorVer 30U
|
#define SubMinorVer 1U
|
||||||
#define FirmwareVersion 3U
|
#define FirmwareVersion 3U
|
||||||
|
|
||||||
#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U
|
#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U
|
||||||
|
@ -429,8 +429,8 @@
|
||||||
* Address range 0800 0000H - 0803 FFFFH Size: 0x0004 0000
|
* Address range 0800 0000H - 0803 FFFFH Size: 0x0004 0000
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FLASH_USER_START_ADDR ((void *) 0x0803F800U) // Last 2kB of flash
|
#define FLASH_USER_START_ADDR ((void *) 0x0803F800UL) // Last 2kB of flash
|
||||||
#define FLASH_USER_CONFIG_SIZE ((void *) 0x000007FFU) //0x400=1KB=1024
|
#define FLASH_USER_CONFIG_SIZE ((void *) 0x000007FFUL) //0x400=1KB=1024
|
||||||
#define FLASH_USER_END_ADDR (FLASH_USER_START_ADDR + FLASH_USER_CONFIG - 1)
|
#define FLASH_USER_END_ADDR (FLASH_USER_START_ADDR + FLASH_USER_CONFIG - 1)
|
||||||
/* 2KB = 2048 = 0x800 End @ of user Flash area */
|
/* 2KB = 2048 = 0x800 End @ of user Flash area */
|
||||||
|
|
||||||
|
|
|
@ -166,7 +166,8 @@ typedef struct STS_OO_SensorStatusDataTypeDef
|
||||||
uint8_t state_sensor1_on_off; /* reedswitch or hall element 0: open, 1: closed */
|
uint8_t state_sensor1_on_off; /* reedswitch or hall element 0: open, 1: closed */
|
||||||
uint8_t state_sensor2_on_off; /* reedswitch or hall element 0: open, 1: closed */
|
uint8_t state_sensor2_on_off; /* reedswitch or hall element 0: open, 1: closed */
|
||||||
uint8_t state_sensor3_on_off; /* motion RSS, pcr_sensor_on_off; 1: occupancy, 0: no occupancy */
|
uint8_t state_sensor3_on_off; /* motion RSS, pcr_sensor_on_off; 1: occupancy, 0: no occupancy */
|
||||||
uint8_t state_sensor4_on_off; /* reserved_sensor_on_off sensor state */
|
uint8_t state_sensor4_on_off; /* alarm mute button_on_off sensor state */
|
||||||
|
uint8_t state_sensor5_on_off; /* alarm reset button_on_off sensor state */
|
||||||
uint16_t rss_presence_distance; // in mm
|
uint16_t rss_presence_distance; // in mm
|
||||||
uint8_t rss_presence_zone[10];
|
uint8_t rss_presence_zone[10];
|
||||||
uint8_t rss_presence_zone_count[10];
|
uint8_t rss_presence_zone_count[10];
|
||||||
|
@ -217,11 +218,21 @@ typedef struct STS_OO_SensorStatusDataTypeDef
|
||||||
uint32_t event_sensor3_unconcious_duration;
|
uint32_t event_sensor3_unconcious_duration;
|
||||||
|
|
||||||
uint32_t event_sensor4_start_time; /* reserved */
|
uint32_t event_sensor4_start_time; /* reserved */
|
||||||
|
uint32_t event_sensor4_start_timestamp;
|
||||||
uint32_t event_sensor4_stop_time;
|
uint32_t event_sensor4_stop_time;
|
||||||
|
uint32_t event_sensor4_stop_timestamp;
|
||||||
uint32_t event_sensor4_duration;
|
uint32_t event_sensor4_duration;
|
||||||
uint8_t alarm_indictor_mute_state;
|
uint8_t alarm_indictor_mute_state;
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t event_sensor5_start_time; /* reserved */
|
||||||
|
uint32_t event_sensor5_stop_time;
|
||||||
|
uint32_t event_sensor5_start_timestamp;
|
||||||
|
uint32_t event_sensor5_stop_timestamp;
|
||||||
|
uint32_t event_sensor5_duration;
|
||||||
uint8_t alarm_indictor_reset_state;
|
uint8_t alarm_indictor_reset_state;
|
||||||
|
|
||||||
|
|
||||||
} STS_OO_SensorStatusDataTypeDef;
|
} STS_OO_SensorStatusDataTypeDef;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -654,7 +665,7 @@ void OnStoreSTSCFGContextRequest(void);
|
||||||
/**
|
/**
|
||||||
* @brief Read config from flash
|
* @brief Read config from flash
|
||||||
*/
|
*/
|
||||||
void OnRestoreSTSCFGContextRequest(uint8_t *cfg_in_nvm);
|
void OnRestoreSTSCFGContextRequest(void *cfg_in_nvm);
|
||||||
|
|
||||||
void STS_REBOOT_CONFIG_Init(void);
|
void STS_REBOOT_CONFIG_Init(void);
|
||||||
|
|
||||||
|
@ -734,7 +745,7 @@ void STS_MOTION_SENSOR_Enable_Wake_Up_Detection(void);
|
||||||
void STS_MOTION_SENSOR_Initialization(void);
|
void STS_MOTION_SENSOR_Initialization(void);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size);
|
void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size);
|
||||||
void STS_SENSOR_Function_Test_Process(void);
|
void STS_SENSOR_Function_Test_Process(void);
|
||||||
void STS_SENSOR_Distance_Test_Process(void);
|
void STS_SENSOR_Distance_Test_Process(void);
|
||||||
void STS_PRESENCE_SENSOR_Function_Test_Process(uint8_t *self_test_result, uint8_t count);
|
void STS_PRESENCE_SENSOR_Function_Test_Process(uint8_t *self_test_result, uint8_t count);
|
||||||
|
|
|
@ -25,16 +25,10 @@
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
#include "yunhorn_sts_sensors.h"
|
|
||||||
#include "sts_cmox_hmac_sha.h"
|
|
||||||
#include "spi.h"
|
#include "spi.h"
|
||||||
#include "dma.h"
|
#include "dma.h"
|
||||||
#include "tim.h"
|
#include "tim.h"
|
||||||
#include "sts_lamp_bar.h"
|
|
||||||
#include "sys_app.h"
|
#include "sys_app.h"
|
||||||
|
|
||||||
#include "acc_hal_integration.h"
|
|
||||||
#include "acc_detector_presence.h"
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
@ -104,7 +98,6 @@ int main(void)
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
|
|
|
@ -63,7 +63,7 @@ extern volatile uint8_t sts_occupancy_status;
|
||||||
|
|
||||||
extern volatile uint8_t sts_reed_hall_result, sts_emergency_button_pushed; // inital 0 = close
|
extern volatile uint8_t sts_reed_hall_result, sts_emergency_button_pushed; // inital 0 = close
|
||||||
volatile uint8_t sts_hall1_read=STS_Status_Door_Open,sts_hall2_read=STS_Status_SOS_Release; // Above hall1_read == reed_hall_result, hall2_read == emergency_button
|
volatile uint8_t sts_hall1_read=STS_Status_Door_Open,sts_hall2_read=STS_Status_SOS_Release; // Above hall1_read == reed_hall_result, hall2_read == emergency_button
|
||||||
volatile uint8_t sts_hall3_read=STS_Status_Door_Open,sts_hall4_read=STS_Status_SOS_Release;
|
volatile uint8_t sts_hall3_read=STS_Status_Alarm_Mute_Release,sts_hall4_read=STS_Status_Alarm_Reset_Release;
|
||||||
extern volatile uint8_t sts_reed_hall_1_result, sts_reed_hall_2_result;
|
extern volatile uint8_t sts_reed_hall_1_result, sts_reed_hall_2_result;
|
||||||
extern volatile uint8_t sts_tof_result_changed_flag;
|
extern volatile uint8_t sts_tof_result_changed_flag;
|
||||||
|
|
||||||
|
|
|
@ -118,16 +118,11 @@ void SystemApp_Init(void)
|
||||||
/*Initialize the Sensors */
|
/*Initialize the Sensors */
|
||||||
EnvSensors_Init();
|
EnvSensors_Init();
|
||||||
// LED1 Flash 3 times for normal power on
|
// LED1 Flash 3 times for normal power on
|
||||||
LED1_TOGGLE;
|
LED1_TOGGLE; HAL_Delay(500);
|
||||||
HAL_Delay(500);
|
LED1_TOGGLE; HAL_Delay(500);
|
||||||
LED1_TOGGLE;
|
LED1_TOGGLE; HAL_Delay(500);
|
||||||
HAL_Delay(500);
|
LED1_TOGGLE; HAL_Delay(500);
|
||||||
LED1_TOGGLE;
|
LED1_TOGGLE; HAL_Delay(500);
|
||||||
HAL_Delay(500);
|
|
||||||
LED1_TOGGLE;
|
|
||||||
HAL_Delay(500);
|
|
||||||
LED1_TOGGLE;
|
|
||||||
HAL_Delay(500);
|
|
||||||
LED1_TOGGLE;
|
LED1_TOGGLE;
|
||||||
/*Init low power manager*/
|
/*Init low power manager*/
|
||||||
UTIL_LPM_Init();
|
UTIL_LPM_Init();
|
||||||
|
|
|
@ -53,8 +53,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//volatile distance_measure_cfg_t distance_cfg={1.5, 2.0, 1, 63, 2, 10, 0.5, 1.3, 0.2};
|
//volatile distance_measure_cfg_t distance_cfg={1.5, 2.0, 1, 63, 2, 10, 0.5, 1.3, 0.2};
|
||||||
volatile distance_measure_cfg_t distance_cfg={1.5, 2.0, 2, 63, 2, 10, 0.5, 1.3, 0.2};
|
//volatile distance_measure_cfg_t distance_cfg={1.5, 2.0, 2, 63, 2, 10, 0.5, 1.3, 0.2};
|
||||||
//volatile distance_measure_cfg_t distance_cfg={1.5, 3.3, 2, 63, 4, 10, 0.8182f, 0.4, 0.2};
|
volatile distance_measure_cfg_t distance_cfg={1.5, 3.3, 2, 63, 4, 10, 0.8182f, 0.4, 0.2};
|
||||||
extern float sts_distance_rss_distance, sts_sensor_install_height;
|
extern float sts_distance_rss_distance, sts_sensor_install_height;
|
||||||
|
|
||||||
static void sts_distance_rss_update_configuration(acc_detector_distance_configuration_t distance_configuration);
|
static void sts_distance_rss_update_configuration(acc_detector_distance_configuration_t distance_configuration);
|
||||||
|
|
|
@ -63,7 +63,7 @@ volatile uint8_t sts_soap_level_state;
|
||||||
|
|
||||||
// RSS motion and distance
|
// RSS motion and distance
|
||||||
volatile STS_OO_SensorStatusDataTypeDef sts_o7_sensorData;
|
volatile STS_OO_SensorStatusDataTypeDef sts_o7_sensorData;
|
||||||
volatile float sts_distance_rss_distance, sts_sensor_install_height=0;//in mm
|
volatile float sts_distance_rss_distance=0, sts_sensor_install_height=0;//in mm
|
||||||
extern volatile float sts_presence_rss_distance, sts_presence_rss_score;
|
extern volatile float sts_presence_rss_distance, sts_presence_rss_score;
|
||||||
volatile uint8_t sts_rss_config_updated_flag = 0;
|
volatile uint8_t sts_rss_config_updated_flag = 0;
|
||||||
extern volatile uint8_t sts_occupancy_overtime_state;
|
extern volatile uint8_t sts_occupancy_overtime_state;
|
||||||
|
@ -226,16 +226,16 @@ void STS_YunhornSTSEventRFAC_Process(void)
|
||||||
|
|
||||||
void STS_YunhornSTSEventP1_Process(void)
|
void STS_YunhornSTSEventP1_Process(void)
|
||||||
{
|
{
|
||||||
sts_reed_hall_1_result = HALL1_STATE; //sts_hall1_read;
|
sts_reed_hall_1_result = sts_hall1_read;//HALL1_STATE; //sts_hall1_read;
|
||||||
last_sts_reed_hall_1_result = sts_reed_hall_1_result;
|
last_sts_reed_hall_1_result = sts_reed_hall_1_result;
|
||||||
|
|
||||||
sts_reed_hall_2_result = HALL2_STATE;// sts_hall2_read;
|
sts_reed_hall_2_result = sts_hall2_read;//HALL2_STATE;// sts_hall2_read;
|
||||||
last_sts_reed_hall_2_result = sts_reed_hall_2_result;
|
last_sts_reed_hall_2_result = sts_reed_hall_2_result;
|
||||||
|
|
||||||
sts_reed_hall_3_result = HALL3_STATE;// sts_hall3_read;
|
sts_reed_hall_3_result = sts_hall3_read;//HALL3_STATE;// sts_hall3_read;
|
||||||
last_sts_reed_hall_3_result = sts_reed_hall_3_result;
|
last_sts_reed_hall_3_result = sts_reed_hall_3_result;
|
||||||
|
|
||||||
sts_reed_hall_4_result = HALL4_STATE;// sts_hall3_read;
|
sts_reed_hall_4_result = sts_hall4_read;//HALL4_STATE;// sts_hall3_read;
|
||||||
last_sts_reed_hall_4_result = sts_reed_hall_4_result;
|
last_sts_reed_hall_4_result = sts_reed_hall_4_result;
|
||||||
|
|
||||||
STS_Combined_Status_Processing();
|
STS_Combined_Status_Processing();
|
||||||
|
@ -501,11 +501,13 @@ void STS_Combined_Status_Processing(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STS_UNI_MODE: //FOR STS-O7
|
case STS_UNI_MODE: //FOR STS-O7
|
||||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_1_result == STS_Status_Door_Open )&& (sts_reed_hall_2_result == STS_Status_SOS_Release ))
|
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_1_result == STS_Status_Door_Open )&& (sts_reed_hall_2_result == STS_Status_SOS_Release )
|
||||||
|
&& (sts_reed_hall_3_result == STS_Status_Alarm_Mute_Release )&& (sts_reed_hall_4_result == STS_Status_Alarm_Reset_Release ))
|
||||||
{
|
{
|
||||||
sts_status_color = STS_GREEN;
|
sts_status_color = STS_GREEN;
|
||||||
|
|
||||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_1_result == STS_Status_Door_Close )||(sts_reed_hall_2_result == STS_Status_SOS_Pushdown ))
|
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_1_result == STS_Status_Door_Close )||(sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
|
||||||
|
|| (sts_reed_hall_3_result == STS_Status_Alarm_Mute_Pushdown )|| (sts_reed_hall_4_result == STS_Status_Alarm_Reset_Pushdown ))
|
||||||
{
|
{
|
||||||
sts_status_color = STS_RED;
|
sts_status_color = STS_RED;
|
||||||
|
|
||||||
|
@ -860,8 +862,8 @@ void STS_PRESENCE_SENSOR_Init(void)
|
||||||
sts_o7_sensorData.unconscious_state = 0;
|
sts_o7_sensorData.unconscious_state = 0;
|
||||||
sts_o7_sensorData.unconscious_duration = 0;
|
sts_o7_sensorData.unconscious_duration = 0;
|
||||||
|
|
||||||
PME_ON;
|
//PME_ON;
|
||||||
STS_PRESENCE_SENSOR_REEDSWITCH_HALL_Init();
|
//STS_PRESENCE_SENSOR_REEDSWITCH_HALL_Init();
|
||||||
//STS_PRESENCE_SENSOR_TOF_Init();
|
//STS_PRESENCE_SENSOR_TOF_Init();
|
||||||
//HAL_Delay(2000);
|
//HAL_Delay(2000);
|
||||||
//STS_PRESENCE_SENSOR_Distance_Measure_Process();
|
//STS_PRESENCE_SENSOR_Distance_Measure_Process();
|
||||||
|
@ -885,17 +887,23 @@ void STS_PRESENCE_SENSOR_RSS_Init(void)
|
||||||
APP_LOG(TS_ON, VLEVEL_H, "##### YunHorn SmarToilets(r) MEMS RSS Initializing \r\n");
|
APP_LOG(TS_ON, VLEVEL_H, "##### YunHorn SmarToilets(r) MEMS RSS Initializing \r\n");
|
||||||
|
|
||||||
PME_ON;
|
PME_ON;
|
||||||
|
APP_LOG(TS_ON, VLEVEL_H, "##### STS RSS Init step 1 :rss distance =%u height=%u\r\n",sts_distance_rss_distance,sts_sensor_install_height);
|
||||||
if ((sts_distance_rss_distance==0)&&(sts_sensor_install_height==0))
|
//if ((sts_distance_rss_distance==0)&&(sts_sensor_install_height==0))
|
||||||
{
|
{
|
||||||
uint8_t exit_status =0;
|
uint8_t exit_status =0;
|
||||||
|
do {
|
||||||
|
APP_LOG(TS_ON, VLEVEL_H, "##### STS RSS Init step 2 \r\n");
|
||||||
exit_status=sts_distance_rss_detector_distance();
|
exit_status=sts_distance_rss_detector_distance();
|
||||||
|
APP_LOG(TS_ON, VLEVEL_H, "##### STS RSS Init step 2 return =%u \r\n", exit_status);
|
||||||
|
|
||||||
if (exit_status ==0) {
|
if (exit_status ==0) {
|
||||||
APP_LOG(TS_ON, VLEVEL_M, "##### RSS Installation Height =%u \r\n", (uint16_t)sts_distance_rss_distance);
|
APP_LOG(TS_ON, VLEVEL_H, "##### RSS Installation Height =%u \r\n", (uint16_t)sts_distance_rss_distance);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
APP_LOG(TS_ON, VLEVEL_M, "##### RSS Installation Height Error \r\n");
|
APP_LOG(TS_ON, VLEVEL_H, "##### RSS Installation Height Error \r\n");
|
||||||
|
HAL_Delay(100);
|
||||||
}
|
}
|
||||||
|
} while((exit_status));
|
||||||
sts_sensor_install_height=sts_distance_rss_distance;
|
sts_sensor_install_height=sts_distance_rss_distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1219,6 +1227,25 @@ void OnSensor3StateChanged(void)
|
||||||
else
|
else
|
||||||
sts_o7_sensorData.event_sensor4_stop_time = sensor_event_time.Seconds;
|
sts_o7_sensorData.event_sensor4_stop_time = sensor_event_time.Seconds;
|
||||||
#endif
|
#endif
|
||||||
|
SysTime_t sensor_event_time = SysTimeGetMcuTime();
|
||||||
|
uint32_t time_stamp=STS_Get_Date_Time_Stamp();
|
||||||
|
|
||||||
|
if (sts_hall3_read==STS_Status_Alarm_Mute_Pushdown)
|
||||||
|
{
|
||||||
|
sts_o7_sensorData.event_sensor4_start_time = sensor_event_time.Seconds;
|
||||||
|
sts_o7_sensorData.event_sensor4_start_timestamp = time_stamp;
|
||||||
|
sts_o7_sensorData.event_sensor4_stop_time = 0;
|
||||||
|
sts_o7_sensorData.event_sensor4_duration = 0;
|
||||||
|
APP_LOG(TS_OFF, VLEVEL_L, "Alarm Mute PushDown ---Timer start: %u\r\n",sts_o7_sensorData.event_sensor4_start_time );
|
||||||
|
}else if (sts_hall3_read==STS_Status_Alarm_Mute_Release)
|
||||||
|
{
|
||||||
|
sts_o7_sensorData.event_sensor4_start_time = 0;
|
||||||
|
sts_o7_sensorData.event_sensor4_start_timestamp = 0;
|
||||||
|
sts_o7_sensorData.event_sensor4_stop_time = sensor_event_time.Seconds;
|
||||||
|
sts_o7_sensorData.event_sensor4_stop_timestamp = time_stamp;
|
||||||
|
//sts_o7_sensorData.over_stay_state = 0;
|
||||||
|
//sts_o7_sensorData.event_sensor2_duration = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSensor4StateChanged(void)
|
void OnSensor4StateChanged(void)
|
||||||
|
@ -1232,6 +1259,25 @@ void OnSensor4StateChanged(void)
|
||||||
else
|
else
|
||||||
sts_o7_sensorData.event_sensor4_stop_time = sensor_event_time.Seconds;
|
sts_o7_sensorData.event_sensor4_stop_time = sensor_event_time.Seconds;
|
||||||
#endif
|
#endif
|
||||||
|
SysTime_t sensor_event_time = SysTimeGetMcuTime();
|
||||||
|
uint32_t time_stamp=STS_Get_Date_Time_Stamp();
|
||||||
|
|
||||||
|
if (sts_hall4_read==STS_Status_Alarm_Mute_Pushdown)
|
||||||
|
{
|
||||||
|
sts_o7_sensorData.event_sensor5_start_time = sensor_event_time.Seconds;
|
||||||
|
sts_o7_sensorData.event_sensor5_start_timestamp = time_stamp;
|
||||||
|
sts_o7_sensorData.event_sensor5_stop_time = 0;
|
||||||
|
sts_o7_sensorData.event_sensor5_duration = 0;
|
||||||
|
APP_LOG(TS_OFF, VLEVEL_L, "Alarm RESET PushDown ---Timer start: %u\r\n",sts_o7_sensorData.event_sensor5_start_time );
|
||||||
|
}else if (sts_hall4_read==STS_Status_Alarm_Mute_Release)
|
||||||
|
{
|
||||||
|
sts_o7_sensorData.event_sensor5_start_time = 0;
|
||||||
|
sts_o7_sensorData.event_sensor5_start_timestamp = 0;
|
||||||
|
sts_o7_sensorData.event_sensor5_stop_time = sensor_event_time.Seconds;
|
||||||
|
sts_o7_sensorData.event_sensor5_stop_timestamp = time_stamp;
|
||||||
|
//sts_o7_sensorData.over_stay_state = 0;
|
||||||
|
//sts_o7_sensorData.event_sensor2_duration = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ void MX_LoRaWAN_Init(void)
|
||||||
SystemApp_Init();
|
SystemApp_Init();
|
||||||
/* USER CODE BEGIN MX_LoRaWAN_Init_2 */
|
/* USER CODE BEGIN MX_LoRaWAN_Init_2 */
|
||||||
//STS_Lamp_Bar_Self_Test_Simple();
|
//STS_Lamp_Bar_Self_Test_Simple();
|
||||||
STS_Lamp_Bar_Self_Test();
|
//STS_Lamp_Bar_Self_Test();
|
||||||
/* USER CODE END MX_LoRaWAN_Init_2 */
|
/* USER CODE END MX_LoRaWAN_Init_2 */
|
||||||
LoRaWAN_Init();
|
LoRaWAN_Init();
|
||||||
/* USER CODE BEGIN MX_LoRaWAN_Init_3 */
|
/* USER CODE BEGIN MX_LoRaWAN_Init_3 */
|
||||||
|
|
|
@ -75,7 +75,7 @@ extern volatile uint32_t event_start_time, event_stop_time;
|
||||||
extern volatile uint16_t sts_unconscious_threshold;
|
extern volatile uint16_t sts_unconscious_threshold;
|
||||||
volatile uint8_t sts_occupancy_overtime_state = 0;
|
volatile uint8_t sts_occupancy_overtime_state = 0;
|
||||||
volatile uint8_t sts_presence_fall_detection=TRUE;
|
volatile uint8_t sts_presence_fall_detection=TRUE;
|
||||||
volatile uint32_t SamplingPeriodicity = 1000; //unit ms
|
volatile uint32_t SamplingPeriodicity = 3000; //unit ms
|
||||||
volatile uint32_t HeartBeatPeriodicity = 120000; //unit ms
|
volatile uint32_t HeartBeatPeriodicity = 120000; //unit ms
|
||||||
volatile uint8_t STS_LoRa_WAN_Joined = 0;
|
volatile uint8_t STS_LoRa_WAN_Joined = 0;
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ volatile uint8_t upload_message_timer=0;
|
||||||
volatile uint8_t heart_beat_timer =0;
|
volatile uint8_t heart_beat_timer =0;
|
||||||
volatile uint32_t wcnt=0;
|
volatile uint32_t wcnt=0;
|
||||||
volatile bool p2_work_finished=true;
|
volatile bool p2_work_finished=true;
|
||||||
uint8_t outbuf[128]={0x0};
|
uint8_t outbuf[255]={0x0};
|
||||||
volatile static bool r_b=true;
|
volatile static bool r_b=true;
|
||||||
volatile sts_cfg_nvm_t sts_cfg_nvm = {
|
volatile sts_cfg_nvm_t sts_cfg_nvm = {
|
||||||
sts_mtmcode1,
|
sts_mtmcode1,
|
||||||
|
@ -222,7 +222,7 @@ typedef enum TxEventType_e
|
||||||
/* USER CODE BEGIN PTD */
|
/* USER CODE BEGIN PTD */
|
||||||
#define YUNHORN_STS_RSS_WAKEUP_CHECK_TIME SamplingPeriodicity //3000 ms
|
#define YUNHORN_STS_RSS_WAKEUP_CHECK_TIME SamplingPeriodicity //3000 ms
|
||||||
#define YUNHORN_STS_SAMPLING_CHECK_TIME SamplingPeriodicity
|
#define YUNHORN_STS_SAMPLING_CHECK_TIME SamplingPeriodicity
|
||||||
#define YUNHORN_STS_HEART_BEAT_CHECK_TIME HeartBeatPeriodicity
|
#define YUNHORN_STS_HEART_BEAT_CHECK_TIME 300000 //300 sec, 5 min
|
||||||
/* USER CODE END PTD */
|
/* USER CODE END PTD */
|
||||||
|
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
@ -487,7 +487,7 @@ static LmHandlerParams_t LmHandlerParams =
|
||||||
/**
|
/**
|
||||||
* @brief Type of Event to generate application Tx
|
* @brief Type of Event to generate application Tx
|
||||||
*/
|
*/
|
||||||
static TxEventType_t EventType = TX_ON_EVENT; //TX_ON_TIMER;//TX_ON_EVENT;
|
static TxEventType_t EventType = TX_ON_TIMER; //TX_ON_TIMER;//TX_ON_EVENT;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Timer to handle the application Tx
|
* @brief Timer to handle the application Tx
|
||||||
|
@ -612,7 +612,7 @@ void LoRaWAN_Init(void)
|
||||||
|
|
||||||
UTIL_TIMER_Create(&TxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnTxTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&TxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnTxTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnJoinTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnJoinTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&STSLampBarColorTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSLampBarColorTimerEvent, NULL);
|
UTIL_TIMER_Create(&STSLampBarColorTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSLampBarColorTimerEvent, NULL);
|
||||||
UTIL_TIMER_Create(&STSDurationCheckTimer, 20*LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSDurationCheckTimerEvent, NULL);
|
UTIL_TIMER_Create(&STSDurationCheckTimer, 20*LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSDurationCheckTimerEvent, NULL);
|
||||||
|
|
||||||
|
@ -684,24 +684,18 @@ void LoRaWAN_Init(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(STS_O7)||defined(STS_O6)
|
#if defined(STS_O7)||defined(STS_O6)
|
||||||
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer,
|
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
|
||||||
YUNHORN_STS_RSS_WAKEUP_CHECK_TIME,
|
|
||||||
UTIL_TIMER_PERIODIC, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
|
|
||||||
//UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
//UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
||||||
|
|
||||||
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer,
|
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, YUNHORN_STS_HEART_BEAT_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
||||||
YUNHORN_STS_HEART_BEAT_CHECK_TIME,
|
|
||||||
UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
|
||||||
//UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
//UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||||
|
|
||||||
UTIL_TIMER_Start(&STSLampBarColorTimer);
|
UTIL_TIMER_Start(&STSLampBarColorTimer);
|
||||||
|
|
||||||
//UTIL_TIMER_Start(&STSDurationCheckTimer);
|
UTIL_TIMER_Start(&STSDurationCheckTimer);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
UTIL_TIMER_Create(&YunhornSTSSamplingCheckTimer,
|
UTIL_TIMER_Create(&YunhornSTSSamplingCheckTimer, YUNHORN_STS_SAMPLING_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSSamplingCheckTimerEvent, NULL);
|
||||||
YUNHORN_STS_SAMPLING_CHECK_TIME,
|
|
||||||
UTIL_TIMER_PERIODIC, OnYunhornSTSSamplingCheckTimerEvent, NULL);
|
|
||||||
UTIL_TIMER_Start(&YunhornSTSSamplingCheckTimer);
|
UTIL_TIMER_Start(&YunhornSTSSamplingCheckTimer);
|
||||||
#endif
|
#endif
|
||||||
/* USER CODE END LoRaWAN_Init_Last */
|
/* USER CODE END LoRaWAN_Init_Last */
|
||||||
|
@ -1116,20 +1110,9 @@ static void OnTxTimerEvent(void *context)
|
||||||
/* USER CODE BEGIN OnTxTimerEvent_1 */
|
/* USER CODE BEGIN OnTxTimerEvent_1 */
|
||||||
|
|
||||||
/* USER CODE END OnTxTimerEvent_1 */
|
/* USER CODE END OnTxTimerEvent_1 */
|
||||||
//heart_beat_timer = 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);
|
||||||
#if 0
|
|
||||||
if (sts_ac_code[0]==0x0) {
|
|
||||||
/* RFAC Challenge */
|
|
||||||
if (rfac_timer < (STS_BURN_IN_RFAC+3)) {
|
|
||||||
rfac_timer ++;
|
|
||||||
|
|
||||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), CFG_SEQ_Prio_0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
/*Wait for next tx slot*/
|
/*Wait for next tx slot*/
|
||||||
|
|
||||||
UTIL_TIMER_Start(&TxTimer);
|
UTIL_TIMER_Start(&TxTimer);
|
||||||
|
@ -1428,10 +1411,14 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
|
||||||
}
|
}
|
||||||
|
|
||||||
heart_beat_timer = 1;
|
heart_beat_timer = 1;
|
||||||
SendTxData();
|
//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(&YunhornSTSRSSWakeUpTimer);
|
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
||||||
UTIL_TIMER_Start(&STSDurationCheckTimer);
|
//UTIL_TIMER_Start(&TxTimer);
|
||||||
|
//UTIL_TIMER_Start(&STSDurationCheckTimer);
|
||||||
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
||||||
|
|
||||||
/* USER CODE END OnJoinRequest_1 */
|
/* USER CODE END OnJoinRequest_1 */
|
||||||
|
@ -1511,8 +1498,6 @@ static void OnTxPeriodicityChanged(uint32_t periodicity)
|
||||||
TxPeriodicity = APP_TX_DUTYCYCLE;
|
TxPeriodicity = APP_TX_DUTYCYCLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//HeartBeatPeriodicity = TxPeriodicity;
|
|
||||||
|
|
||||||
/* Update timer periodicity */
|
/* Update timer periodicity */
|
||||||
UTIL_TIMER_Stop(&TxTimer);
|
UTIL_TIMER_Stop(&TxTimer);
|
||||||
UTIL_TIMER_SetPeriod(&TxTimer, TxPeriodicity);
|
UTIL_TIMER_SetPeriod(&TxTimer, TxPeriodicity);
|
||||||
|
@ -1699,7 +1684,7 @@ static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1749,7 +1734,7 @@ static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity)
|
||||||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||||
|
|
||||||
/* USER CODE BEGIN OnTxPeriodicityChanged_2 */
|
/* USER CODE BEGIN OnTxPeriodicityChanged_2 */
|
||||||
APP_LOG(TS_OFF, VLEVEL_H,"**************** HeartBeatPeriodicity Changed to: %u (ms)\r\n", HeartBeatPeriodicity );
|
APP_LOG(TS_OFF, VLEVEL_H,"**************** HeartBeatPeriodicity = %u (sec)\r\n", HeartBeatPeriodicity/1000 );
|
||||||
/* USER CODE END OnTxPeriodicityChanged_2 */
|
/* USER CODE END OnTxPeriodicityChanged_2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1889,7 +1874,7 @@ static void OnYunhornSTSSamplingCheckTimerEvent(void *context)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
|
||||||
{
|
{
|
||||||
uint8_t i=0, mems_ver, invalid_flag=1;
|
uint8_t i=0, mems_ver, invalid_flag=1;
|
||||||
UTIL_MEM_set_8((void*)outbuf,0x0, sizeof(outbuf));
|
UTIL_MEM_set_8((void*)outbuf,0x0, sizeof(outbuf));
|
||||||
|
@ -2113,6 +2098,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
PME_ON;
|
PME_ON;
|
||||||
|
|
||||||
// 2024-07-31
|
// 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,tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
||||||
|
@ -2127,6 +2113,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
//STS_SENSOR_Power_OFF((tlv_buf[CFG_CMD3]-0x30));
|
//STS_SENSOR_Power_OFF((tlv_buf[CFG_CMD3]-0x30));
|
||||||
PME_OFF;
|
PME_OFF;
|
||||||
// 2024-07-31
|
// 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,tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
||||||
|
@ -2141,6 +2128,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
PME_OFF;
|
PME_OFF;
|
||||||
PME_ON;
|
PME_ON;
|
||||||
// 2024-07-31
|
// 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,tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
||||||
|
@ -2161,15 +2149,16 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
} else if ((char)tlv_buf[CFG_CMD5] == 'H') {
|
} else if ((char)tlv_buf[CFG_CMD5] == 'H') {
|
||||||
periodicity_length *= 3600;
|
periodicity_length *= 3600;
|
||||||
}
|
}
|
||||||
TxPeriodicity = periodicity_length*1000; //translate to 1000ms=1s
|
periodicity_length = periodicity_length*1000; //translate to 1000ms=1s
|
||||||
|
|
||||||
|
|
||||||
//OnTxPeriodicityChanged(TxPeriodicity);
|
//OnTxPeriodicityChanged(TxPeriodicity);
|
||||||
#if defined(STS_O6)||defined(STS_O7)
|
#if defined(STS_O6)||defined(STS_O7)
|
||||||
HeartBeatPeriodicity = TxPeriodicity;
|
HeartBeatPeriodicity = periodicity_length;
|
||||||
OnYunhornSTSHeartBeatPeriodicityChanged(TxPeriodicity);
|
OnYunhornSTSHeartBeatPeriodicityChanged(periodicity_length);
|
||||||
#endif
|
#endif
|
||||||
// 2024-07-31
|
// 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,tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
|
|
||||||
|
@ -2185,7 +2174,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
sts_cfg_nvm.sts_service_mask = (uint8_t)sts_service_mask;
|
sts_cfg_nvm.sts_service_mask = (uint8_t)sts_service_mask;
|
||||||
|
|
||||||
OnStoreSTSCFGContextRequest();
|
OnStoreSTSCFGContextRequest();
|
||||||
APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Periodicity Changed to [ %d ] Seconds\r\n", periodicity_length);
|
//APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Periodicity Changed to [ %d ] Seconds\r\n", periodicity_length);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
STS_SENSOR_Upload_Config_Invalid_Message();
|
STS_SENSOR_Upload_Config_Invalid_Message();
|
||||||
|
@ -2217,6 +2206,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
OnYunhornSTSSamplingPeriodicityChanged(SamplingPeriodicity);
|
OnYunhornSTSSamplingPeriodicityChanged(SamplingPeriodicity);
|
||||||
#endif
|
#endif
|
||||||
// 2024-07-31
|
// 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,tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
|
|
||||||
|
@ -2281,6 +2271,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
OnStoreSTSCFGContextRequest();
|
OnStoreSTSCFGContextRequest();
|
||||||
|
|
||||||
i=0; // Step 1: Prepare status update message
|
i=0; // Step 1: Prepare status update message
|
||||||
|
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, tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
|
|
||||||
|
@ -2315,6 +2306,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
OnStoreSTSCFGContextRequest();
|
OnStoreSTSCFGContextRequest();
|
||||||
|
|
||||||
i=0; // Step 1: Prepare status update message
|
i=0; // Step 1: Prepare status update message
|
||||||
|
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, tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "###### Fall detection CFG = %s\r\n",(char*)outbuf);
|
APP_LOG(TS_OFF, VLEVEL_L, "###### Fall detection CFG = %s\r\n",(char*)outbuf);
|
||||||
|
@ -2343,6 +2335,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
OnStoreSTSCFGContextRequest();
|
OnStoreSTSCFGContextRequest();
|
||||||
|
|
||||||
i=0; // Step 1: Prepare status update message
|
i=0; // Step 1: Prepare status update message
|
||||||
|
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, tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "###### Occupancy/Overstay/unconscious config changed =%s\r\n",(char *)outbuf);
|
APP_LOG(TS_OFF, VLEVEL_L, "###### Occupancy/Overstay/unconscious config changed =%s\r\n",(char *)outbuf);
|
||||||
|
@ -2364,7 +2357,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
}
|
}
|
||||||
|
|
||||||
i=0; // Step 1: Prepare status update message
|
i=0; // Step 1: Prepare status update message
|
||||||
|
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, tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "###### P Work mode switched =%s\r\n",(char *)outbuf);
|
APP_LOG(TS_OFF, VLEVEL_L, "###### P Work mode switched =%s\r\n",(char *)outbuf);
|
||||||
|
@ -2410,6 +2403,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
STS_PRESENCE_SENSOR_NVM_CFG();
|
STS_PRESENCE_SENSOR_NVM_CFG();
|
||||||
|
|
||||||
i=0; // Step 1: Prepare status update message
|
i=0; // Step 1: Prepare status update message
|
||||||
|
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, tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Full CFG=%s\r\n",(char *)outbuf);
|
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Full CFG=%s\r\n",(char *)outbuf);
|
||||||
|
@ -2448,6 +2442,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
STS_PRESENCE_SENSOR_NVM_CFG_SIMPLE();
|
STS_PRESENCE_SENSOR_NVM_CFG_SIMPLE();
|
||||||
|
|
||||||
i=0; // Step 1: Prepare status update message
|
i=0; // Step 1: Prepare status update message
|
||||||
|
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, tlv_buf_size);
|
||||||
i = tlv_buf_size;
|
i = tlv_buf_size;
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Simple CFG=%s\r\n",(char*)outbuf);
|
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Simple CFG=%s\r\n",(char*)outbuf);
|
||||||
|
@ -2527,9 +2522,8 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
}
|
}
|
||||||
|
|
||||||
i=0;
|
i=0;
|
||||||
for (uint8_t j=0; j <(tlv_buf_size) ; j++) {
|
UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf));
|
||||||
outbuf[i++] = (uint8_t) tlv_buf[j];
|
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf, tlv_buf_size);
|
||||||
}
|
|
||||||
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2657,7 +2651,7 @@ void OnStoreSTSCFGContextRequest(void)
|
||||||
/* USER CODE END OnStoreContextRequest_Last */
|
/* USER CODE END OnStoreContextRequest_Last */
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnRestoreSTSCFGContextRequest(uint8_t *cfg_in_nvm)
|
void OnRestoreSTSCFGContextRequest(void *cfg_in_nvm)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN OnRestoreSTSCFGContextRequest_1 */
|
/* USER CODE BEGIN OnRestoreSTSCFGContextRequest_1 */
|
||||||
// uint8_t nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]="", nvm_store_size=YUNHORN_STS_MAX_NVM_CFG_SIZE;
|
// uint8_t nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]="", nvm_store_size=YUNHORN_STS_MAX_NVM_CFG_SIZE;
|
||||||
|
@ -2665,7 +2659,8 @@ void OnRestoreSTSCFGContextRequest(uint8_t *cfg_in_nvm)
|
||||||
APP_LOG(TS_OFF, VLEVEL_M, "Restore NVM start\r\n");
|
APP_LOG(TS_OFF, VLEVEL_M, "Restore NVM start\r\n");
|
||||||
|
|
||||||
/* USER CODE END OnRestoreSTSCFGContextRequest_1 */
|
/* USER CODE END OnRestoreSTSCFGContextRequest_1 */
|
||||||
UTIL_MEM_cpy_8(cfg_in_nvm, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
FLASH_IF_Read(cfg_in_nvm, STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
||||||
|
//UTIL_MEM_cpy_8(cfg_in_nvm, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
||||||
/* USER CODE BEGIN OnRestoreSTSCFGContextRequest_Last */
|
/* USER CODE BEGIN OnRestoreSTSCFGContextRequest_Last */
|
||||||
|
|
||||||
|
|
||||||
|
@ -2682,7 +2677,7 @@ void STS_REBOOT_CONFIG_Init(void)
|
||||||
|
|
||||||
/* USER CODE END OnRestoreContextRequest_1 */
|
/* USER CODE END OnRestoreContextRequest_1 */
|
||||||
//UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
//UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
||||||
FLASH_IF_Read((void*)nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
FLASH_IF_Read(nvm_stored_value, STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
|
||||||
/* USER CODE BEGIN OnRestoreContextRequest_Last */
|
/* USER CODE BEGIN OnRestoreContextRequest_Last */
|
||||||
|
|
||||||
//#if (defined(STS_O7)||defined(STS_O5) || defined(STS_O6) || defined(STS_R0) || defined(STS_R5)|| defined(STS_R4)|| defined(STS_R1D))
|
//#if (defined(STS_O7)||defined(STS_O5) || defined(STS_O6) || defined(STS_R0) || defined(STS_R5)|| defined(STS_R4)|| defined(STS_R1D))
|
||||||
|
@ -2748,9 +2743,7 @@ void OnRestoreSTSCFGContextProcess(void)
|
||||||
} else if ((char) sts_cfg_nvm.unit =='S') {
|
} else if ((char) sts_cfg_nvm.unit =='S') {
|
||||||
periodicity *= 1;
|
periodicity *= 1;
|
||||||
}
|
}
|
||||||
periodicity = (periodicity > 10)? periodicity : 10; // in seconds unit
|
periodicity *= 1000; // to ms
|
||||||
//TxPeriodicity= periodicity*1000; // to ms
|
|
||||||
//OnTxPeriodicityChanged(TxPeriodicity); // in msec unit
|
|
||||||
|
|
||||||
uint32_t sampling = (sts_cfg_nvm.sampling);
|
uint32_t sampling = (sts_cfg_nvm.sampling);
|
||||||
if ((char)sts_cfg_nvm.s_unit =='M') {
|
if ((char)sts_cfg_nvm.s_unit =='M') {
|
||||||
|
@ -2766,6 +2759,7 @@ void OnRestoreSTSCFGContextProcess(void)
|
||||||
{ // ensure it's not in production yet
|
{ // ensure it's not in production yet
|
||||||
OnTxPeriodicityChanged(APP_TX_DUTYCYCLE); // in msec unit
|
OnTxPeriodicityChanged(APP_TX_DUTYCYCLE); // in msec unit
|
||||||
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
||||||
|
OnYunhornSTSSamplingPeriodicityChanged(sampling); // in m-sec unit
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
//OnTxPeriodicityChanged(TxPeriodicity); // in msec unit
|
//OnTxPeriodicityChanged(TxPeriodicity); // in msec unit
|
||||||
|
@ -2775,7 +2769,8 @@ void OnRestoreSTSCFGContextProcess(void)
|
||||||
HeartBeatPeriodicity = samplingperiodicity*1000;
|
HeartBeatPeriodicity = samplingperiodicity*1000;
|
||||||
#endif
|
#endif
|
||||||
#if defined(STS_O7)|| defined(STS_O6) ||defined(STS_O5)
|
#if defined(STS_O7)|| defined(STS_O6) ||defined(STS_O5)
|
||||||
OnYunhornSTSHeartBeatPeriodicityChanged(periodicity*1000);
|
HeartBeatPeriodicity = periodicity;
|
||||||
|
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
||||||
OnYunhornSTSSamplingPeriodicityChanged(sampling); // in m-sec unit
|
OnYunhornSTSSamplingPeriodicityChanged(sampling); // in m-sec unit
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2813,7 +2808,7 @@ void OnRestoreSTSCFGContextProcess(void)
|
||||||
if ((sts_version == sts_cfg_nvm.version)&& (NVM_CFG_PARAMETER_SIZE == sts_cfg_nvm.length))
|
if ((sts_version == sts_cfg_nvm.version)&& (NVM_CFG_PARAMETER_SIZE == sts_cfg_nvm.length))
|
||||||
{
|
{
|
||||||
STS_PRESENCE_SENSOR_Init();
|
STS_PRESENCE_SENSOR_Init();
|
||||||
//STS_PRESENCE_SENSOR_RSS_Init();
|
STS_PRESENCE_SENSOR_RSS_Init();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue