|
|
|
|
@ -13,25 +13,57 @@ enum state{ Off, Auto, On };
|
|
|
|
|
|
|
|
|
|
class ShowcaseComponent : public i2c::I2CDevice, public Component {
|
|
|
|
|
public:
|
|
|
|
|
state s;
|
|
|
|
|
|
|
|
|
|
void setup() override;
|
|
|
|
|
void loop() override;
|
|
|
|
|
void dump_config() override;
|
|
|
|
|
|
|
|
|
|
void set_upper(output::FloatOutput *upper) {this->upper_ = upper;}
|
|
|
|
|
void set_lower(output::FloatOutput *lower) {this->lower_ = lower;}
|
|
|
|
|
/* void set_upper(monochromatic::MonochromaticLightOutput *upper) {this->upper_ = upper;} */
|
|
|
|
|
/* void set_lower(monochromatic::MonochromaticLightOutput *lower) {this->lower_ = lower;} */
|
|
|
|
|
|
|
|
|
|
void write_state(state s){
|
|
|
|
|
switch(s) {
|
|
|
|
|
On:
|
|
|
|
|
this->set_level(this->b_upper_, this->b_lower_);
|
|
|
|
|
break;
|
|
|
|
|
Off:
|
|
|
|
|
this->upper_->set_level(0.0);
|
|
|
|
|
this->lower_->set_level(0.0);
|
|
|
|
|
break;
|
|
|
|
|
Auto:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void set_level(float bright){
|
|
|
|
|
this->set_level(bright, bright);
|
|
|
|
|
/* this->upper_->write_state(upper); */
|
|
|
|
|
/* this->lower_->write_state(lower); */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void write_state(float upper, float lower){
|
|
|
|
|
this->upper_->set_level(upper);
|
|
|
|
|
this->lower_->set_level(lower);
|
|
|
|
|
void set_level(float upper, float lower){
|
|
|
|
|
this->set_level_upper(upper);
|
|
|
|
|
this->set_level_lower(lower);
|
|
|
|
|
/* this->upper_->write_state(upper); */
|
|
|
|
|
/* this->lower_->write_state(lower); */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void set_level_upper(float bright){
|
|
|
|
|
this->b_upper_ = bright;
|
|
|
|
|
this->upper_->set_level(bright);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void set_level_lower(float bright){
|
|
|
|
|
this->b_lower_ = bright;
|
|
|
|
|
this->lower_->set_level(bright);
|
|
|
|
|
}
|
|
|
|
|
protected:
|
|
|
|
|
output::FloatOutput *upper_;
|
|
|
|
|
output::FloatOutput *lower_;
|
|
|
|
|
state s_;
|
|
|
|
|
float b_upper_ = 1.0;
|
|
|
|
|
float b_lower_ = 1.0;
|
|
|
|
|
/* monochromatic::MonochromaticLightOutput *upper_; */
|
|
|
|
|
/* monochromatic::MonochromaticLightOutput *lower_; */
|
|
|
|
|
};
|
|
|
|
|
|