[max6921] fix code codebase standards issues

This commit is contained in:
endym 2024-09-27 16:24:28 +02:00
parent 429beca84a
commit d429c3d694
3 changed files with 34 additions and 39 deletions

View file

@ -130,7 +130,7 @@ void Display::setup(std::vector<uint8_t> &seg_to_out_map, std::vector<uint8_t> &
ESP_LOGCONFIG(TAG, "Display digits: %u", this->num_digits_); ESP_LOGCONFIG(TAG, "Display digits: %u", this->num_digits_);
// setup font... // setup font...
init_font_(); this->init_font_();
// display output buffer... // display output buffer...
this->out_buf_size_ = this->num_digits_ * 3; this->out_buf_size_ = this->num_digits_ * 3;
@ -317,17 +317,17 @@ void Display::update() {
if ((this->mode != DISP_MODE_PRINT) && (this->disp_text_.effect != TEXT_EFFECT_NONE)) { // any effect enabled? if ((this->mode != DISP_MODE_PRINT) && (this->disp_text_.effect != TEXT_EFFECT_NONE)) { // any effect enabled?
switch (this->disp_text_.effect) { switch (this->disp_text_.effect) {
case TEXT_EFFECT_BLINK: case TEXT_EFFECT_BLINK:
update_out_buf_(); this->update_out_buf_();
if (this->disp_text_.blink()) if (this->disp_text_.blink())
set_mode(DISP_MODE_PRINT); this->set_mode(DISP_MODE_PRINT);
break; break;
case TEXT_EFFECT_SCROLL_LEFT: case TEXT_EFFECT_SCROLL_LEFT:
update_out_buf_(); this->update_out_buf_();
if (this->disp_text_.scroll_left()) if (this->disp_text_.scroll_left())
set_mode(DISP_MODE_PRINT); this->set_mode(DISP_MODE_PRINT);
break; break;
default: default:
set_mode(DISP_MODE_PRINT); this->set_mode(DISP_MODE_PRINT);
break; break;
} }
} }
@ -336,7 +336,7 @@ void Display::update() {
if ((this->mode != DISP_MODE_PRINT) && (this->disp_text_.duration_ms > 0)) { if ((this->mode != DISP_MODE_PRINT) && (this->disp_text_.duration_ms > 0)) {
if ((millis() - this->disp_text_.get_duration_start()) >= this->disp_text_.duration_ms) { if ((millis() - this->disp_text_.get_duration_start()) >= this->disp_text_.duration_ms) {
ESP_LOGD(TAG, "Effect duration of %" PRIu32 "ms expired", this->disp_text_.duration_ms); ESP_LOGD(TAG, "Effect duration of %" PRIu32 "ms expired", this->disp_text_.duration_ms);
set_mode(DISP_MODE_PRINT); this->set_mode(DISP_MODE_PRINT);
} }
} }
@ -346,7 +346,7 @@ void Display::update() {
if (disp_text_other.repeat_on) { if (disp_text_other.repeat_on) {
if ((millis() - disp_text_other.get_repeat_start()) >= disp_text_other.repeat_interval_ms) { if ((millis() - disp_text_other.get_repeat_start()) >= disp_text_other.repeat_interval_ms) {
ESP_LOGD(TAG, "Repeat interval of %" PRIu32 "ms expired", disp_text_other.repeat_interval_ms); ESP_LOGD(TAG, "Repeat interval of %" PRIu32 "ms expired", disp_text_other.repeat_interval_ms);
set_mode(DISP_MODE_OTHER); this->set_mode(DISP_MODE_OTHER);
} }
} }
} }
@ -375,10 +375,10 @@ void Display::set_demo_mode(DemoModeT mode, uint32_t interval, uint8_t cycle_num
disp_text.set_text_effect(TEXT_EFFECT_SCROLL_LEFT, cycle_num, interval); disp_text.set_text_effect(TEXT_EFFECT_SCROLL_LEFT, cycle_num, interval);
disp_text.set_duration(0); disp_text.set_duration(0);
disp_text.set_repeats(0, 0); disp_text.set_repeats(0, 0);
set_mode(DISP_MODE_OTHER); this->set_mode(DISP_MODE_OTHER);
break; break;
default: default:
set_mode(DISP_MODE_PRINT); this->set_mode(DISP_MODE_PRINT);
break; break;
} }
} }
@ -405,8 +405,8 @@ DisplayModeT Display::set_mode(DisplayModeT mode) {
switch (this->mode) { switch (this->mode) {
case DISP_MODE_PRINT: { case DISP_MODE_PRINT: {
clear(); // clear display buffer this->clear(); // clear display buffer
restore_update_interval(); this->restore_update_interval();
// handle repeats of "other" mode... // handle repeats of "other" mode...
DisplayText &disp_text_other = this->disp_text_ctrl_[DISP_MODE_OTHER]; DisplayText &disp_text_other = this->disp_text_ctrl_[DISP_MODE_OTHER];
if (disp_text_other.repeat_on) { if (disp_text_other.repeat_on) {
@ -427,11 +427,11 @@ DisplayModeT Display::set_mode(DisplayModeT mode) {
} }
case DISP_MODE_OTHER: { case DISP_MODE_OTHER: {
clear(); // clear display buffer this->clear(); // clear display buffer
if (this->disp_text_.effect == TEXT_EFFECT_NONE) { if (this->disp_text_.effect == TEXT_EFFECT_NONE) {
update_out_buf_(); // show static text again this->update_out_buf_(); // show static text again
} else { } else {
set_update_interval(this->disp_text_.update_interval_ms); this->set_update_interval(this->disp_text_.update_interval_ms);
} }
this->disp_text_.start_duration(); this->disp_text_.start_duration();
break; break;
@ -499,7 +499,7 @@ int Display::set_text(const std::string &text, uint8_t start_pos, const std::str
disp_text.set_repeats(repeat_num, repeat_interval); disp_text.set_repeats(repeat_num, repeat_interval);
// update display mode... // update display mode...
set_mode(DISP_MODE_OTHER); this->set_mode(DISP_MODE_OTHER);
ESP_LOGV(TAG, ESP_LOGV(TAG,
"Set text (result): text=%s, start-pos=%u, vi-idx=%u, vi-len=%u, " "Set text (result): text=%s, start-pos=%u, vi-idx=%u, vi-len=%u, "
@ -507,7 +507,7 @@ int Display::set_text(const std::string &text, uint8_t start_pos, const std::str
disp_text.text, disp_text.start_pos, disp_text.visible_idx, disp_text.visible_len, disp_text.duration_ms, disp_text.text, disp_text.start_pos, disp_text.visible_idx, disp_text.visible_len, disp_text.duration_ms,
disp_text.repeat_on, disp_text.repeat_num, disp_text.repeat_interval_ms); disp_text.repeat_on, disp_text.repeat_num, disp_text.repeat_interval_ms);
return update_out_buf_(); return this->update_out_buf_();
} }
/** /**
@ -530,7 +530,7 @@ int Display::set_text(const char *text, uint8_t start_pos) {
std::string text_str = text; std::string text_str = text;
disp_text.set_text(start_pos, this->num_digits_ - 1, text_str); disp_text.set_text(start_pos, this->num_digits_ - 1, text_str);
return update_out_buf_(); return this->update_out_buf_();
} }
/** /**
@ -561,9 +561,9 @@ int Display::update_out_buf_() {
// special handling for point segment... // special handling for point segment...
is_process_next_char = false; is_process_next_char = false;
if (is_point_seg_only(pos_char)) { // is point segment only? if (this->is_point_seg_only(pos_char)) { // is point segment only?
if (this->disp_text_.visible_idx + visible_idx_offset - 1 > 0) { // not the 1st text character? if (this->disp_text_.visible_idx + visible_idx_offset - 1 > 0) { // not the 1st text character?
if (!is_point_seg_only(this->disp_text_.text[this->disp_text_.visible_idx + visible_idx_offset - if (!this->is_point_seg_only(this->disp_text_.text[this->disp_text_.visible_idx + visible_idx_offset -
2])) { // previous text character wasn't a point? 2])) { // previous text character wasn't a point?
if (pos == 0) { // 1st (most left) display position? if (pos == 0) { // 1st (most left) display position?
is_process_next_char = true; // yes -> ignore point, process next character is_process_next_char = true; // yes -> ignore point, process next character
@ -578,7 +578,7 @@ int Display::update_out_buf_() {
} }
} while (is_process_next_char); } while (is_process_next_char);
if (is_clear_pos) if (is_clear_pos)
clear(pos); this->clear(pos);
// create segment data... // create segment data...
if ((pos_char >= ' ') && ((pos_char - ' ') < ARRAY_ELEM_COUNT(ASCII_TO_SEG))) { // supported char? if ((pos_char >= ' ') && ((pos_char - ' ') < ARRAY_ELEM_COUNT(ASCII_TO_SEG))) { // supported char?
@ -773,7 +773,7 @@ void DisplayText::set_text_align(TextAlignT align) {
return; return;
} }
this->align = align; this->align = align;
init_text_align_(); this->init_text_align_();
ESP_LOGD(TAG, "Set text align: align=%i, start-pos=%u, max-pos=%u, vi-idx=%u, vi-len=%u", this->align, ESP_LOGD(TAG, "Set text align: align=%i, start-pos=%u, max-pos=%u, vi-idx=%u, vi-len=%u", this->align,
this->start_pos, this->max_pos, this->visible_idx, this->visible_len); this->start_pos, this->max_pos, this->visible_idx, this->visible_len);
} }
@ -800,7 +800,7 @@ void DisplayText::set_text_align(const std::string &align) {
ESP_LOGW(TAG, "No text align given"); ESP_LOGW(TAG, "No text align given");
if (text_align >= TEXT_ALIGN_LAST_ENUM) if (text_align >= TEXT_ALIGN_LAST_ENUM)
return; return;
set_text_align(text_align); this->set_text_align(text_align);
} }
/** /**
@ -827,7 +827,7 @@ void DisplayText::set_text_effect(TextEffectT effect, uint8_t cycle_num, uint32_
default: default:
break; break;
} }
init_text_effect_(); this->init_text_effect_();
ESP_LOGD(TAG, ESP_LOGD(TAG,
"Set text effect: effect=%i, cycles=%u, upd-interval=%" PRIu32 "ms, start-pos=%u, " "Set text effect: effect=%i, cycles=%u, upd-interval=%" PRIu32 "ms, start-pos=%u, "
"max-pos=%u, vi-idx=%u, vi-len=%u", "max-pos=%u, vi-idx=%u, vi-len=%u",
@ -859,7 +859,7 @@ void DisplayText::set_text_effect(const std::string &effect, uint8_t cycle_num,
ESP_LOGW(TAG, "No text effect given"); ESP_LOGW(TAG, "No text effect given");
if (text_effect >= TEXT_EFFECT_LAST_ENUM) if (text_effect >= TEXT_EFFECT_LAST_ENUM)
return; return;
set_text_effect(text_effect, cycle_num, update_interval); this->set_text_effect(text_effect, cycle_num, update_interval);
} }
/** /**
@ -884,7 +884,7 @@ bool DisplayText::blink() {
ESP_LOGV(TAG, "\"Off\" phase of blink cycle started (%u cycles left)", this->cycle_num - this->cycle_current); ESP_LOGV(TAG, "\"Off\" phase of blink cycle started (%u cycles left)", this->cycle_num - this->cycle_current);
if ((this->cycle_num == 0) || // endless cycles or if ((this->cycle_num == 0) || // endless cycles or
(this->cycle_current < this->cycle_num)) { // number of cycles not finished? (this->cycle_current < this->cycle_num)) { // number of cycles not finished?
init_text_effect_(); // next display buffer update starts "on" phase this->init_text_effect_(); // next display buffer update starts "on" phase
} }
if (this->cycle_num > 0) // defined number of cycles? if (this->cycle_num > 0) // defined number of cycles?
++this->cycle_current; // yes -> increase current cycle count ++this->cycle_current; // yes -> increase current cycle count
@ -908,7 +908,7 @@ bool DisplayText::scroll_left() {
// update effect mode... // update effect mode...
if (this->visible_len == 0) { // cycle finished? if (this->visible_len == 0) { // cycle finished?
init_text_effect_(); this->init_text_effect_();
if (this->cycle_current <= this->cycle_num) { if (this->cycle_current <= this->cycle_num) {
ESP_LOGV(TAG, "Scroll cycle finished (%u left)", this->cycle_num - this->cycle_current); ESP_LOGV(TAG, "Scroll cycle finished (%u left)", this->cycle_num - this->cycle_current);
if (this->cycle_current++ >= this->cycle_num) { if (this->cycle_current++ >= this->cycle_num) {

View file

@ -131,10 +131,8 @@ class Display : public DisplayBrightness, public DisplayMode {
DisplayText &disp_text_ = disp_text_ctrl_[0]; DisplayText &disp_text_ = disp_text_ctrl_[0];
uint32_t default_update_interval_; uint32_t default_update_interval_;
static void display_refresh_task(void *pv); static void display_refresh_task(void *pv);
int update_out_buf_();
private:
void init_font_(); void init_font_();
int update_out_buf_();
}; };
} // namespace max6921 } // namespace max6921

View file

@ -40,19 +40,16 @@ class MAX6921Component : public PollingComponent,
void update() override; void update() override;
protected: protected:
GPIOPin *load_pin_{};
InternalGPIOPin *blank_pin_{}; InternalGPIOPin *blank_pin_{};
GPIOPin *load_pin_{};
std::vector<uint8_t> pos_to_out_map_; // mapping of display positions to MAX6921 OUT pins
std::vector<uint8_t> seg_to_out_map_; // mapping of display segments to MAX6921 OUT pins
bool setup_finished_{false}; bool setup_finished_{false};
void disable_blank_() { this->blank_pin_->digital_write(false); } // display on void disable_blank_() { this->blank_pin_->digital_write(false); } // display on
void IRAM_ATTR HOT disable_load_() { this->load_pin_->digital_write(false); } void IRAM_ATTR HOT disable_load_() { this->load_pin_->digital_write(false); }
void enable_blank_() { this->blank_pin_->digital_write(true); } // display off void enable_blank_() { this->blank_pin_->digital_write(true); } // display off
void IRAM_ATTR HOT enable_load_() { this->load_pin_->digital_write(true); } void IRAM_ATTR HOT enable_load_() { this->load_pin_->digital_write(true); }
void update_demo_mode_scroll_font_();
optional<max6921_writer_t> writer_{}; optional<max6921_writer_t> writer_{};
private:
std::vector<uint8_t> seg_to_out_map_; // mapping of display segments to MAX6921 OUT pins
std::vector<uint8_t> pos_to_out_map_; // mapping of display positions to MAX6921 OUT pins
}; };
} // namespace max6921 } // namespace max6921