First version

Dependencies:   mbed EthernetInterface mbed-rto

Revision:
55:4e06cfb6d010
Parent:
54:4274186bf584
Child:
56:f0ddd28b1766
--- a/LEDDriver.cpp	Wed May 09 13:10:51 2018 +0000
+++ b/LEDDriver.cpp	Wed May 09 13:34:15 2018 +0000
@@ -1,21 +1,15 @@
 #include "LEDDriver.h" 
-//Serial pc(USBTX,USBRX);
 LEDDriver::LEDDriver( Queue<int,8>* queue)
 {
-    //this->messageList=messageList;
-    //this->leds=leds;
-    this->queue=queue;// prep for multithreaded
-    printf("Queue created\r\n");
+    this->queue=queue;
     initArrays();
-    printf("Arrays initialised.\r\n");
     currentLocation=0;
 }
 
 void LEDDriver::drive(int numberOfLeds)
 {
     if(currentLocation==0){
-        poll(numberOfLeds,1);
-        poll(numberOfLeds,2);
+        poll(numberOfLeds);
     }
     
     setLEDS(currentLocation);
@@ -23,47 +17,15 @@
     if(currentLocation>=25){
         currentLocation=0;
     }
-    
-    /*
-    Ticker ticker;    
-    while(true)
-    {   
-        poll(numberOfLeds,1) ;//prep multi
-        //for(int i =0;i<numberOfLeds;i++)
-        //{
-            //ticker.attach(this,&LEDDriver::sendData,0.000625f);
-        //}   
-        poll(numberOfLeds,2) ;
-    }*/
-}
-
-void LEDDriver::run(Ticker* ticker)
-{
-    printf("ticker attached.\r\n");
-    ticker->attach(this,&LEDDriver::drive8leds,10.0);//TODO faster
 }
 
 void LEDDriver::drive8leds(){
-    printf("tick\r\n");//TODO
     drive(8);
 }
 
-void LEDDriver::ownWait(uint32_t us)
+void LEDDriver::poll(int numberOfLeds)
 {
-   for(uint32_t i=0;i<us;i++)
-        {
-            for(volatile uint32_t j =0; j <3;j++)
-            {
-
-            }
-        }
-}
-
-void LEDDriver::poll(int numberOfLeds,int first)
-{
-    if(first==1)
-    {
-        for(int i =0;i<(numberOfLeds/2);i++)
+        for(int i =0;i<(numberOfLeds);i++)
         { 
             osEvent event = queue->get();
             int temp = *((int*)event.value.p);
@@ -71,34 +33,21 @@
             {
                 messageList[i]=temp; 
             }     
-        }       
-    }        
-    else if(first==2)
-    {   
-        for(int i =(numberOfLeds/2);i<(numberOfLeds);i++)
-        { 
-            osEvent event = queue->get();
-            int temp = *((int*)event.value.p);
-            if(temp==0||temp==1||temp==2||temp==3||temp==4)
-            {
-                messageList[i]=temp; 
-            }                
-        }  
-    }    
+        }            
 }
 
 void LEDDriver::initArrays()
 {
                          //   1    1  1   1   0   0   0   0   0   1
-    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};//  currently frequency measure message(standard square wave) 4:('1')+2 ticker 0.002f. (250Hz, 10ms down)
+    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)
                             //    1   1   1  1  0   1     0  0   0   1 
     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};
                             //    1   1   1  1  1   0     1  0   0   1
     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};
                             //   1   1   1   1   1   1   0  0    0   1  
     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};
-    int tempCodedMessage4[25]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};//default message for multithreading
-    int tempMessageList[8]={0,0,0,0,0,0,0,0};//TODO
+    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};
+    int tempMessageList[8]={4,4,4,4,4,4,4,4};
     DigitalOut *tempLeds[]={new DigitalOut(p23),new DigitalOut(p11),new DigitalOut(p12),new DigitalOut(p13),new DigitalOut(p14),new DigitalOut(p15),new DigitalOut(p16),new DigitalOut(p17)};
     printf("Arrays created.\r\n");
     
@@ -122,30 +71,24 @@
             if(messageList[led]==0)
             {
                 leds[led]->write(codedMessage0[j]);
-                //ownWait(25);//100HZ
             }
             else if(messageList[led]==1)
             {
                 leds[led]->write(codedMessage1[j]);
-                //ownWait(25);
             }
             else if(messageList[led]==2)
             {
                 leds[led]->write(codedMessage2[j]);
-                //ownWait(25);
             }
             else if(messageList[led]==3)
             {
                 leds[led]->write(codedMessage3[j]);
-                //ownWait(25);
             }
             else if(messageList[led]==4||messageList[led]==-1)
             {
                 leds[led]->write(codedMessage4[j]);
-                //ownWait(25);
             }
         }
-        //wait_ms(10); 
 }
 
 //TODO destructor
\ No newline at end of file