pre-production-r2
This commit is contained in:
parent
dc59907fa7
commit
e6e6680177
|
@ -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 sts_mtmcode1 0U
|
#define YUNHORN_STS_M7_USER_APP_CTRL_REPLY_PORT 1U
|
||||||
#define sts_mtmcode2 9U
|
#define sts_mtmcode1 0U
|
||||||
#define sts_version 1U
|
#define sts_mtmcode2 9U
|
||||||
#define sts_senddataport YUNHORN_STS_M7_LORA_APP_DATA_PORT
|
#define sts_hardware_ver 0U
|
||||||
#define sts_sendhtbtport YUNHORN_STS_M7_LORA_APP_HTBT_PORT
|
#define sts_version 1U
|
||||||
#define sts_appctrlport YUNHORN_STS_M7_USER_APP_CTRL_PORT
|
#define sts_senddataport YUNHORN_STS_M7_LORA_APP_DATA_PORT
|
||||||
|
#define sts_sendhtbtport YUNHORN_STS_M7_LORA_APP_HTBT_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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]);
|
||||||
|
@ -1488,7 +1496,7 @@ void OnRestoreSTSCFGContextProcess(void)
|
||||||
void STS_SENSOR_Function_Test_Process(void)
|
void STS_SENSOR_Function_Test_Process(void)
|
||||||
{
|
{
|
||||||
char outbuf[32] =""; uint8_t i=0, count=10;
|
char outbuf[32] =""; uint8_t i=0, count=10;
|
||||||
int16_t self_test_result[9]={0,0,0, 0,0,0, 0,0,0};
|
int16_t self_test_result[9]={0,0,0,0, 0,0,0, 0,0};
|
||||||
|
|
||||||
#ifdef YUNHORN_STS_M7_ENABLED
|
#ifdef YUNHORN_STS_M7_ENABLED
|
||||||
STS_MOTION_SENSOR_Function_Test_Process(&self_test_result[0], count);
|
STS_MOTION_SENSOR_Function_Test_Process(&self_test_result[0], count);
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
@ -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>
|
||||||
|
|
Reference in New Issue