From fa59c60faf486f56e8e6db1b5ea784502cef7602 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Tue, 4 Jun 2024 19:42:45 +0800 Subject: [PATCH] refine localtime report, ignore time zone shift --- Core/Inc/yunhorn_sts_prd_conf.h | 2 ++ LoRaWAN/App/lora_app.c | 53 +++++++++++++-------------------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h index 68a71cf..79b72e4 100644 --- a/Core/Inc/yunhorn_sts_prd_conf.h +++ b/Core/Inc/yunhorn_sts_prd_conf.h @@ -362,6 +362,8 @@ #endif #define STS_BURN_IN_RFAC ((uint32_t) 2) + /* GMT+0800 China Standard Time */ +#define TIME_ZONE_SHIFT 8U /* STM32WL55JC READ/WRITE FLASH ADDRESS AND SIZE diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index fee0b0f..78b17d4 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -901,6 +901,13 @@ static void SendTxData(void) if( IsClockSynched == false ) { status = LmhpClockSyncAppTimeReq( ); + struct tm localtime; + SysTime_t UnixEpoch = SysTimeGet(); + UnixEpoch.Seconds -= 18; /*removing leap seconds*/ + UnixEpoch.Seconds += 3600 * TIME_ZONE_SHIFT; /*adding time-zone-shift hours*/ + SysTimeSet(UnixEpoch); + SysTimeLocalTime(UnixEpoch.Seconds, &localtime); + } if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET)) @@ -1740,42 +1747,22 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) MinorVer; outbuf[i++] = (uint8_t) SubMinorVer; - struct tm localtime; - SysTime_t UnixEpoch = SysTimeGet(); - UnixEpoch.Seconds -= 18; /*removing leap seconds*/ - - UnixEpoch.Seconds += 3600 * 2; /*adding 2 hours*/ - - SysTimeLocalTime(UnixEpoch.Seconds, & localtime); - - APP_LOG(TS_OFF, VLEVEL_M, "LTIME:%02dh%02dm%02ds on %02d/%02d/%04d\r\n", + struct tm localtime; + SysTime_t UnixEpoch = SysTimeGet(); + UnixEpoch.Seconds -= 18; /*removing leap seconds*/ +// UnixEpoch.Seconds += 3600 * TIME_ZONE_SHIFT; /*adding time-zone-shift hours*/ +// SysTimeSet(UnixEpoch); + SysTimeLocalTime(UnixEpoch.Seconds, &localtime); + APP_LOG(TS_OFF, VLEVEL_M, "LTIME:%02dh%02dm%02ds on %02d/%02d/%04d\r\n", localtime.tm_hour, localtime.tm_min, localtime.tm_sec, localtime.tm_mday, localtime.tm_mon + 1, localtime.tm_year + 1900); -#if 0 - LmhPackage_t LmhpClockSyncPackageFactory; - LmhpClockSyncPackageFactory.Init; + outbuf[i++] = (uint8_t) localtime.tm_hour; + outbuf[i++] = (uint8_t) localtime.tm_min; + outbuf[i++] = (uint8_t) localtime.tm_sec; + outbuf[i++] = (uint8_t) localtime.tm_mday; + outbuf[i++] = (uint8_t) localtime.tm_mon+1; + outbuf[i++] = (uint8_t) (localtime.tm_year+1900-2000); - if (LmhpClockSyncPackageFactory.IsInitialized) - LmhpClockSyncPackageFactory.Process; - - if (LORAMAC_HANDLER_SUCCESS == LmhpClockSyncAppTimeReq()) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Clock Sync Success \r\n"); - } - SysTime_t mytime=SysTimeGet(); - struct tm mylocal; - SysTimeLocalTime((uint32_t)mytime.Seconds, &mylocal); - - APP_LOG(TS_OFF, VLEVEL_M, "\r\nTime YYYYMMDD=%4d:%2d:%2d HHMMSS=%2d:%2d:%2d \r\n", - mylocal.tm_year, mylocal.tm_mon, mylocal.tm_mday, mylocal.tm_hour, mylocal.tm_min, mylocal.tm_sec); - - outbuf[i++] = (uint8_t) mylocal.tm_year>>8&0xff; - outbuf[i++] = (uint8_t) mylocal.tm_year&0xff; - outbuf[i++] = (uint8_t) mylocal.tm_mon; - outbuf[i++] = (uint8_t) mylocal.tm_mday; - outbuf[i++] = (uint8_t) mylocal.tm_hour; - outbuf[i++] = (uint8_t) mylocal.tm_min; - outbuf[i++] = (uint8_t) mylocal.tm_sec; -#endif STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Report Version [ %10x ] \r\n", (uint8_t *)outbuf); }