Dependents:   IMP_projekt

Committer:
madmonkeyman82
Date:
Fri Oct 16 15:39:16 2015 +0000
Revision:
0:f7f6e3220ea0
Child:
1:601254e70221
Serial class with baud speed options

Who changed what in which revision?

UserRevisionLine numberNew contents of line
madmonkeyman82 0:f7f6e3220ea0 1 #include "SerialTerminal.h"
madmonkeyman82 0:f7f6e3220ea0 2
madmonkeyman82 0:f7f6e3220ea0 3 #include "mbed.h"
madmonkeyman82 0:f7f6e3220ea0 4
madmonkeyman82 0:f7f6e3220ea0 5 SerialTerminal::SerialTerminal(PinName tx, PinName rx, int Baudrate) : Serial(tx, rx) {}
madmonkeyman82 0:f7f6e3220ea0 6
madmonkeyman82 0:f7f6e3220ea0 7 void SerialTerminal::cls() {
madmonkeyman82 0:f7f6e3220ea0 8 this->printf("\033[2J");
madmonkeyman82 0:f7f6e3220ea0 9 }
madmonkeyman82 0:f7f6e3220ea0 10
madmonkeyman82 0:f7f6e3220ea0 11 void SerialTerminal::locate(int column, int row) {
madmonkeyman82 0:f7f6e3220ea0 12 // Cursor Home <ESC>[{ROW};{COLUMN}H
madmonkeyman82 0:f7f6e3220ea0 13 this->printf("\033[%d;%dH%c", row + 1, column + 1);
madmonkeyman82 0:f7f6e3220ea0 14 }
madmonkeyman82 0:f7f6e3220ea0 15
madmonkeyman82 0:f7f6e3220ea0 16 static int rgb888tobgr111(int colour) {
madmonkeyman82 0:f7f6e3220ea0 17 int r = (colour >> 23) & 1;
madmonkeyman82 0:f7f6e3220ea0 18 int g = (colour >> 15) & 1;
madmonkeyman82 0:f7f6e3220ea0 19 int b = (colour >> 7) & 1;
madmonkeyman82 0:f7f6e3220ea0 20 return (b << 2) | (g << 1) | (r << 0);
madmonkeyman82 0:f7f6e3220ea0 21 }
madmonkeyman82 0:f7f6e3220ea0 22
madmonkeyman82 0:f7f6e3220ea0 23 void SerialTerminal::foreground(int colour) {
madmonkeyman82 0:f7f6e3220ea0 24 // Set Attribute Mode <ESC>[{n}m
madmonkeyman82 0:f7f6e3220ea0 25 // Foreground Colours : 30 + bgr
madmonkeyman82 0:f7f6e3220ea0 26 int c = 30 + rgb888tobgr111(colour);
madmonkeyman82 0:f7f6e3220ea0 27 this->printf("\033[%dm", c);
madmonkeyman82 0:f7f6e3220ea0 28 }
madmonkeyman82 0:f7f6e3220ea0 29
madmonkeyman82 0:f7f6e3220ea0 30 void SerialTerminal::background(int colour) {
madmonkeyman82 0:f7f6e3220ea0 31 // Set Attribute Mode <ESC>[{n}m
madmonkeyman82 0:f7f6e3220ea0 32 // Background Colours : 40 + bgr
madmonkeyman82 0:f7f6e3220ea0 33 int c = 40 + rgb888tobgr111(colour);
madmonkeyman82 0:f7f6e3220ea0 34 this->printf("\033[%dm", c);
madmonkeyman82 0:f7f6e3220ea0 35 }
madmonkeyman82 0:f7f6e3220ea0 36
madmonkeyman82 0:f7f6e3220ea0 37 void SerialTerminal::hideCursor() {
madmonkeyman82 0:f7f6e3220ea0 38 //Hide cursor from terminal
madmonkeyman82 0:f7f6e3220ea0 39 this->printf("\033[?25l");
madmonkeyman82 0:f7f6e3220ea0 40 }
madmonkeyman82 0:f7f6e3220ea0 41
madmonkeyman82 0:f7f6e3220ea0 42 void SerialTerminal::showCursor() {
madmonkeyman82 0:f7f6e3220ea0 43 //Hide cursor from terminal
madmonkeyman82 0:f7f6e3220ea0 44 this->printf("\33[[?25h");
madmonkeyman82 0:f7f6e3220ea0 45 }