Console Serial IO con display OLED e seriale asincrona
Dependencies: mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2
Fork of SerialIO by
Console Serial IO con display OLED e seriale asincrona
Diff: main.cpp
- Revision:
- 29:bfb815540de7
- Parent:
- 28:f7a59cee5f0d
- Child:
- 31:abff828992d7
--- a/main.cpp Wed Sep 09 20:07:24 2015 +0000 +++ b/main.cpp Mon Sep 14 21:33:42 2015 +0000 @@ -2,12 +2,15 @@ #include "config.h" #include "IOFuncLib.h" #include "BufferedSerial.h" +#include "Terminal.h" + + //init standard InterruptIn mybutton(USER_BUTTON); -//Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 -//Serial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto + +Terminal term(USBTX, USBRX); // tx, rx BufferedSerial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 BufferedSerial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto //init funzioni personal lib @@ -36,14 +39,16 @@ char i[4]= {0,0,0,0}; // variabile di comodo per il conteggio dei caratteri //Serial config - pc.baud(SERIAL1BAUD); + // pc.baud(SERIAL1BAUD); + pc.baud(9600); ardser.baud(SERIALARDBAUD); //pc.format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1) mybutton.fall(&pressed); ScreenSaver.attach(&scsa,60); - sc.emptyFrame(); - sc.banner(); + // sc.emptyFrame(); ////////////////////////// rimettere + + term.banner(); //ardser ardser.printf("Connected\r"); // display @@ -56,19 +61,21 @@ //seriale interna if (pc.readable()) { c[0]=pc.getc(); //legge un carattere dalla seriale + term.putc(c[0]); //redirect to terminal if (c[0] != 13) { buffer[0][i[0]]=c[0]; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer i[0]++; // incrementa il puntatore al buffer led.flash(2); } else { - pc.printf("\n\r"); + //pc.printf("\n\r"); buffer[0][i[0]]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa //controlla di non mandare solo un CR if (i[0]>0) { // if (realExtraSerial==false) ardser.printf("cmd Ready\n\r"); for(int ii=0; ii<=i[0]; ii++) bufferTemp[ii]=buffer[0][ii]; - parser(bufferTemp); - } else sc.commitScreen(); + parserVT100(bufferTemp); + } + else sc.commitScreen(); i[0]=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa } } @@ -86,7 +93,8 @@ if (i[1]>0) { for(int ii=0; ii<=i[1]; ii++) bufferTemp[ii]=buffer[1][ii]; writeInput(bufferTemp); - } else sc.commitScreen(); + } + else term.readypos(); i[1]=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa } }