demo versie 16/05

Dependencies:   EthernetInterface mbed-rto mbed

Fork of ProjectVLC by Klaas Govaerts

LEDDriver.h

Committer:
KlaasGovaerts
Date:
2018-05-09
Revision:
47:2d877f01ca7b
Parent:
46:ffac07bff0d8
Child:
49:8fe84f455571

File content as of revision 47:2d877f01ca7b:

#ifndef LEDDRIVER_H 
#define LEDDRIVER_H 

#include "copy.h"
#include "mbed.h"
#include "rtos.h"

class LEDDriver
{
    private:
    
    int* messageList;
    int codedMessage0[20];
    int codedMessage1[20];
    int codedMessage2[20];
    int codedMessage3[20];
    int codedMessage4[20];
    int directions[8];
    Queue<int,8>* queue;
    DigitalOut* leds;
    int currentLocation;
    
    /**prep for eventual multithreading
     *methode om nieuwe richtingen van de receiver klasse te ontvangen
     *@params aantal leds die een nieuw bericht moeten krijgen  
     *@params int die aanduid of de eerste helft van de leds gepolled moeten worden of de tweede
     */ 
    void poll(int numberOfLeds, int first);
   
   /**
    *callback methode voor de ticker
    *@params de led om aan te sturen
    */
    void sendData();
    
    void setLEDS(int j);
    
     public:
     
    /**
     *methode om de mbed te doen wachten,nop gebaseerd
     *@params aantal microseconden te wachten
     */    
    void ownWait(uint32_t us);
    
   
    
    /**
     *methode dat alle leds aanstuurt
     *@params aantal leds aan te sturen
     */    
    void drive(int numberOfLeds);
    
    /**
      *constructor voor een driver object
      *@params de queue met de waarden die een richting aanduiden
      */  
    LEDDriver(Queue<int,8>* queue);
    /**
      *methode om de driver
      */
    void run(Ticker* ticker);
    
    void drive8leds();

    void initArrays();
};        

#endif