mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-19 09:16:41 +00:00
Merge branch 'test' of https://github.com/vorbeiei/openHASP into test
This commit is contained in:
commit
9a59ede939
2
.github/workflows/build.yaml
vendored
2
.github/workflows/build.yaml
vendored
@ -52,7 +52,7 @@ jobs:
|
|||||||
- out: seeed-studios
|
- out: seeed-studios
|
||||||
env: "sensecap-indicator-d1_8MB"
|
env: "sensecap-indicator-d1_8MB"
|
||||||
- out: sunton
|
- out: sunton
|
||||||
env: "esp32-2432s028r_4MB -e esp32-2432s028r-ili9342_4MB -e esp32-2432s028r_v2_4MB -e esp32-2432s032c_4MB -e esp32-3248s035c_4MB -e esp32-3248s035r_4MB -e sunton-4827s043c_16MB -e sunton-8048s043c_16MB -e sunton-8048s050c_16MB -e sunton-8048s070c_16MB"
|
env: "esp32-2432s022c_4MB -e esp32-2432s028r_4MB -e esp32-2432s028r-ili9342_4MB -e esp32-2432s028r_v2_4MB -e esp32-2432s032c_4MB -e esp32-3248s035c_4MB -e esp32-3248s035r_4MB -e sunton-4827s043c_16MB -e sunton-8048s043c_16MB -e sunton-8048s050c_16MB -e sunton-8048s070c_16MB"
|
||||||
- out: waveshare
|
- out: waveshare
|
||||||
env: "esp32-one_ili9486 -e esp32-one_st7796 -e ws_esp32_s3_touch_lcd_4p3"
|
env: "esp32-one_ili9486 -e esp32-one_st7796 -e ws_esp32_s3_touch_lcd_4p3"
|
||||||
- out: wireless-tag
|
- out: wireless-tag
|
||||||
|
@ -1 +1 @@
|
|||||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.36.5/ace.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.36.5/theme-monokai.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.36.5/mode-html.js"></script><script type="module" src="/static/main.js?COMMIT_HASH"></script><script src="/static/script.js?COMMIT_HASH"></script><title>openHASP File Editor</title><link rel="stylesheet" href="/static/vars.css?COMMIT_HASH"><link rel="stylesheet" href="/static/style.css?COMMIT_HASH"><link rel="icon" href="/static/logo.svg?COMMIT_HASH" type="image/svg+xml"><link href="https://fonts.cdnfonts.com/css/jetbrains-mono" rel="stylesheet"><link href="https://fonts.cdnfonts.com/css/source-code-pro" rel="stylesheet"><style>ul{list-style-type:none;padding-left:20px}ul>li{white-space:nowrap}.inact:hover{cursor:default}.item:hover{cursor:pointer;background-color:#dadaff}.item>span:nth-child(2):hover{text-decoration:underline}.selitem>div{background-color:#ccf}.selitem>div:hover{background-color:#ccf}</style></head><body v-cloak v-scope @vue:mounted="mounted"><div class="container__editor" onmousedown="hidectx()"><div class="container__left"><div id="tree"><div class="item bold"><span class="fi fa-flash" title="/"></span><span>L:</span></div></div></div><div class="resizer" id="dragMe"></div><div class="container__right"><div class="toolbar"><input type="file" id="upload" name="upload" multiple="multiple" hidden><span class="left"><button id="home">Home</button><button onclick='upload(_("tree"),"/")'>Upload</button><button id="save" disabled="disabled">Save</button></span><div class="right"><input id="page" type="number" min="1" max="12" class="number"><button id="load">Reload Pages</button><button id="init">Clear Pages</button></div><span class="left"><button id="cut" disabled="disabled">Cut</button><button id="copy" disabled="disabled">Copy</button><button id="paste" disabled="disabled">Paste</button></span><span id="name"></span><span class="left"><button id="undo" disabled="disabled">Undo</button><button id="redo" disabled="disabled">Redo</button></span><span class="left"><select id="font"><option>JetBrains Mono</option><option selected="selected">Source Code Pro</option><input id="fontsize" type="number" step="any" min="9" max="40" value="12"></span></div><div id="editor" class="container__bottom"></div><div id="preview" class="container__bottom"></div><iframe id="download-frame"></iframe></div><div id="ctx" onmousedown="event.stopPropagation()"><ul><li><span class="icon file"></span>New File</li><li><span class="icon upload"></span>Upload Files</li><li><span class="icon edit"></span>Edit</li><li><span class="icon eye"></span>Preview</li><li><span class="icon download"></span>Download</li><li><span class="icon trash"></span>Delete</li></ul></div></div><div id="toast"></div></body></html>
|
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.37.0/ace.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.37.0/theme-monokai.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.37.0/mode-html.js"></script><script type="module" src="/static/main.js?COMMIT_HASH"></script><script src="/static/script.js?COMMIT_HASH"></script><title>openHASP File Editor</title><link rel="stylesheet" href="/static/vars.css?COMMIT_HASH"><link rel="stylesheet" href="/static/style.css?COMMIT_HASH"><link rel="icon" href="/static/logo.svg?COMMIT_HASH" type="image/svg+xml"><link href="https://fonts.cdnfonts.com/css/jetbrains-mono" rel="stylesheet"><link href="https://fonts.cdnfonts.com/css/source-code-pro" rel="stylesheet"><style>ul{list-style-type:none;padding-left:20px}ul>li{white-space:nowrap}.inact:hover{cursor:default}.item:hover{cursor:pointer;background-color:#dadaff}.item>span:nth-child(2):hover{text-decoration:underline}.selitem>div{background-color:#ccf}.selitem>div:hover{background-color:#ccf}</style></head><body v-cloak v-scope @vue:mounted="mounted"><div class="container__editor" onmousedown="hidectx()"><div class="container__left"><div id="tree"><div class="item bold"><span class="fi fa-flash" title="/"></span><span>L:</span></div></div></div><div class="resizer" id="dragMe"></div><div class="container__right"><div class="toolbar"><input type="file" id="upload" name="upload" multiple="multiple" hidden><span class="left"><button id="home">Home</button><button onclick='upload(_("tree"),"/")'>Upload</button><button id="save" disabled="disabled">Save</button></span><div class="right"><input id="page" type="number" min="1" max="12" class="number"><button id="load">Reload Pages</button><button id="init">Clear Pages</button></div><span class="left"><button id="cut" disabled="disabled">Cut</button><button id="copy" disabled="disabled">Copy</button><button id="paste" disabled="disabled">Paste</button></span><span id="name"></span><span class="left"><button id="undo" disabled="disabled">Undo</button><button id="redo" disabled="disabled">Redo</button></span><span class="left"><select id="font"><option>JetBrains Mono</option><option selected="selected">Source Code Pro</option><input id="fontsize" type="number" step="any" min="9" max="40" value="12"></span></div><div id="editor" class="container__bottom"></div><div id="preview" class="container__bottom"></div><iframe id="download-frame"></iframe></div><div id="ctx" onmousedown="event.stopPropagation()"><ul><li><span class="icon file"></span>New File</li><li><span class="icon upload"></span>Upload Files</li><li><span class="icon edit"></span>Edit</li><li><span class="icon eye"></span>Preview</li><li><span class="icon download"></span>Download</li><li><span class="icon trash"></span>Delete</li></ul></div></div><div id="toast"></div></body></html>
|
File diff suppressed because one or more lines are too long
@ -25,33 +25,32 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
{
|
{
|
||||||
LOG_TRACE(TAG_TFT, F(D_SERVICE_STARTING));
|
LOG_TRACE(TAG_TFT, F(D_SERVICE_STARTING));
|
||||||
|
|
||||||
#if(TFT_WIDTH == 170) && (TFT_HEIGHT == 320)
|
#if(TFT_WIDTH == 170) && (TFT_HEIGHT == 320)
|
||||||
Arduino_DataBus *bus = new Arduino_ESP32PAR8(
|
Arduino_DataBus* bus = new Arduino_ESP32PAR8(TFT_DC, TFT_CS, TFT_WR, TFT_RD, TFT_D0, TFT_D1, TFT_D2, TFT_D3, TFT_D4,
|
||||||
TFT_DC, TFT_CS, TFT_WR, TFT_RD,
|
TFT_D5, TFT_D6, TFT_D7);
|
||||||
TFT_D0, TFT_D1, TFT_D2, TFT_D3, TFT_D4, TFT_D5, TFT_D6, TFT_D7);
|
tft = new Arduino_ST7789(bus, TFT_RST /* RST */, TFT_ROTATION /* rotation */, true /* IPS */, TFT_WIDTH /* width */,
|
||||||
tft = new Arduino_ST7789(bus,
|
TFT_HEIGHT /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */,
|
||||||
TFT_RST /* RST */, TFT_ROTATION /* rotation */, true /* IPS */,
|
35 /* col offset 2 */, 0 /* row offset 2 */
|
||||||
TFT_WIDTH /* width */, TFT_HEIGHT /* height */,
|
|
||||||
35 /* col offset 1 */, 0 /* row offset 1 */,
|
|
||||||
35 /* col offset 2 */, 0 /* row offset 2 */
|
|
||||||
);
|
);
|
||||||
|
tft->begin(SPI_FREQUENCY); // Used for SPI displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_PANEL)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_PANEL)
|
||||||
Wire.begin(17, 18);
|
Wire.begin(17, 18);
|
||||||
Arduino_DataBus* bus = new Arduino_XL9535SWSPI(17 /* SDA */, 18 /* SCL */, -1 /* XL PWD */, 17 /* XL CS */,
|
Arduino_DataBus* bus = new Arduino_XL9535SWSPI(17 /* SDA */, 18 /* SCL */, -1 /* XL PWD */, 17 /* XL CS */,
|
||||||
15 /* XL SCK */, 16 /* XL MOSI */,&Wire);
|
15 /* XL SCK */, 16 /* XL MOSI */, &Wire);
|
||||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel(
|
||||||
-1 /* DE */, TFT_VSYNC /* VSYNC */, TFT_HSYNC /* HSYNC */, TFT_PCLK /* PCLK */,
|
-1 /* DE */, TFT_VSYNC /* VSYNC */, TFT_HSYNC /* HSYNC */, TFT_PCLK /* PCLK */, TFT_B0 /* B0 */,
|
||||||
TFT_B0 /* B0 */, TFT_B1 /* B1 */, TFT_B2 /* B2 */, TFT_B3 /* B3 */, TFT_B4 /* B4 */,
|
TFT_B1 /* B1 */, TFT_B2 /* B2 */, TFT_B3 /* B3 */, TFT_B4 /* B4 */, TFT_G0 /* G0 */, TFT_G1 /* G1 */,
|
||||||
TFT_G0 /* G0 */, TFT_G1 /* G1 */, TFT_G2 /* G2 */, TFT_G3 /* G3 */, TFT_G4 /* G4 */, TFT_G5 /* G5 */,
|
TFT_G2 /* G2 */, TFT_G3 /* G3 */, TFT_G4 /* G4 */, TFT_G5 /* G5 */, TFT_R0 /* R0 */, TFT_R1 /* R1 */,
|
||||||
TFT_R0 /* R0 */, TFT_R1 /* R1 */, TFT_R2 /* R2 */, TFT_R3 /* R3 */, TFT_R4 /* R4 */,
|
TFT_R2 /* R2 */, TFT_R3 /* R3 */, TFT_R4 /* R4 */, 1 /* hsync_polarity */, 20 /* hsync_front_porch */,
|
||||||
1 /* hsync_polarity */, 20 /* hsync_front_porch */, 2 /* hsync_pulse_width */, 0 /* hsync_back_porch */,
|
2 /* hsync_pulse_width */, 0 /* hsync_back_porch */, 1 /* vsync_polarity */, 30 /* vsync_front_porch */,
|
||||||
1 /* vsync_polarity */, 30 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 1 /* vsync_back_porch */,
|
8 /* vsync_pulse_width */, 1 /* vsync_back_porch */, 10 /* pclk_active_neg */, 6000000L /* prefer_speed */,
|
||||||
10 /* pclk_active_neg */, 6000000L /* prefer_speed */, false /* useBigEndian */,
|
false /* useBigEndian */, 0 /* de_idle_high*/, 0 /* pclk_idle_high */);
|
||||||
0 /* de_idle_high*/, 0 /* pclk_idle_high */);
|
|
||||||
|
|
||||||
tft = new Arduino_RGB_Display(TFT_WIDTH /* width */, TFT_HEIGHT /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
|
tft = new Arduino_RGB_Display(TFT_WIDTH /* width */, TFT_HEIGHT /* height */, rgbpanel, 0 /* rotation */,
|
||||||
bus, -1 /* RST */, st7701_t_panel_init_operations, sizeof(st7701_t_panel_init_operations));
|
true /* auto_flush */, bus, -1 /* RST */, st7701_t_panel_init_operations,
|
||||||
|
sizeof(st7701_t_panel_init_operations));
|
||||||
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_RGB)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(LILYGO_T_RGB)
|
||||||
Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */);
|
Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */);
|
||||||
@ -63,8 +62,9 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
6 /* B1 */, 5 /* B2 */, 3 /* B3 */, 2 /* B4 */, 1 /* hsync_polarity */, 50 /* hsync_front_porch */,
|
6 /* B1 */, 5 /* B2 */, 3 /* B3 */, 2 /* B4 */, 1 /* hsync_polarity */, 50 /* hsync_front_porch */,
|
||||||
1 /* hsync_pulse_width */, 30 /* hsync_back_porch */, 1 /* vsync_polarity */, 20 /* vsync_front_porch */,
|
1 /* hsync_pulse_width */, 30 /* hsync_back_porch */, 1 /* vsync_polarity */, 20 /* vsync_front_porch */,
|
||||||
1 /* vsync_pulse_width */, 30 /* vsync_back_porch */, 1 /* pclk_active_neg */);
|
1 /* vsync_pulse_width */, 30 /* vsync_back_porch */, 1 /* pclk_active_neg */);
|
||||||
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
||||||
st7701_type4_init_operations, sizeof(st7701_type4_init_operations));
|
st7701_type4_init_operations, sizeof(st7701_type4_init_operations));
|
||||||
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(SENSECAP_INDICATOR_D1)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(SENSECAP_INDICATOR_D1)
|
||||||
Wire.begin(TOUCH_SDA, TOUCH_SCL, I2C_TOUCH_FREQUENCY);
|
Wire.begin(TOUCH_SDA, TOUCH_SCL, I2C_TOUCH_FREQUENCY);
|
||||||
@ -72,14 +72,16 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
pinMode(TFT_MOSI, OUTPUT);
|
pinMode(TFT_MOSI, OUTPUT);
|
||||||
pinMode(TFT_MISO, OUTPUT);
|
pinMode(TFT_MISO, OUTPUT);
|
||||||
Arduino_DataBus* bus = new Arduino_PCA9535SWSPI(TOUCH_SDA, TOUCH_SCL, 5 /* XL PWD */, 4 /* XL CS */,
|
Arduino_DataBus* bus = new Arduino_PCA9535SWSPI(TOUCH_SDA, TOUCH_SCL, 5 /* XL PWD */, 4 /* XL CS */,
|
||||||
TFT_SCLK /* XL SCK */, TFT_MOSI /* XL MOSI */, &Wire);
|
TFT_SCLK /* XL SCK */, TFT_MOSI /* XL MOSI */, &Wire);
|
||||||
Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel(
|
Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel(
|
||||||
TFT_DE, TFT_VSYNC, TFT_HSYNC, TFT_PCLK, TFT_R0, TFT_R1, TFT_R2, TFT_R3, TFT_R4, TFT_G0, TFT_G1, TFT_G2, TFT_G3,
|
TFT_DE, TFT_VSYNC, TFT_HSYNC, TFT_PCLK, TFT_R0, TFT_R1, TFT_R2, TFT_R3, TFT_R4, TFT_G0, TFT_G1, TFT_G2, TFT_G3,
|
||||||
TFT_G4, TFT_G5, TFT_B0, TFT_B1, TFT_B2, TFT_B3, TFT_B4, TFT_HSYNC_POLARITY, TFT_HSYNC_FRONT_PORCH,
|
TFT_G4, TFT_G5, TFT_B0, TFT_B1, TFT_B2, TFT_B3, TFT_B4, TFT_HSYNC_POLARITY, TFT_HSYNC_FRONT_PORCH,
|
||||||
TFT_HSYNC_PULSE_WIDTH, TFT_HSYNC_BACK_PORCH, TFT_VSYNC_POLARITY, TFT_VSYNC_FRONT_PORCH, TFT_VSYNC_PULSE_WIDTH,
|
TFT_HSYNC_PULSE_WIDTH, TFT_HSYNC_BACK_PORCH, TFT_VSYNC_POLARITY, TFT_VSYNC_FRONT_PORCH, TFT_VSYNC_PULSE_WIDTH,
|
||||||
TFT_VSYNC_BACK_PORCH);
|
TFT_VSYNC_BACK_PORCH);
|
||||||
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
||||||
st7701_sensecap_indicator_init_operations, sizeof(st7701_sensecap_indicator_init_operations));
|
st7701_sensecap_indicator_init_operations,
|
||||||
|
sizeof(st7701_sensecap_indicator_init_operations));
|
||||||
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(GC9503V_DRIVER)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(GC9503V_DRIVER)
|
||||||
Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO);
|
Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO);
|
||||||
@ -90,6 +92,7 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
TFT_VSYNC_BACK_PORCH);
|
TFT_VSYNC_BACK_PORCH);
|
||||||
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
||||||
gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations));
|
gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations));
|
||||||
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(ST7701_DRIVER) && defined(ST7701_4848S040)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(ST7701_DRIVER) && defined(ST7701_4848S040)
|
||||||
Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO);
|
Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO);
|
||||||
@ -101,6 +104,8 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
|
|
||||||
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
||||||
st7701_4848S040_init_operations, sizeof(st7701_4848S040_init_operations));
|
st7701_4848S040_init_operations, sizeof(st7701_4848S040_init_operations));
|
||||||
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(ST7701_DRIVER)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 480) && defined(ST7701_DRIVER)
|
||||||
/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
|
/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
|
||||||
Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO);
|
Arduino_DataBus* bus = new Arduino_SWSPI(TFT_DC, TFT_CS, TFT_SCLK, TFT_MOSI, TFT_MISO);
|
||||||
@ -113,10 +118,13 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
|
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
|
||||||
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
tft = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
||||||
st7701_type1_init_operations, sizeof(st7701_type1_init_operations));
|
st7701_type1_init_operations, sizeof(st7701_type1_init_operations));
|
||||||
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 272) && defined(NV3041A_DRIVER)
|
#elif(TFT_WIDTH == 480) && (TFT_HEIGHT == 272) && defined(NV3041A_DRIVER)
|
||||||
Arduino_DataBus* bus = new Arduino_ESP32QSPI(TFT_CS, TFT_SCK, TFT_D0, TFT_D1, TFT_D2, TFT_D3);
|
Arduino_DataBus* bus = new Arduino_ESP32QSPI(TFT_CS, TFT_SCK, TFT_D0, TFT_D1, TFT_D2, TFT_D3);
|
||||||
Arduino_GFX* g = new Arduino_NV3041A(bus, TFT_RST, TFT_ROTATION, TFT_IPS);
|
tft = new Arduino_NV3041A(bus, TFT_RST, TFT_ROTATION, TFT_IPS);
|
||||||
tft = g;
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
|
|
||||||
#elif 1
|
#elif 1
|
||||||
/* Reset is not implemented in the panel */
|
/* Reset is not implemented in the panel */
|
||||||
if(TFT_RST != GFX_NOT_DEFINED) {
|
if(TFT_RST != GFX_NOT_DEFINED) {
|
||||||
@ -135,15 +143,11 @@ void ArduinoGfx::init(int w, int h)
|
|||||||
TFT_HSYNC_PULSE_WIDTH, TFT_HSYNC_BACK_PORCH, TFT_VSYNC_POLARITY, TFT_VSYNC_FRONT_PORCH, TFT_VSYNC_PULSE_WIDTH,
|
TFT_HSYNC_PULSE_WIDTH, TFT_HSYNC_BACK_PORCH, TFT_VSYNC_POLARITY, TFT_VSYNC_FRONT_PORCH, TFT_VSYNC_PULSE_WIDTH,
|
||||||
TFT_VSYNC_BACK_PORCH, TFT_PCLK_ACTIVE_NEG, TFT_PREFER_SPEED);
|
TFT_VSYNC_BACK_PORCH, TFT_PCLK_ACTIVE_NEG, TFT_PREFER_SPEED);
|
||||||
|
|
||||||
Arduino_RGB_Display_Mod* gfx = new Arduino_RGB_Display_Mod(TFT_WIDTH, TFT_HEIGHT, bus);
|
tft = new Arduino_RGB_Display_Mod(TFT_WIDTH, TFT_HEIGHT, bus);
|
||||||
tft = gfx;
|
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||||
// fb = ((Arduino_RGBPanel_Mod*)tft)->getFramebuffer();
|
// fb = ((Arduino_RGBPanel_Mod*)tft)->getFramebuffer();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* TFT init */
|
|
||||||
LOG_DEBUG(TAG_TFT, F("%s - %d"), __FILE__, __LINE__);
|
|
||||||
tft->begin(SPI_FREQUENCY);
|
|
||||||
LOG_DEBUG(TAG_TFT, F("%s - %d"), __FILE__, __LINE__);
|
|
||||||
// tft.setSwapBytes(true); /* set endianness */
|
// tft.setSwapBytes(true); /* set endianness */
|
||||||
LOG_INFO(TAG_TFT, F(D_SERVICE_STARTED));
|
LOG_INFO(TAG_TFT, F(D_SERVICE_STARTED));
|
||||||
}
|
}
|
||||||
|
@ -804,6 +804,73 @@ void LovyanGfx::init(int w, int h)
|
|||||||
cfg.pin_mosi = TOUCH_MOSI;
|
cfg.pin_mosi = TOUCH_MOSI;
|
||||||
cfg.pin_miso = TOUCH_MISO;
|
cfg.pin_miso = TOUCH_MISO;
|
||||||
cfg.pin_cs = TOUCH_CS;
|
cfg.pin_cs = TOUCH_CS;
|
||||||
|
_touch_instance->config(cfg);
|
||||||
|
_panel_instance->setTouch(_touch_instance);
|
||||||
|
}
|
||||||
|
#elif defined(ESP32_2432S022C)
|
||||||
|
//pinMode(PWR_EN, OUTPUT);
|
||||||
|
//digitalWrite(PWR_EN, HIGH);
|
||||||
|
|
||||||
|
auto _panel_instance = new lgfx::Panel_ST7789();
|
||||||
|
auto _bus_instance = new lgfx::Bus_Parallel8();
|
||||||
|
auto _touch_instance = new lgfx::Touch_CST816S();
|
||||||
|
{
|
||||||
|
auto cfg = _bus_instance->config();
|
||||||
|
cfg.freq_write = 16000000;
|
||||||
|
cfg.pin_wr = TFT_WR;
|
||||||
|
cfg.pin_rd = TFT_RD;
|
||||||
|
cfg.pin_rs = TFT_DC; // D/C
|
||||||
|
cfg.pin_d0 = TFT_D0;
|
||||||
|
cfg.pin_d1 = TFT_D1;
|
||||||
|
cfg.pin_d2 = TFT_D2;
|
||||||
|
cfg.pin_d3 = TFT_D3;
|
||||||
|
cfg.pin_d4 = TFT_D4;
|
||||||
|
cfg.pin_d5 = TFT_D5;
|
||||||
|
cfg.pin_d6 = TFT_D6;
|
||||||
|
cfg.pin_d7 = TFT_D7;
|
||||||
|
_bus_instance->config(cfg);
|
||||||
|
_panel_instance->setBus(_bus_instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto cfg = _panel_instance->config();
|
||||||
|
cfg.pin_cs = TFT_CS;
|
||||||
|
cfg.pin_rst = TFT_RST;
|
||||||
|
cfg.pin_busy = TFT_BUSY;
|
||||||
|
cfg.memory_width = TFT_WIDTH;
|
||||||
|
cfg.memory_height = TFT_HEIGHT;
|
||||||
|
cfg.panel_width = TFT_WIDTH;
|
||||||
|
cfg.panel_height = TFT_HEIGHT;
|
||||||
|
cfg.offset_x = 0;
|
||||||
|
cfg.offset_y = 0;
|
||||||
|
cfg.offset_rotation = TFT_ROTATION;
|
||||||
|
cfg.dummy_read_pixel = 8;
|
||||||
|
cfg.dummy_read_bits = 1;
|
||||||
|
cfg.readable = true;
|
||||||
|
cfg.invert = false;
|
||||||
|
cfg.rgb_order = false;
|
||||||
|
cfg.dlen_16bit = false;
|
||||||
|
cfg.bus_shared = false;
|
||||||
|
_panel_instance->config(cfg);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto cfg = _touch_instance->config();
|
||||||
|
|
||||||
|
cfg.x_min = 0;
|
||||||
|
cfg.x_max = TFT_WIDTH;
|
||||||
|
cfg.y_min = 0;
|
||||||
|
cfg.y_max = TFT_HEIGHT;
|
||||||
|
cfg.pin_int = TOUCH_IRQ;
|
||||||
|
cfg.bus_shared = true;
|
||||||
|
cfg.offset_rotation = 0;
|
||||||
|
|
||||||
|
cfg.i2c_port = I2C_TOUCH_PORT;
|
||||||
|
cfg.i2c_addr = I2C_TOUCH_ADDRESS;
|
||||||
|
cfg.pin_sda = TOUCH_SDA;
|
||||||
|
cfg.pin_scl = TOUCH_SCL;
|
||||||
|
cfg.freq = I2C_TOUCH_FREQUENCY;
|
||||||
|
|
||||||
_touch_instance->config(cfg);
|
_touch_instance->config(cfg);
|
||||||
_panel_instance->setTouch(_touch_instance);
|
_panel_instance->setTouch(_touch_instance);
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,8 @@ lv_font_t* hasp_get_font(uint8_t fontid)
|
|||||||
*/
|
*/
|
||||||
HASP_ATTRIBUTE_FAST_MEM void hasp_update_sleep_state()
|
HASP_ATTRIBUTE_FAST_MEM void hasp_update_sleep_state()
|
||||||
{
|
{
|
||||||
if(hasp_first_touch_state) return; // don't update sleep when first touch is still active
|
// Don't fast exit, see issue #839
|
||||||
|
// if(hasp_first_touch_state) return; // don't update sleep when first touch is still active
|
||||||
|
|
||||||
uint32_t idle = lv_disp_get_inactive_time(lv_disp_get_default()) / 1000;
|
uint32_t idle = lv_disp_get_inactive_time(lv_disp_get_default()) / 1000;
|
||||||
idle += sleepTimeOffset; // To force a specific state
|
idle += sleepTimeOffset; // To force a specific state
|
||||||
|
@ -264,18 +264,18 @@ static void webSendFooter()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void http_send_cache_header(int size, int age = 3600)
|
static void http_send_cache_header(int age = 3600)
|
||||||
{
|
{
|
||||||
webServer.sendHeader("Content-Length", (String)(size));
|
|
||||||
webServer.sendHeader("Cache-Control", (String)(F("public, max-age=")) + (String)(age));
|
webServer.sendHeader("Cache-Control", (String)(F("public, max-age=")) + (String)(age));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int http_send_cached(int statuscode, const char* contenttype, const char* data, size_t size, int age = 3600)
|
static int http_send_cached(int statuscode, const char* contenttype, const char* data, size_t size, int age = 3600)
|
||||||
{
|
{
|
||||||
http_send_cache_header(size, age);
|
http_send_cache_header(age);
|
||||||
#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_ESP8266)
|
#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_ESP8266)
|
||||||
webServer.send_P(statuscode, contenttype, data, size);
|
webServer.send_P(statuscode, contenttype, data, size);
|
||||||
#else
|
#else
|
||||||
|
webServer.sendHeader("Content-Length", (String)(size));
|
||||||
webServer.send(statuscode, contenttype, data);
|
webServer.send(statuscode, contenttype, data);
|
||||||
#endif
|
#endif
|
||||||
return statuscode;
|
return statuscode;
|
||||||
|
64
user_setups/esp32/esp32-2432s022c.ini
Normal file
64
user_setups/esp32/esp32-2432s022c.ini
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
[env:esp32-2432s022c_4MB]
|
||||||
|
extends = arduino_esp32_v2, flash_4mb
|
||||||
|
board = esp32dev
|
||||||
|
upload_speed = 921600
|
||||||
|
|
||||||
|
build_flags =
|
||||||
|
${arduino_esp32_v2.build_flags}
|
||||||
|
${esp32.no_ps_ram}
|
||||||
|
|
||||||
|
;region -- TFT_eSPI build options ------------------------
|
||||||
|
-D ESP32_2432S022C=1
|
||||||
|
-D LGFX_USE_V1=1
|
||||||
|
; -D USER_SETUP_LOADED=1
|
||||||
|
-D ST7789_DRIVER=1
|
||||||
|
; -D CGRAM_OFFSET=1
|
||||||
|
; -DSUPPORT_TRANSACTIONS
|
||||||
|
-D TFT_INVERSION_OFF
|
||||||
|
-D TFT_PARALLEL_8_BIT
|
||||||
|
-D TFT_ROTATION=0 ; 0=0, 1=90, 2=180 or 3=270 degree
|
||||||
|
-D TFT_WIDTH=240
|
||||||
|
-D TFT_HEIGHT=320
|
||||||
|
-D TFT_CS=17 ; Chip select control pin=library pulls permanently low
|
||||||
|
-D TFT_DC=16 ; Data Command control pin
|
||||||
|
-D TFT_RST=-1 ; Reset pin, toggles on startup
|
||||||
|
-D TFT_WR=4 ; Write strobe control pin
|
||||||
|
-D TFT_RD=2 ; Read strobe control pin
|
||||||
|
-D TFT_D0=15
|
||||||
|
-D TFT_D1=13
|
||||||
|
-D TFT_D2=12
|
||||||
|
-D TFT_D3=14
|
||||||
|
-D TFT_D4=27
|
||||||
|
-D TFT_D5=25
|
||||||
|
-D TFT_D6=33
|
||||||
|
-D TFT_D7=32
|
||||||
|
-D TFT_BCKL=0 ; LED back-light
|
||||||
|
|
||||||
|
;CST816S driver
|
||||||
|
-D TOUCH_DRIVER=0x816
|
||||||
|
-D HASP_USE_LGFX_TOUCH=1
|
||||||
|
-D I2C_TOUCH_PORT=I2C_NUM_0
|
||||||
|
-D TOUCH_SDA=21
|
||||||
|
-D TOUCH_SCL=22
|
||||||
|
-D TOUCH_IRQ=-1
|
||||||
|
-D TOUCH_RST=-1
|
||||||
|
-D I2C_TOUCH_FREQUENCY=400000
|
||||||
|
-D I2C_TOUCH_ADDRESS=0x15
|
||||||
|
|
||||||
|
|
||||||
|
-D SD_MISO=19
|
||||||
|
-D SD_MOSI=23
|
||||||
|
-D SD_SCLK=18
|
||||||
|
-D SD_CS=5
|
||||||
|
|
||||||
|
; sound output is on IO26, through an SC8002B IC
|
||||||
|
|
||||||
|
; -- Debugging options -----------------------------
|
||||||
|
; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
|
||||||
|
;endregion
|
||||||
|
|
||||||
|
lib_deps =
|
||||||
|
${arduino_esp32_v2.lib_deps}
|
||||||
|
${lovyangfx.lib_deps}
|
||||||
|
;${tft_espi.lib_deps}
|
||||||
|
|
@ -74,7 +74,7 @@ build_flags =
|
|||||||
-D TFT_DE=41
|
-D TFT_DE=41
|
||||||
-D TFT_VSYNC=40
|
-D TFT_VSYNC=40
|
||||||
-D TFT_HSYNC=39
|
-D TFT_HSYNC=39
|
||||||
-D TFT_PCLK=0
|
-D TFT_PCLK=0
|
||||||
|
|
||||||
[env:elecrow-s3-8048c070_4MB]
|
[env:elecrow-s3-8048c070_4MB]
|
||||||
extends = elecrow-esp32-s3-tft, flash_4mb
|
extends = elecrow-esp32-s3-tft, flash_4mb
|
||||||
|
Loading…
x
Reference in New Issue
Block a user