reformat in uvostyle
This commit is contained in:
303
rgbled.cpp
303
rgbled.cpp
@ -4,106 +4,106 @@ RgbLed::RgbLed( Pwm8b* pwmA, Pwm8b* pwmB ): _pwmA(pwmA), _pwmB(pwmB) {}
|
||||
|
||||
void RgbLed::setSolidColor( const uint8_t r, const uint8_t g, const uint8_t b)
|
||||
{
|
||||
_pattern=0;
|
||||
_targetR = applyCal(r, calRed);
|
||||
_targetG = applyCal(g, calGreen);
|
||||
_targetB = applyCal(b, calBlue);
|
||||
_pattern=0;
|
||||
_targetR = applyCal(r, calRed);
|
||||
_targetG = applyCal(g, calGreen);
|
||||
_targetB = applyCal(b, calBlue);
|
||||
}
|
||||
|
||||
void RgbLed::setPreset( const uint8_t preset)
|
||||
{
|
||||
|
||||
switch (preset)
|
||||
{
|
||||
//whites
|
||||
case 1:
|
||||
setSolidColor( 160,255,80 ); //neutral white
|
||||
break;
|
||||
case 2:
|
||||
setSolidColor( 200,255,20 ); //Warm white
|
||||
break;
|
||||
case 3:
|
||||
setSolidColor( 180,255,140 ); //cold white
|
||||
break;
|
||||
//reds
|
||||
case 4:
|
||||
setSolidColor( 255,0,0 ); //red
|
||||
break;
|
||||
case 5:
|
||||
setSolidColor( 255,60,10 ); //ruby
|
||||
break;
|
||||
case 6:
|
||||
setSolidColor( 255,30,30 ); //pink
|
||||
break;
|
||||
case 7:
|
||||
setSolidColor( 255,155,0 ); //orange
|
||||
break;
|
||||
//greens
|
||||
case 8:
|
||||
setSolidColor( 0,255,0 ); //green
|
||||
break;
|
||||
case 9:
|
||||
setSolidColor( 55,255,10 ); //poison
|
||||
break;
|
||||
case 10:
|
||||
setSolidColor( 0,255,0 ); //green
|
||||
break;
|
||||
case 11:
|
||||
setSolidColor( 8,80,7 ); //mint
|
||||
break;
|
||||
//blues
|
||||
case 12:
|
||||
setSolidColor( 0,0,255 ); //blue
|
||||
break;
|
||||
case 13:
|
||||
setSolidColor( 50,255,255 ); //sky
|
||||
break;
|
||||
case 14:
|
||||
setSolidColor( 10,80,150 ); //ocean
|
||||
break;
|
||||
case 15:
|
||||
setSolidColor( 0,255,220 ); //turqouse
|
||||
break;
|
||||
//strange yellow color color
|
||||
case 16:
|
||||
setSolidColor( 200,255,0 );
|
||||
break;
|
||||
default:
|
||||
setSolidColor( 255,055,20 );
|
||||
}
|
||||
|
||||
switch (preset)
|
||||
{
|
||||
//whites
|
||||
case 1:
|
||||
setSolidColor( 160,255,80 ); //neutral white
|
||||
break;
|
||||
case 2:
|
||||
setSolidColor( 200,255,20 ); //Warm white
|
||||
break;
|
||||
case 3:
|
||||
setSolidColor( 180,255,140 ); //cold white
|
||||
break;
|
||||
//reds
|
||||
case 4:
|
||||
setSolidColor( 255,0,0 ); //red
|
||||
break;
|
||||
case 5:
|
||||
setSolidColor( 255,60,10 ); //ruby
|
||||
break;
|
||||
case 6:
|
||||
setSolidColor( 255,30,30 ); //pink
|
||||
break;
|
||||
case 7:
|
||||
setSolidColor( 255,155,0 ); //orange
|
||||
break;
|
||||
//greens
|
||||
case 8:
|
||||
setSolidColor( 0,255,0 ); //green
|
||||
break;
|
||||
case 9:
|
||||
setSolidColor( 55,255,10 ); //poison
|
||||
break;
|
||||
case 10:
|
||||
setSolidColor( 0,255,0 ); //green
|
||||
break;
|
||||
case 11:
|
||||
setSolidColor( 8,80,7 ); //mint
|
||||
break;
|
||||
//blues
|
||||
case 12:
|
||||
setSolidColor( 0,0,255 ); //blue
|
||||
break;
|
||||
case 13:
|
||||
setSolidColor( 50,255,255 ); //sky
|
||||
break;
|
||||
case 14:
|
||||
setSolidColor( 10,80,150 ); //ocean
|
||||
break;
|
||||
case 15:
|
||||
setSolidColor( 0,255,220 ); //turqouse
|
||||
break;
|
||||
//strange yellow color color
|
||||
case 16:
|
||||
setSolidColor( 200,255,0 );
|
||||
break;
|
||||
default:
|
||||
setSolidColor( 255,055,20 );
|
||||
}
|
||||
}
|
||||
|
||||
void RgbLed::setPattern(const uint8_t id)
|
||||
{
|
||||
_pattern=id;
|
||||
if( id != 0 )
|
||||
{
|
||||
_pwmA->setDutyB(0);
|
||||
_pwmA->setDutyA(0);
|
||||
_pwmB->setDutyB(0);
|
||||
on();
|
||||
_stroke = false;
|
||||
_counter = 0;
|
||||
}
|
||||
_pattern=id;
|
||||
if( id != 0 )
|
||||
{
|
||||
_pwmA->setDutyB(0);
|
||||
_pwmA->setDutyA(0);
|
||||
_pwmB->setDutyB(0);
|
||||
on();
|
||||
_stroke = false;
|
||||
_counter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void RgbLed::on()
|
||||
{
|
||||
_powerd = true;
|
||||
_pwmA->on();
|
||||
_pwmB->on();
|
||||
_powerd = true;
|
||||
_pwmA->on();
|
||||
_pwmB->on();
|
||||
}
|
||||
|
||||
void RgbLed::off()
|
||||
{
|
||||
_powerd = false;
|
||||
_pwmA->off();
|
||||
_pwmB->off();
|
||||
_powerd = false;
|
||||
_pwmA->off();
|
||||
_pwmB->off();
|
||||
}
|
||||
|
||||
void RgbLed::setFade(bool fade)
|
||||
{
|
||||
_fade=fade;
|
||||
_fade=fade;
|
||||
}
|
||||
|
||||
uint8_t RgbLed::applyCal(uint16_t value, const uint16_t* cal)
|
||||
@ -126,89 +126,90 @@ void RgbLed::adjustHeadroom(uint8_t& r, uint8_t& g, uint8_t& b, const uint8_t lu
|
||||
|
||||
void RgbLed::patternStep()
|
||||
{
|
||||
if(_pattern == 1)
|
||||
{
|
||||
if(!_stroke)_counter++;
|
||||
else _counter --;
|
||||
if(_counter == 255) _stroke = true;
|
||||
else if(_counter == 0) _stroke = false;
|
||||
_pwmA->setDutyB(_counter);
|
||||
_pwmA->setDutyA(255-_counter);
|
||||
_pwmB->setDutyB(_counter-64);
|
||||
}
|
||||
else if(_pattern == 2) //Alarm!
|
||||
{
|
||||
if(!_stroke)_counter++;
|
||||
else _counter --;
|
||||
if(_counter == 255 << 1) _stroke = true;
|
||||
else if(_counter == 0) _stroke = false;
|
||||
_pwmA->setDutyB(_counter >> 1);
|
||||
_pwmA->setDutyA(0);
|
||||
_pwmB->setDutyB(0);
|
||||
}
|
||||
else if(_pattern == 3)
|
||||
{
|
||||
if(!_stroke)_counter++;
|
||||
else _counter --;
|
||||
if(_counter == (uint8_t) 255 << 8) _stroke = true;
|
||||
else if(_counter == 0) _stroke = false;
|
||||
_pwmA->setDutyB(_counter >> 6);
|
||||
_pwmA->setDutyA(_counter >> 8);
|
||||
_pwmB->setDutyB(_counter >> 3);
|
||||
}
|
||||
else if(_pattern == 4)
|
||||
{
|
||||
( _counter < 8192 ) ? _pwmA->setDutyB(_counter >> 6) : _pwmA->setDutyB( 128 + (_counter >> 11));
|
||||
if( _counter > 1024 ) ( 8192 < _counter && _counter < 16384 ) ? _pwmA->setDutyA((_counter-8192) >> 6) : _pwmA->setDutyA( 128 + (_counter >> 9 ));
|
||||
if( _counter > 8192 ) _pwmB->setDutyB(_counter >> 9);
|
||||
|
||||
if(_counter<65530) _counter++;
|
||||
else _pwmB->setDutyB(140);
|
||||
|
||||
_delay_ms(18);
|
||||
}
|
||||
if(_pattern == 1)
|
||||
{
|
||||
if(!_stroke)_counter++;
|
||||
else _counter --;
|
||||
if(_counter == 255) _stroke = true;
|
||||
else if(_counter == 0) _stroke = false;
|
||||
_pwmA->setDutyB(_counter);
|
||||
_pwmA->setDutyA(255-_counter);
|
||||
_pwmB->setDutyB(_counter-64);
|
||||
}
|
||||
else if(_pattern == 2) //Alarm!
|
||||
{
|
||||
if(!_stroke)_counter++;
|
||||
else _counter --;
|
||||
if(_counter == 255 << 1) _stroke = true;
|
||||
else if(_counter == 0) _stroke = false;
|
||||
_pwmA->setDutyB(_counter >> 1);
|
||||
_pwmA->setDutyA(0);
|
||||
_pwmB->setDutyB(0);
|
||||
}
|
||||
else if(_pattern == 3)
|
||||
{
|
||||
if(!_stroke)_counter++;
|
||||
else _counter --;
|
||||
if(_counter == (uint8_t) 255 << 8) _stroke = true;
|
||||
else if(_counter == 0) _stroke = false;
|
||||
_pwmA->setDutyB(_counter >> 6);
|
||||
_pwmA->setDutyA(_counter >> 8);
|
||||
_pwmB->setDutyB(_counter >> 3);
|
||||
}
|
||||
else if(_pattern == 4)
|
||||
{
|
||||
( _counter < 8192 ) ? _pwmA->setDutyB(_counter >> 6) : _pwmA->setDutyB( 128 + (_counter >> 11));
|
||||
if( _counter > 1024 ) ( 8192 < _counter
|
||||
&& _counter < 16384 ) ? _pwmA->setDutyA((_counter-8192) >> 6) : _pwmA->setDutyA( 128 + (_counter >> 9 ));
|
||||
if( _counter > 8192 ) _pwmB->setDutyB(_counter >> 9);
|
||||
|
||||
if(_counter<65530) _counter++;
|
||||
else _pwmB->setDutyB(140);
|
||||
|
||||
_delay_ms(18);
|
||||
}
|
||||
}
|
||||
|
||||
void RgbLed::logic()
|
||||
{
|
||||
patternStep();
|
||||
if(_pattern == 0 && _fade)
|
||||
{
|
||||
_counter++;
|
||||
if( uint8_t(_counter << _fadeSpeed) == 0)
|
||||
{
|
||||
if( getR() != _targetR)
|
||||
{
|
||||
_pwmA->setDutyB(getR() - sgn(getR() - _targetR));
|
||||
}
|
||||
if( getG() != _targetG)
|
||||
{
|
||||
_pwmA->setDutyA(getG() - sgn(getG() - _targetG));
|
||||
}
|
||||
if( getB() != _targetB)
|
||||
{
|
||||
_pwmB->setDutyB(getB() - sgn(getB() - _targetB));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(_pattern == 0)
|
||||
{
|
||||
_pwmA->setDutyA(_targetG);
|
||||
_pwmA->setDutyB(_targetR);
|
||||
_pwmB->setDutyB(_targetB);
|
||||
}
|
||||
|
||||
patternStep();
|
||||
if(_pattern == 0 && _fade)
|
||||
{
|
||||
_counter++;
|
||||
if( uint8_t(_counter << _fadeSpeed) == 0)
|
||||
{
|
||||
if( getR() != _targetR)
|
||||
{
|
||||
_pwmA->setDutyB(getR() - sgn(getR() - _targetR));
|
||||
}
|
||||
if( getG() != _targetG)
|
||||
{
|
||||
_pwmA->setDutyA(getG() - sgn(getG() - _targetG));
|
||||
}
|
||||
if( getB() != _targetB)
|
||||
{
|
||||
_pwmB->setDutyB(getB() - sgn(getB() - _targetB));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(_pattern == 0)
|
||||
{
|
||||
_pwmA->setDutyA(_targetG);
|
||||
_pwmA->setDutyB(_targetR);
|
||||
_pwmB->setDutyB(_targetB);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint8_t RgbLed::getR()
|
||||
{
|
||||
return _pwmA->getValueB();
|
||||
return _pwmA->getValueB();
|
||||
}
|
||||
uint8_t RgbLed::getB()
|
||||
{
|
||||
return _pwmB->getValueB();
|
||||
return _pwmB->getValueB();
|
||||
}
|
||||
uint8_t RgbLed::getG()
|
||||
{
|
||||
return _pwmA->getValueA();
|
||||
return _pwmA->getValueA();
|
||||
}
|
||||
|
Reference in New Issue
Block a user