]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_date.c
Merge branch 'cli-quote'
[z180-stamp.git] / avr / cmd_date.c
index bc93efc33280c2f1db03ee845f79fcaf8a4d2a20..337d720e450b038698a40b9fa1189d63b919df36 100644 (file)
  */
 #include <common.h>
 #include <string.h>
-#include <avr/pgmspace.h>
 #include <command.h>
 #include <rtc.h>
 #include <i2c.h>
 
 
-static const char * const weekdays[] = {
-       "Sun", "Mon", "Tues", "Wednes", "Thurs", "Fri", "Satur",
+static const FLASH char * const FLASH weekdays[] = {
+               FSTR("Mon"),
+               FSTR("Tues"),
+               FSTR("Wednes"),
+               FSTR("Thurs"),
+               FSTR("Fri"),
+               FSTR("Satur"),
+               FSTR("Sun")
 };
 
 int mk_date (const char *, struct rtc_time *);
@@ -26,31 +31,26 @@ command_ret_t do_date(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        struct rtc_time tm;
        int rcode = CMD_RET_SUCCESS;
-       
+
        (void) cmdtp; (void) flag;
 
        switch (argc) {
        case 2:                 /* set date & time */
-               if (strcmp_P(argv[1],PSTR("reset")) == 0) {
-                       my_puts_P(PSTR("Reset RTC...\n"));
-                       rtc_reset ();
-               } else {
-                       /* initialize tm with current time */
-                       rcode = rtc_get (&tm);
-
-                       if(!rcode) {
-                               /* insert new date & time */
-                               if (mk_date (argv[1], &tm) != 0) {
-                                       my_puts_P(PSTR("## Bad date format\n"));
-                                       break;
-                               }
-                               /* and write to RTC */
-                               rcode = rtc_set (&tm);
-                               if(rcode)
-                                       my_puts_P(PSTR("## Set date failed\n"));
-                       } else {
-                               my_puts_P(PSTR("## Get date failed\n"));
+               /* initialize tm with current time */
+               rcode = rtc_get (&tm);
+
+               if(!rcode) {
+                       /* insert new date & time */
+                       if (mk_date (argv[1], &tm) != 0) {
+                               my_puts_P(PSTR("## Bad date format\n"));
+                               break;
                        }
+                       /* and write to RTC */
+                       rcode = rtc_set (&tm);
+                       if(rcode)
+                               my_puts_P(PSTR("## Set date failed\n"));
+               } else {
+                       my_puts_P(PSTR("## Get date failed\n"));
                }
                /* FALL TROUGH */
        case 1:                 /* get date & time */
@@ -60,14 +60,14 @@ command_ret_t do_date(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                        my_puts_P(PSTR("## Get date failed\n"));
                        break;
                }
-               /* TODO: flash */
-               printf_P(PSTR("Date: %4d-%02d-%02d (%sday)    Time: %2d:%02d:%02d\n"),
-                       tm.tm_year, tm.tm_mon, tm.tm_mday,
-                       (tm.tm_wday<0 || tm.tm_wday>6) ?
-                               "unknown " : weekdays[tm.tm_wday],
+               printf_P(PSTR("Date: %4d-%02d-%02d ("),
+                       tm.tm_year, tm.tm_mon, tm.tm_mday);
+               my_puts_P( (tm.tm_wday<0 || tm.tm_wday>6) ?
+                               PSTR("unknown ") : weekdays[tm.tm_wday]);
+               printf_P(PSTR("day)    Time: %2d:%02d:%02d\n"),
                        tm.tm_hour, tm.tm_min, tm.tm_sec);
-
                break;
+
        default:
                rcode = CMD_RET_USAGE;
        }
@@ -185,4 +185,3 @@ int mk_date (const char *datestr, struct rtc_time *tmp)
 
        return (-1);
 }
-