revised for ROCTEC R5, TxPeriodicty to 10 sec, reduced TOF change
detection logic
This commit is contained in:
parent
fdb7fddf61
commit
b2c4ee3eb8
|
@ -231,8 +231,8 @@
|
||||||
|
|
||||||
|
|
||||||
#define MajorVer 23U
|
#define MajorVer 23U
|
||||||
#define MinorVer 10U
|
#define MinorVer 11U
|
||||||
#define SubMinorVer 28U
|
#define SubMinorVer 02U
|
||||||
#define FirmwareVersion 3U
|
#define FirmwareVersion 3U
|
||||||
#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U
|
#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U
|
||||||
#define YUNHORN_STS_AC_CODE_SIZE 20U
|
#define YUNHORN_STS_AC_CODE_SIZE 20U
|
||||||
|
|
|
@ -56,7 +56,7 @@ extern volatile uint8_t sts_soap_level_state;
|
||||||
extern volatile uint8_t ToF_EventDetected;
|
extern volatile uint8_t ToF_EventDetected;
|
||||||
extern volatile int sts_tof_distance_data[MAX_TOF_COUNT];
|
extern volatile int sts_tof_distance_data[MAX_TOF_COUNT];
|
||||||
volatile uint32_t SamplingPeriodicity = 1000; //unit ms
|
volatile uint32_t SamplingPeriodicity = 1000; //unit ms
|
||||||
volatile uint32_t HeartBeatPeriodicity = 60000; //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;
|
||||||
|
|
||||||
volatile uint8_t heart_beat_timer =0;
|
volatile uint8_t heart_beat_timer =0;
|
||||||
|
@ -112,7 +112,8 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = {
|
||||||
0x02, //occupancy over time threshold *10 minutes
|
0x02, //occupancy over time threshold *10 minutes
|
||||||
// ******************* ABOVE 4 bytes
|
// ******************* ABOVE 4 bytes
|
||||||
// below 20 bytes AC
|
// below 20 bytes AC
|
||||||
{0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF}
|
{0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -643,9 +644,11 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||||
{
|
{
|
||||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef LED_ONBOARD
|
||||||
LED_ON;
|
LED_ON;
|
||||||
HAL_Delay(20);
|
HAL_Delay(20);
|
||||||
LED_OFF;
|
LED_OFF;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -823,7 +826,7 @@ static void SendTxData(void)
|
||||||
AppData.Buffer[i++] = (uint8_t)(r0_data.battery_Pct); //#05
|
AppData.Buffer[i++] = (uint8_t)(r0_data.battery_Pct); //#05
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (heart_beat_timer != 0)
|
if (heart_beat_timer != 0U)
|
||||||
{
|
{
|
||||||
heart_beat_timer = 0U;
|
heart_beat_timer = 0U;
|
||||||
AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
||||||
|
@ -832,9 +835,6 @@ static void SendTxData(void)
|
||||||
AppData.Buffer[i++] = (uint8_t)(r0_data.battery_Pct);
|
AppData.Buffer[i++] = (uint8_t)(r0_data.battery_Pct);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
APP_LOG(TS_ON, VLEVEL_H, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n",
|
|
||||||
r0_data.distance_mm,r0_data.distance1_mm,r0_data.distance2_mm, r0_data.battery_Pct);
|
|
||||||
|
|
||||||
} else if ((upload_message_timer !=0U)||(sensor_data_ready!=0U)) //sensor_data_ready for manual push button-1 trigger)
|
} else if ((upload_message_timer !=0U)||(sensor_data_ready!=0U)) //sensor_data_ready for manual push button-1 trigger)
|
||||||
{
|
{
|
||||||
sensor_data_ready =0;
|
sensor_data_ready =0;
|
||||||
|
@ -857,9 +857,6 @@ static void SendTxData(void)
|
||||||
AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV)&0xff; //#13
|
AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV)&0xff; //#13
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
APP_LOG(TS_ON, VLEVEL_H, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n",
|
|
||||||
r0_data.distance_mm,r0_data.distance1_mm,r0_data.distance2_mm, r0_data.battery_Pct);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AppData.BufferSize = (sts_service_mask >1?0:i);
|
AppData.BufferSize = (sts_service_mask >1?0:i);
|
||||||
|
@ -991,8 +988,8 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
|
||||||
|
|
||||||
STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode;
|
STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode;
|
||||||
//STS_REBOOT_CONFIG_Init();
|
//STS_REBOOT_CONFIG_Init();
|
||||||
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
//OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
|
||||||
OnTxPeriodicityChanged(TxPeriodicity);
|
//OnTxPeriodicityChanged(TxPeriodicity);
|
||||||
APP_LOG(TS_OFF, VLEVEL_L,"\r\n STS_LoRa_WAN_Joined = %s \r\n", (STS_LoRa_WAN_Joined == 1)?"ABP":"OTAA");
|
APP_LOG(TS_OFF, VLEVEL_L,"\r\n STS_LoRa_WAN_Joined = %s \r\n", (STS_LoRa_WAN_Joined == 1)?"ABP":"OTAA");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1426,7 +1423,7 @@ static void OnYunhornSTSHeartBeatTimerEvent(void *context)
|
||||||
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(&YunhornSTSHeartBeatTimer);
|
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||||
|
|
||||||
if ((STS_LoRa_WAN_Joined ) && (sts_ac_code[0]==0xFF))
|
if ((STS_LoRa_WAN_Joined ) && (sts_ac_code[0]==0x0))
|
||||||
{
|
{
|
||||||
/* RFAC Challenge */
|
/* RFAC Challenge */
|
||||||
if (rfac_timer < (STS_BURN_IN_RFAC+3)) {
|
if (rfac_timer < (STS_BURN_IN_RFAC+3)) {
|
||||||
|
@ -1977,9 +1974,9 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char
|
||||||
void OnStoreSTSCFGContextRequest(void)
|
void OnStoreSTSCFGContextRequest(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN OnStoreContextRequest_1 */
|
/* USER CODE BEGIN OnStoreContextRequest_1 */
|
||||||
uint8_t nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
|
uint8_t i=0,j=0,nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
|
||||||
|
|
||||||
#if (defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
|
#if (defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED) || defined(YUNHORN_STS_R5_ENABLED))
|
||||||
sts_cfg_nvm.length = STS_NVM_CFG_SIZE;
|
sts_cfg_nvm.length = STS_NVM_CFG_SIZE;
|
||||||
nvm_store_value[i++] = sts_cfg_nvm.mtmcode1;
|
nvm_store_value[i++] = sts_cfg_nvm.mtmcode1;
|
||||||
nvm_store_value[i++] = sts_cfg_nvm.mtmcode2;
|
nvm_store_value[i++] = sts_cfg_nvm.mtmcode2;
|
||||||
|
@ -2097,7 +2094,13 @@ void OnRestoreSTSCFGContextProcess(void)
|
||||||
}
|
}
|
||||||
periodicity = (periodicity > 10)? periodicity : 10; // in seconds unit
|
periodicity = (periodicity > 10)? periodicity : 10; // in seconds unit
|
||||||
TxPeriodicity= periodicity*1000; // to ms
|
TxPeriodicity= periodicity*1000; // to ms
|
||||||
OnTxPeriodicityChanged(TxPeriodicity); // in msec unit
|
if (sts_ac_code[0] !=0 )
|
||||||
|
{ // ensure it's not in production yet
|
||||||
|
OnTxPeriodicityChanged(TxPeriodicity); // in msec unit
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
OnTxPeriodicityChanged(APP_TX_DUTYCYCLE); // in msec unit
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t samplingperiodicity = (sts_cfg_nvm.sampling); //Heart-beat or Sampling interval
|
uint32_t samplingperiodicity = (sts_cfg_nvm.sampling); //Heart-beat or Sampling interval
|
||||||
if ((char)sts_cfg_nvm.s_unit =='M') {
|
if ((char)sts_cfg_nvm.s_unit =='M') {
|
||||||
|
|
|
@ -126,9 +126,13 @@ void MX_TOF_Process(void)
|
||||||
}
|
}
|
||||||
void STS_R0_SENSOR_Read(STS_R0_SensorDataTypeDef *r0_data)
|
void STS_R0_SENSOR_Read(STS_R0_SensorDataTypeDef *r0_data)
|
||||||
{
|
{
|
||||||
|
|
||||||
r0_data->distance_mm = sts_tof_distance_data[0];
|
r0_data->distance_mm = sts_tof_distance_data[0];
|
||||||
r0_data->distance1_mm = sts_tof_distance_data[1];
|
r0_data->distance1_mm = sts_tof_distance_data[1];
|
||||||
r0_data->distance2_mm = sts_tof_distance_data[2];
|
r0_data->distance2_mm = sts_tof_distance_data[2];
|
||||||
|
#ifdef ROCTEC_R5
|
||||||
|
r0_data->distance1_mm = sts_tof_distance_data[0]+sts_tof_distance_data[1]+sts_tof_distance_data[2];
|
||||||
|
#endif
|
||||||
|
|
||||||
sensor_data_ready = 1;
|
sensor_data_ready = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,8 +413,8 @@ void STS_TOF_VL53L0X_Range_Process(void)
|
||||||
} // nSensorPresent >0
|
} // nSensorPresent >0
|
||||||
|
|
||||||
// reset for next ranging
|
// reset for next ranging
|
||||||
nDevMask = 0;
|
//nDevMask = 0;
|
||||||
nSensorPresent = 0;
|
//nSensorPresent = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue