mbed5a_testy

Dependencies:   mbed

main.cpp

Committer:
Robsonik16
Date:
2017-05-05
Revision:
1:b8d65b5745d1
Parent:
0:e69a0b7f4b41

File content as of revision 1:b8d65b5745d1:

#include "mbed.h"
//#include "servo.h"
//#include "command_decoder.h"
#include "led.h"
#include "serwo.h"
#include "command_decoder.h"



//#define DETECTOR_bm (PA4)


//DigitalIn det(PA_5);
//Ticker serwoTim;




//************************************************************************/

/******************************************************************/
//------------------------------------
// 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 (){

    
    unsigned int uiPreviusPos;
    //ButtonInit(); 
    //Servo_Init(500);
    char cOdebranyString[20];
    char init[] = "system start\r\n";
    const char tekstSize = 20;
    my_puts(init,tekstSize);
    
     Servo_Init(100);
      //Servo_Callib();
    
    while(1){
        

         
        
        
        
        
        if (my_gets(cOdebranyString,tekstSize)!=NULL) {
        //if(eReciever_GetStatus() == READY){
            
            //Reciever_GetStringCopy( cOdebranyString );
            DecodeMsg( cOdebranyString );
            if ((ucTokenNr > 0) && (asToken[0].eType == KEYWORD)){
                switch (asToken[0].uValue.eKeyword){
                    case CALLIB:
                        Servo_Callib();
                    break;
                    case GOTO:
                        if (asToken[1].eType == NUMBER){
                            Servo_GoTo(asToken[1].uValue.uiNumber);
                            uiPreviusPos = asToken[1].uValue.uiNumber;
                        }
                    break;
                    case STEP:
                        if (asToken[1].eType == NUMBER){
                            Servo_GoTo(uiPreviusPos + asToken[1].uValue.uiNumber);
                            uiPreviusPos = uiPreviusPos + asToken[1].uValue.uiNumber;
                        }
                    break;
                    case ID:
                        my_puts("ID:0x1234",15);
                    break;
                    default:
                    break;
                }
            }
        }
        
    }
}








/*
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;
        }

    }
}
*/