revised for MTM2 code to 26
This commit is contained in:
parent
3820bc8e40
commit
377f4583b6
|
@ -52,7 +52,7 @@ extern "C" {
|
||||||
/**
|
/**
|
||||||
* @brief Enable trace logs
|
* @brief Enable trace logs
|
||||||
*/
|
*/
|
||||||
#define APP_LOG_ENABLED 0
|
#define APP_LOG_ENABLED 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Activate monitoring (probes) of some internal RF signals for debug purpose
|
* @brief Activate monitoring (probes) of some internal RF signals for debug purpose
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
*/
|
*/
|
||||||
//#define USE_OLED_SSD1306
|
//#define USE_OLED_SSD1306
|
||||||
//#define USE_TOF_VL53L1X
|
//#define USE_TOF_VL53L1X
|
||||||
#define STS_USE_TOF_VL53L0X 1U
|
//#define STS_USE_TOF_VL53L0X 1U
|
||||||
//#define YUNHORN_STS_R5_ENABLED
|
//#define YUNHORN_STS_R5_ENABLED
|
||||||
|
|
||||||
|
|
||||||
|
@ -235,7 +235,7 @@
|
||||||
|
|
||||||
#define MajorVer 23U
|
#define MajorVer 23U
|
||||||
#define MinorVer 11U
|
#define MinorVer 11U
|
||||||
#define SubMinorVer 02U
|
#define SubMinorVer 10U
|
||||||
#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
|
||||||
|
@ -265,7 +265,7 @@
|
||||||
#ifdef STS_O5
|
#ifdef STS_O5
|
||||||
#define YUNHORN_STS_O5_ENABLED 1U
|
#define YUNHORN_STS_O5_ENABLED 1U
|
||||||
#define sts_mtmcode1 0U
|
#define sts_mtmcode1 0U
|
||||||
#define sts_mtmcode2 5U
|
#define sts_mtmcode2 24U
|
||||||
#define sts_hardware_ver 1U
|
#define sts_hardware_ver 1U
|
||||||
#define sts_version 1U
|
#define sts_version 1U
|
||||||
#define sts_senddataport (YUNHORN_STS_O5_LORA_APP_DATA_PORT)
|
#define sts_senddataport (YUNHORN_STS_O5_LORA_APP_DATA_PORT)
|
||||||
|
|
|
@ -41,13 +41,12 @@ extern volatile uint8_t sts_ac_code[20];
|
||||||
volatile uint8_t sts_service_mask;
|
volatile uint8_t sts_service_mask;
|
||||||
volatile uint32_t rfac_timer;
|
volatile uint32_t rfac_timer;
|
||||||
extern volatile uint8_t sensor_data_ready;
|
extern volatile uint8_t sensor_data_ready;
|
||||||
extern volatile uint8_t sts_work_mode;
|
|
||||||
volatile uint8_t sts_reed_hall_result, last_sts_reed_hall_result,sts_reed_hall_changed_flag;
|
volatile uint8_t sts_reed_hall_result, last_sts_reed_hall_result,sts_reed_hall_changed_flag;
|
||||||
volatile uint32_t event_start_time, event_stop_time;
|
volatile uint32_t event_start_time, event_stop_time;
|
||||||
volatile uint8_t sts_soap_level_state;
|
volatile uint8_t sts_soap_level_state;
|
||||||
|
|
||||||
|
|
||||||
extern volatile uint8_t sts_reed_hall_result, sts_work_mode, sts_service_mask;
|
extern volatile uint8_t sts_work_mode, sts_service_mask;
|
||||||
volatile uint8_t sts_reed_hall_ext_int = 0;
|
volatile uint8_t sts_reed_hall_ext_int = 0;
|
||||||
volatile uint8_t sts_occupancy_status;
|
volatile uint8_t sts_occupancy_status;
|
||||||
volatile uint8_t sts_reed_hall_changed_flag = 0;
|
volatile uint8_t sts_reed_hall_changed_flag = 0;
|
||||||
|
@ -581,6 +580,9 @@ void STS_SENSOR_NVM_CFG_SIMPLE(void)
|
||||||
void STS_O5_SENSOR_Read(STS_OO_SensorDataTypeDef *oo_data)
|
void STS_O5_SENSOR_Read(STS_OO_SensorDataTypeDef *oo_data)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
sts_reed_hall_result = (STS_Reed_Hall_State==0)?1:0;
|
||||||
|
|
||||||
oo_data->state_sensor1_on_off = sts_reed_hall_result;
|
oo_data->state_sensor1_on_off = sts_reed_hall_result;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -580,7 +580,9 @@ void LoRaWAN_Init(void)
|
||||||
|
|
||||||
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_YunhornSTSEventP2_Process);
|
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_YunhornSTSEventP2_Process);
|
||||||
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process);
|
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process);
|
||||||
|
#if defined(TOF_1)||defined(TOF_2)||defined(TOF_3)
|
||||||
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process);
|
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process);
|
||||||
|
#endif
|
||||||
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process);
|
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process);
|
||||||
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process);
|
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process);
|
||||||
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP7), UTIL_SEQ_RFU, STS_YunhornSTSEventP7_Process);
|
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP7), UTIL_SEQ_RFU, STS_YunhornSTSEventP7_Process);
|
||||||
|
@ -614,7 +616,7 @@ void LoRaWAN_Init(void)
|
||||||
|
|
||||||
// Heart Beat Timer
|
// Heart Beat Timer
|
||||||
// FOR Event trigger type sensor, use this as Heart Beat Timer, such as O1/O2/O3/M1
|
// FOR Event trigger type sensor, use this as Heart Beat Timer, such as O1/O2/O3/M1
|
||||||
#if (defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED))
|
#if (defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)||defined(YUNHORN_STS_O5_ENABLED))
|
||||||
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity,
|
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity,
|
||||||
UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
||||||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||||
|
@ -634,16 +636,16 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||||
case BUT1_Pin:
|
case BUT1_Pin:
|
||||||
#if (defined(STS_USE_STM32WL55)||defined(STS_USE_STM32WLE5))
|
#if (defined(STS_USE_STM32WL55)||defined(STS_USE_STM32WLE5))
|
||||||
#ifdef YUNHORN_STS_O5_ENABLED
|
#ifdef YUNHORN_STS_O5_ENABLED
|
||||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0);
|
|
||||||
|
uint8_t pinstate = (STS_Reed_Hall_State== 0)?1:0;
|
||||||
|
APP_LOG(TS_OFF, VLEVEL_L, "## BUTTON-1 DETECTED: %2d \r\n", pinstate);
|
||||||
|
|
||||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
||||||
#elif
|
|
||||||
uint8_t pinstate = HAL_GPIO_ReadPin(BUT1_GPIO_Port,BUT1_Pin);
|
|
||||||
APP_LOG(TS_OFF, VLEVEL_H, "## BUTTON-1 DETECTED: %2d \r\n", pinstate);
|
|
||||||
|
|
||||||
//if (EventType == TX_ON_EVENT)
|
//if (EventType == TX_ON_EVENT)
|
||||||
if (pinstate == 1)
|
if (pinstate == 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);
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
#ifdef LED_ONBOARD
|
#ifdef LED_ONBOARD
|
||||||
|
@ -785,7 +787,7 @@ static void SendTxData(void)
|
||||||
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
||||||
uint8_t batteryLevel = GetBatteryLevel();
|
uint8_t batteryLevel = GetBatteryLevel();
|
||||||
//uint16_t batteryLevelmV = SYS_GetBatteryLevel();
|
//uint16_t batteryLevelmV = SYS_GetBatteryLevel();
|
||||||
sensor_t sensor_data;
|
//sensor_t sensor_data;
|
||||||
#if defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)
|
#if defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)
|
||||||
STS_R0_SensorDataTypeDef r0_data;
|
STS_R0_SensorDataTypeDef r0_data;
|
||||||
#endif
|
#endif
|
||||||
|
@ -794,10 +796,10 @@ static void SendTxData(void)
|
||||||
#endif
|
#endif
|
||||||
UTIL_TIMER_Time_t nextTxIn = 0;
|
UTIL_TIMER_Time_t nextTxIn = 0;
|
||||||
|
|
||||||
APP_LOG(TS_ON, VLEVEL_H, "\r\n Flag: Heart-beat-timer = %u \r\n upload_message_timer %u \r\n sensor_data_ready = %u \r\n",
|
//APP_LOG(TS_ON, VLEVEL_H, "\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);
|
//heart_beat_timer, upload_message_timer, sensor_data_ready);
|
||||||
|
|
||||||
|
|
||||||
APP_LOG(TS_ON, VLEVEL_H, "\r\nVDDA: %4d (mV)\r\n", batteryLevelmV);
|
|
||||||
//if (LmHandlerIsBusy() == false)
|
//if (LmHandlerIsBusy() == false)
|
||||||
{
|
{
|
||||||
uint8_t i = 0;
|
uint8_t i = 0;
|
||||||
|
@ -819,7 +821,7 @@ static void SendTxData(void)
|
||||||
#endif
|
#endif
|
||||||
//r0_data.battery_Pct = batteryLevel; //(uint8_t)(99*batteryLevel/254);
|
//r0_data.battery_Pct = batteryLevel; //(uint8_t)(99*batteryLevel/254);
|
||||||
|
|
||||||
EnvSensors_Read(&sensor_data);
|
// EnvSensors_Read(&sensor_data);
|
||||||
|
|
||||||
// APP_LOG(TS_ON, VLEVEL_M, "\r\nVDDA: %d\r\n", batteryLevel);
|
// 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_M, "\r\ntemp: %d\r\n", (int16_t)(sensor_data.temperature));
|
||||||
|
@ -841,6 +843,7 @@ static void SendTxData(void)
|
||||||
if (heart_beat_timer != 0U)
|
if (heart_beat_timer != 0U)
|
||||||
{
|
{
|
||||||
heart_beat_timer = 0U;
|
heart_beat_timer = 0U;
|
||||||
|
AppData.Buffer[0] = AppLedStateOn|0x80; // For heartbeat message indication
|
||||||
AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
|
||||||
#ifdef ROCTEC_R5
|
#ifdef ROCTEC_R5
|
||||||
AppData.Buffer[i++] = AppLedStateOn;
|
AppData.Buffer[i++] = AppLedStateOn;
|
||||||
|
@ -856,6 +859,7 @@ static void SendTxData(void)
|
||||||
AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm)&0xff; //#06
|
AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm)&0xff; //#06
|
||||||
|
|
||||||
#elif defined(STS_O5)
|
#elif defined(STS_O5)
|
||||||
|
AppData.Buffer[i++] = (uint8_t)(0x01)&0xff; // length of the following bytes
|
||||||
AppData.Buffer[i++] = (uint8_t)(oo_data.state_sensor1_on_off)&0xff;
|
AppData.Buffer[i++] = (uint8_t)(oo_data.state_sensor1_on_off)&0xff;
|
||||||
|
|
||||||
#elif defined(YUNHORN_STS_R0_ENABLED)
|
#elif defined(YUNHORN_STS_R0_ENABLED)
|
||||||
|
|
|
@ -48,15 +48,18 @@ extern "C" {
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
#define TIMING_BUDGET (30U) /* 16 ms < TimingBudget < 500 ms */
|
#define TIMING_BUDGET (30U) /* 16 ms < TimingBudget < 500 ms */
|
||||||
#define POLLING_PERIOD (250U) /* refresh rate for polling mode (milliseconds, shall be consistent with TimingBudget value) */
|
#define POLLING_PERIOD (250U) /* refresh rate for polling mode (milliseconds, shall be consistent with TimingBudget value) */
|
||||||
|
#define MAX_TOF_COUNT (03U)
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
//static RANGING_SENSOR_Capabilities_t Cap;
|
//static RANGING_SENSOR_Capabilities_t Cap;
|
||||||
//static RANGING_SENSOR_ProfileConfig_t Profile;
|
//static RANGING_SENSOR_ProfileConfig_t Profile;
|
||||||
//static int32_t status = 0;
|
//static int32_t status = 0;
|
||||||
|
|
||||||
volatile uint8_t ToF_EventDetected = 0;
|
|
||||||
extern volatile uint8_t sensor_data_ready;
|
extern volatile uint8_t sensor_data_ready;
|
||||||
|
#if (defined(TOF_1)|| defined(TOF_2) || defined(TOF_3))
|
||||||
|
volatile uint8_t ToF_EventDetected = 0;
|
||||||
extern volatile int sts_tof_distance_data[MAX_TOF_COUNT];
|
extern volatile int sts_tof_distance_data[MAX_TOF_COUNT];
|
||||||
|
#endif
|
||||||
//volatile uint8_t sensor_data_ready=0;
|
//volatile uint8_t sensor_data_ready=0;
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
#ifdef STS_USE_TOF_VL53L1X
|
#ifdef STS_USE_TOF_VL53L1X
|
||||||
|
@ -76,9 +79,9 @@ void MX_TOF_Init(void)
|
||||||
|
|
||||||
/* Initialize the peripherals and the TOF components */
|
/* Initialize the peripherals and the TOF components */
|
||||||
APP_LOG(TS_OFF,VLEVEL_L,"\r\n###################### MX TOF Init... \r\n");
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n###################### MX TOF Init... \r\n");
|
||||||
|
#if (defined(TOF_1)|| defined(TOF_2) || defined(TOF_3))
|
||||||
XWL55_WLE5_53L0X_Init();
|
XWL55_WLE5_53L0X_Init();
|
||||||
|
#endif
|
||||||
//MX_53L1A2_SimpleRanging_Init();
|
//MX_53L1A2_SimpleRanging_Init();
|
||||||
|
|
||||||
/* USER CODE BEGIN TOF_Init_PostTreatment */
|
/* USER CODE BEGIN TOF_Init_PostTreatment */
|
||||||
|
@ -160,9 +163,9 @@ uint8_t STS_SENSOR_MEMS_Get_ID(uint8_t *mems_Dev_ID)
|
||||||
{
|
{
|
||||||
uint16_t Id = 0xEEAA; //0xeeaa for VL53L0X
|
uint16_t Id = 0xEEAA; //0xeeaa for VL53L0X
|
||||||
uint8_t cnt =0;
|
uint8_t cnt =0;
|
||||||
|
#if (defined(TOF_1)|| defined(TOF_2) || defined(TOF_3))
|
||||||
cnt = sts_tof_vl53l0x_DetectSensors();
|
cnt = sts_tof_vl53l0x_DetectSensors();
|
||||||
|
#endif
|
||||||
if (cnt > 0)
|
if (cnt > 0)
|
||||||
mems_Dev_ID[0] = (Id >>8)&0xff;
|
mems_Dev_ID[0] = (Id >>8)&0xff;
|
||||||
mems_Dev_ID[1] = (Id & 0xff);
|
mems_Dev_ID[1] = (Id & 0xff);
|
||||||
|
|
Loading…
Reference in New Issue