|
ESPHome 2026.11.0-dev
|
Four-level grayscale for SSD1677 panels. More...
#include <epaper_spi_ssd1677_gray4.h>
Public Member Functions | |
| EPaperSSD1677Gray4 (const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence, size_t init_sequence_length) | |
| void | fill (Color color) override |
| void | draw_pixel_at (int x, int y, Color color) override |
Public Member Functions inherited from esphome::epaper_spi::EPaperSSD1677 | |
| EPaperSSD1677 (const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence, size_t init_sequence_length, DisplayType display_type=DISPLAY_TYPE_BINARY, uint8_t bits_per_pixel=1) | |
| void | setup () override |
Public Member Functions inherited from esphome::epaper_spi::EPaperMono | |
| EPaperMono (const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence, size_t init_sequence_length, DisplayType display_type=DISPLAY_TYPE_BINARY, uint8_t bits_per_pixel=1) | |
Public Member Functions inherited from esphome::epaper_spi::EPaperBase | |
| EPaperBase (const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence=nullptr, size_t init_sequence_length=0, DisplayType display_type=DISPLAY_TYPE_BINARY, uint8_t bits_per_pixel=1, uint8_t planes=1) | |
| void | set_dc_pin (GPIOPin *dc_pin) |
| float | get_setup_priority () const override |
| void | set_reset_pin (GPIOPin *reset) |
| void | set_busy_pin (GPIOPin *busy) |
| void | set_enable_pins (std::vector< GPIOPin * > enable_pins) |
| void | set_reset_duration (uint32_t reset_duration) |
| void | set_transform (uint8_t transform) |
| void | set_rotation (DisplayRotation rotation) override |
| void | set_full_update_every (uint8_t full_update_every) |
| void | dump_config () override |
| void | command (uint8_t value) |
| void | cmd_data (uint8_t command, const uint8_t *ptr, size_t length) |
| void | cmd_data (uint8_t command, std::initializer_list< uint8_t > data) |
| void | update () override |
| void | loop () override |
| Called during the loop task. | |
| void | on_safe_shutdown () override |
| DisplayType | get_display_type () override |
| void | clear () override |
| int | get_width () override |
| int | get_height () override |
| bool | pixel_axes_swapped () const override |
| void | request_full_update () |
| bool | is_updating () const |
Public Member Functions inherited from esphome::display::Display | |
| int | get_native_width () |
| Get the native (original) width of the display in pixels. | |
| int | get_native_height () |
| Get the native (original) height of the display in pixels. | |
| void | draw_pixel_at (int x, int y) |
| Set a single pixel at the specified coordinates to default color. | |
| void | draw_pixels_at (int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad) |
| Given an array of pixels encoded in the nominated format, draw these into the display's buffer. | |
| void | draw_pixels_at (int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian) |
| Convenience overload for base case where the pixels are packed into the buffer with no gaps (e.g. suits LVGL.) | |
| ESPDEPRECATED ("Pixels are always RGB: call draw_pixels_at() without the ColorOrder, and override draw_pixels_internal() " "to copy blocks. Removed in 2027.5.0", "2026.11.0") virtual void draw_pixels_at(int x_start | |
| The block form above with a color order. | |
| ESPDEPRECATED ("Pixels are always RGB, drop the ColorOrder argument. Removed in 2027.5.0", "2026.11.0") void draw_pixels_at(int x_start | |
| void | line (int x1, int y1, int x2, int y2, Color color=COLOR_ON) |
| Draw a straight line from the point [x1,y1] to [x2,y2] with the given color. | |
| void | line_at_angle (int x, int y, int angle, int length, Color color=COLOR_ON) |
| Draw a straight line at the given angle based on the origin [x, y] for a specified length with the given color. | |
| void | line_at_angle (int x, int y, int angle, int start_radius, int stop_radius, Color color=COLOR_ON) |
| Draw a straight line at the given angle based on the origin [x, y] from a specified start and stop radius with the given color. | |
| void | horizontal_line (int x, int y, int width, Color color=COLOR_ON) |
| Draw a horizontal line from the point [x,y] to [x+width,y] with the given color. | |
| void | vertical_line (int x, int y, int height, Color color=COLOR_ON) |
| Draw a vertical line from the point [x,y] to [x,y+width] with the given color. | |
| void | rectangle (int x1, int y1, int width, int height, Color color=COLOR_ON) |
| Draw the outline of a rectangle with the top left point at [x1,y1] and the bottom right point at [x1+width,y1+height]. | |
| void | filled_rectangle (int x1, int y1, int width, int height, Color color=COLOR_ON) |
| Fill a rectangle with the top left point at [x1,y1] and the bottom right point at [x1+width,y1+height]. | |
| void | circle (int center_x, int center_xy, int radius, Color color=COLOR_ON) |
| Draw the outline of a circle centered around [center_x,center_y] with the radius radius with the given color. | |
| void | filled_circle (int center_x, int center_y, int radius, Color color=COLOR_ON) |
| Fill a circle centered around [center_x,center_y] with the radius radius with the given color. | |
| void | filled_ring (int center_x, int center_y, int radius1, int radius2, Color color=COLOR_ON) |
| Fill a ring centered around [center_x,center_y] between two circles with the radius1 and radius2 with the given color. | |
| void | filled_gauge (int center_x, int center_y, int radius1, int radius2, int progress, Color color=COLOR_ON) |
| Fill a half-ring "gauge" centered around [center_x,center_y] between two circles with the radius1 and radius2 with he given color and filled up to 'progress' percent. | |
| void | triangle (int x1, int y1, int x2, int y2, int x3, int y3, Color color=COLOR_ON) |
| Draw the outline of a triangle contained between the points [x1,y1], [x2,y2] and [x3,y3] with the given color. | |
| void | filled_triangle (int x1, int y1, int x2, int y2, int x3, int y3, Color color=COLOR_ON) |
| Fill a triangle contained between the points [x1,y1], [x2,y2] and [x3,y3] with the given color. | |
| void | get_regular_polygon_vertex (int vertex_id, int *vertex_x, int *vertex_y, int center_x, int center_y, int radius, int edges, RegularPolygonVariation variation=VARIATION_POINTY_TOP, float rotation_degrees=ROTATION_0_DEGREES) |
| Get the specified vertex (x,y) coordinates for the regular polygon inscribed in the circle centered on [center_x,center_y] with the given radius. | |
| void | regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation=VARIATION_POINTY_TOP, float rotation_degrees=ROTATION_0_DEGREES, Color color=COLOR_ON, RegularPolygonDrawing drawing=DRAWING_OUTLINE) |
| Draw the outline of a regular polygon inscribed in the circle centered on [x,y] with the given radius and color. | |
| void | regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation, Color color, RegularPolygonDrawing drawing=DRAWING_OUTLINE) |
| void | regular_polygon (int x, int y, int radius, int edges, Color color, RegularPolygonDrawing drawing=DRAWING_OUTLINE) |
| void | filled_regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation=VARIATION_POINTY_TOP, float rotation_degrees=ROTATION_0_DEGREES, Color color=COLOR_ON) |
| Fill a regular polygon inscribed in the circle centered on [x,y] with the given radius and color. | |
| void | filled_regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation, Color color) |
| void | filled_regular_polygon (int x, int y, int radius, int edges, Color color) |
| void | print (int x, int y, BaseFont *font, Color color, TextAlign align, const char *text, Color background=COLOR_OFF) |
Print text with the anchor point at [x,y] with font. | |
| void | print (int x, int y, BaseFont *font, Color color, const char *text, Color background=COLOR_OFF) |
Print text with the top left at [x,y] with font. | |
| void | print (int x, int y, BaseFont *font, TextAlign align, const char *text) |
Print text with the anchor point at [x,y] with font. | |
| void | print (int x, int y, BaseFont *font, const char *text) |
Print text with the top left at [x,y] with font. | |
| void | printf (int x, int y, BaseFont *font, Color color, Color background, TextAlign align, const char *format,...) __attribute__((format(printf |
Evaluate the printf-format format and print the result with the anchor point at [x,y] with font. | |
| void void | printf (int x, int y, BaseFont *font, Color color, TextAlign align, const char *format,...) __attribute__((format(printf |
Evaluate the printf-format format and print the result with the anchor point at [x,y] with font. | |
| void void void | printf (int x, int y, BaseFont *font, Color color, const char *format,...) __attribute__((format(printf |
Evaluate the printf-format format and print the result with the top left at [x,y] with font. | |
| void void void void | printf (int x, int y, BaseFont *font, TextAlign align, const char *format,...) __attribute__((format(printf |
Evaluate the printf-format format and print the result with the anchor point at [x,y] with font. | |
| void void void void void | printf (int x, int y, BaseFont *font, const char *format,...) __attribute__((format(printf |
Evaluate the printf-format format and print the result with the top left at [x,y] with font. | |
| void void void void void void | strftime (int x, int y, BaseFont *font, Color color, Color background, TextAlign align, const char *format, ESPTime time) __attribute__((format(strftime |
Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font. | |
| void void void void void void void | strftime (int x, int y, BaseFont *font, Color color, TextAlign align, const char *format, ESPTime time) __attribute__((format(strftime |
Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font. | |
| void void void void void void void void | strftime (int x, int y, BaseFont *font, Color color, const char *format, ESPTime time) __attribute__((format(strftime |
Evaluate the strftime-format format and print the result with the top left at [x,y] with font. | |
| void void void void void void void void void | strftime (int x, int y, BaseFont *font, TextAlign align, const char *format, ESPTime time) __attribute__((format(strftime |
Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font. | |
| void void void void void void void void void void | strftime (int x, int y, BaseFont *font, const char *format, ESPTime time) __attribute__((format(strftime |
Evaluate the strftime-format format and print the result with the top left at [x,y] with font. | |
| void void void void void void void void void void void | image (int x, int y, BaseImage *image, Color color_on=COLOR_ON, Color color_off=COLOR_OFF) |
Draw the image with the top-left corner at [x,y] to the screen. | |
| void | image (int x, int y, BaseImage *image, ImageAlign align, Color color_on=COLOR_ON, Color color_off=COLOR_OFF) |
Draw the image at [x,y] to the screen. | |
| void | graph (int x, int y, graph::Graph *graph, Color color_on=COLOR_ON) |
Draw the graph with the top-left corner at [x,y] to the screen. | |
| void | legend (int x, int y, graph::Graph *graph, Color color_on=COLOR_ON) |
Draw the legend for graph with the top-left corner at [x,y] to the screen. | |
| void | qr_code (int x, int y, qr_code::QrCode *qr_code, Color color_on=COLOR_ON, int scale=1) |
Draw the qr_code with the top-left corner at [x,y] to the screen. | |
| void | menu (int x, int y, graphical_display_menu::GraphicalDisplayMenu *menu, int width, int height) |
| void | get_text_bounds (int x, int y, const char *text, BaseFont *font, TextAlign align, int *x1, int *y1, int *width, int *height) |
| Get the text bounds of the given string. | |
| void | set_writer (display_writer_t &&writer) |
| Internal method to set the display writer lambda. | |
| void | show_page (DisplayPage *page) |
| void | show_next_page () |
| void | show_prev_page () |
| void | set_pages (std::vector< DisplayPage * > pages) |
| const DisplayPage * | get_active_page () const |
| template<typename F > | |
| void | add_on_page_change_callback (F &&callback) |
| void | set_auto_clear (bool auto_clear_enabled) |
| virtual DisplayRotation | get_rotation () const |
| void | start_clipping (Rect rect) |
| Set the clipping rectangle for further drawing. | |
| void | start_clipping (int16_t left, int16_t top, int16_t right, int16_t bottom) |
| void | extend_clipping (Rect rect) |
| Add a rectangular region to the invalidation region. | |
| void | extend_clipping (int16_t left, int16_t top, int16_t right, int16_t bottom) |
| void | shrink_clipping (Rect rect) |
| substract a rectangular region to the invalidation region | |
| void | shrink_clipping (uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) |
| void | end_clipping () |
| Reset the invalidation region. | |
| Rect | get_clipping () const |
| Get the current the clipping rectangle. | |
| bool | is_clipping () const |
| bool ESPHOME_ALWAYS_INLINE | is_point_clipped (int x, int y) const |
| Whether (x, y) falls outside the active clipping rectangle. | |
| bool | clip (int x, int y) |
| Check if pixel is within region of display. | |
| void | test_card () |
| void | show_test_card () |
Public Member Functions inherited from esphome::PollingComponent | |
| PollingComponent () | |
| PollingComponent (uint32_t update_interval) | |
| Initialize this polling component with the given update interval in ms. | |
| void | set_update_interval (uint32_t update_interval) |
| Manually set the update interval in ms for this polling object. | |
| void | call_setup () override |
| virtual uint32_t | get_update_interval () const |
| Get the update interval in ms of this sensor. | |
| void | start_poller () |
| void | stop_poller () |
Public Member Functions inherited from esphome::Component | |
| float | get_actual_setup_priority () const |
| void | set_setup_priority (float priority) |
| void | call () |
| virtual void | on_shutdown () |
| virtual bool | teardown () |
| Called during teardown to allow component to gracefully finish operations. | |
| virtual void | on_powerdown () |
| Called after teardown is complete to power down hardware. | |
| uint8_t | get_component_state () const |
| void | reset_to_construction_state () |
| Reset this component back to the construction state to allow setup to run again. | |
| bool | is_in_loop_state () const |
| Check if this component has completed setup and is in the loop state. | |
| bool | is_idle () const |
| Check if this component is idle. | |
| void | mark_failed () |
| Mark this component as failed. | |
| void | mark_failed (const LogString *message) |
| void | disable_loop () |
| Disable this component's loop. | |
| void | enable_loop () |
| Enable this component's loop. | |
| void | enable_loop_soon_any_context () |
| Thread and ISR-safe version of enable_loop() that can be called from any context. | |
| bool | is_failed () const |
| bool | is_ready () const |
| virtual bool | can_proceed () |
| bool | status_has_warning () const |
| bool | status_has_error () const |
| void | status_set_warning () |
| void | status_set_warning (const char *message) |
| void | status_set_warning (const LogString *message) |
| void | status_set_error () |
| void | status_set_error (const LogString *message) |
| void | status_clear_warning () |
| void | status_clear_error () |
| ESPDEPRECATED ("Use status_momentary_warning() without a name. Removed in 2027.5.0", "2026.11.0") void status_momentary_warning(const char *name | |
| void | status_momentary_warning (uint32_t length=5000) |
Set warning status flag and clear it after length ms. | |
| void | status_momentary_warning (const LogString *message, uint32_t length=5000) |
| ESPDEPRECATED ("Use status_momentary_error() without a name. Removed in 2027.5.0", "2026.11.0") void status_momentary_error(const char *name | |
| void | status_momentary_error (uint32_t length=5000) |
Set error status flag and clear it after length ms. | |
| void | status_momentary_error (const LogString *message, uint32_t length=5000) |
| bool | has_overridden_loop () const |
| const LogString * | get_component_log_str () const ESPHOME_ALWAYS_INLINE |
| Get the integration where this component was declared as a LogString for logging. | |
| bool | should_warn_of_blocking (uint32_t blocking_time, uint32_t &threshold_ms_out) |
Public Member Functions inherited from esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ > | |
| SPIDevice () | |
| SPIDevice (SPIComponent *parent, GPIOPin *cs_pin) | |
| void | spi_setup () override |
| void | spi_teardown () override |
| void | set_spi_parent (SPIComponent *parent) |
| void | set_cs_pin (GPIOPin *cs) |
| void | set_data_rate (uint32_t data_rate) |
| void | set_bit_order (SPIBitOrder order) |
| void | set_mode (SPIMode mode) |
| uint8_t | read_byte () |
| void | read_array (uint8_t *data, size_t length) |
| void | write (uint16_t data, size_t num_bits) |
| Write a single data item, up to 32 bits. | |
| void | write_cmd_addr_data (size_t cmd_bits, uint32_t cmd, size_t addr_bits, uint32_t address, const uint8_t *data, size_t length, uint8_t bus_width=1) |
| void | write_byte (uint8_t data) |
| void | transfer_array (uint8_t *data, size_t length) |
| Write the array data, replace with received data. | |
| void | transfer_array (std::array< uint8_t, N > &data) |
| uint8_t | transfer_byte (uint8_t data) |
| void | write_byte16 (uint16_t data) |
| Write 16 bit data. | |
| void | write_array16 (const uint16_t *data, size_t length) |
| Write an array of data as 16 bit values, byte-swapping if required. | |
| void | enable () |
| void | disable () |
| void | write_array (const uint8_t *data, size_t length) |
| void | write_array (const std::array< uint8_t, N > &data) |
| void | write_array (const std::vector< uint8_t > &data) |
Public Member Functions inherited from esphome::spi::SPIClient | |
| SPIClient (SPIBitOrder bit_order, SPIMode mode, uint32_t data_rate) | |
| bool | spi_is_ready () |
| void | set_release_device (bool release) |
| void | set_write_only (bool write_only) |
| void | set_psram_dma (bool enable) |
Protected Member Functions | |
| bool | is_partial_push_ () const |
| void | plane_row (size_t y, uint8_t *out) override |
| void | refresh_screen (bool partial) override |
| bool | transfer_data () override |
Protected Member Functions inherited from esphome::epaper_spi::EPaperSSD1677 | |
| void | init_comparison_frame_ () |
| size_t | plane_row_length_ () const |
| bool | reset () override |
Protected Member Functions inherited from esphome::epaper_spi::EPaperMono | |
| void | power_on () override |
| void | power_off () override |
| void | deep_sleep () override |
| virtual void | set_window () |
Protected Member Functions inherited from esphome::epaper_spi::EPaperBase | |
| void | draw_pixels_internal (int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad) override |
| int | get_height_internal () override |
| int | get_width_internal () override |
| bool | is_using_partial_update_ () const |
| void | process_state_ () |
| Process the state machine. | |
| const char * | epaper_state_to_string_ () |
| bool | is_idle_ () const |
| void | setup_pins_ () const |
| virtual bool | initialise (bool partial) |
| void | send_init_sequence_ (const uint8_t *sequence, size_t length) |
| void | wait_for_idle_ (bool should_wait) |
| void | abandon_update_ () |
| bool | init_buffer_ (size_t buffer_length) |
| void | update_effective_transform_ () |
| bool | rotate_coordinates_ (int &x, int &y) |
| Check and rotate coordinates based on the transform flags. | |
| void | draw_rgb565_block_ (uint8_t *buffer, int x_start, int y_start, int w, int h, const uint8_t *ptr, bool big_endian, int x_offset, int y_offset, int x_pad) |
| bool | buffer_is_mono_ () const |
| virtual void | abort_transfer () |
| void | set_state_ (EPaperState state, uint16_t delay=0) |
| void | start_data_ () |
Protected Member Functions inherited from esphome::display::Display | |
| bool | clamp_x_ (int x, int w, int &min_x, int &max_x) |
| bool | clamp_y_ (int y, int h, int &min_y, int &max_y) |
| void | vprintf_ (int x, int y, BaseFont *font, Color color, Color background, TextAlign align, const char *format, va_list arg) |
| void | do_update_ () |
| void | clear_clipping_ () |
| void ESPHOME_ALWAYS_INLINE | feed_wdt_per_pixel_ () |
| Watchdog feed for per pixel loops. | |
| void | feed_wdt_pixel_slow_ () |
| void | filled_flat_side_triangle_ (int x1, int y1, int x2, int y2, int x3, int y3, Color color) |
| This method fills a triangle using only integer variables by using a modified bresenham algorithm. | |
| void | sort_triangle_points_by_y_ (int *x1, int *y1, int *x2, int *y2, int *x3, int *y3) |
Protected Member Functions inherited from esphome::Component | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | set_component_source_ (uint8_t index) |
| Set where this component was loaded from for some debug messages. | |
| void | call_dump_config_ () |
| void | enable_loop_slow_path_ () |
| void | set_component_state_ (uint8_t state) |
| Helper to set component state (clears state bits and sets new state) | |
| bool | set_status_flag_ (uint8_t flag) |
| Helper to set a status LED flag on both this component and the app. | |
| bool | set_error_flag_ (const LogString *message) |
| Set the error flag and log it; true when it was not set before. | |
| void | set_interval (const char *name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a const char* name. | |
| void | set_interval (uint32_t id, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a numeric ID (zero heap allocation). | |
| void | set_interval (InternalSchedulerID id, uint32_t interval, std::function< void()> &&f) |
| void | set_interval (uint32_t interval, std::function< void()> &&f) |
| bool | cancel_interval (const char *name) |
| Cancel an interval function. | |
| bool | cancel_interval (uint32_t id) |
| bool | cancel_interval (InternalSchedulerID id) |
| void | set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a const char* name. | |
| void | set_timeout (uint32_t id, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a numeric ID (zero heap allocation). | |
| void | set_timeout (InternalSchedulerID id, uint32_t timeout, std::function< void()> &&f) |
| void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
| bool | cancel_timeout (const char *name) |
| Cancel a timeout function. | |
| bool | cancel_timeout (uint32_t id) |
| bool | cancel_timeout (InternalSchedulerID id) |
| void | defer (const char *name, std::function< void()> &&f) |
| Defer a callback to the next loop() call with a const char* name. | |
| void | defer (std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| void | defer (uint32_t id, std::function< void()> &&f) |
| Defer a callback with a numeric ID (zero heap allocation) | |
| bool | cancel_defer (const char *name) |
| Cancel a defer callback using the specified name, name must not be empty. | |
| bool | cancel_defer (uint32_t id) |
| void | status_clear_warning_slow_path_ () |
| void | status_clear_error_slow_path_ () |
Additional Inherited Members | |
Data Fields inherited from esphome::display::Display | |
| int | y_start |
| int int | w |
| int int int | h |
| int int int const uint8_t * | ptr |
| int int int const uint8_t ColorOrder | order |
| int int int const uint8_t ColorOrder ColorBitness | bitness |
| int int int const uint8_t ColorOrder ColorBitness bool | big_endian |
| int int int const uint8_t ColorOrder ColorBitness bool int | x_offset |
| int int int const uint8_t ColorOrder ColorBitness bool int int | y_offset |
| int int int const uint8_t ColorOrder ColorBitness bool int int int | x_pad |
Data Fields inherited from esphome::Component | |
| uint32_t | length = 5000) |
Protected Attributes inherited from esphome::epaper_spi::EPaperSSD1677 | |
| split_buffer::SplitBuffer | sent_ {} |
| uint8_t | plane_ {0} |
Protected Attributes inherited from esphome::epaper_spi::EPaperMono | |
| bool | send_red_ {true} |
Protected Attributes inherited from esphome::epaper_spi::EPaperBase | |
| const char * | name_ |
| uint16_t | width_ |
| uint16_t | row_width_ |
| uint16_t | height_ |
| uint8_t | bits_per_pixel_ |
| uint8_t | planes_ |
| const uint8_t * | init_sequence_ |
| size_t | init_sequence_length_ |
| DisplayType | display_type_ |
| size_t | buffer_length_ |
| size_t | current_data_index_ {} |
| split_buffer::SplitBuffer | buffer_ {} |
| GPIOPin * | dc_pin_ {} |
| GPIOPin * | busy_pin_ {} |
| GPIOPin * | reset_pin_ {} |
| std::vector< GPIOPin * > | enable_pins_ {} |
| bool | waiting_for_idle_ {} |
| uint32_t | delay_until_ {} |
| uint16_t | next_delay_ {} |
| uint8_t | transform_ {} |
| uint8_t | effective_transform_ {} |
| uint8_t | update_count_ {} |
| bool | full_update_requested_ {} |
| uint16_t | x_low_ {} |
| uint16_t | y_low_ {} |
| uint16_t | x_high_ {} |
| uint16_t | y_high_ {} |
| uint32_t | waiting_for_idle_start_ {} |
| uint32_t | waiting_for_idle_last_print_ {} |
| uint32_t | update_start_time_ {} |
| uint32_t | reset_duration_ {10} |
| uint16_t | busy_timeout_seconds_ {120} |
| uint8_t | full_update_every_ {1} |
| EPaperState | state_ {EPaperState::IDLE} |
Protected Attributes inherited from esphome::display::Display | |
| DisplayRotation | rotation_ {DISPLAY_ROTATION_0_DEGREES} |
| display_writer_t | writer_ {} |
| DisplayPage * | page_ {nullptr} |
| StaticCallbackManager< DISPLAY_PAGE_CHANGE_CALLBACK_COUNT, void(DisplayPage *, DisplayPage *)> | page_change_callback_ |
| bool | auto_clear_enabled_ {true} |
| std::vector< Rect > | clipping_rectangle_ |
| uint8_t | wdt_pixel_counter_ {0} |
| bool | show_test_card_ {false} |
Protected Attributes inherited from esphome::PollingComponent | |
| uint32_t | update_interval_ |
Protected Attributes inherited from esphome::Component | |
| uint8_t | component_source_index_ {0} |
| Index into component source PROGMEM lookup table (0 = not set) | |
| uint8_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_CS} |
| Warn threshold in centiseconds (max 2550ms) | |
| uint8_t | component_state_ {0x00} |
| State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bit 5: Has overridden loop() (set at registration time) Bits 6-7: Unused - reserved for future expansion. | |
| volatile bool | pending_enable_loop_ {false} |
| ISR-safe flag for enable_loop_soon_any_context. | |
| ComponentRuntimeStats | runtime_stats_ |
Protected Attributes inherited from esphome::spi::SPIClient | |
| SPIBitOrder | bit_order_ {BIT_ORDER_MSB_FIRST} |
| SPIMode | mode_ {MODE0} |
| uint32_t | data_rate_ {1000000} |
| SPIComponent * | parent_ {nullptr} |
| GPIOPin * | cs_ {nullptr} |
| bool | release_device_ {false} |
| bool | write_only_ {false} |
| bool | psram_dma_ {false} |
| SPIDelegate * | delegate_ {SPIDelegate::NULL_DELEGATE} |
Four-level grayscale for SSD1677 panels.
The SSD1677 has two independent 1-bit RAM planes, normally used for a black/white and a red plane. This class writes image data to both, splitting each pixel's 2-bit gray level across them, and triggers the panel's own OTP grayscale waveform instead of the normal monochrome update sequence. No custom LUT upload needed for any currently supported panel, the OTP waveform is used instead.
The framebuffer therefore packs 2 bits per pixel (4 per byte, most significant pixel first) instead of EPaperMono's 1 bit.
The grayscale waveform has no partial form: master activation redraws the whole panel regardless of the RAM window. So a full update is a four-level refresh, and when partial updates are enabled (full_update_every > 1, which the model only allows on explicit request) a partial update is EPaperSSD1677's black-and-white one, each pixel reduced to light or dark. The partial waveform also drives unchanged pixels towards black or white, so from the first partial update the whole panel loses its gray levels until the next full update.
Definition at line 28 of file epaper_spi_ssd1677_gray4.h.
|
inline |
Definition at line 30 of file epaper_spi_ssd1677_gray4.h.
|
overridevirtual |
Reimplemented from esphome::epaper_spi::EPaperBase.
Definition at line 38 of file epaper_spi_ssd1677_gray4.cpp.
|
overridevirtual |
Reimplemented from esphome::epaper_spi::EPaperBase.
Definition at line 24 of file epaper_spi_ssd1677_gray4.cpp.
|
inlineprotected |
Definition at line 39 of file epaper_spi_ssd1677_gray4.h.
|
overrideprotectedvirtual |
Reimplemented from esphome::epaper_spi::EPaperSSD1677.
Definition at line 49 of file epaper_spi_ssd1677_gray4.cpp.
|
overrideprotectedvirtual |
Reimplemented from esphome::epaper_spi::EPaperMono.
Definition at line 113 of file epaper_spi_ssd1677_gray4.cpp.
|
overrideprotectedvirtual |
Reimplemented from esphome::epaper_spi::EPaperSSD1677.
Definition at line 57 of file epaper_spi_ssd1677_gray4.cpp.