demo versie 16/05

Dependencies:   EthernetInterface mbed-rto mbed

Fork of ProjectVLC by Klaas Govaerts

Committer:
KlaasGovaerts
Date:
Wed May 09 13:41:04 2018 +0000
Revision:
59:f0ddd28b1766
Parent:
58:4e06cfb6d010
Child:
60:ff86ce40112a
Verder opgekuist.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
albireo987 38:47c075a354b5 1 #include "LEDDriver.h"
albireo987 25:4c673da1a3ae 2 LEDDriver::LEDDriver( Queue<int,8>* queue)
albireo987 2:36158325f7b0 3 {
KlaasGovaerts 58:4e06cfb6d010 4 this->queue=queue;
KlaasGovaerts 47:2d877f01ca7b 5 initArrays();
KlaasGovaerts 47:2d877f01ca7b 6 currentLocation=0;
KlaasGovaerts 59:f0ddd28b1766 7 static DigitalOut tempLeds[]={new DigitalOut(p12),new DigitalOut(p11),new DigitalOut(p13),new DigitalOut(p14),new DigitalOut(p15),new DigitalOut(p16),new DigitalOut(p17),new DigitalOut(p18)};
albireo987 2:36158325f7b0 8 }
albireo987 2:36158325f7b0 9
albireo987 2:36158325f7b0 10 void LEDDriver::drive(int numberOfLeds)
albireo987 2:36158325f7b0 11 {
KlaasGovaerts 49:8fe84f455571 12 if(currentLocation==0){
KlaasGovaerts 58:4e06cfb6d010 13 poll(numberOfLeds);
KlaasGovaerts 49:8fe84f455571 14 }
KlaasGovaerts 49:8fe84f455571 15
KlaasGovaerts 47:2d877f01ca7b 16 setLEDS(currentLocation);
KlaasGovaerts 47:2d877f01ca7b 17 currentLocation++;
KlaasGovaerts 56:4274186bf584 18 if(currentLocation>=25){
KlaasGovaerts 47:2d877f01ca7b 19 currentLocation=0;
KlaasGovaerts 47:2d877f01ca7b 20 }
KlaasGovaerts 46:ffac07bff0d8 21 }
KlaasGovaerts 46:ffac07bff0d8 22
KlaasGovaerts 46:ffac07bff0d8 23 void LEDDriver::drive8leds(){
KlaasGovaerts 46:ffac07bff0d8 24 drive(8);
albireo987 2:36158325f7b0 25 }
albireo987 2:36158325f7b0 26
KlaasGovaerts 58:4e06cfb6d010 27 void LEDDriver::poll(int numberOfLeds)
albireo987 10:7871aeacea08 28 {
KlaasGovaerts 58:4e06cfb6d010 29 for(int i =0;i<(numberOfLeds);i++)
albireo987 26:29948b116e82 30 {
KlaasGovaerts 46:ffac07bff0d8 31 osEvent event = queue->get();
KlaasGovaerts 46:ffac07bff0d8 32 int temp = *((int*)event.value.p);
KlaasGovaerts 54:45207965e160 33 if(temp==0||temp==1||temp==2||temp==3||temp==4)
albireo987 26:29948b116e82 34 {
KlaasGovaerts 46:ffac07bff0d8 35 messageList[i]=temp;
KlaasGovaerts 54:45207965e160 36 }
KlaasGovaerts 58:4e06cfb6d010 37 }
albireo987 38:47c075a354b5 38 }
albireo987 38:47c075a354b5 39
KlaasGovaerts 47:2d877f01ca7b 40 void LEDDriver::initArrays()
albireo987 38:47c075a354b5 41 {
KlaasGovaerts 47:2d877f01ca7b 42 // 1 1 1 1 0 0 0 0 0 1
KlaasGovaerts 58:4e06cfb6d010 43 int tempCodedMessage0[25]=/*{1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1};*/{1,1,1,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1};// commented message is frequency measure message(standard square wave) 4:('1')+2 ticker 0.002f. (250Hz, 10ms down)
albireo987 38:47c075a354b5 44 // 1 1 1 1 0 1 0 0 0 1
KlaasGovaerts 56:4274186bf584 45 int tempCodedMessage1[25]={1,1,1,1,1,0,1,0,1,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,1};
albireo987 38:47c075a354b5 46 // 1 1 1 1 1 0 1 0 0 1
KlaasGovaerts 56:4274186bf584 47 int tempCodedMessage2[25]={1,1,1,1,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1};
albireo987 38:47c075a354b5 48 // 1 1 1 1 1 1 0 0 0 1
KlaasGovaerts 56:4274186bf584 49 int tempCodedMessage3[25]={1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1};
KlaasGovaerts 58:4e06cfb6d010 50 int tempCodedMessage4[25]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
KlaasGovaerts 58:4e06cfb6d010 51 int tempMessageList[8]={4,4,4,4,4,4,4,4};
KlaasGovaerts 59:f0ddd28b1766 52 DigitalOut *tempLeds[]={new DigitalOut(p12),new DigitalOut(p11),new DigitalOut(p13),new DigitalOut(p14),new DigitalOut(p15),new DigitalOut(p16),new DigitalOut(p17),new DigitalOut(p18)};
KlaasGovaerts 47:2d877f01ca7b 53
KlaasGovaerts 47:2d877f01ca7b 54 memcpy(codedMessage0,tempCodedMessage0,sizeof(codedMessage0));
KlaasGovaerts 47:2d877f01ca7b 55 memcpy(codedMessage1,tempCodedMessage1,sizeof(codedMessage1));
KlaasGovaerts 47:2d877f01ca7b 56 memcpy(codedMessage2,tempCodedMessage2,sizeof(codedMessage2));
KlaasGovaerts 47:2d877f01ca7b 57 memcpy(codedMessage3,tempCodedMessage3,sizeof(codedMessage3));
KlaasGovaerts 47:2d877f01ca7b 58 memcpy(codedMessage4,tempCodedMessage4,sizeof(codedMessage4));
KlaasGovaerts 47:2d877f01ca7b 59
KlaasGovaerts 49:8fe84f455571 60 memcpy(messageList,tempMessageList,sizeof(messageList));
KlaasGovaerts 49:8fe84f455571 61
KlaasGovaerts 47:2d877f01ca7b 62 memcpy(leds,tempLeds,sizeof(leds));
KlaasGovaerts 47:2d877f01ca7b 63 }
KlaasGovaerts 47:2d877f01ca7b 64
KlaasGovaerts 47:2d877f01ca7b 65 void LEDDriver::setLEDS(int j){
albireo987 38:47c075a354b5 66 for(int led =0 ; led<8;led++)
albireo987 38:47c075a354b5 67 {
albireo987 38:47c075a354b5 68 if(messageList[led]==0)
albireo987 38:47c075a354b5 69 {
KlaasGovaerts 50:c5cd73d93045 70 leds[led]->write(codedMessage0[j]);
albireo987 38:47c075a354b5 71 }
albireo987 38:47c075a354b5 72 else if(messageList[led]==1)
albireo987 38:47c075a354b5 73 {
KlaasGovaerts 50:c5cd73d93045 74 leds[led]->write(codedMessage1[j]);
albireo987 38:47c075a354b5 75 }
albireo987 38:47c075a354b5 76 else if(messageList[led]==2)
albireo987 38:47c075a354b5 77 {
KlaasGovaerts 50:c5cd73d93045 78 leds[led]->write(codedMessage2[j]);
albireo987 38:47c075a354b5 79 }
albireo987 38:47c075a354b5 80 else if(messageList[led]==3)
albireo987 38:47c075a354b5 81 {
KlaasGovaerts 50:c5cd73d93045 82 leds[led]->write(codedMessage3[j]);
albireo987 38:47c075a354b5 83 }
KlaasGovaerts 49:8fe84f455571 84 else if(messageList[led]==4||messageList[led]==-1)
albireo987 38:47c075a354b5 85 {
KlaasGovaerts 50:c5cd73d93045 86 leds[led]->write(codedMessage4[j]);
albireo987 38:47c075a354b5 87 }
KlaasGovaerts 56:4274186bf584 88 }
KlaasGovaerts 50:c5cd73d93045 89 }
KlaasGovaerts 50:c5cd73d93045 90
KlaasGovaerts 59:f0ddd28b1766 91
KlaasGovaerts 50:c5cd73d93045 92 //TODO destructor