[FL-1818] System setting and debug options. RTC HAL refactoring. (#902)
* FuriHal: RTC API refactoring. System Setting application. FuriCore: adjustable log levels. Minor code cleanup. * Storage: change logging levels for internal storage. * FuriCore: fix broken trace logging level
This commit is contained in:
		| @@ -2,7 +2,6 @@ | ||||
| #include <furi-hal.h> | ||||
| #include <furi-hal-gpio.h> | ||||
| #include <furi-hal-info.h> | ||||
| #include <rtc.h> | ||||
| #include <task-control-block.h> | ||||
| #include <time.h> | ||||
| #include <notification/notification-messages.h> | ||||
| @@ -58,46 +57,40 @@ void cli_command_help(Cli* cli, string_t args, void* context) { | ||||
| } | ||||
|  | ||||
| void cli_command_date(Cli* cli, string_t args, void* context) { | ||||
|     RTC_TimeTypeDef time; | ||||
|     RTC_DateTypeDef date; | ||||
|     FuriHalRtcDateTime datetime = {0}; | ||||
|  | ||||
|     if(string_size(args) > 0) { | ||||
|         uint16_t Hours, Minutes, Seconds, Month, Date, Year, WeekDay; | ||||
|         uint16_t hours, minutes, seconds, month, day, year, weekday; | ||||
|         int ret = sscanf( | ||||
|             string_get_cstr(args), | ||||
|             "%hu:%hu:%hu %hu-%hu-%hu %hu", | ||||
|             &Hours, | ||||
|             &Minutes, | ||||
|             &Seconds, | ||||
|             &Month, | ||||
|             &Date, | ||||
|             &Year, | ||||
|             &WeekDay); | ||||
|             &hours, | ||||
|             &minutes, | ||||
|             &seconds, | ||||
|             &month, | ||||
|             &day, | ||||
|             &year, | ||||
|             &weekday); | ||||
|         if(ret == 7) { | ||||
|             time.Hours = Hours; | ||||
|             time.Minutes = Minutes; | ||||
|             time.Seconds = Seconds; | ||||
|             time.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; | ||||
|             time.StoreOperation = RTC_STOREOPERATION_RESET; | ||||
|             date.WeekDay = WeekDay; | ||||
|             date.Month = Month; | ||||
|             date.Date = Date; | ||||
|             date.Year = Year - 2000; | ||||
|             HAL_RTC_SetTime(&hrtc, &time, RTC_FORMAT_BIN); | ||||
|             HAL_RTC_SetDate(&hrtc, &date, RTC_FORMAT_BIN); | ||||
|  | ||||
|             datetime.hour = hours; | ||||
|             datetime.minute = minutes; | ||||
|             datetime.second = seconds; | ||||
|             datetime.weekday = weekday; | ||||
|             datetime.month = month; | ||||
|             datetime.day = day; | ||||
|             datetime.year = year; | ||||
|             furi_hal_rtc_set_datetime(&datetime); | ||||
|             // Verification | ||||
|             HAL_RTC_GetTime(&hrtc, &time, RTC_FORMAT_BIN); | ||||
|             HAL_RTC_GetDate(&hrtc, &date, RTC_FORMAT_BIN); | ||||
|             furi_hal_rtc_get_datetime(&datetime); | ||||
|             printf( | ||||
|                 "New time is: %.2d:%.2d:%.2d %.2d-%.2d-%.2d %d", | ||||
|                 time.Hours, | ||||
|                 time.Minutes, | ||||
|                 time.Seconds, | ||||
|                 date.Month, | ||||
|                 date.Date, | ||||
|                 2000 + date.Year, | ||||
|                 date.WeekDay); | ||||
|                 datetime.hour, | ||||
|                 datetime.minute, | ||||
|                 datetime.second, | ||||
|                 datetime.month, | ||||
|                 datetime.day, | ||||
|                 datetime.year, | ||||
|                 datetime.weekday); | ||||
|         } else { | ||||
|             printf( | ||||
|                 "Invalid time format, use `hh:mm:ss MM-DD-YYYY WD`. sscanf %d %s", | ||||
| @@ -106,19 +99,16 @@ void cli_command_date(Cli* cli, string_t args, void* context) { | ||||
|             return; | ||||
|         } | ||||
|     } else { | ||||
|         // TODO add get_datetime to core, not use HAL here | ||||
|         // READ ORDER MATTERS! Time then date. | ||||
|         HAL_RTC_GetTime(&hrtc, &time, RTC_FORMAT_BIN); | ||||
|         HAL_RTC_GetDate(&hrtc, &date, RTC_FORMAT_BIN); | ||||
|         furi_hal_rtc_get_datetime(&datetime); | ||||
|         printf( | ||||
|             "%.2d:%.2d:%.2d %.2d-%.2d-%.2d %d", | ||||
|             time.Hours, | ||||
|             time.Minutes, | ||||
|             time.Seconds, | ||||
|             date.Month, | ||||
|             date.Date, | ||||
|             2000 + date.Year, | ||||
|             date.WeekDay); | ||||
|             datetime.hour, | ||||
|             datetime.minute, | ||||
|             datetime.second, | ||||
|             datetime.month, | ||||
|             datetime.day, | ||||
|             datetime.year, | ||||
|             datetime.weekday); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user