updated for heart-beat, sensor power on-off before and after measure.
This commit is contained in:
parent
d5415ac9ac
commit
9e0a206e9b
|
@ -47,7 +47,7 @@ extern "C" {
|
|||
/**
|
||||
* @brief Verbose level for all trace logs
|
||||
*/
|
||||
#define VERBOSE_LEVEL VLEVEL_M
|
||||
#define VERBOSE_LEVEL VLEVEL_L
|
||||
|
||||
/**
|
||||
* @brief Enable trace logs
|
||||
|
|
|
@ -269,10 +269,13 @@ void STS_YunhornSTSEventP3_Process(void)
|
|||
*/
|
||||
void STS_YunhornSTSEventP4_Process(void)
|
||||
{
|
||||
|
||||
STS_SENSOR_Power_ON(0);
|
||||
STS_SENSOR_Power_OFF(0);
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\r\n P4 Testing Process\r\n");
|
||||
STS_TOF_VL53L0X_Range_Process();
|
||||
|
||||
STS_SENSOR_Power_OFF(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -296,6 +299,10 @@ void STS_YunhornSTSEventP5_Process(void)
|
|||
void STS_YunhornSTSEventP6_Process(void)
|
||||
{
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\r\n P6 Testing Process\r\n");
|
||||
STS_SENSOR_Power_ON(0);
|
||||
|
||||
STS_SENSOR_Power_OFF(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -306,6 +313,9 @@ void STS_YunhornSTSEventP6_Process(void)
|
|||
void STS_YunhornSTSEventP7_Process(void)
|
||||
{
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\r\n P7 Testing Process\r\n");
|
||||
STS_SENSOR_Power_ON(0);
|
||||
|
||||
STS_SENSOR_Power_OFF(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -456,7 +466,7 @@ void STS_SENSOR_Power_OFF(uint8_t cnt)
|
|||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
#ifdef YUNHORN_STS_M7_ENABLED
|
||||
#if (defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
|
||||
HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_RESET);
|
||||
#endif
|
||||
HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_RESET);
|
||||
|
@ -472,11 +482,14 @@ void STS_SENSOR_MEMS_Reset(uint8_t cnt)
|
|||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
#ifdef YUNHORN_STS_M7_ENABLED
|
||||
#if (defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
|
||||
HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_SET);
|
||||
HAL_Delay(50);
|
||||
HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_RESET);
|
||||
#endif
|
||||
HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_SET);
|
||||
|
||||
HAL_Delay(50);
|
||||
HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -487,52 +500,12 @@ void STS_SENSOR_MEMS_Reset(uint8_t cnt)
|
|||
|
||||
void STS_SENSOR_NVM_CFG(void)
|
||||
{
|
||||
/*
|
||||
sts_presence_rss_config.default_start_m = (float)(sts_cfg_nvm.p[RSS_CFG_START_M_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_START_M_L]);
|
||||
sts_presence_rss_config.default_length_m = (float)(sts_cfg_nvm.p[RSS_CFG_LENGTH_M_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_LENGTH_M_L]);
|
||||
sts_presence_rss_config.default_threshold = (float)(sts_cfg_nvm.p[RSS_CFG_THRESHOLD_H] + 0.1*sts_cfg_nvm.p[RSS_CFG_THRESHOLD_L]);
|
||||
sts_presence_rss_config.default_receiver_gain = (float)(sts_cfg_nvm.p[RSS_CFG_RECEIVER_GAIN_H]*0.1 + 0.01* sts_cfg_nvm.p[RSS_CFG_RECEIVER_GAIN_L]);
|
||||
|
||||
sts_presence_rss_config.default_zone_length_m = DEFAULT_ZONE_LENGTH;
|
||||
sts_presence_rss_config.default_profile = (float)(sts_cfg_nvm.p[RSS_CFG_PROFILE]);
|
||||
sts_presence_rss_config.default_update_rate_tracking = (float)(sts_cfg_nvm.p[RSS_CFG_RATE_TRACKING_H]*10 + sts_cfg_nvm.p[RSS_CFG_RATE_TRACKING_L]);
|
||||
sts_presence_rss_config.default_update_rate_presence = (float)(sts_cfg_nvm.p[RSS_CFG_RATE_PRESENCE_H]*10 + sts_cfg_nvm.p[RSS_CFG_RATE_PRESENCE_L]);
|
||||
sts_presence_rss_config.default_hwaas = (float)(sts_cfg_nvm.p[RSS_CFG_HWAAS_H]*10 + sts_cfg_nvm.p[RSS_CFG_HWAAS_L]);
|
||||
|
||||
sts_presence_rss_config.default_nbr_removed_pc = (float)(sts_cfg_nvm.p[RSS_CFG_NBR_REMOVED_PC]);
|
||||
|
||||
//filter parameter
|
||||
sts_presence_rss_config.default_inter_frame_deviation_time_const = (float)(sts_cfg_nvm.p[RSS_CFG_ITE_DEVIATION_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_ITE_DEVIATION_L]);
|
||||
sts_presence_rss_config.default_inter_frame_fast_cutoff = (float)(sts_cfg_nvm.p[RSS_CFG_ITE_FAST_CUTOFF_H]*10 + sts_cfg_nvm.p[RSS_CFG_ITE_FAST_CUTOFF_L]);
|
||||
sts_presence_rss_config.default_inter_frame_slow_cutoff = (float)(sts_cfg_nvm.p[RSS_CFG_ITE_SLOW_CUTOFF_H]*.1 + 0.01* sts_cfg_nvm.p[RSS_CFG_ITE_SLOW_CUTOFF_L]);
|
||||
sts_presence_rss_config.default_intra_frame_time_const = (float)(sts_cfg_nvm.p[RSS_CFG_ITR_TIME_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_ITR_TIME_L]);
|
||||
sts_presence_rss_config.default_intra_frame_weight = (float)(sts_cfg_nvm.p[RSS_CFG_ITR_WEIGHT_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_ITR_WEIGHT_L]);
|
||||
sts_presence_rss_config.default_output_time_const = (float)(sts_cfg_nvm.p[RSS_CFG_OUTPUT_TIME_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_OUTPUT_TIME_L]);
|
||||
//filter parameter
|
||||
|
||||
sts_presence_rss_config.default_downsampling_factor = (float)(sts_cfg_nvm.p[RSS_CFG_DOWNSAMPLING_FACTOR]);
|
||||
sts_presence_rss_config.default_power_save_mode = (float)(sts_cfg_nvm.p[RSS_CFG_POWER_MODE]);
|
||||
*/
|
||||
}
|
||||
|
||||
void STS_SENSOR_NVM_CFG_SIMPLE(void)
|
||||
{
|
||||
/*
|
||||
sts_presence_rss_config.default_start_m = (float)(sts_cfg_nvm.p[RSS_CFG_START_M_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_START_M_L]);
|
||||
sts_presence_rss_config.default_length_m = (float)(sts_cfg_nvm.p[RSS_CFG_LENGTH_M_H] + 0.1* sts_cfg_nvm.p[RSS_CFG_LENGTH_M_L]);
|
||||
sts_presence_rss_config.default_threshold = (float)(sts_cfg_nvm.p[RSS_CFG_THRESHOLD_H] + 0.1*sts_cfg_nvm.p[RSS_CFG_THRESHOLD_L]);
|
||||
sts_presence_rss_config.default_receiver_gain = (float)(sts_cfg_nvm.p[RSS_CFG_RECEIVER_GAIN_H]*0.1 + 0.01* sts_cfg_nvm.p[RSS_CFG_RECEIVER_GAIN_L]);
|
||||
*/
|
||||
/*
|
||||
char pout[128]="";
|
||||
sprintf(pout,"\r\n Start=%.2f Length= %.2f Threshold=%.2f Gain=%.2f\r\n",
|
||||
sts_presence_rss_config.default_start_m,
|
||||
sts_presence_rss_config.default_length_m,
|
||||
sts_presence_rss_config.default_threshold,
|
||||
sts_presence_rss_config.default_receiver_gain);
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L,"\r\n %s \r\n", pout);
|
||||
*/
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN EF */
|
||||
|
|
|
@ -67,10 +67,10 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = {
|
|||
sts_mtmcode2,
|
||||
sts_version,
|
||||
sts_hardware_ver,
|
||||
0x02, //Regular TxPeriodicity interval
|
||||
'M', //unit of Regular TxPeriodicity interval
|
||||
0x0A, //Heart-beat interval or Sampling interval
|
||||
'S', //unit of Heart-beat interval or Sampling interval
|
||||
0x20, //Regular TxPeriodicity interval
|
||||
'S', //unit of Regular TxPeriodicity interval
|
||||
0x02, //Heart-beat interval or Sampling interval
|
||||
'M', //unit of Heart-beat interval or Sampling interval
|
||||
0x04, // dual mode
|
||||
0x00, // service mask
|
||||
0x00, // reserve01
|
||||
|
@ -614,7 +614,7 @@ void LoRaWAN_Init(void)
|
|||
// FOR Event trigger type sensor, use this as Heart Beat Timer, such as O1/O2/O3/M1
|
||||
#if (defined(YUNHORN_STS_R0_ENABLED))
|
||||
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity,
|
||||
UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
||||
UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
||||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||
#endif
|
||||
|
||||
|
@ -765,6 +765,10 @@ static void SendTxData(void)
|
|||
STS_R0_SensorDataTypeDef r0_data;
|
||||
UTIL_TIMER_Time_t nextTxIn = 0;
|
||||
|
||||
APP_LOG(TS_ON, VLEVEL_L, "\r\n Flag: Heart-beat-timer = %u \r\n upload_message_timer %u \r\n sensor_data_ready = %u \r\n",
|
||||
heart_beat_timer, upload_message_timer, sensor_data_ready);
|
||||
|
||||
|
||||
if (LmHandlerIsBusy() == false)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
|
@ -779,7 +783,7 @@ static void SendTxData(void)
|
|||
// APP_LOG(TS_ON, VLEVEL_M, "\r\nVDDA: %d\r\n", batteryLevel);
|
||||
// APP_LOG(TS_ON, VLEVEL_M, "\r\ntemp: %d\r\n", (int16_t)(sensor_data.temperature));
|
||||
|
||||
APP_LOG(TS_ON, VLEVEL_L, "\r\nDistance = %d mm, VBAT=%d%%\r\n", r0_data.distance_mm, r0_data.battery_Pct);
|
||||
//APP_LOG(TS_ON, VLEVEL_L, "\r\nDistance = %d mm, VBAT=%d%%\r\n", r0_data.distance_mm, r0_data.battery_Pct);
|
||||
|
||||
|
||||
AppData.Port = LORAWAN_USER_APP_PORT;
|
||||
|
@ -795,6 +799,7 @@ static void SendTxData(void)
|
|||
{
|
||||
heart_beat_timer = 0;
|
||||
AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
||||
APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Heart-Beat ------------- \r\n ------------------Distance = %d mm, VBAT=%d%%\r\n", r0_data.distance_mm, r0_data.battery_Pct);
|
||||
|
||||
} else if (upload_message_timer) //sensor_data_ready)
|
||||
{
|
||||
|
@ -804,9 +809,10 @@ static void SendTxData(void)
|
|||
|
||||
AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm_h); //#05
|
||||
AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm_l); //#05
|
||||
APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Periodicity Upload Heart-Beat ------------- \r\n ------------------Distance = %d mm, VBAT=%d%%\r\n", r0_data.distance_mm, r0_data.battery_Pct);
|
||||
}
|
||||
|
||||
AppData.BufferSize = (sts_service_mask >=2?0:i);
|
||||
AppData.BufferSize = (sts_service_mask >1?0:i);
|
||||
|
||||
if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
|
||||
{
|
||||
|
@ -1017,7 +1023,7 @@ static void OnTxPeriodicityChanged(uint32_t periodicity)
|
|||
UTIL_TIMER_SetPeriod(&TxTimer, TxPeriodicity);
|
||||
UTIL_TIMER_Start(&TxTimer);
|
||||
/* USER CODE BEGIN OnTxPeriodicityChanged_2 */
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L,"\r\n TxPeriodicity changed to %u (msec) \r\n", TxPeriodicity);
|
||||
/* USER CODE END OnTxPeriodicityChanged_2 */
|
||||
}
|
||||
|
||||
|
@ -1218,7 +1224,7 @@ static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity)
|
|||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||
|
||||
/* USER CODE BEGIN OnTxPeriodicityChanged_2 */
|
||||
APP_LOG(TS_OFF, VLEVEL_M,"**************** HeartBeatPeriodicity = %u (ms)\r\n", HeartBeatPeriodicity );
|
||||
APP_LOG(TS_OFF, VLEVEL_L,"**************** HeartBeatPeriodicity Changed to: %u (ms)\r\n", HeartBeatPeriodicity );
|
||||
/* USER CODE END OnTxPeriodicityChanged_2 */
|
||||
}
|
||||
|
||||
|
@ -1349,22 +1355,18 @@ static void OnYunhornSTSSamplingCheckTimerEvent(void *context)
|
|||
*/
|
||||
static void OnYunhornSTSHeartBeatTimerEvent(void *context)
|
||||
{
|
||||
if (STS_LoRa_WAN_Joined )
|
||||
{
|
||||
#ifdef YUNHORN_STS_R0_ENABLED
|
||||
heart_beat_timer = 1;
|
||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
||||
heart_beat_timer = 1;
|
||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
||||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||
|
||||
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);
|
||||
}
|
||||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||
#endif
|
||||
}
|
||||
if ((STS_LoRa_WAN_Joined ) && (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);
|
||||
}
|
||||
}
|
||||
|
||||
void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||
|
@ -1558,12 +1560,10 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM2]; //MTM Code
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_VER]; //STS Version
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_HWV]; //STS Version
|
||||
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_PERIODICITY]/10); //UPLINK Periodicity count high
|
||||
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_PERIODICITY]%10); //UPLINK Periodicity count low
|
||||
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_PERIODICITY]); //UPLINK Periodicity
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_UNIT]; //UPLINK Periodicity unit
|
||||
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_SAMPLING]/10); //SAMPLING Periodicity count high
|
||||
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_SAMPLING]%10); //SAMPLING Periodicity count low
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_S_UNIT]; //SAMPLING Periodicity unit
|
||||
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_SAMPLING]); //Heart-beat or SAMPLING Periodicity
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_S_UNIT]; //Heart-beat or SAMPLING Periodicity unit
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_WORK_MODE]; // STS WORK MODE
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_SERVICE_MASK]; //service mask
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_RESERVE01]; //service mask
|
||||
|
|
Loading…
Reference in New Issue