8static constexpr const char *
const TAG =
"epaper_spi.mono";
11 ESP_LOGV(TAG,
"Refresh screen");
12 this->
cmd_data(0x3C, {partial ? (uint8_t) 0x80 : (uint8_t) 0x01});
14 this->
cmd_data(0x21, {partial ? (uint8_t) 0x80 : (uint8_t) 0x40, (uint8_t) 0x00});
18 this->
cmd_data(0x22, {partial ? (uint8_t) 0xFC : (uint8_t) 0xF7});
26 ESP_LOGV(TAG,
"Deep sleep mode 1");
29 ESP_LOGV(TAG,
"Deep sleep mode 2");
51 (uint8_t) ((this->
y_high_ - 1) / 256)});
57 auto start_time =
millis();
70 bytes_to_send.
init(row_length);
75 for (
size_t i = 0; i != row_length; i++) {
76 bytes_to_send[i] = this->
buffer_[data_idx++];
79 this->
write_array(&bytes_to_send.front(), row_length);
80 if (
millis() - start_time > MAX_TRANSFER_TIME) {
Fixed-capacity vector - allocates once at runtime, never reallocates This avoids std::vector template...
void command(uint8_t value)
bool is_using_partial_update_() const
split_buffer::SplitBuffer buffer_
void cmd_data(uint8_t command, const uint8_t *ptr, size_t length)
size_t current_data_index_
void deep_sleep() override
bool transfer_data() override
void set_window() override
void refresh_screen(bool partial) override
void write_array(const uint8_t *data, size_t length)
uint32_t IRAM_ATTR HOT millis()