pixel_network_rm2 #7
|
@ -50,7 +50,7 @@ extern "C" {
|
|||
* #define VLEVEL_M 2 functional traces
|
||||
* #define VLEVEL_H 3 all traces
|
||||
*/
|
||||
#define VERBOSE_LEVEL VLEVEL_M
|
||||
#define VERBOSE_LEVEL VLEVEL_H
|
||||
|
||||
/**
|
||||
* @brief Enable trace logs
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
typedef struct ws2812b_e {
|
||||
//uint16_t head[3];
|
||||
uint16_t GRB[WS2812B_DATA_LEN];
|
||||
uint16_t GRB[WS2812B_DATA_LEN+RESET_PULSE];
|
||||
uint16_t tail;
|
||||
} WS2812B_FrameTypeDef;
|
||||
|
||||
|
@ -198,6 +198,7 @@ void STS_Lamp_Bar_Set_STS_RGB_Color(uint8_t sts_lamp_color, uint8_t lum)
|
|||
STS_Lamp_Bar_Set_RGB_Color(lum, lum, lum);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
// 2024-08-15 volatile distance_measure_cfg_t distance_cfg={0.8, 3.5, 2, 63, 2, 10, 0.5, 1.3, 0.2};
|
||||
//volatile distance_measure_cfg_t distance_cfg={0.8, 3.5, 4, 63, 2, 10, 0.5, 1.3, 0.2};
|
||||
volatile distance_measure_cfg_t distance_cfg={0.8, 3.5, 4, 63, 2, 10, 0.4, 1.2, 0.2};
|
||||
|
||||
//volatile distance_measure_cfg_t distance_cfg={1.5, 3.3, 2, 63, 4, 10, 0.8182f, 0.4, 0.2};
|
||||
extern volatile uint16_t sts_distance_rss_distance, sts_sensor_install_height;
|
||||
|
||||
|
@ -75,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;
|
||||
}
|
||||
|
||||
|
@ -90,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;
|
||||
|
@ -106,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;
|
||||
|
@ -115,6 +118,7 @@ int sts_distance_rss_detector_distance(void)
|
|||
bool success = true;
|
||||
const int iterations = 5; //5;
|
||||
uint16_t number_of_peaks = 1; // FSB first significant Bin
|
||||
|
||||
acc_detector_distance_result_t result[number_of_peaks];
|
||||
acc_detector_distance_result_info_t result_info;
|
||||
float tmp_distance = 0.0f;
|
||||
|
@ -125,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++)
|
||||
|
@ -139,6 +143,7 @@ int sts_distance_rss_detector_distance(void)
|
|||
sts_sensor_install_height = (uint16_t)sts_distance_rss_distance;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\nAverage Distance =%u mm --- Assume Sensor Install Height = %u mm\r\n", (uint16_t)sts_distance_rss_distance, (uint16_t)sts_sensor_install_height);
|
||||
|
||||
|
||||
bool deactivated = acc_detector_distance_deactivate(distance_handle);
|
||||
|
||||
acc_detector_distance_destroy(&distance_handle);
|
||||
|
|
|
@ -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;
|
||||
|
@ -114,6 +114,7 @@ extern volatile uint8_t motion_in_hs_zone[12][10]; //0.4*12=4.8meter high, past
|
|||
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_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
|
||||
|
@ -243,6 +244,7 @@ void STS_YunhornSTSEventP1_Process(void)
|
|||
{
|
||||
sts_reed_hall_changed_flag |= 0x02;
|
||||
}
|
||||
|
||||
last_sts_reed_hall_2_result = sts_reed_hall_2_result;
|
||||
|
||||
sts_reed_hall_3_result = sts_hall3_read;//HALL3_STATE;// sts_hall3_read;
|
||||
|
@ -520,6 +522,7 @@ void STS_Combined_Status_Processing(void)
|
|||
{
|
||||
sts_status_color = STS_RED_BLUE;
|
||||
}
|
||||
|
||||
break;
|
||||
#ifdef USE_ACCONEER_A111
|
||||
case STS_RSS_MODE:
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "sys_sensors.h"
|
||||
#include "flash_if.h"
|
||||
#include "main.h"
|
||||
#include <stdio.h>
|
||||
#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,21 +88,21 @@ 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,
|
||||
sts_version,
|
||||
sts_hardware_ver,
|
||||
0x05, //Regular TxPeriodicity interval
|
||||
'M', //Uplink data interval unit, for heart-beat uplink
|
||||
0x01, //Heart-beat interval or Sampling interval
|
||||
'S', //Sampling sensor interval unit, for real-time sensing of MEMS
|
||||
0x04, // dual mode=4, uni_mode =5
|
||||
0x00, // sts service mask
|
||||
0x00, //sts_ioc_mask
|
||||
0x20, //32 bytes, below start of p[0] 20 BYTES AND 12 BYTES FALL DOWN CFG
|
||||
{ // below 20 bytes
|
||||
0x05,
|
||||
'M', //Uplink data interval for heart-beat uplink
|
||||
0x03,
|
||||
'S', //Sampling sensor interval for real-time sensing of MEMS
|
||||
0x03, // dual mode=4, uni_mode =5, RSS mode =3
|
||||
0x00, // sts service mask
|
||||
0x00, //sts_ioc_mask
|
||||
0x20, //32 bytes, below start of p[0] 20 BYTES AND 12 BYTES FALL DOWN CFG
|
||||
{ // below 20 bytes
|
||||
0x08, //start_m [8]*0.1 meter =0.8
|
||||
0x19, //lenght_m 0x19=[25]*0.1=2.5f meter
|
||||
0x0F, //threshold 0X0F=[15]*0.1=1.5f
|
||||
|
@ -960,6 +962,7 @@ static void SendTxData(void)
|
|||
AppData.Port = (uint8_t)YUNHORN_STS_O7_LORA_APP_DATA_PORT;
|
||||
} else if ((sts_work_mode == STS_RSS_MODE)||(sts_work_mode == STS_REEDSWITCH_MODE)||(sts_work_mode == STS_NETWORK_MODE)||(sts_work_mode == STS_WIRED_MODE))
|
||||
{
|
||||
|
||||
AppData.Port = (uint8_t)YUNHORN_STS_O2_LORA_APP_DATA_PORT;
|
||||
}
|
||||
|
||||
|
@ -974,6 +977,7 @@ static void SendTxData(void)
|
|||
else if (sts_work_mode == STS_UNI_MODE)
|
||||
AppData.Port = (uint8_t)YUNHORN_STS_O7_LORA_APP_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
||||
else if ((sts_work_mode == STS_RSS_MODE)||(sts_work_mode == STS_REEDSWITCH_MODE)||(sts_work_mode == STS_NETWORK_MODE)||(sts_work_mode == STS_WIRED_MODE))
|
||||
|
||||
AppData.Port = (uint8_t)YUNHORN_STS_O2_LORA_APP_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
||||
|
||||
//AppData.Port = (uint8_t)sts_sendhtbtport; //LORAWAN_USER_APP_PORT+1;
|
||||
|
@ -1435,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
|
||||
{
|
||||
|
@ -1449,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);
|
||||
|
@ -1465,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);
|
||||
|
||||
|
||||
}
|
||||
|
@ -1793,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 */
|
||||
}
|
||||
|
||||
|
@ -1940,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])
|
||||
{
|
||||
|
@ -2166,11 +2175,11 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s
|
|||
{
|
||||
//STS_SENSOR_Power_ON((uint8_t)(tlv_buf[CFG_CMD3]-0x30));
|
||||
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);
|
||||
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();
|
||||
|
@ -2184,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();
|
||||
|
@ -2383,6 +2392,7 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s
|
|||
} else if (tlv_buf_size == 7 && tlv_buf[CFG_CMD4]=='F') // Change fall detection
|
||||
{
|
||||
invalid_flag = 0; // P 1 1 F A B C
|
||||
|
||||
if (((tlv_buf[CFG_CMD5] >='0') && (tlv_buf[CFG_CMD5]<='9')) && ((tlv_buf[CFG_CMD6]<='9') && (tlv_buf[CFG_CMD6]>='0'))
|
||||
&& ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0'))) //&& ((tlv_buf[CFG_CMD8]<='9') && (tlv_buf[CFG_CMD8]>='0')))
|
||||
{
|
||||
|
@ -2423,14 +2433,14 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s
|
|||
|
||||
}else if (tlv_buf_size == 8 && tlv_buf[CFG_CMD4]=='O') // Change occupancy/motionless/ unconscious overtime threshold
|
||||
{
|
||||
invalid_flag = 0; // P 1 1 O A B C D
|
||||
invalid_flag = 0; // P 1 1 O M O U A
|
||||
if (((tlv_buf[CFG_CMD5] >='0') && (tlv_buf[CFG_CMD5]<='9')) && ((tlv_buf[CFG_CMD6]<='9') && (tlv_buf[CFG_CMD6]>='0'))
|
||||
&& ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0'))&& ((tlv_buf[CFG_CMD8]<='9') && (tlv_buf[CFG_CMD8]>='0')))
|
||||
{
|
||||
sts_motionless_duration_threshold_in_min = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30); //Motionless duration in min
|
||||
sts_occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30)*10; //Long occupation in min
|
||||
sts_unconscious_level_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+1)*128; //motion level threshold less than 1280
|
||||
sts_alarm_mute_reset_timer_in_10sec = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30)*10; //alarm mute reset timer in 10 sec
|
||||
sts_motionless_duration_threshold_in_min = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30); //M: Motionless duration in min
|
||||
sts_occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30)*10; //O: Long occupation in min
|
||||
sts_unconscious_level_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+1)*128; //U: motion level threshold less than 1280
|
||||
sts_alarm_mute_reset_timer_in_10sec = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30)*10; //A: alarm mute reset timer in 10 sec
|
||||
|
||||
sts_cfg_nvm.motionless_duration_threshold_in_min = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30);
|
||||
sts_cfg_nvm.occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30);
|
||||
|
@ -2594,6 +2604,11 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s
|
|||
{
|
||||
if ((tlv_buf[CFG_CMD4+j] < '0') || (tlv_buf[CFG_CMD4+j] >'9'))
|
||||
{
|
||||
|
||||
//sts_cfg_nvm.p[j] = (uint8_t)((tlv_buf[CFG_CMD4+j] - 0x30)&0xff);
|
||||
//APP_LOG(TS_OFF,VLEVEL_H,"\r\n tlv_buf %d = %02x cfg->p[%d]=%02x \r\n",j,tlv_buf[CFG_CMD4+j], j, sts_cfg_nvm.p[j]);
|
||||
|
||||
} else {
|
||||
invalid_flag = 1;
|
||||
}
|
||||
}
|
||||
|
@ -2614,6 +2629,7 @@ void USER_APP_AUTO_RESPONDER_Parse(uint8_t *parse_buffer, uint8_t parse_buffer_s
|
|||
i = tlv_buf_size;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "###### RSS Simple CFG=%s\r\n",(char*)outbuf);
|
||||
|
||||
|
||||
// Step 2: Save valid config to NVM
|
||||
sts_cfg_nvm.mtmcode1 = sts_mtmcode1;
|
||||
sts_cfg_nvm.mtmcode2 = sts_mtmcode2;
|
||||
|
@ -2763,6 +2779,7 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, uint8
|
|||
|
||||
void OnStoreSTSCFGContextRequest(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN OnStoreContextRequest_1 */
|
||||
uint8_t i=0,j=0,nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
|
||||
|
||||
|
@ -2772,6 +2789,9 @@ void OnStoreSTSCFGContextRequest(void)
|
|||
nvm_store_value[i++] = sts_cfg_nvm.mtmcode2;
|
||||
nvm_store_value[i++] = sts_cfg_nvm.version;
|
||||
nvm_store_value[i++] = sts_cfg_nvm.hardware_ver;
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\r\n\n\n\n\n STS_CFG_NVM periodicity=%02x unit=%02x \r\n",sts_cfg_nvm.periodicity,sts_cfg_nvm.unit);
|
||||
|
||||
nvm_store_value[i++] = sts_cfg_nvm.periodicity;
|
||||
nvm_store_value[i++] = sts_cfg_nvm.unit;
|
||||
nvm_store_value[i++] = sts_cfg_nvm.sampling;
|
||||
|
@ -2867,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 */
|
||||
|
@ -2923,7 +2946,7 @@ void STS_REBOOT_CONFIG_Init(void)
|
|||
}
|
||||
}
|
||||
//#endif
|
||||
|
||||
STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value);
|
||||
OnRestoreSTSCFGContextProcess();
|
||||
|
||||
|
||||
|
@ -3009,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();
|
||||
|
@ -3020,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<YUNHORN_STS_MAX_NVM_CFG_SIZE; i++)
|
||||
{
|
||||
if (i%16==0) APP_LOG(TS_OFF, VLEVEL_M, "\n");
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "%02X ", store_value[i]);
|
||||
|
||||
}
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\n\r");
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\n###############################################\n\r");
|
||||
}
|
||||
|
||||
void STS_SENSOR_Distance_Test_Process(void)
|
||||
{
|
||||
#if defined(STS_O6)||defined(STS_O7)
|
||||
|
@ -3102,7 +3141,7 @@ uint32_t STS_Get_Date_Time_Stamp(void)
|
|||
UnixEpoch.Seconds -= 18; /*removing leap seconds*/
|
||||
|
||||
SysTimeLocalTime(UnixEpoch.Seconds, &localtime);
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "UTC TIME:%02dh%02dm%02ds on %02d/%02d/%04d\r\n",
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "UTC TIME:%02dh%02dm%02ds on %02d/%02d/%04d\r\n",
|
||||
localtime.tm_hour, localtime.tm_min, localtime.tm_sec,
|
||||
localtime.tm_mday, localtime.tm_mon + 1, localtime.tm_year + 1900);
|
||||
|
||||
|
|
|
@ -154,9 +154,9 @@
|
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1119592399" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.2024044405" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CORE_CM4"/>
|
||||
<listOptionValue builtIn="false" value="STS_P2"/>
|
||||
<listOptionValue builtIn="false" value="CLOCK_SYNC"/>
|
||||
<listOptionValue builtIn="false" value="RM2_1"/>
|
||||
<listOptionValue builtIn="false" value="RM2"/>
|
||||
<listOptionValue builtIn="false" value="STS_O7"/>
|
||||
<listOptionValue builtIn="false" value="YUNHORN_STS_RANDOM"/>
|
||||
<listOptionValue builtIn="false" value="STM32WLE5xx"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -71,7 +71,7 @@ main-build: STS_O7.elf secondary-outputs
|
|||
|
||||
# Tool invocations
|
||||
STS_O7.elf STS_O7.map: $(OBJS) $(USER_OBJS) D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
|
||||
arm-none-eabi-gcc -o "STS_O7.elf" @"objects.list" $(USER_OBJS) -Wl,--start-group $(LIBS) -Wl,--end-group -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="STS_O7.map" -Wl,--gc-sections -static -L"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\rss\lib" -L../../../../../../../Middlewares/ST/STM32_Cryptographic/lib -Xlinker -no-enum-size-warning -z noexecstack --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
|
||||
arm-none-eabi-gcc -o "STS_O7.elf" @"objects.list" $(USER_OBJS) -Wl,--start-group $(LIBS) -Wl,--end-group -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="STS_O7.map" -Wl,--gc-sections -static -L"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\STM32CubeIDE\Drivers\rss\lib" -L../../../../../../../Middlewares/ST/STM32_Cryptographic/lib -Xlinker -no-enum-size-warning -z noexecstack --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
|
||||
@echo 'Finished building target: $@'
|
||||
@echo ' '
|
||||
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.cubeprog_external_loaders" value="[]"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth__pwd_enable" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_certif_path" value=""/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_check_enable" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_key_path" value=""/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_permission" value=""/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_pwd_file" value=""/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/>
|
||||
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
|
||||
|
@ -34,7 +36,7 @@
|
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\YUNHORN_STS_E5CC_AS923_POC\STM32CubeIDE\Release\st-link_gdbserver_log.txt"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="none"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/>
|
||||
|
|
|
@ -43,10 +43,14 @@ 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
|
||||
******************************************************************************
|
||||
2024-08-05 PIXEL-NETWORK RM2
|
||||
|
||||
=======
|
||||
2024-07-30 revert back ...not good for alarm so far
|
||||
2024-08-06 start focus on fall detection
|
||||
2024-08-06 fall detection for O7, Motion detection for O6
|
||||
2024-08-28 STS-P2
|
||||
*****************************************************************************
|
||||
|
||||
2025-03-12 PIXEL-NETWORK WITH RESET TO FACTORY DEFAULT CMD
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue