First version

Dependencies:   mbed EthernetInterface mbed-rto

Committer:
albireo987
Date:
Wed May 09 15:31:45 2018 +0000
Revision:
67:7951d11432f8
Parent:
58:738f026cf667
Child:
68:8b42082accc2
Child:
69:df2d20effe00
merged

Who changed what in which revision?

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