First version

Dependencies:   mbed EthernetInterface mbed-rto

Committer:
KlaasGovaerts
Date:
Wed May 09 10:08:32 2018 +0000
Revision:
48:c5cd73d93045
Parent:
46:0ed7f44202c0
Child:
52:45207965e160
Backup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KlaasGovaerts 18:5ee34e60a31d 1 #include "Interpreter.h"
KlaasGovaerts 18:5ee34e60a31d 2
KlaasGovaerts 24:bf62c46acb3e 3
KlaasGovaerts 24:bf62c46acb3e 4
KlaasGovaerts 30:915f6cb7ffa5 5 Interpreter::Interpreter(Queue<int,8>* queue){
KlaasGovaerts 48:c5cd73d93045 6 printf("Interpreter created.\r\n");
KlaasGovaerts 24:bf62c46acb3e 7 Interpreter::queue=queue;
KlaasGovaerts 18:5ee34e60a31d 8 }
KlaasGovaerts 18:5ee34e60a31d 9
KlaasGovaerts 18:5ee34e60a31d 10 void Interpreter::executeCommand(char* command){
KlaasGovaerts 24:bf62c46acb3e 11 for(int i=0;i<8;i++){
KlaasGovaerts 46:0ed7f44202c0 12 LED[i]=-1;
KlaasGovaerts 30:915f6cb7ffa5 13 } //Set all default on -1
KlaasGovaerts 24:bf62c46acb3e 14
KlaasGovaerts 20:fe6a58e84929 15 char *ID=strtok(command,"-");
KlaasGovaerts 18:5ee34e60a31d 16 char *direction=strtok(NULL," ");
KlaasGovaerts 18:5ee34e60a31d 17 while((ID!=NULL)&&(direction!=NULL)){
KlaasGovaerts 18:5ee34e60a31d 18 int IDNumber=atoi(ID);
KlaasGovaerts 18:5ee34e60a31d 19 int directionNumber=directionToNumber(direction);
KlaasGovaerts 18:5ee34e60a31d 20 if((IDNumber>=0)&&(IDNumber<=11)&&(directionNumber>=-1)&&(directionNumber<=3)){
KlaasGovaerts 18:5ee34e60a31d 21 LED[IDNumber]=directionNumber;
KlaasGovaerts 18:5ee34e60a31d 22 }
KlaasGovaerts 20:fe6a58e84929 23 ID=strtok(NULL,"-");
KlaasGovaerts 18:5ee34e60a31d 24 direction=strtok(NULL," ");
KlaasGovaerts 18:5ee34e60a31d 25 }
KlaasGovaerts 24:bf62c46acb3e 26
KlaasGovaerts 24:bf62c46acb3e 27 for(int i=0;i<8;i++){
KlaasGovaerts 24:bf62c46acb3e 28 queue->put(&LED[i]);
KlaasGovaerts 24:bf62c46acb3e 29 }
KlaasGovaerts 24:bf62c46acb3e 30
KlaasGovaerts 24:bf62c46acb3e 31 for(int i=0;i<8;i++){
albireo987 38:47c075a354b5 32 printf("LED %i, richting: %i\r\n",i,LED[i]);
KlaasGovaerts 24:bf62c46acb3e 33 }
KlaasGovaerts 18:5ee34e60a31d 34 }
KlaasGovaerts 18:5ee34e60a31d 35
KlaasGovaerts 18:5ee34e60a31d 36 int Interpreter::directionToNumber(char* direction){
KlaasGovaerts 20:fe6a58e84929 37 if(strcmp(direction,"left")==0)
KlaasGovaerts 18:5ee34e60a31d 38 return 0;
KlaasGovaerts 20:fe6a58e84929 39 else if(strcmp(direction,"right")==0)
KlaasGovaerts 18:5ee34e60a31d 40 return 1;
KlaasGovaerts 20:fe6a58e84929 41 else if(strcmp(direction,"up")==0)
KlaasGovaerts 18:5ee34e60a31d 42 return 2;
KlaasGovaerts 20:fe6a58e84929 43 else if(strcmp(direction,"down")==0)
KlaasGovaerts 18:5ee34e60a31d 44 return 3;
KlaasGovaerts 18:5ee34e60a31d 45 else
KlaasGovaerts 18:5ee34e60a31d 46 return -1;
KlaasGovaerts 18:5ee34e60a31d 47 }