First version

Dependencies:   mbed EthernetInterface mbed-rto

Committer:
KlaasGovaerts
Date:
Tue May 15 17:09:36 2018 +0000
Revision:
73:5de9e7063adc
Parent:
72:d870f5503783
Werkt niet 4

Who changed what in which revision?

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