X-Git-Url: https://git.kernelconcepts.de/?p=metawatch.git;a=blobdiff_plain;f=metawatch.c;h=348140a49c52920e068a876c190cc1a2f3410c98;hp=f4ad1d1f09277230c473f3bc5761089bcf94dff4;hb=59068bbd135c3d2ed046be5fd64850166ca04a5c;hpb=fc1c62b9c0c3395297f2871028516a62d5effa19;ds=sidebyside diff --git a/metawatch.c b/metawatch.c index f4ad1d1..348140a 100644 --- a/metawatch.c +++ b/metawatch.c @@ -182,6 +182,47 @@ void mw_write_buffer(int mw_fd, mw_send_frame(mw_fd, MW_WRITE_BUFFER, (mode & 0x0f) | (((numlines & 0x01)<< 4) & 0x10), mdata, numlines ? 13 : 26); } +/* + Options: + B0 : row select, 0 first row, 1 second row + B1 : display select, 0 upper OLED, 1 lower OLED + B2 : if 1 send an event upon completion + B3..4: scroll type, + B5..7: unused + Scroll types: + B0: First buffer in a chain of scroll buffers + B1: Any buffer except first or last + B2: Last buffer of a chain + B3: reserved / unused + Payload: + 0: Start index col + 1..: data +*/ +void mw_write_oled_buffer(int mw_fd, + unsigned char mode, /* idle or scroll */ + unsigned char oled, /* which OLED */ + unsigned char numcols, + unsigned char col_index, /* starting index */ + unsigned char *buffer, int buflen) +{ + unsigned char mdata[32]; + int i; + + /* lower row first since display wil be updated after completion of upper row */ + if (buflen > 80) { + for (i=80; i