Start OLED support for ana-digi
[metawatch.git] / mw_main.c
index 10ce47d..8fd34a3 100644 (file)
--- a/mw_main.c
+++ b/mw_main.c
@@ -294,6 +294,24 @@ void test_application(int mw_fd)
        mw_free_pbuffer(mwbuf);
 }
 
+void test_oled(int mw_fd, unsigned char oled)
+{
+       mw_buffer *mwbuf;
+       unsigned char *bbuf;
+       int len, i;
+
+       mwbuf = mw_alloc_pbuffer(80, 16, 1);
+       mw_buf_clear(mwbuf, MW_BLACK);
+
+       mw_buf_print(mwbuf, 0,  0, "ApplicatiO", 0, MW_WHITE, MW_BLACK);
+       mw_buf_print(mwbuf, 0,  8, "0123456789", 0, MW_WHITE, MW_BLACK);
+
+       bbuf = mw_make_mw_oled_buffer(mwbuf, &len);
+       mw_write_oled_buffer(mw_fd, 0, oled, 80, 0, bbuf, len);
+
+       mw_free_pbuffer(mwbuf);
+}
+
 void print_help(void)
 {
 }
@@ -313,6 +331,14 @@ void process_cmd(char *cmdline, int clinep, int mw_fd)
        if (strncmp(cmdline, "help", 4) == 0) {
                print_help();
        }
+       if (strncmp(cmdline, "ahand", 5) == 0) {
+               intopt = atoi(cmdline+5);
+               g_print("Advance analog hands by %d minutes\n", intopt);
+               mdata[0] = intopt / 60;
+               mdata[1] = intopt % 60;
+               mdata[2] = 0;
+               mw_send_frame(mw_fd, MW_ADVANCE_WATCH_HANDS, 0, mdata, 3);
+       }
        if (strncmp(cmdline, "srtc", 4) == 0) {
                fprintf(stderr, "Setting RTC from system time...");
                mw_set_rtc(mw_fd, MW_RTC_CLOCK_24HR, MW_RTC_DATE_DDMM);
@@ -376,6 +402,17 @@ void process_cmd(char *cmdline, int clinep, int mw_fd)
        if (strncmp(cmdline, "tapp", 4) == 0) {
                test_application(mw_fd);
        }
+       if (strncmp(cmdline, "eoled", 5) == 0) {
+               intopt = cmdline[6]-0x30;
+               if (intopt == MW_OLED_UPPER || intopt == MW_OLED_LOWER)
+                       mw_send_frame(mw_fd, MW_ENABLE_OLED_DISPLAY_MSG, intopt, NULL, 0);
+       }
+       if (strncmp(cmdline, "toled", 5) == 0) {
+               intopt = cmdline[6]-0x30;
+               test_oled(mw_fd, intopt);
+               //mw_write_oled_buffer(mw_fd, 0, 80, 0, mdata, 10);
+               //mw_send_frame(mw_fd, MW_UPDATE_OLED_DISPLAY_MSG, 0, NULL, 0);
+       }
 }