Henk Meewis / Mbed 2 deprecated USB_serial_LED_controller

Dependencies:   mbed

Fork of frdm_echo by Henk Meewis

Committer:
silverpanda
Date:
Mon Apr 14 16:41:57 2014 +0000
Revision:
8:b715912d684b
Parent:
7:19da09fe546b
Child:
9:f9efd3a69c2d
added inputBuffer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
silverpanda 5:03b7c237c4c4 1 #include "mbed.h"
silverpanda 7:19da09fe546b 2 #include "LEDColors.h"
silverpanda 5:03b7c237c4c4 3 #include "shell.h"
silverpanda 5:03b7c237c4c4 4
silverpanda 7:19da09fe546b 5 extern LEDColors *ledColors;
silverpanda 7:19da09fe546b 6
silverpanda 5:03b7c237c4c4 7 // create contructor
silverpanda 5:03b7c237c4c4 8 Shell::Shell(uint32_t thisBaudRate)
silverpanda 5:03b7c237c4c4 9 {
silverpanda 5:03b7c237c4c4 10 usbSerial = new Serial(USBTX, USBRX);
silverpanda 5:03b7c237c4c4 11 usbSerial->baud(115200);
silverpanda 8:b715912d684b 12 characterCount = 0;
silverpanda 8:b715912d684b 13 characterPointer = 0;
silverpanda 5:03b7c237c4c4 14 }
silverpanda 5:03b7c237c4c4 15 //-----------------------------------------------------------------------------
silverpanda 5:03b7c237c4c4 16
silverpanda 5:03b7c237c4c4 17 void Shell::sendText(char *thisText)
silverpanda 5:03b7c237c4c4 18 {
silverpanda 5:03b7c237c4c4 19 // this can send any text
silverpanda 5:03b7c237c4c4 20 usbSerial->printf(thisText);
silverpanda 5:03b7c237c4c4 21 }
silverpanda 5:03b7c237c4c4 22 //-----------------------------------------------------------------------------
silverpanda 5:03b7c237c4c4 23
silverpanda 5:03b7c237c4c4 24 void Shell::sendHelloWorld()
silverpanda 5:03b7c237c4c4 25 {
silverpanda 5:03b7c237c4c4 26 // sends the first greeting
silverpanda 5:03b7c237c4c4 27 sendText("** Hello World **\n\n> ");
silverpanda 5:03b7c237c4c4 28 }
silverpanda 5:03b7c237c4c4 29 //-----------------------------------------------------------------------------
silverpanda 5:03b7c237c4c4 30
silverpanda 5:03b7c237c4c4 31 void Shell::scanUSBSerialRx()
silverpanda 5:03b7c237c4c4 32 {
silverpanda 5:03b7c237c4c4 33 // check if there is something to read
silverpanda 5:03b7c237c4c4 34 if(usbSerial->readable()) {
silverpanda 5:03b7c237c4c4 35
silverpanda 5:03b7c237c4c4 36 // if so ...
silverpanda 5:03b7c237c4c4 37 char character = usbSerial->getc();
silverpanda 5:03b7c237c4c4 38
silverpanda 5:03b7c237c4c4 39 // see if this is a semi colon or a carriage return
silverpanda 5:03b7c237c4c4 40 // if so, give a new line cursor
silverpanda 7:19da09fe546b 41 if((character == ';') || (character == 13)) {
silverpanda 7:19da09fe546b 42 usbSerial->printf("\n> ");
silverpanda 8:b715912d684b 43 finishCharacterBuffer();
silverpanda 7:19da09fe546b 44 ledColors->flashWhite(10);
silverpanda 7:19da09fe546b 45 }
silverpanda 5:03b7c237c4c4 46
silverpanda 5:03b7c237c4c4 47 // if not, just print the character
silverpanda 7:19da09fe546b 48 else {
silverpanda 8:b715912d684b 49 usbSerial->printf("%c", character);
silverpanda 8:b715912d684b 50 addCharacterToBuffer(character);
silverpanda 7:19da09fe546b 51 ledColors->flashGreen(10);
silverpanda 7:19da09fe546b 52 }
silverpanda 5:03b7c237c4c4 53 }
silverpanda 5:03b7c237c4c4 54 }
silverpanda 5:03b7c237c4c4 55 //-----------------------------------------------------------------------------
silverpanda 8:b715912d684b 56
silverpanda 8:b715912d684b 57 void Shell::addCharacterToBuffer(char newCharacter)
silverpanda 8:b715912d684b 58 {
silverpanda 8:b715912d684b 59 if(characterPointer < ItsInputBufferSize_) {
silverpanda 8:b715912d684b 60 inputBuffer[characterPointer++] = newCharacter;
silverpanda 8:b715912d684b 61 characterCount = characterPointer;
silverpanda 8:b715912d684b 62 }
silverpanda 8:b715912d684b 63 }
silverpanda 8:b715912d684b 64 //-----------------------------------------------------------------------------
silverpanda 8:b715912d684b 65
silverpanda 8:b715912d684b 66 void Shell::finishCharacterBuffer()
silverpanda 8:b715912d684b 67 {
silverpanda 8:b715912d684b 68 characterPointer = 0;
silverpanda 8:b715912d684b 69 }
silverpanda 8:b715912d684b 70 //-----------------------------------------------------------------------------