revised for DOWNLINK
This commit is contained in:
parent
764eed4584
commit
32fc9f0fed
|
@ -52,7 +52,7 @@ extern "C" {
|
|||
/**
|
||||
* @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
|
||||
|
|
|
@ -477,6 +477,7 @@ void STS_SENSOR_Function_Test_Process(void);
|
|||
void STS_YunhornSTSEventRFAC_Process(void);
|
||||
void STS_YunhornAuthenticationCode_Process(void);
|
||||
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
/*
|
||||
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);
|
||||
|
||||
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* 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(&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 */
|
||||
|
||||
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 */
|
||||
|
||||
|
||||
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_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_SENSOR_Function_Test_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_Start(&YunhornSTSHeartBeatTimer);
|
||||
/* 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();
|
||||
} else if ((char)tlv_buf[CFG_CMD3] == 'S') { // Self Function Testing "YZS"
|
||||
|
||||
i=0;
|
||||
memset(outbuf,0x30,sizeof(outbuf));
|
||||
|
||||
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
|
||||
|
||||
|
@ -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};
|
||||
OnRestoreSTSCFGContextRequest((uint8_t *)cfg_in_nvm);
|
||||
|
||||
i = 0;
|
||||
memset(outbuf,0x30,sizeof(outbuf));
|
||||
outbuf[i++] = (uint8_t) 'C';
|
||||
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM1]; //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;
|
||||
}
|
||||
} // 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
|
||||
|
@ -926,7 +939,42 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
STS_SENSOR_Upload_Config_Invalid_Message();
|
||||
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();
|
||||
}
|
||||
|
||||
|
@ -937,6 +985,13 @@ void STS_SENSOR_Upload_Config_Invalid_Message(void)
|
|||
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)
|
||||
{
|
||||
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
||||
|
|
Loading…
Reference in New Issue