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-09-04
Revision:
24:1603f5b23d98
Parent:
23:b7bd85345617
Child:
25:5e93e62a319e

File content as of revision 24:1603f5b23d98:

#include "mbed.h"
#include "config.h"
#include "IOFuncLib.h"
#include "BufferedSerial.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
//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);
genFunctions fnz;
Ticker ScreenSaver;

//var
int cont=0;
int dispType=0; //0:oled  1:lcd
bool realExtraSerial=true; //se true manda fuori solo le info reali senno demo


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


int main()
{
    // Seriale Principale
    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
    // Seriale esterna Arduino
    char ce; // variabile che contiene il carattere appena ricevuto
    char buffere[128]; // buffer di accumulo dei caratteri in sequenza
    char ie=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);
    ScreenSaver.attach(&scsa,60);
    sc.emptyFrame();
    sc.banner();
    //ardser
    ardser.printf("Connected\r");
    // display
    initDisp(dispType);
    setFontDisp(dispType,'N');
    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
        }
/*
        //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
        }
        */
    }
}