23    static const uint16_t 
WIDTH = 1304;
 
   36    GxEPD2_1248(int16_t sck, int16_t miso, int16_t mosi,
 
   37                int16_t cs_m1, int16_t cs_s1, int16_t cs_m2, int16_t cs_s2,
 
   38                int16_t dc1, int16_t dc2, int16_t rst1, int16_t rst2,
 
   39                int16_t busy_m1, int16_t busy_s1, int16_t busy_m2, int16_t busy_s2);
 
   42    GxEPD2_1248(int16_t cs_m1, int16_t cs_s1, int16_t cs_m2, int16_t cs_s2,
 
   43                int16_t dc1, int16_t dc2, int16_t rst1, int16_t rst2,
 
   44                int16_t busy_m1, int16_t busy_s1, int16_t busy_m2, int16_t busy_s2);
 
   46    GxEPD2_1248(int16_t cs_m1, int16_t cs_s1, int16_t cs_m2, int16_t cs_s2, int16_t dc, int16_t rst, int16_t busy);
 
   48    void init(uint32_t serial_diag_bitrate = 0); 
 
   49    void init(uint32_t serial_diag_bitrate, 
bool initial, uint16_t reset_duration = 20, 
bool pulldown_rst_mode = 
false);
 
   55    void writeImage(
const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   56    void writeImagePart(
const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap,
 
   57                        int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   58    void writeImage(
const uint8_t* black, 
const uint8_t* color, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   59    void writeImagePart(
const uint8_t* black, 
const uint8_t* color, int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap,
 
   60                        int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   62    void writeImageAgain(
const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   63    void writeImagePartAgain(
const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap,
 
   64                             int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   66    void writeNative(
const uint8_t* data1, 
const uint8_t* data2, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   68    void drawImage(
const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   69    void drawImagePart(
const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap,
 
   70                       int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   71    void drawImage(
const uint8_t* black, 
const uint8_t* color, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   72    void drawImagePart(
const uint8_t* black, 
const uint8_t* color, int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap,
 
   73                       int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   75    void drawNative(
const uint8_t* data1, 
const uint8_t* data2, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
   76    void refresh(
bool partial_update_mode = 
false); 
 
   77    void refresh(int16_t x, int16_t y, int16_t w, int16_t h); 
 
   83    void _setPartialRamArea(uint16_t x, uint16_t y, uint16_t w, uint16_t h);
 
   91    void _writeCommandMaster(uint8_t c);
 
   92    void _writeDataMaster(uint8_t d);
 
   93    void _writeCommandAll(uint8_t c);
 
   94    void _writeDataAll(uint8_t d);
 
   95    void _writeDataPGM_All(
const uint8_t* data, uint16_t n, int16_t fill_with_zeroes = 0);
 
   96    void _waitWhileAnyBusy(
const char* comment = 0, uint16_t busy_time = 5000);
 
   97    void _getMasterTemperature();
 
  100    void _readController(uint8_t cmd, uint8_t* data, uint16_t n, int8_t cs = -1, int8_t dc = -1);
 
  102    int16_t _sck, _miso, _mosi, _dc1, _dc2, _rst1, _rst2;
 
  103    int16_t _cs_m1, _cs_s1, _cs_m2, _cs_s2;
 
  104    int16_t _busy_m1, _busy_s1, _busy_m2, _busy_s2;
 
  106    static const unsigned char lut_20_LUTC_partial[];
 
  107    static const unsigned char lut_21_LUTWW_partial[];
 
  108    static const unsigned char lut_22_LUTKW_partial[];
 
  109    static const unsigned char lut_23_LUTWK_partial[];
 
  110    static const unsigned char lut_24_LUTKK_partial[];
 
  111    static const unsigned char lut_25_LUTBD_partial[];
 
  116        ScreenPart(uint16_t width, uint16_t height, 
bool rev_scan, int16_t cs, int16_t dc);
 
  117        void writeScreenBuffer(uint8_t command, uint8_t value = 0xFF); 
 
  118        void writeImagePart(uint8_t command, 
const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap,
 
  119                            int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert = 
false, 
bool mirror_y = 
false, 
bool pgm = 
false);
 
  120        void writeCommand(uint8_t c);
 
  121        void writeData(uint8_t d);
 
  123        void _setPartialRamArea(uint16_t x, uint16_t y, uint16_t w, uint16_t h);
 
  124        void _startTransfer();
 
  125        void _transfer(uint8_t value);
 
  128        const uint16_t WIDTH, HEIGHT;
 
  132        const SPISettings _spi_settings;
 
  134    ScreenPart M1, S1, M2, S2;