Fork of SerialTerminal

Dependents:   IMP_projekt

Committer:
madmonkeyman82
Date:
Fri Oct 16 15:59:39 2015 +0000
Revision:
1:601254e70221
Parent:
0:f7f6e3220ea0
Child:
3:e171212939f3
Serial class med valgfri baudrate

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