|
|
|
@ -1445,7 +1445,7 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
|
|
|
|
|
//UTIL_TIMER_Start(&STSDurationCheckTimer);
|
|
|
|
|
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
|
|
|
|
|
|
|
|
|
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_ONESHOT, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
|
|
|
|
|
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
|
|
|
|
|
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
|
|
|
|
|
|
|
|
|
STS_SENSOR_Distance_Test_Process();
|
|
|
|
@ -1712,8 +1712,9 @@ static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context)
|
|
|
|
|
if ((STS_LoRa_WAN_Joined != 0)&&(sts_rss_result_changed_flag==1))
|
|
|
|
|
{
|
|
|
|
|
sts_rss_result_changed_flag = 0;
|
|
|
|
|
APP_LOG(TS_OFF,VLEVEL_M,"\r\n Wakeup Timer ======== Send Tx Result=\r\n");
|
|
|
|
|
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
|
|
|
|
APP_LOG(TS_OFF,VLEVEL_M,"\r\n Wakeup Timer ======== Send Tx Result\r\n");
|
|
|
|
|
SendTxData();
|
|
|
|
|
//UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
|
|
|
|
//if ((last_sts_rss_result ==STS_RESULT_NO_MOTION)&& (sts_rss_result==STS_RESULT_MOTION))
|
|
|
|
|
{
|
|
|
|
|
//OnSensor3StateChanged();
|
|
|
|
@ -1722,7 +1723,7 @@ static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
|
|
|
|
//UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2488,22 +2489,48 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
|
|
|
|
|
invalid_flag = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else if (tlv_buf_size >= CFG_CMD_RSS_FULL_SIZE)
|
|
|
|
|
} else if (tlv_buf_size == CFG_CMD_RSS_FULL_SIZE)
|
|
|
|
|
{
|
|
|
|
|
invalid_flag = 0;
|
|
|
|
|
|
|
|
|
|
for (j =0; j < CFG_CMD_RSS_FULL_SIZE; j++)
|
|
|
|
|
for (j =0; j < CFG_CMD_RSS_FULL_SIZE-3; j++)
|
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
//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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
i=0;
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_START_M] = (uint8_t)((tlv_buf[CFG_CMD4] - 0x30)*10+(tlv_buf[CFG_CMD5] - 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_LENGTH_M] = (uint8_t)((tlv_buf[CFG_CMD6] - 0x30)*10+(tlv_buf[CFG_CMD7] - 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_THRESHOLD] = (uint8_t)((tlv_buf[CFG_CMD8] - 0x30)*10+(tlv_buf[CFG_CMD9] - 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_RECEIVER_GAIN] = (uint8_t)((tlv_buf[CFG_CMD10]- 0x30)*10+(tlv_buf[CFG_CMD11]- 0x30));
|
|
|
|
|
|
|
|
|
|
if (invalid_flag != 1)
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_PROFILE] = (uint8_t)((tlv_buf[CFG_CMD12]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_RATE_TRACKING] = (uint8_t)((tlv_buf[CFG_CMD13]- 0x30)*10+(tlv_buf[CFG_CMD14]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_RATE_PRESENCE] = (uint8_t)((tlv_buf[CFG_CMD15]- 0x30)*10+(tlv_buf[CFG_CMD16]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_HWAAS] = (uint8_t)((tlv_buf[CFG_CMD17]- 0x30)*10+(tlv_buf[CFG_CMD18]- 0x30));
|
|
|
|
|
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_NBR_REMOVED_PC] = (uint8_t)((tlv_buf[CFG_CMD19]- 0x30));
|
|
|
|
|
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_ITE_DEVIATION] = (uint8_t)((tlv_buf[CFG_CMD20]- 0x30)*10+(tlv_buf[CFG_CMD21]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_ITE_FAST_CUTOFF] = (uint8_t)((tlv_buf[CFG_CMD22]- 0x30)*10+(tlv_buf[CFG_CMD23]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_ITE_SLOW_CUTOFF] = (uint8_t)((tlv_buf[CFG_CMD24]- 0x30)*10+(tlv_buf[CFG_CMD25]- 0x30));
|
|
|
|
|
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_ITR_TIME] = (uint8_t)((tlv_buf[CFG_CMD26]- 0x30)*10+(tlv_buf[CFG_CMD27]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_ITR_WEIGHT] = (uint8_t)((tlv_buf[CFG_CMD28]- 0x30)*10+(tlv_buf[CFG_CMD29]- 0x30));
|
|
|
|
|
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_OUTPUT_TIME] = (uint8_t)((tlv_buf[CFG_CMD30]- 0x30)*10+(tlv_buf[CFG_CMD31]- 0x30));
|
|
|
|
|
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_DOWNSAMPLING_FACTOR] = (uint8_t)((tlv_buf[CFG_CMD32]- 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_POWER_MODE] = (uint8_t)((tlv_buf[CFG_CMD33]- 0x30));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (invalid_flag == 0)
|
|
|
|
|
{
|
|
|
|
|
STS_PRESENCE_SENSOR_NVM_CFG();
|
|
|
|
|
|
|
|
|
@ -2520,28 +2547,33 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
|
|
|
|
|
sts_cfg_nvm.hardware_ver = sts_hardware_ver;
|
|
|
|
|
sts_cfg_nvm.work_mode = sts_work_mode;
|
|
|
|
|
sts_cfg_nvm.sts_service_mask = sts_service_mask;
|
|
|
|
|
sts_cfg_nvm.length = CFG_CMD_RSS_FULL_SIZE;
|
|
|
|
|
//sts_cfg_nvm.length = CFG_CMD_RSS_FULL_SIZE;
|
|
|
|
|
|
|
|
|
|
OnStoreSTSCFGContextRequest();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else if (tlv_buf_size >= CFG_CMD_RSS_SIMPLE_SIZE)
|
|
|
|
|
} else if (tlv_buf_size == CFG_CMD_RSS_SIMPLE_SIZE)
|
|
|
|
|
{
|
|
|
|
|
//Validation check
|
|
|
|
|
invalid_flag = 0;
|
|
|
|
|
|
|
|
|
|
for (j =0; j < CFG_CMD_RSS_SIMPLE_SIZE; j++)
|
|
|
|
|
#if 1
|
|
|
|
|
for (j =0; j < CFG_CMD_RSS_SIMPLE_SIZE-3; j++)
|
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
//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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_START_M] = (uint8_t)((tlv_buf[CFG_CMD4] - 0x30)*10+(tlv_buf[CFG_CMD5] - 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_LENGTH_M] = (uint8_t)((tlv_buf[CFG_CMD6] - 0x30)*10+(tlv_buf[CFG_CMD7] - 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_THRESHOLD] = (uint8_t)((tlv_buf[CFG_CMD8] - 0x30)*10+(tlv_buf[CFG_CMD9] - 0x30));
|
|
|
|
|
sts_cfg_nvm.p[RSS_CFG_RECEIVER_GAIN] = (uint8_t)((tlv_buf[CFG_CMD10]- 0x30)*10+(tlv_buf[CFG_CMD11]- 0x30));
|
|
|
|
|
|
|
|
|
|
if (invalid_flag != 1)
|
|
|
|
|
if (invalid_flag == 0)
|
|
|
|
|
{
|
|
|
|
|
STS_PRESENCE_SENSOR_NVM_CFG_SIMPLE();
|
|
|
|
|
|
|
|
|
@ -2549,7 +2581,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
|
|
|
|
|
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;
|
|
|
|
|
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Simple CFG=%s\r\n",(char*)outbuf);
|
|
|
|
|
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;
|
|
|
|
@ -2558,7 +2590,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
|
|
|
|
|
sts_cfg_nvm.hardware_ver = sts_hardware_ver;
|
|
|
|
|
sts_cfg_nvm.work_mode = sts_work_mode;
|
|
|
|
|
sts_cfg_nvm.sts_service_mask = sts_service_mask;
|
|
|
|
|
sts_cfg_nvm.length = CFG_CMD_RSS_SIMPLE_SIZE;
|
|
|
|
|
//sts_cfg_nvm.length = CFG_CMD_RSS_SIMPLE_SIZE;
|
|
|
|
|
|
|
|
|
|
OnStoreSTSCFGContextRequest();
|
|
|
|
|
}
|
|
|
|
@ -2913,7 +2945,7 @@ void OnRestoreSTSCFGContextProcess(void)
|
|
|
|
|
// if ((sts_version == sts_cfg_nvm.version)&& (NVM_CFG_PARAMETER_SIZE == sts_cfg_nvm.length))
|
|
|
|
|
{
|
|
|
|
|
STS_PRESENCE_SENSOR_Init();
|
|
|
|
|
//STS_PRESENCE_SENSOR_RSS_Init();
|
|
|
|
|
STS_PRESENCE_SENSOR_RSS_Init();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
//STS_SENSOR_Distance_Test_Process();
|
|
|
|
|