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:
- 25:5e93e62a319e
- Parent:
- 24:1603f5b23d98
- Child:
- 27:b8d7f2ede945
--- a/main.cpp Fri Sep 04 22:14:13 2015 +0000 +++ b/main.cpp Sun Sep 06 13:08:38 2015 +0000 @@ -6,10 +6,10 @@ //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 -//BufferedSerial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 -//BufferedSerial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto +//Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 +//Serial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto +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 Flasher led(LED1); Screen sc(&pc); @@ -54,56 +54,45 @@ bannerDisp(dispType); while(1) { - /* - Timer s; - - s.start(); - pc.printf("Hello World - buffered\n"); - int buffered_time = s.read_us(); - wait(0.1f); // give time for the buffer to empty - * - * s.reset(); - * printf("Hello World - blocking\n"); - * int polled_time = s.read_us(); - * s.stop(); - * wait(0.1f); // give time for the buffer to empty - */ - + ardser.attach(&callback); //seriale interna - c=pc.getc(); //legge un carattere dalla seriale - if (c != 13) { - buffer[i]=c; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer - i++; // incrementa il puntatore al buffer - led.flash(2); - } else { - pc.printf("\n\r"); - buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa - //controlla di non mandare solo un CR - if (i>0) { - if (realExtraSerial==false) ardser.printf("\ncmd Ready\n\r"); - parser(buffer); - } else sc.commitScreen(); - i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa + if (pc.readable()) { + c=pc.getc(); //legge un carattere dalla seriale + + if (c != 13) { + buffer[i]=c; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer + i++; // incrementa il puntatore al buffer + led.flash(2); + } else { + pc.printf("\n\r"); + buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa + //controlla di non mandare solo un CR + if (i>0) { + if (realExtraSerial==false) ardser.printf("\ncmd Ready\n\r"); + parser(buffer); + } else sc.commitScreen(); + i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa + } } -/* - //seriale esterna - ce=ardser.getc(); //legge un carattere dalla seriale - if (ce != 13) { - buffere[i]=ce; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer - ie++; // incrementa il puntatore al buffer - led.flash(2); - } else { - ////? pc.printf("\n\r"); - buffere[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa - //controlla di non mandare solo un CR - if (ie>0) { - ////? ardser.printf("\ncmd Ready\n\r"); - ////? parser(buffere); - } else sc.commitScreen(); - ie=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa - } - */ + /* + //seriale esterna + ce=ardser.getc(); //legge un carattere dalla seriale + if (ce != 13) { + buffere[i]=ce; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer + ie++; // incrementa il puntatore al buffer + led.flash(2); + } else { + ////? pc.printf("\n\r"); + buffere[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa + //controlla di non mandare solo un CR + if (ie>0) { + ////? ardser.printf("\ncmd Ready\n\r"); + ////? parser(buffere); + } else sc.commitScreen(); + ie=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa + } + */ } }