pre-production-r2

This commit is contained in:
YunHorn Technology 2022-10-28 19:11:15 +08:00
parent dc59907fa7
commit e6e6680177
7 changed files with 146 additions and 128 deletions

View File

@ -223,12 +223,16 @@
#define YUNHORN_STS_M7_LORA_APP_DATA_PORT 20U #define YUNHORN_STS_M7_LORA_APP_DATA_PORT 20U
#define YUNHORN_STS_M7_LORA_APP_HTBT_PORT 21U #define YUNHORN_STS_M7_LORA_APP_HTBT_PORT 21U
#define YUNHORN_STS_M7_USER_APP_CTRL_PORT 2U #define YUNHORN_STS_M7_USER_APP_CTRL_PORT 2U
#define YUNHORN_STS_M7_USER_APP_CTRL_REPLY_PORT 1U
#define sts_mtmcode1 0U #define sts_mtmcode1 0U
#define sts_mtmcode2 9U #define sts_mtmcode2 9U
#define sts_hardware_ver 0U
#define sts_version 1U #define sts_version 1U
#define sts_senddataport YUNHORN_STS_M7_LORA_APP_DATA_PORT #define sts_senddataport YUNHORN_STS_M7_LORA_APP_DATA_PORT
#define sts_sendhtbtport YUNHORN_STS_M7_LORA_APP_HTBT_PORT #define sts_sendhtbtport YUNHORN_STS_M7_LORA_APP_HTBT_PORT
#define sts_appctrlport YUNHORN_STS_M7_USER_APP_CTRL_PORT #define sts_appctrlport YUNHORN_STS_M7_USER_APP_CTRL_PORT
#define sts_appctrl_reply_port YUNHORN_STS_M7_USER_APP_CTRL_REPLY_PORT
#define NVM_CFG_PARAMETER_SIZE YUNHORN_STS_M7_NVM_CFG_SIZE #define NVM_CFG_PARAMETER_SIZE YUNHORN_STS_M7_NVM_CFG_SIZE
#define CFG_CMD_PARAMETER_SIZE YUNHORN_STS_M7_CFG_CMD_SIZE #define CFG_CMD_PARAMETER_SIZE YUNHORN_STS_M7_CFG_CMD_SIZE
#define MEMS_POWER_Pin GPIO_PIN_4 #define MEMS_POWER_Pin GPIO_PIN_4

View File

