Paul Griffith
/
TextStar1
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