diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 97656db..891bd1a 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -52,7 +52,7 @@ extern "C" { /** * @brief Enable trace logs */ -#define APP_LOG_ENABLED 1 +#define APP_LOG_ENABLED 0 /** * @brief Activate monitoring (probes) of some internal RF signals for debug purpose diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h index c1df1fe..7239431 100644 --- a/Core/Inc/yunhorn_sts_prd_conf.h +++ b/Core/Inc/yunhorn_sts_prd_conf.h @@ -60,7 +60,7 @@ #ifdef YUNHORN_STS_M7_ENABLED #define MajorVer 23U #define MinorVer 10U -#define SubMinorVer 16U +#define SubMinorVer 17U #define FirmwareVersion 3U /* #define YUNHORN_STS_M7_NVM_CFG_SIZE 3U @@ -133,7 +133,7 @@ #define BAT_ER14505_2P_4800MAH ((uint32_t) 3600) #define BAT_STS_BOARD_3V3 ((uint32_t) 3300) -#define VDD_BAT BAT_ER34615_19000AH +#define VDD_BAT BAT_CR2450 /* STM32WL55JC READ/WRITE FLASH ADDRESS AND SIZE * SECTION START ADDRESS SIZE diff --git a/Core/Src/yunhorn_sts_motion_sensor.c b/Core/Src/yunhorn_sts_motion_sensor.c index d05a4bd..76e4592 100644 --- a/Core/Src/yunhorn_sts_motion_sensor.c +++ b/Core/Src/yunhorn_sts_motion_sensor.c @@ -169,7 +169,7 @@ void STS_MOTION_SENSOR_GetValue(void) //if (HAL_I2C_GetState(&hi2c2) != HAL_I2C_STATE_READY) if (HAL_I2C_GetState(&MOTION_SENSOR_I2C_HANDLE) != HAL_I2C_STATE_READY) //FOR STM32WLE5CC { - APP_LOG(TS_ON, VLEVEL_L, "\r\n..I2C INITIALIZING ERROR \r\n"); + APP_LOG(TS_ON, VLEVEL_H, "\r\n..I2C INITIALIZING ERROR \r\n"); } //STS_MOTION_SENSOR_Init_Send_Data(); @@ -300,9 +300,6 @@ void STS_MOTION_SENSOR_Get_Event_Status(STS_MOTION_SENSOR_Event_Status_t *Status void STS_MOTION_SENSOR_Function_Test_Process(int16_t *self_test_result, uint8_t count) { - #ifdef USE_OLED_SSD1306 - char buf_col[30]="_YUNHORN_", buf_xyz[30]="Vibration", buf_level[30]="STS-M7"; - #endif // for wakeup from stop2 mode ################################################## STS_SENSOR_Power_ON(0); HAL_Init(); @@ -312,36 +309,14 @@ void STS_MOTION_SENSOR_Function_Test_Process(int16_t *self_test_result, uint8_t MX_TIM2_Init(); // for wakeup from stop2 mode ################################################## - - #ifdef USE_OLED_SSD1306 - //HAL_I2C_Init(&SSD1306_I2C_HANDLE); - if (HAL_I2C_GetState(&SSD1306_I2C_HANDLE) != HAL_I2C_STATE_READY) - { - APP_LOG(TS_ON, VLEVEL_M, "\r\n..OLED I2C INITIALIZING ERROR \r\n"); - } - #endif + if (HAL_I2C_GetState(&MOTION_SENSOR_I2C_HANDLE) != HAL_I2C_STATE_READY) { - APP_LOG(TS_ON, VLEVEL_L, "\r\n .... MOTION SENSOR I2C Not Ready .... \r\n"); + APP_LOG(TS_ON, VLEVEL_H, "\r\n .... MOTION SENSOR I2C Not Ready .... \r\n"); } STS_MOTION_SENSOR_Init_Send_Data(); -#ifdef USE_OLED_SSD1306 - APP_LOG(TS_ON, VLEVEL_M, "\r\n.Start Init SSD1306 ......... \r\n"); - ssd1306_Init(); - ssd1306_SetCursor(10,0); - ssd1306_WriteString(buf_col, Font_11x18, White); - ssd1306_SetCursor(10,25); - ssd1306_WriteString(buf_xyz, Font_7x10, White); - ssd1306_SetCursor(10,45); - ssd1306_WriteString(buf_level, Font_7x10, White); - ssd1306_UpdateScreen(); - - Sine_waveGenerate(); - Process_FFT_and_Amplitude(); - Display_Chart(acc_x, acc_y, acc_z, White, "Sine-"); -#endif ADXL345_Init_Prepare_Measure(); HAL_Delay(50); //wait for sensor ready @@ -476,69 +451,6 @@ void STS_SENSOR_MEMS_Reset(uint8_t cnt) } -#ifdef USE_OLED_SSD1306 -static void Display_Axis(SSD1306_COLOR color) -{ - char dispbuf[128]=""; - - for (int i=1; i<=4; i++) { - //ssd1306_Line(i*32,0, i*32,SSD1306_HEIGHT,color); - ssd1306_Line(i*32-1,10, i*32-1,SSD1306_HEIGHT/4,color); - ssd1306_SetCursor(i*SSD1306_WIDTH/4-4*6,1); - sprintf(dispbuf,"%4d", (i*Freq_Res_Screen*32)); - ssd1306_WriteString(dispbuf, Font_6x8, color); - } - ssd1306_UpdateScreen(); -} - -void Display_Line_Chart(float *psrc, float ampPeak, uint32_t freqBin, SSD1306_COLOR color, char *title) -{ - - char dispbuf[128]=""; - uint8_t nrf; - float psrcSpectrumPeak = ampPeak; - uint16_t Freq_at_Spectrum_Peak=freqBin; - - ssd1306_Fill(Black); - ssd1306_UpdateScreen(); - nrf=2; //Freq_Res_Screen; //SAMPLE_NUM/SSD1306_WIDTH; - //nrf=SAMPLE_NUM/SSD1306_WIDTH; - - for (uint16_t i=0; i< FFT_LEN; i++) { - ssd1306_Line((uint16_t)(i/nrf),16,(uint16_t)(i/nrf),((uint16_t)(16+(SSD1306_HEIGHT-16)*(psrc[i]/psrcSpectrumPeak))), color); - } - //ssd1306_UpdateScreen(); - sprintf(dispbuf,"%s= %3d Hz", title, Freq_at_Spectrum_Peak); - ssd1306_SetCursor(SSD1306_WIDTH/3,SSD1306_HEIGHT-8); - ssd1306_WriteString(dispbuf, Font_6x8, color); - -// sprintf(dispbuf,"%s= %.2f", "A. ", psrcSpectrumPeak); -// ssd1306_SetCursor(SSD1306_WIDTH/3,SSD1306_HEIGHT-24); -// ssd1306_WriteString(dispbuf, Font_6x8, color); - - Display_Axis(color); - ssd1306_UpdateScreen(); - - -} - -void Display_Chart(float *px,float *py, float *pz, SSD1306_COLOR color, char *title) -{ - char t[128]=""; - ssd1306_SetDisplayOn(1); - sprintf(t,"%s%s",title,"X"); - Display_Line_Chart(px, spectrumPeak_x, freq_at_spectrumPeak_x,White,t); - HAL_Delay(500); - - sprintf(t,"%s%s",title,"Y"); - Display_Line_Chart(py, spectrumPeak_y, freq_at_spectrumPeak_y,White,t); - HAL_Delay(500); - sprintf(t,"%s%s",title,"Z"); - Display_Line_Chart(pz, spectrumPeak_z, freq_at_spectrumPeak_z,White,t); - HAL_Delay(500); - //ssd1306_SetDisplayOn(0); -} -#endif /* USER CODE BEGIN EF */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 152755e..19061a2 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -53,7 +53,7 @@ volatile uint8_t sts_work_mode =0; volatile uint8_t sts_ac_code[YUNHORN_STS_AC_CODE_SIZE]={0x0}; volatile uint8_t heart_beat_timer=0, sts_lorawan_joined=0; volatile sts_cfg_nvm_t sts_cfg_nvm={sts_mtmcode1,sts_mtmcode2, sts_version, sts_hardware_ver, -0x01,'M', 0x05,'M', 0x04,0x00,0x00,0x20, +0x3C,'M', 0x60,'M', 0x04,0x00,0x00,0x20, {0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 0x01,0x03,0x00,0x02, {0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF} @@ -401,7 +401,7 @@ void LoRaWAN_Init(void) /* USER CODE END LoRaWAN_Init_LV */ /* USER CODE BEGIN LoRaWAN_Init_1 */ - 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", + APP_LOG(TS_OFF, VLEVEL_H, "\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*/ @@ -715,7 +715,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) 'M'; outbuf[i++] = (uint8_t) (sts_service_mask+0x30); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); - APP_LOG(TS_OFF, VLEVEL_H, ">>>>>>>>>>>>>>>>>>>>> Mask = [ %02x ] \r\n", sts_service_mask); + //APP_LOG(TS_OFF, VLEVEL_H, ">>>>>>>>>>>>>>>>>>>>> Mask = [ %02x ] \r\n", sts_service_mask); OnStoreSTSCFGContextRequest(); #ifdef YUNHORN_STS_O6_ENABLED if (sts_service_mask != STS_SERVICE_MASK_L0) STS_Lamp_Bar_Set_Dark(); @@ -736,7 +736,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) MinorVer; outbuf[i++] = (uint8_t) SubMinorVer; 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 if ((char)tlv_buf[CFG_CMD3] == 'C') { // "YVC" REPORT NVM STORED CONFIG PARAMETERS "YVC" @@ -764,7 +764,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_LEN+j]); } STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); - APP_LOG(TS_OFF, VLEVEL_H, "###### YUNHORN Report Config in NVM [ %10x ] \r\n", outbuf); + //APP_LOG(TS_OFF, VLEVEL_H, "###### YUNHORN Report Config in NVM [ %10x ] \r\n", outbuf); } break; @@ -913,7 +913,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) // Step 1/2: Prepare status update message STS_SENSOR_Upload_Config_Invalid_Message(); - APP_LOG(TS_OFF, VLEVEL_L, "###### MTM VER Invalid or Mismatch\r\n"); + APP_LOG(TS_OFF, VLEVEL_H, "###### MTM VER Invalid or Mismatch\r\n"); } #endif // Step 3: Upload status update message @@ -1006,14 +1006,14 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); if (LORAMAC_HANDLER_SUCCESS == status) { - APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n"); + APP_LOG(TS_ON, VLEVEL_H, "SEND REQUEST\r\n"); } else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status) { nextTxIn = LmHandlerGetDutyCycleWaitTime(); if (nextTxIn > 0) { - APP_LOG(TS_ON, VLEVEL_L, "Next Tx in : ~%d second(s)\r\n", (nextTxIn / 1000)); + APP_LOG(TS_ON, VLEVEL_H, "Next Tx in : ~%d second(s)\r\n", (nextTxIn / 1000)); } } @@ -1224,17 +1224,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"); } } } @@ -1262,8 +1262,8 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) } sts_lorawan_joined = (uint8_t) joinParams->Mode; - OnTxPeriodicityChanged(periodicity_length*1000); - APP_LOG(TS_OFF, VLEVEL_H, "\r\n==================== Tx Periodicity changed to = %d second(s) \r\n", (int)periodicity_length); + OnTxPeriodicityChanged(HeartBeatPeriodicity); + APP_LOG(TS_OFF, VLEVEL_H, "\r\n==================== Tx Periodicity changed to = %d (ms) \r\n", (int)HeartBeatPeriodicity); } else { @@ -1531,7 +1531,7 @@ static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity) UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); /* USER CODE BEGIN OnTxPeriodicityChanged_2 */ - APP_LOG(TS_OFF, VLEVEL_L,"**************** 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 */ } @@ -1621,7 +1621,7 @@ void STS_REBOOT_CONFIG_Init(void) #ifdef YUNHORN_STS_M7_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"); + APP_LOG(TS_OFF, VLEVEL_M, "\r\nInitial Boot with Empty Config, Flash with default config....\r\n"); OnStoreSTSCFGContextRequest(); UTIL_MEM_set_8((void *)sts_ac_code, 0x00, YUNHORN_STS_AC_CODE_SIZE); HAL_Delay(1000); @@ -1770,7 +1770,7 @@ void STS_SENSOR_Function_Test_Process(void) void STS_YunhornAuthenticationCode_Process(void) { if (sts_ac_code[0] == 0x00) { - APP_LOG(TS_OFF,VLEVEL_H, "Initial AC CODE blank... \r\n"); + APP_LOG(TS_OFF,VLEVEL_M, "Initial AC CODE blank... \r\n"); return; } @@ -1778,7 +1778,7 @@ void STS_YunhornAuthenticationCode_Process(void) if (sts_service_mask == STS_SERVICE_MASK_L2) { sts_ac_code[0] = 0x0; } - APP_LOG(TS_OFF, VLEVEL_H, "STS_SERVICE_MASK:%d \r\n",sts_service_mask); + APP_LOG(TS_OFF, VLEVEL_M, "STS_SERVICE_MASK:%d \r\n",sts_service_mask); } void STS_YunhornSTSEventRFAC_Process(void) @@ -1787,12 +1787,12 @@ void STS_YunhornSTSEventRFAC_Process(void) { if ((rfac_timer >= STS_BURN_IN_RFAC) && (rfac_timer < (STS_BURN_IN_RFAC +3))) { - APP_LOG(TS_OFF, VLEVEL_H, "\r\n -------------------RFAC Process\r\n"); + APP_LOG(TS_OFF, VLEVEL_M, "\r\n -------------------RFAC Process\r\n"); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 4, "RFAC"); } if ((rfac_timer > (STS_BURN_IN_RFAC + 2))) { - APP_LOG(TS_OFF, VLEVEL_H, "\r\n -------------------Verify RFAC Success or Not\r\n"); + APP_LOG(TS_OFF, VLEVEL_M, "\r\n -------------------Verify RFAC Success or Not\r\n"); sts_service_mask = (sts_hmac_verify()!= 0)? STS_SERVICE_MASK_L2:STS_SERVICE_MASK_L0; if (sts_service_mask == STS_SERVICE_MASK_L2) { sts_ac_code[0] = 0x0; diff --git a/LoRaWAN/App/lora_app.h b/LoRaWAN/App/lora_app.h index cbf4436..6f7a5ed 100644 --- a/LoRaWAN/App/lora_app.h +++ b/LoRaWAN/App/lora_app.h @@ -68,7 +68,7 @@ extern "C" { /*! * LoRaWAN default class */ -#define LORAWAN_DEFAULT_CLASS CLASS_A +#define LORAWAN_DEFAULT_CLASS CLASS_C /*! * LoRaWAN default confirm state