@ -371,6 +371,7 @@ enum {
NVM_MTM1=0, NVM_MTM1=0,
NVM_MTM2, NVM_MTM2,
NVM_VER, NVM_VER,
NVM_HWV,
NVM_PERIODICITY_H, NVM_PERIODICITY_H,
NVM_PERIODICITY_L, NVM_PERIODICITY_L,
NVM_UNIT, NVM_UNIT,
@ -381,6 +382,7 @@ typedef struct sts_cfg_nvm {
uint8_t mtmcode1; uint8_t mtmcode1;
uint8_t mtmcode2; uint8_t mtmcode2;
uint8_t version; uint8_t version;
uint8_t hardware_ver;
uint8_t periodicity_h; //count of duty cycle duration high {0,9} uint8_t periodicity_h; //count of duty cycle duration high {0,9}
uint8_t periodicity_l; //count of duty cycle duration low {0,9} uint8_t periodicity_l; //count of duty cycle duration low {0,9}
uint8_t unit; // time unit of duty cycle duration, in 'S', 'M','H' seconds, minutes, hours uint8_t unit; // time unit of duty cycle duration, in 'S', 'M','H' seconds, minutes, hours

View File

@ -45,7 +45,7 @@
/* USER CODE BEGIN EV */ /* USER CODE BEGIN EV */
volatile uint8_t mems_int1_detected = 0; volatile uint8_t mems_int1_detected = 0;
volatile uint8_t periodicity_level=0; volatile uint8_t periodicity_level=0;
volatile sts_cfg_nvm_t sts_cfg_nvm={sts_mtmcode1,sts_mtmcode2, sts_version,0x01,0x05,'S',0x03,0x08,0x04,0x02}; volatile sts_cfg_nvm_t sts_cfg_nvm={sts_mtmcode1,sts_mtmcode2, sts_version, sts_hardware_ver, 0x01,0x05,'S',0x03,0x08,0x04,0x02};
#ifdef YUNHORN_STS_M7_ENABLED #ifdef YUNHORN_STS_M7_ENABLED
extern volatile uint8_t sensor_data_ready; extern volatile uint8_t sensor_data_ready;
extern volatile STS_M7_SensorDataTypeDef sts_m7_sensorData; extern volatile STS_M7_SensorDataTypeDef sts_m7_sensorData;
@ -354,8 +354,8 @@ void LoRaWAN_Init(void)
/* USER CODE END LoRaWAN_Init_LV */ /* USER CODE END LoRaWAN_Init_LV */
/* USER CODE BEGIN LoRaWAN_Init_1 */ /* USER CODE BEGIN LoRaWAN_Init_1 */
APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n##### YUNHORN_STS_FW:%d HW:%d.%d.%d SW:%d.%d.%d####\r\n\n\n", APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n##### YUNHORN_STS_FW:%d SWV%d HWV:%d MTM:%d.%d R:%d.%d.%d####\r\n\n\n",
FirmwareVersion, sts_mtmcode1,sts_mtmcode2,sts_version, MajorVer, MinorVer, SubMinorVer); FirmwareVersion, sts_version, sts_hardware_ver, sts_mtmcode1,sts_mtmcode2, MajorVer, MinorVer, SubMinorVer);
/* Get LoRaWAN APP version*/ /* Get LoRaWAN APP version*/
APP_LOG(TS_OFF, VLEVEL_M, "APPLICATION_VERSION: V%X.%X.%X\r\n", APP_LOG(TS_OFF, VLEVEL_M, "APPLICATION_VERSION: V%X.%X.%X\r\n",
(uint8_t)(APP_VERSION_MAIN), (uint8_t)(APP_VERSION_MAIN),
@ -604,7 +604,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
case 'Z': //"YZ" case 'Z': //"YZ"
if ((char)tlv_buf[CFG_CMD3] == 'H') { //BOARD SOFT RESET, REVIVE "YZH" if ((char)tlv_buf[CFG_CMD3] == 'H') { //BOARD SOFT RESET, REVIVE "YZH"
//BOARD REVIVE //BOARD REVIVE
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, 20, "!YunHorn STS Revive!"); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 20, "!YunHorn STS Revive!");
HAL_Delay(5000); HAL_Delay(5000);
OnSystemReset(); OnSystemReset();
@ -622,7 +622,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) sts_mtmcode2; outbuf[i++] = (uint8_t) sts_mtmcode2;
outbuf[i++] = (uint8_t) sts_version; outbuf[i++] = (uint8_t) sts_version;
outbuf[i++] = (uint8_t) (0x41+ deviceClass); //translate to 'A','B','C' outbuf[i++] = (uint8_t) (0x41+ deviceClass); //translate to 'A','B','C'
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
} }
break; break;
@ -637,7 +637,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) MajorVer; outbuf[i++] = (uint8_t) MajorVer;
outbuf[i++] = (uint8_t) MinorVer; outbuf[i++] = (uint8_t) MinorVer;
outbuf[i++] = (uint8_t) SubMinorVer; outbuf[i++] = (uint8_t) SubMinorVer;
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
APP_LOG(TS_OFF, VLEVEL_L, "###### YUNHORN Report Version [ %10x ] \r\n", outbuf); APP_LOG(TS_OFF, VLEVEL_L, "###### YUNHORN Report Version [ %10x ] \r\n", outbuf);
} }
else else
@ -658,7 +658,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
for (uint8_t j=1; j <= cfg_in_nvm[NVM_LEN]; j++) { for (uint8_t j=1; j <= cfg_in_nvm[NVM_LEN]; j++) {
outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_LEN+j]); outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_LEN+j]);
} }
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
APP_LOG(TS_OFF, VLEVEL_L, "###### YUNHORN Report Config in NVM [ %10x ] \r\n", outbuf); APP_LOG(TS_OFF, VLEVEL_L, "###### YUNHORN Report Config in NVM [ %10x ] \r\n", outbuf);
} }
@ -672,7 +672,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
} else { } else {
STS_SENSOR_Upload_Config_Invalid_Message(); STS_SENSOR_Upload_Config_Invalid_Message();
} }
@ -685,7 +685,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
} else { } else {
STS_SENSOR_Upload_Config_Invalid_Message(); STS_SENSOR_Upload_Config_Invalid_Message();
} }
@ -698,7 +698,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
} else { } else {
STS_SENSOR_Upload_Config_Invalid_Message(); STS_SENSOR_Upload_Config_Invalid_Message();
} }
@ -728,11 +728,12 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5];
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
// Save config to NVM // Save config to NVM
sts_cfg_nvm.mtmcode1 = sts_mtmcode1; sts_cfg_nvm.mtmcode1 = sts_mtmcode1;
sts_cfg_nvm.mtmcode2 = sts_mtmcode2; sts_cfg_nvm.mtmcode2 = sts_mtmcode2;
sts_cfg_nvm.version = sts_version; sts_cfg_nvm.version = sts_version;
sts_cfg_nvm.hardware_ver = sts_hardware_ver;
sts_cfg_nvm.periodicity_h = tlv_buf[CFG_CMD3]; sts_cfg_nvm.periodicity_h = tlv_buf[CFG_CMD3];
sts_cfg_nvm.periodicity_l = tlv_buf[CFG_CMD4]; sts_cfg_nvm.periodicity_l = tlv_buf[CFG_CMD4];
sts_cfg_nvm.unit = periodicity_unit; sts_cfg_nvm.unit = periodicity_unit;
@ -782,6 +783,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = sts_mtmcode1; outbuf[i++] = sts_mtmcode1;
outbuf[i++] = sts_mtmcode2; outbuf[i++] = sts_mtmcode2;
outbuf[i++] = sts_version; outbuf[i++] = sts_version;
outbuf[i++] = sts_hardware_ver;
outbuf[i++] = (uint8_t) act_threshold; outbuf[i++] = (uint8_t) act_threshold;
outbuf[i++] = (uint8_t) inact_threshold; outbuf[i++] = (uint8_t) inact_threshold;
outbuf[i++] = (uint8_t) inact_duration; outbuf[i++] = (uint8_t) inact_duration;
@ -790,6 +792,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
sts_cfg_nvm.mtmcode1 = sts_mtmcode1; sts_cfg_nvm.mtmcode1 = sts_mtmcode1;
sts_cfg_nvm.mtmcode2 = sts_mtmcode2; sts_cfg_nvm.mtmcode2 = sts_mtmcode2;
sts_cfg_nvm.version = sts_version; sts_cfg_nvm.version = sts_version;
sts_cfg_nvm.hardware_ver = sts_hardware_ver;
sts_cfg_nvm.length = NVM_CFG_PARAMETER_SIZE; sts_cfg_nvm.length = NVM_CFG_PARAMETER_SIZE;
sts_cfg_nvm.p[0] = (uint8_t) act_threshold; sts_cfg_nvm.p[0] = (uint8_t) act_threshold;
@ -806,7 +809,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
} }
#endif #endif
// Step 3: Upload status update message // Step 3: Upload status update message
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
#if defined(YUNHORN_STS_R1_ENABLED) || defined(YUNHORN_STS_R2_ENABLED)|| defined(YUNHORN_STS_R3_ENABLED) || defined(YUNHORN_STS_R5_ENABLED) #if defined(YUNHORN_STS_R1_ENABLED) || defined(YUNHORN_STS_R2_ENABLED)|| defined(YUNHORN_STS_R3_ENABLED) || defined(YUNHORN_STS_R5_ENABLED)
#endif #endif
@ -836,7 +839,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
void STS_SENSOR_Upload_Config_Invalid_Message(void) void STS_SENSOR_Upload_Config_Invalid_Message(void)
{ {
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, 5, "PVXXX"); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, "PVXXX");
} }
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)
@ -847,7 +850,7 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char
for (uint8_t i=0;i<appBufferSize; i++) { for (uint8_t i=0;i<appBufferSize; i++) {
AppData.Buffer[i] = appDataBuffer[i]; AppData.Buffer[i] = appDataBuffer[i];
} }
AppData.Port = LORAWAN_USER_APP_PORT; AppData.Port = appDataPort;
AppData.BufferSize = appBufferSize; AppData.BufferSize = appBufferSize;
status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false);
@ -936,37 +939,40 @@ static void SendTxData(void)
STS_MOTION_SENSOR_Read(&m7_data); STS_MOTION_SENSOR_Read(&m7_data);
AppData.Port = LORAWAN_USER_APP_PORT; AppData.Port = LORAWAN_USER_APP_PORT;
AppData.Buffer[i++] = AppLedStateOn; AppData.Buffer[i++] = AppLedStateOn; //#01
if (sensor_data_ready == 0L) return ; if (sensor_data_ready == 0L) return ;
if (sensor_data_ready != 0L) if (sensor_data_ready != 0L)
{ {
sensor_data_ready =0; sensor_data_ready =0;
AppData.Buffer[i++] = (uint8_t)(0xFF & sts_mtmcode1); //AppLedStateOn; AppData.Buffer[i++] = (uint8_t)(0xFF & sts_mtmcode1); //mtmcode1; //#02
AppData.Buffer[i++] = (uint8_t)(0xFF & sts_mtmcode2); //AppLedStateOn; AppData.Buffer[i++] = (uint8_t)(0xFF & sts_mtmcode2); //mtmcode2; //#03
AppData.Buffer[i++] = (uint8_t)(0xFF & sts_hardware_ver); //hardware_Ver; //#04
AppData.Buffer[i++] = (uint8_t)(99*batteryLevel/254); //#05 /* 99% (very low) to 254 (fully charged) */
AppData.Buffer[i++] = 0x00; //temp //#06
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vibration_duration); //03 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vibration_duration); //07
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_freq >> 8); //04 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_freq >> 8); //08 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_freq); //05 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_freq); //09 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_freq >> 8); //06 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_freq >> 8); //10 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_freq); //07 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_freq); //11 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_freq >> 8); //08 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_freq >> 8); //12 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_freq); //09 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_freq); //13 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_rms >> 8 ); //10 Freq Max 256 Hz Given sample rate & FFT Length 512 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_rms >> 8 ); //14 Freq Max 256 Hz Given sample rate & FFT Length 512
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_rms); //11 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_x_rms); //15
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_rms >> 8); //12 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_rms >> 8); //16
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_rms); //13 AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_y_rms); //17
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_rms >>8 ); //18
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_rms); //19
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_rms >>8 ); //14
AppData.Buffer[i++] = (uint8_t)(0xFF & m7_data.vb_z_rms); //15
AppData.Buffer[i++] = (uint8_t)(99*batteryLevel/254); //16 /* 99% (very low) to 254 (fully charged) */
APP_LOG(TS_OFF, VLEVEL_H, "###### Duration:%02d seconds | FREQ_X:%d Hz | FREQ_Y:%d Hz | FREQ_Z:%d Hz |\r\n###### | RMS_X:%d | RMS_Y:%d | RMS_Z:%d | BATTERY_B:%02d%% |\r\n", APP_LOG(TS_OFF, VLEVEL_H, "###### Duration:%02d seconds | FREQ_X:%d Hz | FREQ_Y:%d Hz | FREQ_Z:%d Hz |\r\n###### | RMS_X:%d | RMS_Y:%d | RMS_Z:%d | BATTERY_B:%02d%% |\r\n",
AppData.Buffer[3], AppData.Buffer[3],
@ -986,7 +992,7 @@ static void SendTxData(void)
else else
{ {
} }
AppData.Buffer[5] = (uint8_t)(i-6); //size of appData
AppData.BufferSize = i; AppData.BufferSize = i;
if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET)) if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
@ -1353,6 +1359,7 @@ void OnStoreSTSCFGContextRequest(void)
nvm_store_value[i++] = sts_mtmcode1; nvm_store_value[i++] = sts_mtmcode1;
nvm_store_value[i++] = sts_mtmcode2; nvm_store_value[i++] = sts_mtmcode2;
nvm_store_value[i++] = sts_cfg_nvm.version; nvm_store_value[i++] = sts_cfg_nvm.version;
nvm_store_value[i++] = sts_hardware_ver;
nvm_store_value[i++] = sts_cfg_nvm.periodicity_h; nvm_store_value[i++] = sts_cfg_nvm.periodicity_h;
nvm_store_value[i++] = sts_cfg_nvm.periodicity_l; nvm_store_value[i++] = sts_cfg_nvm.periodicity_l;
nvm_store_value[i++] = sts_cfg_nvm.unit; nvm_store_value[i++] = sts_cfg_nvm.unit;
@ -1433,6 +1440,7 @@ void STS_REBOOT_CONFIG_Init(void)
sts_cfg_nvm.mtmcode1 = (uint8_t)nvm_stored_value[NVM_MTM1]; sts_cfg_nvm.mtmcode1 = (uint8_t)nvm_stored_value[NVM_MTM1];
sts_cfg_nvm.mtmcode2 = (uint8_t)nvm_stored_value[NVM_MTM2]; sts_cfg_nvm.mtmcode2 = (uint8_t)nvm_stored_value[NVM_MTM2];
sts_cfg_nvm.version = (uint8_t)nvm_stored_value[NVM_VER]; sts_cfg_nvm.version = (uint8_t)nvm_stored_value[NVM_VER];
sts_cfg_nvm.hardware_ver = (uint8_t)nvm_stored_value[NVM_HWV];
sts_cfg_nvm.periodicity_h = (uint8_t)(nvm_stored_value[NVM_PERIODICITY_H]); sts_cfg_nvm.periodicity_h = (uint8_t)(nvm_stored_value[NVM_PERIODICITY_H]);
sts_cfg_nvm.periodicity_l = (uint8_t)(nvm_stored_value[NVM_PERIODICITY_L]); sts_cfg_nvm.periodicity_l = (uint8_t)(nvm_stored_value[NVM_PERIODICITY_L]);
sts_cfg_nvm.unit = (uint8_t)(nvm_stored_value[NVM_UNIT]); sts_cfg_nvm.unit = (uint8_t)(nvm_stored_value[NVM_UNIT]);
@ -1497,6 +1505,9 @@ void STS_SENSOR_Function_Test_Process(void)
outbuf[i++] = (uint8_t) sts_mtmcode1; outbuf[i++] = (uint8_t) sts_mtmcode1;
outbuf[i++] = (uint8_t) sts_mtmcode2; outbuf[i++] = (uint8_t) sts_mtmcode2;
outbuf[i++] = (uint8_t) sts_version; outbuf[i++] = (uint8_t) sts_version;
outbuf[i++] = (uint8_t) sts_hardware_ver;
outbuf[i++] = (uint8_t) (99*((GetBatteryLevel()/254)&0xff));
outbuf[i++] = (uint8_t) (self_test_result[0]>>8)&0xff; outbuf[i++] = (uint8_t) (self_test_result[0]>>8)&0xff;
outbuf[i++] = (uint8_t) (self_test_result[0])&0xff; outbuf[i++] = (uint8_t) (self_test_result[0])&0xff;
@ -1525,7 +1536,7 @@ void STS_SENSOR_Function_Test_Process(void)
outbuf[i++] = (uint8_t) (self_test_result[8])&0xff; outbuf[i++] = (uint8_t) (self_test_result[8])&0xff;
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_PORT, i, outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
#endif #endif

View File

@ -57,6 +57,7 @@ extern "C" {
*/ */
#define LORAWAN_USER_APP_PORT sts_senddataport #define LORAWAN_USER_APP_PORT sts_senddataport
#define LORAWAN_USER_APP_CTRL_PORT sts_appctrlport #define LORAWAN_USER_APP_CTRL_PORT sts_appctrlport
#define LORAWAN_USER_APP_CTRL_REPLY_PORT sts_appctrl_reply_port
/*! /*!
* LoRaWAN Switch class application port * LoRaWAN Switch class application port
* @note do not use 224. It is reserved for certification * @note do not use 224. It is reserved for certification

File diff suppressed because one or more lines are too long

View File

@ -77,7 +77,7 @@
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget> <IsCurrentTarget>1</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>0</CpuCode> <CpuCode>18</CpuCode>
<DebugOpt> <DebugOpt>
<uSim>0</uSim> <uSim>0</uSim>
<uTrg>1</uTrg> <uTrg>1</uTrg>
@ -433,7 +433,7 @@
<Group> <Group>
<GroupName>Application/User/LoRaWAN/App</GroupName> <GroupName>Application/User/LoRaWAN/App</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>