|
|
@ -48,11 +48,12 @@ ToshibaLED_I2C::ToshibaLED_I2C(uint8_t bus) |
|
|
|
bool ToshibaLED_I2C::hw_init(void) |
|
|
|
bool ToshibaLED_I2C::hw_init(void) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// first look for led on external bus
|
|
|
|
// first look for led on external bus
|
|
|
|
// _dev = std::move(hal.i2c_mgr->get_device(_bus, TOSHIBA_LED_I2C_ADDR));
|
|
|
|
_dev = std::move(hal.i2c_mgr->get_device(_bus, TOSHIBA_LED_I2C_ADDR)); |
|
|
|
|
|
|
|
|
|
|
|
FOREACH_I2C(i) { |
|
|
|
// FOREACH_I2C(i) {
|
|
|
|
_dev = std::move(hal.i2c_mgr->get_device(i, TOSHIBA_LED_I2C_ADDR)); |
|
|
|
// index_iic[i] = i;
|
|
|
|
} |
|
|
|
// _dev = std::move(hal.i2c_mgr->get_device(i, TOSHIBA_LED_I2C_ADDR));
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
if (!_dev) { |
|
|
|
if (!_dev) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
@ -76,16 +77,42 @@ bool ToshibaLED_I2C::hw_init(void) |
|
|
|
if (ret) { |
|
|
|
if (ret) { |
|
|
|
_dev->register_periodic_callback(20000, FUNCTOR_BIND_MEMBER(&ToshibaLED_I2C::_timer, void)); |
|
|
|
_dev->register_periodic_callback(20000, FUNCTOR_BIND_MEMBER(&ToshibaLED_I2C::_timer, void)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// index_iic[4] = 99;
|
|
|
|
|
|
|
|
// _dev->transfer(index_iic, 5, nullptr, 0);
|
|
|
|
|
|
|
|
// test[0] = 99;
|
|
|
|
|
|
|
|
// test[1] = 99;
|
|
|
|
|
|
|
|
// test[2] = 99;
|
|
|
|
|
|
|
|
// test[3] = 99;
|
|
|
|
|
|
|
|
// test[4] = 99;
|
|
|
|
|
|
|
|
// _dev->transfer(test, 5, nullptr, 0);
|
|
|
|
return ret; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// set_rgb - set color as a combination of red, green and blue values
|
|
|
|
// set_rgb - set color as a combination of red, green and blue values
|
|
|
|
bool ToshibaLED_I2C::hw_set_rgb(uint8_t red, uint8_t green, uint8_t blue) |
|
|
|
bool ToshibaLED_I2C::hw_set_rgb(uint8_t red, uint8_t green, uint8_t blue) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
// rgb = {red, green, blue};
|
|
|
|
|
|
|
|
// _need_update = true;
|
|
|
|
|
|
|
|
// return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static uint8_t cnt; |
|
|
|
|
|
|
|
static uint8_t l_mode,l_red,l_green,l_blue; |
|
|
|
rgb = {red, green, blue}; |
|
|
|
rgb = {red, green, blue}; |
|
|
|
_need_update = true; |
|
|
|
|
|
|
|
|
|
|
|
cnt++; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(l_mode != rgb_mode || l_red != rgb.r || l_green != rgb.g || l_blue != rgb.b || cnt > 50) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
cnt =0; |
|
|
|
|
|
|
|
_need_update = true; |
|
|
|
|
|
|
|
l_mode = rgb_mode ; |
|
|
|
|
|
|
|
l_red = rgb.r ; |
|
|
|
|
|
|
|
l_green = rgb.g ; |
|
|
|
|
|
|
|
l_blue = rgb.b; |
|
|
|
|
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ToshibaLED_I2C::set_rgb_mode(uint8_t mode) |
|
|
|
void ToshibaLED_I2C::set_rgb_mode(uint8_t mode) |
|
|
|