diff --git a/Core/Inc/utilities_def.h b/Core/Inc/utilities_def.h
index 3a84f25..fd5e374 100644
--- a/Core/Inc/utilities_def.h
+++ b/Core/Inc/utilities_def.h
@@ -89,6 +89,10 @@ typedef enum
CFG_SEQ_Task_YunhornSTSEventP6,
CFG_SEQ_Task_YunhornSTSEventP7,
CFG_SEQ_Task_YunhornSTSEventP8,
+ CFG_SEQ_Task_YunhornSTSEventP9,
+ CFG_SEQ_Task_YunhornSTSEventP10,
+ CFG_SEQ_Task_YunhornSTSEventP11,
+ CFG_SEQ_Task_YunhornSTSEventP12,
CFG_SEQ_Task_YunhornSTSEventPIORS485,
/* USER CODE END CFG_SEQ_Task_Id_t */
CFG_SEQ_Task_NBR
diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h
index a3fc964..3106e0b 100644
--- a/Core/Inc/yunhorn_sts_prd_conf.h
+++ b/Core/Inc/yunhorn_sts_prd_conf.h
@@ -45,9 +45,13 @@
//#define USE_TOF_VL53L1X
#if defined(TOF_1)||defined(TOF_2)||defined(TOF_3)
#define STS_USE_TOF_VL53L0X 1U
+#define YUNHORN_STS_R5_ENABLED
+
#endif
-#define YUNHORN_STS_R5_ENABLED
+#if defined(STS_TMG)
+#define YUNHORN_STS_M1A_ENABLED
+#endif
// TOF VL53LX number
//#define USE_MEMS_ADXL345
@@ -90,7 +94,7 @@
/** YUNHORN SMARTOILETS CLEANSING RESOUCES LEVEL PRODUCTS **/
//#define YUNHORN_STS_R0_ENABLED
-#define YUNHORN_STS_R0_ENABLED
+//#define YUNHORN_STS_R0_ENABLED
//#define YUNHORN_STS_R2_ENABLED
/*#define YUNHORN_STS_R3_ENABLED */
/*#define YUNHORN_STS_R4_ENABLED */
@@ -223,6 +227,13 @@
#endif
+#if defined(YUNHORN_STS_M1A_ENABLED)
+
+#define YUNHORN_STS_M1A_LORA_APP_DATA_PORT 13U
+#define YUNHORN_STS_M1A_LORA_APP_HTBT_PORT 14U
+#endif
+
+
//#define YUNHORN_STS_M1_LORA_APP_DATA_PORT 6U
//#define YUNHORN_STS_M1_LORA_APP_HTBT_PORT 6U
//#define YUNHORN_STS_M2_LORA_APP_DATA_PORT 59U
@@ -246,8 +257,8 @@
#define MajorVer 23U
-#define MinorVer 11U
-#define SubMinorVer 18U
+#define MinorVer 12U
+#define SubMinorVer 13U
#define FirmwareVersion 3U
#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U
#define YUNHORN_STS_AC_CODE_SIZE 20U
@@ -280,6 +291,15 @@
#define sts_sendhtbtport (YUNHORN_STS_R5_LORA_APP_HTBT_PORT)
#endif
+#ifdef YUNHORN_STS_M1A_ENABLED
+#define sts_mtmcode1 0U
+#define sts_mtmcode2 26U
+#define sts_hardware_ver 1U
+#define sts_version 1U
+#define sts_senddataport (YUNHORN_STS_M1A_LORA_APP_DATA_PORT)
+#define sts_sendhtbtport (YUNHORN_STS_M1A_LORA_APP_HTBT_PORT)
+#endif
+
#define sts_appctrlport (YUNHORN_STS_USER_APP_CTRL_PORT)
#define sts_appctrl_reply_port (YUNHORN_STS_USER_APP_CTRL_REPLY_PORT)
diff --git a/Core/Inc/yunhorn_sts_sensors.h b/Core/Inc/yunhorn_sts_sensors.h
index b192333..c130e7d 100644
--- a/Core/Inc/yunhorn_sts_sensors.h
+++ b/Core/Inc/yunhorn_sts_sensors.h
@@ -236,6 +236,27 @@ typedef struct
#endif
+#if defined(YUNHORN_STS_M1A_ENABLED)
+typedef struct
+{
+ uint16_t waterSpillCount; /* count of water spillage */
+ float averageTemp; /* 0-120 C */
+ float maxTemp; /* 0-120 C */
+ float minTemp; /* 0-120 C */
+ float centerTemp; /* 0-120 C */
+ uint8_t v_water_cnt; /* 0-31 */
+ uint8_t h_water_cnt; /* 0-63 */
+
+ uint8_t waterSpillMatrix[64][32]; /* temp matrix or mark */
+ uint16_t battery_mV; /*mV, 1000mv-5000mv, regular 3300mV - 3600mV --4200mV */
+
+ uint8_t on_off_event; /* 1: liquid sensed, 0: no liquid sensed */
+ uint8_t measure_tech; /* 0: capacit, 1:dTof, 2: ultrasonic */
+ uint8_t battery_Pct; /* % of battery two digits, 88% (00-99)% */
+
+} STS_M1A_SensorDataTypeDef;
+#endif
+
typedef struct
{
uint8_t WakeUpStatus;
@@ -584,6 +605,11 @@ void STS_PRESENCE_SENSOR_TOF_Init(void);
void STS_O5_SENSOR_Read(STS_OO_SensorDataTypeDef *oo_data);
#endif
+
+#ifdef YUNHORN_STS_M1A_ENABLED
+void STS_M1A_SENSOR_Read(STS_M1A_SensorDataTypeDef *m1a_data);
+#endif
+
void STS_YunhornSTSEventP1_Process(void);
void STS_YunhornSTSEventP2_Process(void);
void STS_YunhornSTSEventP3_Process(void);
@@ -591,6 +617,11 @@ void STS_YunhornSTSEventP4_Process(void);
void STS_YunhornSTSEventP5_Process(void);
void STS_YunhornSTSEventP6_Process(void);
void STS_YunhornSTSEventP7_Process(void);
+void STS_YunhornSTSEventP8_Process(void);
+void STS_YunhornSTSEventP9_Process(void);
+void STS_YunhornSTSEventP10_Process(void);
+void STS_YunhornSTSEventP11_Process(void);
+void STS_YunhornSTSEventP12_Process(void);
void STS_YunhornSTSEventRFAC_Process(void);
void STS_YunhornAuthenticationCode_Process(void);
diff --git a/Core/Src/i2c.c b/Core/Src/i2c.c
index 89074ee..b8de436 100644
--- a/Core/Src/i2c.c
+++ b/Core/Src/i2c.c
@@ -44,7 +44,7 @@ void MX_I2C2_Init(void)
/* USER CODE END I2C2_Init 1 */
hi2c2.Instance = I2C2;
- hi2c2.Init.Timing = 0x20303E5D; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps
+ hi2c2.Init.Timing = 0x2010091A; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps
hi2c2.Init.OwnAddress1 = 0;
hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
diff --git a/Core/Src/main.c b/Core/Src/main.c
index 1019589..62e77d5 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -129,39 +129,13 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
- APP_LOG(TS_OFF, VLEVEL_L, "START LCD init....\r\n");
-
- BSP_LCD_Init();
- BSP_LCD_Clear(LCD_COLOR_BLUE);
-
-#if 1
- APP_LOG(TS_OFF, VLEVEL_L, "BSP LCD TEST....\r\n");
- BSP_LCD_DisplayOn();
- BSP_LCD_Test();
- BSP_LCD_DisplayOff();
-#endif
-
- APP_LOG(TS_OFF, VLEVEL_L, "START Thermal Graph Test....\r\n");
- //MLX90640_I2CInit();
- BSP_LCD_DisplayOn();
- mlx90640_display_init();
-
- while (1)
- {
- /* USER CODE END WHILE */
-
- /* USER CODE BEGIN 3 */
- APP_LOG(TS_OFF, VLEVEL_L, "loop display process \r\n");
-
- mlx90640_display_process();
- }
while (1)
{
/* USER CODE END WHILE */
MX_LoRaWAN_Process();
- mlx90640_display_process();
+
/* USER CODE BEGIN 3 */
}
diff --git a/Core/Src/yunhorn_sts_process.c b/Core/Src/yunhorn_sts_process.c
index ab584df..47c0063 100644
--- a/Core/Src/yunhorn_sts_process.c
+++ b/Core/Src/yunhorn_sts_process.c
@@ -35,6 +35,10 @@
#include "yunhorn_sts_sensors.h"
#include "sts_cmox_hmac_sha.h"
+#ifdef STS_TMG
+#include "mlx90640_lcd_display.h"
+#endif
+
/* USER CODE BEGIN Includes */
extern volatile sts_cfg_nvm_t sts_cfg_nvm;
extern volatile uint8_t sts_ac_code[20];
@@ -93,6 +97,7 @@ extern volatile float sts_presence_rss_distance;
// P6 --- SOAP Level, capacitive measurement
// P7 --- UltraSonic, 2nd wave UltraSonic range measure
// P8 --- AIR QUALITY AND ODOR LEVEL, SMOKING DETECTION
+ // P9 --- Water Spillage Sensor, Thermal Graph Sensor
*/
@@ -398,6 +403,62 @@ void STS_YunhornSTSEventP8_Process(void)
}
+
+
+/*
+ * STS P9 Process, Water Spillage sensor, Thermal Graph
+ * STS-M1A water spillage sensor
+ */
+void STS_YunhornSTSEventP9_Process(void)
+{
+ APP_LOG(TS_OFF, VLEVEL_L, "\r\n P9 Testing Process start\r\n");
+#if 0
+ BSP_LCD_Init();
+ BSP_LCD_Clear(LCD_COLOR_BLUE);
+ BSP_LCD_DisplayOn();
+ BSP_LCD_Test();
+ BSP_LCD_DisplayOff();
+#endif
+
+ //MX_I2C2_Init();
+ mlx90640_display_init();
+ mlx90640_display_process();
+}
+
+
+/*
+ * STS P10 Process, TBD
+ * TBD
+ */
+void STS_YunhornSTSEventP10_Process(void)
+{
+ APP_LOG(TS_OFF, VLEVEL_L, "\r\n P10 Testing Process\r\n");
+
+}
+
+
+/*
+ * STS P11 Process, TBD
+ * TBD
+ */
+void STS_YunhornSTSEventP11_Process(void)
+{
+ APP_LOG(TS_OFF, VLEVEL_L, "\r\n P11 Testing Process\r\n");
+
+}
+
+
+
+/*
+ * STS P12 Process, TBD
+ * TBD
+ */
+void STS_YunhornSTSEventP12_Process(void)
+{
+ APP_LOG(TS_OFF, VLEVEL_L, "\r\n P12 Testing Process\r\n");
+
+}
+
/*
* STS P_IO_RS485 Process, Send Out Sensor Data Via RS485 interface
* sensors
diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c
index 13e7ddc..3ffd420 100644
--- a/LoRaWAN/App/lora_app.c
+++ b/LoRaWAN/App/lora_app.c
@@ -488,7 +488,7 @@ void LoRaWAN_Init(void)
/* USER CODE END LoRaWAN_Init_LV */
/* USER CODE BEGIN LoRaWAN_Init_1 */
- APP_LOG(TS_OFF, VLEVEL_L, "\r\n\n\n##### YUNHORN_STS_FW:%d SWV%d HWV:%d MTM:%d.%d R:%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_version, sts_hardware_ver, sts_mtmcode1,sts_mtmcode2, MajorVer, MinorVer, SubMinorVer);
/* Get LoRaWAN APP version*/
@@ -581,11 +581,15 @@ 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_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process);
- 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);
// 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_YunhornSTSEventP7), UTIL_SEQ_RFU, STS_YunhornSTSEventP7_Process);
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP8), UTIL_SEQ_RFU, STS_YunhornSTSEventP8_Process);
+ UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), UTIL_SEQ_RFU, STS_YunhornSTSEventP9_Process);
+// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), UTIL_SEQ_RFU, STS_YunhornSTSEventP10_Process);
+// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), UTIL_SEQ_RFU, STS_YunhornSTSEventP11_Process);
+// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), UTIL_SEQ_RFU, STS_YunhornSTSEventP12_Process);
// UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventPIORS485), UTIL_SEQ_RFU, STS_YunhornSTSEventPIORS485_Process);
#ifdef YUNHORN_STS_O6_ENABLED
@@ -597,7 +601,7 @@ void LoRaWAN_Init(void)
// Uploading Message
// FOR Periodically upload message sensor, use this as Heart Beat interval
-#ifdef YUNHORN_STS_MM_ENABLED
+#if defined(YUNHORN_STS_MM_ENABLED)
UTIL_TIMER_Create(&YunhornSTSUploadingMessageTimer,
YUNHORN_STS_UPLOADING_MESSAGE_TIME,
UTIL_TIMER_PERIODIC, OnYunhornSTSUploadingMessageEvent, NULL);
@@ -621,6 +625,11 @@ void LoRaWAN_Init(void)
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
#endif
+#if defined(YUNHORN_STS_M1A_ENABLED)
+ UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity,
+ UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL);
+ UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
+#endif
/* USER CODE END LoRaWAN_Init_Last */
@@ -633,7 +642,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
switch (GPIO_Pin)
{
case BUT1_Pin:
-#if (defined(STS_USE_STM32WL55)||defined(STS_USE_STM32WLE5))
+#if (defined(STM32WL55xx)||defined(STM32WLE5xx))
#ifdef YUNHORN_STS_O5_ENABLED
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0);
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
@@ -787,6 +796,10 @@ static void SendTxData(void)
uint8_t batteryLevel = GetBatteryLevel();
//uint16_t batteryLevelmV = SYS_GetBatteryLevel();
//sensor_t sensor_data;
+#if defined(YUNHORN_STS_M1A_ENABLED)
+ STS_M1A_SensorDataTypeDef m1a_data;
+#endif
+
#if defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)
STS_R0_SensorDataTypeDef r0_data;
#endif
@@ -795,7 +808,7 @@ static void SendTxData(void)
#endif
UTIL_TIMER_Time_t nextTxIn = 0;
- if (LmHandlerIsBusy() == false)
+// if (LmHandlerIsBusy() == false)
{
uint8_t i = 0;
//MX_TOF_Process();
@@ -806,6 +819,17 @@ static void SendTxData(void)
STS_YunhornSTSEventP6_Process();
#endif
+#if defined(YUNHORN_STS_M1A_ENABLED)
+
+ UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), CFG_SEQ_Prio_0);
+ STS_M1A_SENSOR_Read(&m1a_data);
+
+ m1a_data.battery_Pct = (uint8_t)(99*batteryLevel/254);
+// STS_R0_SENSOR_Read(&r0_data);
+ //r0_data.battery_mV = batteryLevelmV;
+// r0_data.battery_Pct = (uint8_t)(99*batteryLevel/254);
+#endif
+
//UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), CFG_SEQ_Prio_0);
#if defined(YUNHORN_STS_R0_ENABLED)||defined(YUNHORN_STS_R5_ENABLED)
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), CFG_SEQ_Prio_0);
@@ -877,6 +901,30 @@ static void SendTxData(void)
#endif
// AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV >>8)&0xff; //#12
// AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV)&0xff; //#13
+#endif
+#ifdef STS_TMG
+ AppData.Buffer[i++] = (uint8_t)(12)&0xff; //#length of following bytes
+ AppData.Buffer[i++] = (uint8_t)(m1a_data.waterSpillCount>>8)&0xff; //#01
+ AppData.Buffer[i++] = (uint8_t)(m1a_data.waterSpillCount)&0xff; //#02
+
+
+ AppData.Buffer[i++] = (uint8_t)(m1a_data.v_water_cnt)&0xff; //#3
+ AppData.Buffer[i++] = (uint8_t)(m1a_data.h_water_cnt)&0xff; //#4
+
+ AppData.Buffer[i++] = (uint8_t)((int)m1a_data.averageTemp)&0xff; //#5
+ AppData.Buffer[i++] = (uint8_t)(((int)(m1a_data.averageTemp*100))%100)&0xff; //#6
+
+ AppData.Buffer[i++] = (uint8_t)((int)m1a_data.centerTemp)&0xff; //#7
+ AppData.Buffer[i++] = (uint8_t)(((int)(m1a_data.centerTemp*100))%100)&0xff; //#8
+
+ AppData.Buffer[i++] = (uint8_t)((int)m1a_data.minTemp)&0xff; //#9
+ AppData.Buffer[i++] = (uint8_t)(((int)(m1a_data.minTemp*100))%100)&0xff; //#10
+
+ AppData.Buffer[i++] = (uint8_t)((int)m1a_data.maxTemp)&0xff; //#11
+ AppData.Buffer[i++] = (uint8_t)(((int)(m1a_data.maxTemp*100))%100)&0xff; //#12
+
+
+
#endif
}
@@ -894,7 +942,7 @@ static void SendTxData(void)
status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false);
if (LORAMAC_HANDLER_SUCCESS == status)
{
- APP_LOG(TS_ON, VLEVEL_H, "SEND REQUEST\r\n");
+ APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n");
}
else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status)
{
@@ -969,17 +1017,17 @@ static void OnTxData(LmHandlerTxParams_t *params)
UTIL_TIMER_Start(&TxLedTimer);
APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### ========== MCPS-Confirm =============\r\n");
- APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:%04d | PORT:%d | DR:%d | PWR:%d", params->UplinkCounter,
+ APP_LOG(TS_OFF, VLEVEL_M, "###### U/L FRAME:%04d | PORT:%d | DR:%d | PWR:%d", params->UplinkCounter,
params->AppData.Port, params->Datarate, params->TxPower);
- APP_LOG(TS_OFF, VLEVEL_H, " | MSG TYPE:");
+ APP_LOG(TS_OFF, VLEVEL_M, " | MSG TYPE:");
if (params->MsgType == LORAMAC_HANDLER_CONFIRMED_MSG)
{
- APP_LOG(TS_OFF, VLEVEL_H, "CONFIRMED [%s]\r\n", (params->AckReceived != 0) ? "ACK" : "NACK");
+ APP_LOG(TS_OFF, VLEVEL_M, "CONFIRMED [%s]\r\n", (params->AckReceived != 0) ? "ACK" : "NACK");
}
else
{
- APP_LOG(TS_OFF, VLEVEL_H, "UNCONFIRMED\r\n");
+ APP_LOG(TS_OFF, VLEVEL_M, "UNCONFIRMED\r\n");
}
}
}
@@ -1103,7 +1151,7 @@ static void OnTxPeriodicityChanged(uint32_t periodicity)
UTIL_TIMER_SetPeriod(&TxTimer, TxPeriodicity);
UTIL_TIMER_Start(&TxTimer);
/* USER CODE BEGIN OnTxPeriodicityChanged_2 */
- APP_LOG(TS_OFF, VLEVEL_H,"\r\n TxPeriodicity changed to %u (msec) \r\n", TxPeriodicity);
+ APP_LOG(TS_OFF, VLEVEL_M,"\r\n TxPeriodicity changed to %u (msec) \r\n", TxPeriodicity);
/* USER CODE END OnTxPeriodicityChanged_2 */
}
@@ -1309,7 +1357,7 @@ static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity)
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
/* USER CODE BEGIN OnTxPeriodicityChanged_2 */
- APP_LOG(TS_OFF, VLEVEL_H,"**************** HeartBeatPeriodicity Changed to: %u (ms)\r\n", HeartBeatPeriodicity );
+ APP_LOG(TS_OFF, VLEVEL_M,"**************** HeartBeatPeriodicity Changed to: %u (ms)\r\n", HeartBeatPeriodicity );
/* USER CODE END OnTxPeriodicityChanged_2 */
}
@@ -1917,7 +1965,7 @@ void OnStoreSTSCFGContextRequest(void)
/* USER CODE BEGIN OnStoreContextRequest_1 */
uint8_t i=0,j=0,nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
-#if (defined(YUNHORN_STS_O5_ENABLED) || defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED) || defined(YUNHORN_STS_R5_ENABLED))
+#if (defined(YUNHORN_STS_O5_ENABLED) || defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED) || defined(YUNHORN_STS_R5_ENABLED)) || defined(YUNHORN_STS_M1A_ENABLED)
sts_cfg_nvm.length = STS_NVM_CFG_SIZE;
nvm_store_value[i++] = sts_cfg_nvm.mtmcode1;
nvm_store_value[i++] = sts_cfg_nvm.mtmcode2;
@@ -1982,7 +2030,7 @@ void STS_REBOOT_CONFIG_Init(void)
UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
/* USER CODE BEGIN OnRestoreContextRequest_Last */
-#if defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED) || defined(YUNHORN_STS_R5_ENABLED)
+#if defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED) || defined(YUNHORN_STS_R5_ENABLED) || defined(YUNHORN_STS_M1A_ENABLED)
if ((nvm_stored_value[NVM_MTM1] != sts_mtmcode1) || (nvm_stored_value[NVM_MTM2] != sts_mtmcode2) || (nvm_stored_value[NVM_VER] != sts_version))
{
APP_LOG(TS_OFF, VLEVEL_H, "\r\nInitial Boot with Empty Config, Flash with default config....\r\n");
@@ -2061,7 +2109,7 @@ void OnRestoreSTSCFGContextProcess(void)
OnYunhornSTSSamplingPeriodicityChanged(HeartBeatPeriodicity); // in m-sec unit
#endif
-#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_M1A_ENABLED)
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
#endif
}
diff --git a/LoRaWAN/Target/lorawan_conf.h b/LoRaWAN/Target/lorawan_conf.h
index 9ddccb0..1706743 100644
--- a/LoRaWAN/Target/lorawan_conf.h
+++ b/LoRaWAN/Target/lorawan_conf.h
@@ -109,7 +109,7 @@ extern "C" {
* - CHANNEL_PLAN_GROUP_AS923_4 (Freq offset = -5.90 MHz / Freq range = 917-920MHz)
* - CHANNEL_PLAN_GROUP_AS923_1_JP (Freq offset = 0.0 MHz / Freq range = 920.6-923.4MHz)
*/
-#define REGION_AS923_DEFAULT_CHANNEL_PLAN CHANNEL_PLAN_GROUP_AS923_1_JP
+#define REGION_AS923_DEFAULT_CHANNEL_PLAN CHANNEL_PLAN_GROUP_AS923_1
/*!
* @brief Limits the number usable channels by default for AU915, CN470 and US915 regions
diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject
index 6a7af73..284d00a 100644
--- a/STM32CubeIDE/.cproject
+++ b/STM32CubeIDE/.cproject
@@ -127,7 +127,7 @@
-
+
@@ -145,13 +145,11 @@