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:
- 33:19d1d8bc5891
- Parent:
- 32:b7859f48942a
- Child:
- 36:9ecb98d7c2cd
--- a/main.cpp Wed Sep 23 00:04:55 2015 +0000 +++ b/main.cpp Wed Sep 23 23:57:28 2015 +0000 @@ -36,22 +36,21 @@ char i[4]= {0,0,0,0}; // variabile di comodo per il conteggio dei caratteri //Serial config - // pc.baud(SERIAL1BAUD); - pc.baud(9600); + pc.baud(SERIAL1BAUD); 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(); ////////////////////////// rimettere - term.bannerAdv(); //ardser ardser.printf("Connected\r"); // display initDisp(dispType); setFontDisp(dispType,'N'); bannerDisp(dispType); + //terminal + term.bannerAdv(); while(1) { // ardser.attach(&callback); @@ -68,31 +67,28 @@ 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"); + // if (realExtraSerial==false) ardser.printf("cmd Ready\n\r"); for(int ii=0; ii<=i[0]; ii++) bufferTemp[ii]=buffer[0][ii]; parserVT100(bufferTemp); - } - else sc.commitScreen(); + } else sc.commitScreen(); i[0]=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa } } - + //seriale esterna if (ardser.readable()) { c[1]=ardser.getc(); //legge un carattere dalla seriale - if ((c[1] != 10) && (c[1] != 13)) { + if ((c[1] != 10) && (c[1] != 13)) { buffer[1][i[1]]=c[1]; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer i[1]++; // incrementa il puntatore al buffer - led.flash(2); } else { - //ardser.printf("\n\r"); + //ardser.printf("\n\r"); buffer[1][i[1]]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa //controlla di non mandare solo un CR if (i[1]>0) { for(int ii=0; ii<=i[1]; ii++) bufferTemp[ii]=buffer[1][ii]; - writeInput(bufferTemp); - } - else term.readypos(); + writeInput(bufferTemp); + } else term.readypos(); i[1]=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa } }