demo versie 16/05

Dependencies:   EthernetInterface mbed-rto mbed

Fork of ProjectVLC by Klaas Govaerts

Receiver.cpp

Committer:
KlaasGovaerts
Date:
2018-04-18
Revision:
17:04fb7968592a
Parent:
16:ffd311730575

File content as of revision 17:04fb7968592a:

#include "Receiver.h"

Receiver::Receiver(int* LEDinput,Mutex* lockinput){
    LED=LEDinput;
    lock=lockinput;
    
}

void Receiver::executeCommand(char* command){
    char *ID=strtok(command,",");
    char *direction=strtok(NULL," ");
    while((ID!=NULL)&&(direction!=NULL)){
        int IDNumber=atoi(ID);
        int directionNumber=directionToNumber(direction);
        if((IDNumber>=0)&&(IDNumber<=11)&&(directionNumber>=-1)&&(directionNumber<=3)){
            lock->lock();
            LED[IDNumber]=directionNumber;
            lock->unlock();
        }
    ID=strtok(NULL,",");
    direction=strtok(NULL," ");
    }
}

void Receiver::executeAll(){
    char command[512];
    bool SegmentWaiting=true;
    while(SegmentWaiting){
        SegmentWaiting=listener.receiveSegment(command,sizeof(command));
        if(SegmentWaiting==true){
            executeCommand(command);
        }
    }
    
}

int Receiver::directionToNumber(char* direction){
    if(strcmp(direction,"links")==0)
        return 0;
    else if(strcmp(direction,"rechts")==0)
        return 1;
    else if(strcmp(direction,"boven")==0)
        return 2;
    else if(strcmp(direction,"onder")==0)
        return 3;
    else 
        return -1;
}