Diff: TextStar.cpp
- Revision:
- 0:775da631eb9a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TextStar.cpp Sun Jan 17 11:06:20 2010 +0000
@@ -0,0 +1,147 @@
+/* mbed TextStar serial LCD Library
+ * Copyright (c) 2009-2010 Paul Griffith
+ * Released under the MIT License: http://mbed.org/license/mit
+ *
+ * Last edit: 10 Jan 2010
+ *
+ * TextStar CW-LCD-02 16x2 serial LCD module
+ * Cat's Whisker Technologies, http://www.cats-whisker.com
+ */
+
+#include "TextStar.h"
+#include "mbed.h"
+
+
+TextStar::TextStar(PinName tx, PinName rx) : Serial(tx, rx) {
+ reset();
+}
+
+void TextStar::cls() {
+ //clear screen = 254,'S'
+ //does not affect auto-blank and auto-scroll
+ this->putc('\014');
+}
+
+void TextStar::locate(int column, int row) {
+ //position cursor = 254,'P',line (0-15), col (0-15)
+ this->printf("\376P%c%c", row + 1, column + 1);
+}
+
+void TextStar::foreground(int colour) {
+ //colours not supported
+}
+
+void TextStar::background(int colour) {
+ //colours not supported
+}
+
+void TextStar::reset(int autoblank, int autoscroll) {
+ //reset screen = 254,'R'
+ this->printf("\376R");
+ //set up auto-blank and auto-scroll as per arguments
+ _autoblank = (autoblank == 0) ? 0 : 1;
+ _autoscroll = (autoscroll == 0) ? 0 : 1;
+ this->printf("\376G%c", 1 + (_autoblank * 64) + (_autoscroll * 64) );
+// this->printf("AB = %d AS = %d", _autoblank, _autoscroll);
+// wait(2.0);
+// cls();
+}
+
+void TextStar::left(void) {
+ //move cursor left = 8
+ this->putc('\010');
+}
+
+void TextStar::right(void) {
+ //move cursor right = 9
+ this->putc('\011');
+}
+
+void TextStar::down(void) {
+ //move cursor down one line = 10
+ this->putc('\012');
+}
+
+void TextStar::up(void) {
+ //move cursor up one line = 11
+ this->putc('\013');
+}
+
+void TextStar::home(void) {
+ //cursor home = 254,'H'
+ this->printf("\376H");
+}
+
+void TextStar::crlf(void) {
+ //carriage return = 13
+ this->putc('\015');
+}
+
+void TextStar::del(void) {
+ //delete character = 127
+ this->putc('\177');
+}
+
+void TextStar::set_cursor(int style) {
+ //styles: 0 = none, 1 = solid block, 2 = flash block, 3 = solid uline, 4 = flash uline
+ if (style < 0 || style > 4)
+ return;
+ this->printf("\376C%c", style);
+}
+
+void TextStar::window(int line) {
+ //move visible window to line (0-14)
+ if (line < 0 || line > 14)
+ return;
+ this->printf("\376G%c", line + 1 + (_autoblank * 64) + (_autoscroll * 128) );
+}
+
+void TextStar::scroll_up(void) {
+ //move visble window up one line
+ this->printf("\376O%c", 1);
+}
+
+void TextStar::scroll_down(void) {
+ //move visible window down one line
+ this->printf("\376O%c", 0);
+}
+
+void TextStar::bar_graph(int capped, int length, int percentage) {
+ if (length < 1 || length > 16) {
+ this->printf("Bad len %d", length);
+ wait(2.0);
+ return;
+ }
+ if (percentage < 0 || percentage > 100) {
+ this->printf("Bad val %d", percentage);
+ wait(2.0);
+ return;
+ }
+ this->printf("\376%c%c%c", (capped == 0)? 'B' : 'b', length, percentage);
+}
+
+void TextStar::custom_char(int num, char *bitmap) {
+ //define custom character = 254,'D',bm1,bm2,bm3,bm4,bm5,bm6,bm7,bm8
+ if (num < 128 || num > 135) {
+ this->printf("Bad CC num %d", num);
+ wait(2.0);
+ return;
+ }
+ this->printf("\376D%c%c%c%c%c%c%c%c%c", num, bitmap[0], bitmap[1], bitmap[2], bitmap[3],
+ bitmap[4], bitmap[5], bitmap[6], bitmap[7]);
+}
+
+void TextStar::version(void) {
+ //display firmware version and custom characters = 254,'V'
+ this->printf("\376V");
+}
+
+void TextStar::send_version(void) {
+ //send firmware version = 254,'v'
+ this->printf("\376v");
+}
+
+void TextStar::send_keys(void) {
+ //send key states = 254,'K'
+ this->printf("\376K");
+}
\ No newline at end of file