mbed2_3_b_ii

Dependencies:   mbed

main.cpp

Committer:
Robsonik16
Date:
2017-05-05
Revision:
0:da2fe761ec44

File content as of revision 0:da2fe761ec44:

#include "mbed.h"

//------------------------------------
// Hyperterminal configuration
// 9600 bauds, 8-bit data, no parity
//------------------------------------

RawSerial pc(USBTX,USBRX,9600);

DigitalOut led_green(LED1);
DigitalOut led_red(LED2);



Timeout LedTimeout;
Ticker Sender;

void LedOff()
{
    led_red=0;
}

int my_puts(char tab[],int size)
{
//retutn 0 if string is valid
    bool StringIsValid=false;
    for( int index=0; index<size; index++) {
        if (tab[index]==NULL) {
            StringIsValid = true;
            break;
        }
    }
    if(StringIsValid == false) {
        LedTimeout.attach(&LedOff, 0.5);
        led_red=1;
        return(1);
    }

    for( int index=0; index<size; index++) {
        if (tab[index]==NULL) {
            pc.putc('\r');
            while(!pc.writeable());
            pc.putc('\n');
            return(0);
        }
        while(!pc.writeable());
        pc.putc(tab[index]);
    }
    return(0);
}

void hardbeatSend()
{
    static int count=0;
    char tekst[25];
    sprintf(tekst,"hardbeat number: %d \r\n", count );
    //pc.printf("This program runs since %d seconds.\r\n", i);
    my_puts(tekst,22);
    count++;
}

char my_gets(char str[],int size)
{
    if (!pc.readable())return (NULL);
    char c;
    for(int index=0; index <size; index++) {
        c=pc.getc();
        pc.putc(c);
        if ((c=='\r')||(c=='\n')) {
            pc.putc('\r');
            pc.putc('\n');
            str[index]=NULL;
            return (1);
        }
        str[index]=c;
    }
    LedTimeout.attach(&LedOff, 5);
    led_red=1;
    return (1);
}

int main()
{


    bool flag=false;

    const char tekstSize = 7;
    char tekst[tekstSize];
    //my_puts("[2J",5);//clear console
    //pc.putc('[2J');
    pc.putc(27);
    char init[] = "system start\r\n";
    my_puts(init,tekstSize);
    Sender.attach(&hardbeatSend,1);



    while(1) {



        if (my_gets(tekst,tekstSize)!=NULL) {
            
            my_puts(tekst,tekstSize);
            if(strcmp(tekst,"on"))flag = true;
            if(strcmp(tekst,"off"))flag = false;
            if(strcmp(tekst,"toggle"))flag = !flag;
            led_green =flag;
        }

    }
}