Console Serial IO con display OLED e seriale asincrona

Dependencies:   mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2

Fork of SerialIO by Max Scordamaglia

Console Serial IO con display OLED e seriale asincrona

main.cpp

Committer:
MaxScorda
Date:
2015-08-16
Revision:
13:92303a41947a
Parent:
12:78f6112c900f
Child:
15:7d756492af23

File content as of revision 13:92303a41947a:

#include "mbed.h"
#include "config.h"
#include "IOFuncLib.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
//init funzioni personal lib
Flasher led(LED1);
Screen sc(&pc);
genFunctions fnz;

//var
int cont=0;
int dispType=0; //0:oled  1:lcd

//------------ Funzioni -------------
#include "macroDisp.h"
#include "Functions.h"

int main()
{
    char c; // variabile che contiene il carattere appena ricevuto
    char buffer[128]; // buffer di accumulo dei caratteri in sequenza
    char i=0; // variabile di comodo per il conteggio dei caratteri
    //Serial config
    pc.baud(SERIAL1BAUD);
    ardser.baud(SERIALARDBAUD);
    //pc.format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1)

    mybutton.fall(&pressed);
    sc.emptyFrame();
    sc.banner();    
    // display
    initDisp(dispType);
    setFontDisp(dispType,'N');

    while(1) {
        ardser.attach(&callback);
        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) {
                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

        }
    }
}