revised for DOWNLINK
This commit is contained in:
parent
764eed4584
commit
32fc9f0fed
|
@ -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
|
||||||
|
|
|
@ -477,6 +477,7 @@ void STS_SENSOR_Function_Test_Process(void);
|
||||||
void STS_YunhornSTSEventRFAC_Process(void);
|
void STS_YunhornSTSEventRFAC_Process(void);
|
||||||
void STS_YunhornAuthenticationCode_Process(void);
|
void STS_YunhornAuthenticationCode_Process(void);
|
||||||
|
|
||||||
|
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
/*
|
/*
|
||||||
In this example TIM2 input clock (TIM2CLK) is set to APB1 clock (PCLK1),
|
In this example TIM2 input clock (TIM2CLK) is set to APB1 clock (PCLK1),
|
||||||
|
|
|
@ -279,6 +279,7 @@ static void OnYunhornSTSHeartBeatTimerEvent(void *context);
|
||||||
*/
|
*/
|
||||||
static void STS_YUNHORN_RFAC_HANDLE_PROCESS(void);
|
static void STS_YUNHORN_RFAC_HANDLE_PROCESS(void);
|
||||||
|
|
||||||
|
|
||||||
/* USER CODE END PFP */
|
/* USER CODE END PFP */
|
||||||
|
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
@ -440,6 +441,11 @@ void LoRaWAN_Init(void)
|
||||||
UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnJoinTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnJoinTimerLedEvent, NULL);
|
||||||
|
|
||||||
|
if (FLASH_IF_Init(NULL) != FLASH_IF_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END LoRaWAN_Init_1 */
|
/* USER CODE END LoRaWAN_Init_1 */
|
||||||
|
|
||||||
UTIL_TIMER_Create(&StopJoinTimer, JOIN_TIME, UTIL_TIMER_ONESHOT, OnStopJoinTimerEvent, NULL);
|
UTIL_TIMER_Create(&StopJoinTimer, JOIN_TIME, UTIL_TIMER_ONESHOT, OnStopJoinTimerEvent, NULL);
|
||||||
|
@ -480,13 +486,13 @@ void LoRaWAN_Init(void)
|
||||||
|
|
||||||
/* USER CODE BEGIN LoRaWAN_Init_Last */
|
/* USER CODE BEGIN LoRaWAN_Init_Last */
|
||||||
|
|
||||||
|
STS_REBOOT_CONFIG_Init();
|
||||||
|
|
||||||
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_MOTION_SENSOR_WakeUp_Process);
|
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_MOTION_SENSOR_WakeUp_Process);
|
||||||
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_SENSOR_Function_Test_Process);
|
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_SENSOR_Function_Test_Process);
|
||||||
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process);
|
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process);
|
||||||
|
|
||||||
STS_REBOOT_CONFIG_Init();
|
|
||||||
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity, UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity, UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL);
|
||||||
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
|
||||||
/* USER CODE END LoRaWAN_Init_Last */
|
/* USER CODE END LoRaWAN_Init_Last */
|
||||||
|
@ -678,8 +684,14 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
|
|
||||||
OnSystemReset();
|
OnSystemReset();
|
||||||
} else if ((char)tlv_buf[CFG_CMD3] == 'S') { // Self Function Testing "YZS"
|
} else if ((char)tlv_buf[CFG_CMD3] == 'S') { // Self Function Testing "YZS"
|
||||||
|
i=0;
|
||||||
|
memset(outbuf,0x30,sizeof(outbuf));
|
||||||
|
|
||||||
STS_SENSOR_Function_Test_Process();
|
STS_SENSOR_Function_Test_Process();
|
||||||
|
|
||||||
|
HAL_Delay(5000);
|
||||||
|
i=21;
|
||||||
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
|
||||||
|
|
||||||
} else if ((char)tlv_buf[CFG_CMD3] == 'C') { // Self Function Testing "YZC" LORAWAN CLASS A/B/C
|
} else if ((char)tlv_buf[CFG_CMD3] == 'C') { // Self Function Testing "YZC" LORAWAN CLASS A/B/C
|
||||||
|
|
||||||
|
@ -731,7 +743,8 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
|
|
||||||
uint8_t cfg_in_nvm[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
|
uint8_t cfg_in_nvm[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
|
||||||
OnRestoreSTSCFGContextRequest((uint8_t *)cfg_in_nvm);
|
OnRestoreSTSCFGContextRequest((uint8_t *)cfg_in_nvm);
|
||||||
|
i = 0;
|
||||||
|
memset(outbuf,0x30,sizeof(outbuf));
|
||||||
outbuf[i++] = (uint8_t) 'C';
|
outbuf[i++] = (uint8_t) 'C';
|
||||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM1]; //MTM Code
|
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM1]; //MTM Code
|
||||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM2]; //MTM Code
|
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM2]; //MTM Code
|
||||||
|
@ -843,7 +856,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} // END OF *** BOARD LEVEL CONTROL OR REPORT
|
} // END OF *** BOARD LEVEL CONTROL OR REPORT
|
||||||
else if (((char)tlv_buf[CFG_CMD1] == 'P') && (tlv_buf_size >= 4)) // BEGIN OF PARAMETER CONFIG
|
else if (((char)tlv_buf[CFG_CMD1] == 'P') && (tlv_buf_size >= 3)) // BEGIN OF PARAMETER CONFIG
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* YUNHORN STS PRODUCT SUBMODULE, MEMS OR SENSOR HEAD LEVEL PARAMETER TUNING SECTION
|
* YUNHORN STS PRODUCT SUBMODULE, MEMS OR SENSOR HEAD LEVEL PARAMETER TUNING SECTION
|
||||||
|
@ -926,7 +939,42 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
||||||
STS_SENSOR_Upload_Config_Invalid_Message();
|
STS_SENSOR_Upload_Config_Invalid_Message();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else if (((char)tlv_buf[CFG_CMD1] == 'A') && ((char)tlv_buf[CFG_CMD2] == 'C') && (tlv_buf_size == (YUNHORN_STS_AC_CODE_SIZE+2))) // BEGIN OF *** BOARD LEVEL AUTHORIZATION CODE
|
||||||
|
{
|
||||||
|
// 'AC'+ AC_CODE(20bytes)
|
||||||
|
|
||||||
|
for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++)
|
||||||
|
{
|
||||||
|
sts_ac_code[j] = (uint8_t) tlv_buf[2+j];
|
||||||
|
}
|
||||||
|
|
||||||
|
STS_YUNHORN_RFAC_HANDLE_PROCESS();
|
||||||
|
|
||||||
|
if ((hmac_result.ac_pass == 1U))
|
||||||
|
{
|
||||||
|
for (uint8_t j=0; j < YUNHORN_STS_AC_CODE_SIZE; j++)
|
||||||
|
{
|
||||||
|
sts_cfg_nvm.ac[j] = sts_ac_code[j];
|
||||||
|
}
|
||||||
|
|
||||||
|
sts_service_mask = STS_SERVICE_MASK_L0;
|
||||||
|
|
||||||
|
sts_cfg_nvm.sts_service_mask = sts_service_mask;
|
||||||
|
OnStoreSTSCFGContextRequest();
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sts_service_mask = STS_SERVICE_MASK_L2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
i=0;
|
||||||
|
for (uint8_t j=0; j <(tlv_buf_size) ; j++) {
|
||||||
|
outbuf[i++] = (uint8_t) tlv_buf[j];
|
||||||
|
}
|
||||||
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (char*)outbuf);
|
||||||
|
|
||||||
|
} else {
|
||||||
STS_SENSOR_Upload_Config_Invalid_Message();
|
STS_SENSOR_Upload_Config_Invalid_Message();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -937,6 +985,13 @@ void STS_SENSOR_Upload_Config_Invalid_Message(void)
|
||||||
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, "PVXXX");
|
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, "PVXXX");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void STS_YUNHORN_RFAC_HANDLE_PROCESS(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
STS_YunhornAuthenticationCode_Process();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char *appDataBuffer)
|
void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char *appDataBuffer)
|
||||||
{
|
{
|
||||||
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
||||||
|
|
Loading…
Reference in New Issue