Revision 23437e98 core/src/aos_system.c
| core/src/aos_system.c | ||
|---|---|---|
| 260 | 260 |
aosDbgCheck(stream != NULL); |
| 261 | 261 |
|
| 262 | 262 |
// local variables |
| 263 |
#if (HAL_USE_RTC == TRUE) |
|
| 263 | 264 |
struct tm dt; |
| 264 | 265 |
aosSysGetDateTime(&dt); |
| 266 |
#endif /* HAL_USE_RTC == TRUE */ |
|
| 265 | 267 |
|
| 266 | 268 |
// print static information about module and operating system |
| 267 | 269 |
_printSystemInfoSeparator(stream, '=', SYSTEM_INFO_WIDTH); |
| ... | ... | |
| 324 | 326 |
_printSystemInfoLine(stream, "Module ID", SYSTEM_INFO_NAMEWIDTH, "not available"); |
| 325 | 327 |
} |
| 326 | 328 |
#endif |
| 329 |
#if (HAL_USE_RTC == TRUE) |
|
| 327 | 330 |
_printSystemInfoLine(stream, "Date", SYSTEM_INFO_NAMEWIDTH, "%s %02u-%02u-%04u", (dt.tm_wday == 0) ? "Sunday" : (dt.tm_wday == 1) ? "Monday" : (dt.tm_wday == 2) ? "Tuesday" : (dt.tm_wday == 3) ? "Wednesday" : (dt.tm_wday == 4) ? "Thursday" : (dt.tm_wday == 5) ? "Friday" : "Saturday", |
| 328 | 331 |
dt.tm_mday, |
| 329 | 332 |
dt.tm_mon + 1, |
| 330 | 333 |
dt.tm_year + 1900); |
| 331 | 334 |
_printSystemInfoLine(stream, "Time", SYSTEM_INFO_NAMEWIDTH, "%02u:%02u:%02u", dt.tm_hour, dt.tm_min, dt.tm_sec); |
| 335 |
#endif /* HAL_USE_RTC == TRUE */ |
|
| 332 | 336 |
|
| 333 | 337 |
_printSystemInfoSeparator(stream, '=', SYSTEM_INFO_WIDTH); |
| 334 | 338 |
|
| ... | ... | |
| 432 | 436 |
retval = AOS_OK; |
| 433 | 437 |
} |
| 434 | 438 |
} |
| 439 |
# if (HAL_USE_RTC == TRUE) |
|
| 435 | 440 |
// if the user wants to configure the date or time |
| 436 | 441 |
else if (strcmp(argv[1], "--date&time") == 0 && argc == 4) {
|
| 437 | 442 |
struct tm dt; |
| 438 | 443 |
aosSysGetDateTime(&dt); |
| 439 |
unsigned int val = atoi(argv[3]);
|
|
| 440 |
if (strcmp(argv[2], "year") == 0) {
|
|
| 444 |
int val = atoi(argv[3]); |
|
| 445 |
if (strcmp(argv[2], "year") == 0 && val >= 1900) {
|
|
| 441 | 446 |
dt.tm_year = val - 1900; |
| 442 | 447 |
} |
| 443 |
else if (strcmp(argv[2], "month") == 0 && val <= 12) {
|
|
| 448 |
else if (strcmp(argv[2], "month") == 0 && val > 0 && val <= 12) {
|
|
| 444 | 449 |
dt.tm_mon = val - 1; |
| 445 | 450 |
} |
| 446 |
else if (strcmp(argv[2], "day") == 0 && val <= 31) {
|
|
| 451 |
else if (strcmp(argv[2], "day") == 0 && val > 0 && val <= 31) {
|
|
| 447 | 452 |
dt.tm_mday = val; |
| 448 | 453 |
} |
| 449 |
else if (strcmp(argv[2], "hour") == 0 && val < 24) {
|
|
| 454 |
else if (strcmp(argv[2], "hour") == 0 && val >= 0 && val < 24) {
|
|
| 450 | 455 |
dt.tm_hour = val; |
| 451 | 456 |
} |
| 452 |
else if (strcmp(argv[2], "minute") == 0 && val < 60) {
|
|
| 457 |
else if (strcmp(argv[2], "minute") == 0 && val >= 0 && val < 60) {
|
|
| 453 | 458 |
dt.tm_min = val; |
| 454 | 459 |
} |
| 455 |
else if (strcmp(argv[2], "second") == 0 && val < 60) {
|
|
| 460 |
else if (strcmp(argv[2], "second") == 0 && val >= 0 && val < 60) {
|
|
| 456 | 461 |
dt.tm_sec = val; |
| 457 | 462 |
} |
| 458 | 463 |
else {
|
| 459 |
chprintf(stream, "unknown option '%s' or value '%s'\n", argv[2], argv[3]); |
|
| 464 |
chprintf(stream, "unknown option '%s' or invalid value '%s'\n", argv[2], argv[3]);
|
|
| 460 | 465 |
return AOS_INVALID_ARGUMENTS; |
| 461 | 466 |
} |
| 462 | 467 |
dt.tm_wday = aosTimeDayOfWeekFromDate(dt.tm_mday, dt.tm_mon+1, dt.tm_year+1900) % 7; |
| ... | ... | |
| 470 | 475 |
|
| 471 | 476 |
retval = AOS_OK; |
| 472 | 477 |
} |
| 478 |
#endif /* HAL_USE_RTC == TRUE */ |
|
| 473 | 479 |
} |
| 474 | 480 |
|
| 475 | 481 |
// print help, if required |
| ... | ... | |
| 485 | 491 |
chprintf(stream, " Configures the prompt.\n"); |
| 486 | 492 |
chprintf(stream, " match casesensitive|caseinsenitive\n"); |
| 487 | 493 |
chprintf(stream, " Configures string matching.\n"); |
| 494 |
#if (HAL_USE_RTC == TRUE) |
|
| 488 | 495 |
chprintf(stream, " --date&time OPT VAL\n"); |
| 489 | 496 |
chprintf(stream, " Set the date/time value of OPT to VAL.\n"); |
| 490 | 497 |
chprintf(stream, " Possible OPTs are:\n"); |
| ... | ... | |
| 494 | 501 |
chprintf(stream, " hour\n"); |
| 495 | 502 |
chprintf(stream, " minute\n"); |
| 496 | 503 |
chprintf(stream, " second\n"); |
| 504 |
#endif /* HAL_USE_RTC == TRUE */ |
|
| 497 | 505 |
} |
| 498 | 506 |
|
| 499 | 507 |
return (argc > 1 && strcmp(argv[1], "--help") == 0) ? AOS_OK : retval; |
| ... | ... | |
| 976 | 984 |
return; |
| 977 | 985 |
} |
| 978 | 986 |
|
| 987 |
#if (HAL_USE_RTC == TRUE) || defined(__DOXYGEN__) |
|
| 988 |
|
|
| 979 | 989 |
/** |
| 980 | 990 |
* @brief retrieves the date and time from the MCU clock. |
| 981 | 991 |
* |
| ... | ... | |
| 1008 | 1018 |
return; |
| 1009 | 1019 |
} |
| 1010 | 1020 |
|
| 1021 |
#endif /* HAL_USE_RTC == TRUE */ |
|
| 1022 |
|
|
| 1011 | 1023 |
/** |
| 1012 | 1024 |
* @brief Initializes/Acknowledges a system shutdown/restart request. |
| 1013 | 1025 |
* @note This functions should be called from the thread with highest priority. |
Also available in: Unified diff