8 namespace waveshare_epaper {
11 public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
12 spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ> {
21 void data(uint8_t value);
113 switch (this->model_) {
136 void set_full_update_every(uint32_t full_update_every);
139 void write_lut_(
const uint8_t *lut, uint8_t size);
141 void init_display_();
149 uint32_t full_update_every_{30};
150 uint32_t at_update_{0};
154 bool deep_sleep_between_updates_{
false};
278 static const uint8_t CMD_DTM1_DATA_START_TRANS = 0x10;
279 static const uint8_t CMD_DTM2_DATA_START_TRANS2 = 0x13;
280 static const uint8_t CMD_DISPLAY_REFRESH = 0x12;
281 static const uint8_t CMD_AUTO_SEQ = 0x17;
282 static const uint8_t DATA_AUTO_PON_DSR_POF_DSLP = 0xA7;
283 static const uint8_t CMD_PSR_PANEL_SETTING = 0x00;
284 static const uint8_t CMD_UNDOCUMENTED_0x4D = 0x4D;
285 static const uint8_t CMD_UNDOCUMENTED_0xAA = 0xaa;
286 static const uint8_t CMD_UNDOCUMENTED_0xE9 = 0xe9;
287 static const uint8_t CMD_UNDOCUMENTED_0xB6 = 0xb6;
288 static const uint8_t CMD_UNDOCUMENTED_0xF3 = 0xf3;
289 static const uint8_t CMD_TRES_RESOLUTION_SETTING = 0x61;
290 static const uint8_t CMD_TCON_TCONSETTING = 0x60;
291 static const uint8_t CMD_CDI_VCOM_DATA_INTERVAL = 0x50;
292 static const uint8_t CMD_POF_POWER_OFF = 0x02;
293 static const uint8_t CMD_DSLP_DEEP_SLEEP = 0x07;
294 static const uint8_t DATA_DSLP_DEEP_SLEEP = 0xA5;
295 static const uint8_t CMD_PWS_POWER_SAVING = 0xe3;
296 static const uint8_t CMD_PON_POWER_ON = 0x04;
297 static const uint8_t CMD_PTL_PARTIAL_WINDOW = 0x90;
299 uint8_t *lastbuff_ =
nullptr;
302 void write_init_list_(
const uint8_t *list);
358 void set_full_update_every(uint32_t full_update_every);
361 void write_lut_(
const uint8_t *lut, uint8_t size);
369 uint32_t full_update_every_{30};
370 uint32_t at_update_{0};
594 void init_display_();
701 void set_full_update_every(uint32_t full_update_every);
710 uint32_t full_update_every_{30};
711 uint32_t at_update_{0};
727 void set_full_update_every(uint32_t full_update_every);
729 void setup()
override;
737 void write_buffer_(uint8_t
cmd,
int top,
int bottom);
738 void set_window_(
int t,
int b);
740 void partial_update_();
743 uint32_t full_update_every_{30};
744 uint32_t at_update_{0};
745 bool is_busy_{
false};
746 void write_lut_(
const uint8_t *lut);
virtual void digital_write(bool value)=0
void set_reset_duration(uint32_t reset_duration)
void on_safe_shutdown() override
void deep_sleep() override
virtual void draw_absolute_pixel_internal(int x, int y, Color color)=0
void deep_sleep() override
float get_setup_priority() const override
virtual void initialize()=0
void deep_sleep() override
void deep_sleep() override
void deep_sleep() override
void deep_sleep() override
void deep_sleep() override
void set_reset_pin(GPIOPin *reset)
display::DisplayType get_display_type() override
void deep_sleep() override
virtual void fill(Color color)
Fill the entire screen with the given color.
virtual void dump_config()
virtual int get_width_controller()
void deep_sleep() override
WaveshareEPaperTypeBModel
void init_internal_(uint32_t buffer_length)
void deep_sleep() override
The SPIDevice is what components using the SPI will create.
virtual int get_height_internal()=0
WaveshareEPaperTypeAModel model_
void set_dc_pin(GPIOPin *dc_pin)
void deep_sleep() override
virtual uint32_t get_buffer_length_()=0
WaveshareEPaperTypeAModel
virtual int get_width_internal()=0
void deep_sleep() override
void deep_sleep() override
void deep_sleep() override
void deep_sleep() override
virtual void deep_sleep()=0
void deep_sleep() override
virtual uint32_t idle_timeout_()
display::DisplayType get_display_type() override
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
void command(uint8_t value)
void deep_sleep() override
void deep_sleep() override
void deep_sleep() override
void set_busy_pin(GPIOPin *busy)
void deep_sleep() override
void cmd_data(const uint8_t *data, size_t length)
void IRAM_ATTR HOT delay(uint32_t ms)