Revision 8399aeae os/core/src/aos_shell.c

View differences:

os/core/src/aos_shell.c
241 241
{
242 242
  aosDbgCheck(shell != NULL);
243 243

  
244
  // print the system uptime before prompt is configured
245
  if (shell->config & AOS_SHELL_CONFIG_PROMPT_UPTIME) {
246
    // get current system uptime
247
    aos_timestamp_t uptime;
248
    aosSysGetUptime(&uptime);
249

  
250
    chprintf((BaseSequentialStream*)&shell->stream, "[%01u:%02u:%02u:%02u:%03u:%03u] ",
251
             (uint32_t)(uptime / MICROSECONDS_PER_DAY),
252
             (uint8_t)(uptime % MICROSECONDS_PER_DAY / MICROSECONDS_PER_HOUR),
253
             (uint8_t)(uptime % MICROSECONDS_PER_HOUR / MICROSECONDS_PER_MINUTE),
254
             (uint8_t)(uptime % MICROSECONDS_PER_MINUTE / MICROSECONDS_PER_SECOND),
255
             (uint16_t)(uptime % MICROSECONDS_PER_SECOND / MICROSECONDS_PER_MILLISECOND),
256
             (uint16_t)(uptime % MICROSECONDS_PER_MILLISECOND / MICROSECONDS_PER_MICROSECOND));
244
  // print some time informattion before prompt if configured
245
  if (shell->config & (AOS_SHELL_CONFIG_PROMPT_UPTIME | AOS_SHELL_CONFIG_PROMPT_DATETIME)) {
246
    // printf the system uptime
247
    if ((shell->config & (AOS_SHELL_CONFIG_PROMPT_UPTIME | AOS_SHELL_CONFIG_PROMPT_DATETIME)) == AOS_SHELL_CONFIG_PROMPT_UPTIME) {
248
      // get current system uptime
249
      aos_timestamp_t uptime;
250
      aosSysGetUptime(&uptime);
251

  
252
      chprintf((BaseSequentialStream*)&shell->stream, "[%01u:%02u:%02u:%02u:%03u:%03u] ",
253
               (uint32_t)(uptime / MICROSECONDS_PER_DAY),
254
               (uint8_t)(uptime % MICROSECONDS_PER_DAY / MICROSECONDS_PER_HOUR),
255
               (uint8_t)(uptime % MICROSECONDS_PER_HOUR / MICROSECONDS_PER_MINUTE),
256
               (uint8_t)(uptime % MICROSECONDS_PER_MINUTE / MICROSECONDS_PER_SECOND),
257
               (uint16_t)(uptime % MICROSECONDS_PER_SECOND / MICROSECONDS_PER_MILLISECOND),
258
               (uint16_t)(uptime % MICROSECONDS_PER_MILLISECOND / MICROSECONDS_PER_MICROSECOND));
259
    }
260
    else if ((shell->config & (AOS_SHELL_CONFIG_PROMPT_UPTIME | AOS_SHELL_CONFIG_PROMPT_DATETIME)) == AOS_SHELL_CONFIG_PROMPT_DATETIME) {
261
      // get current RTC time
262
      struct tm dt;
263
      aosSysGetDateTime(&dt);
264
      chprintf((BaseSequentialStream*)&shell->stream, "[%02u-%02u-%04u|%02u:%02u:%02u] ",
265
               dt.tm_mday,
266
               dt.tm_mon + 1,
267
               dt.tm_year + 1900,
268
               dt.tm_hour,
269
               dt.tm_min,
270
               dt.tm_sec);
271
    }
272
    else {
273
      aosDbgAssert(false);
274
    }
257 275
  }
258 276

  
259 277
  // print the actual prompt string

Also available in: Unified diff