SparkFunSerialGraphicLCD.cpp

Committer:
chag
Date:
2012-02-20
Revision:
3:889836485429
Parent:
2:376f8a0544be
Child:
4:0c943e6ba349

File content as of revision 3:889836485429:

#include "stdarg.h"
#include "mbed.h"
#include "SparkFunSerialGraphicLCD.h"


SparkFunSerialGraphicLCD::SparkFunSerialGraphicLCD(PinName tx, PinName rx = NC) : MySerial(tx, rx) {
    MySerial.baud(115200);
    wait_ms(1500);
    clear();
}

void SparkFunSerialGraphicLCD::clear() {
    MySerial.putc(0x7C);
    MySerial.putc(0x00);
}

void SparkFunSerialGraphicLCD::setDebug(unsigned char level) {
    MySerial.putc(0x7C);
    MySerial.putc(0x01);
    MySerial.putc(level);
}

void SparkFunSerialGraphicLCD::setBacklight(unsigned char intensity) {
    MySerial.putc(0x7C);
    MySerial.putc(0x02);
    MySerial.putc(intensity);
} 

void SparkFunSerialGraphicLCD::drawCircle(unsigned char x, unsigned char y, unsigned char radius, bool set) {
    MySerial.putc(0x7C);
    MySerial.putc(0x03);
    MySerial.putc(x);
    MySerial.putc(y);
    MySerial.putc(radius);
    MySerial.putc(set);
}

void SparkFunSerialGraphicLCD::toggleCRLF() {
    MySerial.putc(0x7C);
    MySerial.putc(0x04);
}

void SparkFunSerialGraphicLCD::eraseBlock(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1) {
    MySerial.putc(0x7C);
    MySerial.putc(0x05);
    MySerial.putc(x0);
    MySerial.putc(y0);
    MySerial.putc(x1);
    MySerial.putc(y1);
}

void SparkFunSerialGraphicLCD::reset() {
    MySerial.putc(0x7C);
    MySerial.putc(0x06);
}

void SparkFunSerialGraphicLCD::setBaud() {
    MySerial.putc(0x7C);
    MySerial.putc(0x07);
}

void SparkFunSerialGraphicLCD::toggleFont() {
    MySerial.putc(0x7C);
    MySerial.putc(0x08);
}

void SparkFunSerialGraphicLCD::setFontMode(unsigned char mode) {
    MySerial.putc(0x7C);
    MySerial.putc(0x0A);
    MySerial.putc(mode);
}

void SparkFunSerialGraphicLCD::drawSprite(unsigned char x, unsigned char y, unsigned char sprite, unsigned char mode) {
    MySerial.putc(0x7C);
    MySerial.putc(0x0B);
    MySerial.putc(x);
    MySerial.putc(y);
    MySerial.putc(sprite);
    MySerial.putc(mode);
}

void SparkFunSerialGraphicLCD::drawLine(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, bool set) {
    MySerial.putc(0x7C);
    MySerial.putc(0x0C);
    MySerial.putc(x0);
    MySerial.putc(y0);
    MySerial.putc(x1);
    MySerial.putc(y1);
    MySerial.putc(set);
}

void SparkFunSerialGraphicLCD::uploadSprite(unsigned char sprite, unsigned char width, unsigned char height, unsigned char* data) {
    error("method not implemented");
    MySerial.putc(0x7C);
    MySerial.putc(0x0D);
    MySerial.putc(sprite);
    MySerial.putc(width);
    MySerial.putc(height);
}

void SparkFunSerialGraphicLCD::drawBox(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, bool set) {
    MySerial.putc(0x7C);
    MySerial.putc(0x0F);
    MySerial.putc(x0);
    MySerial.putc(y0);
    MySerial.putc(x1);
    MySerial.putc(y1);
    MySerial.putc(set);
}

void SparkFunSerialGraphicLCD::setPixel(unsigned char x, unsigned char y, bool set) {
    MySerial.putc(0x7C);
    MySerial.putc(0x10);
    MySerial.putc(x);
    MySerial.putc(y);
    MySerial.putc(set);
}
void SparkFunSerialGraphicLCD::drawFilledBox(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, unsigned char fill) {
    MySerial.putc(0x7C);
    MySerial.putc(0x12);
    MySerial.putc(x0);
    MySerial.putc(y0);
    MySerial.putc(x1);
    MySerial.putc(y1);
    MySerial.putc(fill);
}


void SparkFunSerialGraphicLCD::toggleReverse() {
    MySerial.putc(0x7C);
    MySerial.putc(0x14);
}

void SparkFunSerialGraphicLCD::toggleSplash() {
    MySerial.putc(0x7C);
    MySerial.putc(0x15);
}

void SparkFunSerialGraphicLCD::bitblt(unsigned char x, unsigned char y, unsigned char mode, unsigned char w, unsigned char h, unsigned char* data) {
    error("method not implemented");
    MySerial.putc(0x7C);
    MySerial.putc(0x0D);
    MySerial.putc(x);
    MySerial.putc(y);
    MySerial.putc(mode);
    MySerial.putc(w);
    MySerial.putc(h);
}

void SparkFunSerialGraphicLCD::setCursorX(unsigned char x) {
    MySerial.putc(0x7C);
    MySerial.putc(0x18);
    MySerial.putc(x);
}

void SparkFunSerialGraphicLCD::setCursorY(unsigned char y) {
    MySerial.putc(0x7C);
    MySerial.putc(0x19);
    MySerial.putc(y);
}



void SparkFunSerialGraphicLCD::printf(const char *msg, ...) {
    va_list args;
    va_start(args, msg);    
    MySerial.printf(msg, va_arg(args, char*));
    va_end(args);
    wait_ms(100);
}