My Version of The LED_WS2812 Library

Dependencies:   WS2812 PixelArray

Fork of LED_WS2812 by CreaLab

LEDs_Car.cpp

Committer:
sepp_nepp
Date:
2019-06-21
Revision:
8:392cfdbded1e

File content as of revision 8:392cfdbded1e:

// *****************************************************************
// Handle all the LEDs with some general function wrappers functions
// *****************************************************************
#include "LEDs_Car.h"

// Added a lookup function from a color number to a color, used by Creabot
int LEDs_Car::ColNr2Color( char ColNr)
{  switch (ColNr) {
    case 0: return BLACK;
    case 1: return WHITE;
    case 2: return RED;
    case 3: return GREEN;
    case 4: return BLUE;
    case 5: return PURPLE;
    default: return BLACK;
    }
}

void LEDs_Car::LEDsOff( void ) {
    StopRotation();
    StopBlink() ;
    for (int lNr=0; lNr<NumLEDs; lNr++) 
        { SetColor(BLACK,lNr); } 
}

void LEDs_Car::LEDsRainbow( void )
{ for (int Nr=0; Nr<NumLEDs; Nr++) 
    { SetColor(ColNr2Color(Nr + 1),Nr); }   
}

void LEDs_Car::LEDNrCol(LED_Nr aNr, int parameter) 
{   
  SetColor( ColNr2Color( aNr ), aNr);
}

void LEDs_Car::LEDsRainbowMove( double speed )
{   LEDsRainbow( );
    StartRotation(0.3);
}

void LEDs_Car::LEDClignote(LED_Nr aNr, int OnOff) {
    if (OnOff == 1) {
        SetColor( ORANGE, aNr);
        StartBlink(0.5) ;} 
    else { LEDsOff(); }
}

// *****************************************************************
// Handle all the LEDs specifically with the LED Position definitions
// *****************************************************************

void LEDs_Car::LEDFront(int ColNr) 
{   
  SetColor( ColNr2Color( ColNr ), ledAvD);
  SetColor( ColNr2Color( ColNr ), ledAvG);
}
  
void LEDs_Car::LEDRear(int ColNr) 
{   
  SetColor( ColNr2Color( ColNr ), ledArD);
  SetColor( ColNr2Color( ColNr ), ledArG);
}
  
void LEDs_Car::LEDCligR(int speed) {
    if ( (speed>0) && (speed<4) ) {
       SetColor(ORANGE, ledAvD) ;
       SetColor(ORANGE, ledArD) ;
       StartBlink(float(speed)/4) ;} 
    else { LEDsOff(); }
 }

void LEDs_Car::LEDCligL(int speed) {
    if ( (speed>0) && (speed<4) ) {
       SetColor(ORANGE, ledAvG) ;
       SetColor(ORANGE, ledArG) ;
       StartBlink(float(speed)/4) ;} 
    else { LEDsOff(); }
}

void LEDs_Car::LEDAnim(int speed) {
    if ( (speed>0) && (speed<4) ) 
        { LEDsRainbowMove(float(speed)/4); }
      else {  LEDsOff();  }
}