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
|
||||
env: "sensecap-indicator-d1_8MB"
|
||||
- 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
|
||||
env: "esp32-one_ili9486 -e esp32-one_st7796 -e ws_esp32_s3_touch_lcd_4p3"
|
||||
- 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
@ -26,32 +26,31 @@ void ArduinoGfx::init(int w, int h)
|
||||
LOG_TRACE(TAG_TFT, F(D_SERVICE_STARTING));
|
||||
|
||||
#if(TFT_WIDTH == 170) && (TFT_HEIGHT == 320)
|
||||
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_D5, TFT_D6, TFT_D7);
|
||||
tft = new Arduino_ST7789(bus,
|
||||
TFT_RST /* RST */, TFT_ROTATION /* rotation */, true /* IPS */,
|
||||
TFT_WIDTH /* width */, TFT_HEIGHT /* height */,
|
||||
35 /* col offset 1 */, 0 /* row offset 1 */,
|
||||
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_D5, TFT_D6, TFT_D7);
|
||||
tft = new Arduino_ST7789(bus, TFT_RST /* RST */, TFT_ROTATION /* rotation */, true /* IPS */, 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)
|
||||
Wire.begin(17, 18);
|
||||
Arduino_DataBus* bus = new Arduino_XL9535SWSPI(17 /* SDA */, 18 /* SCL */, -1 /* XL PWD */, 17 /* XL CS */,
|
||||
15 /* XL SCK */, 16 /* XL MOSI */,&Wire);
|
||||
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
-1 /* DE */, TFT_VSYNC /* VSYNC */, TFT_HSYNC /* HSYNC */, TFT_PCLK /* PCLK */,
|
||||
TFT_B0 /* B0 */, TFT_B1 /* B1 */, TFT_B2 /* B2 */, TFT_B3 /* B3 */, TFT_B4 /* B4 */,
|
||||
TFT_G0 /* G0 */, TFT_G1 /* G1 */, TFT_G2 /* G2 */, TFT_G3 /* G3 */, TFT_G4 /* G4 */, TFT_G5 /* G5 */,
|
||||
TFT_R0 /* R0 */, TFT_R1 /* R1 */, TFT_R2 /* R2 */, TFT_R3 /* R3 */, TFT_R4 /* R4 */,
|
||||
1 /* hsync_polarity */, 20 /* hsync_front_porch */, 2 /* hsync_pulse_width */, 0 /* hsync_back_porch */,
|
||||
1 /* vsync_polarity */, 30 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 1 /* vsync_back_porch */,
|
||||
10 /* pclk_active_neg */, 6000000L /* prefer_speed */, false /* useBigEndian */,
|
||||
0 /* de_idle_high*/, 0 /* pclk_idle_high */);
|
||||
15 /* XL SCK */, 16 /* XL MOSI */, &Wire);
|
||||
Arduino_ESP32RGBPanel* rgbpanel = new Arduino_ESP32RGBPanel(
|
||||
-1 /* DE */, TFT_VSYNC /* VSYNC */, TFT_HSYNC /* HSYNC */, TFT_PCLK /* PCLK */, TFT_B0 /* B0 */,
|
||||
TFT_B1 /* B1 */, TFT_B2 /* B2 */, TFT_B3 /* B3 */, TFT_B4 /* B4 */, TFT_G0 /* G0 */, TFT_G1 /* G1 */,
|
||||
TFT_G2 /* G2 */, TFT_G3 /* G3 */, TFT_G4 /* G4 */, TFT_G5 /* G5 */, TFT_R0 /* R0 */, TFT_R1 /* R1 */,
|
||||
TFT_R2 /* R2 */, TFT_R3 /* R3 */, TFT_R4 /* R4 */, 1 /* hsync_polarity */, 20 /* hsync_front_porch */,
|
||||
2 /* hsync_pulse_width */, 0 /* hsync_back_porch */, 1 /* vsync_polarity */, 30 /* vsync_front_porch */,
|
||||
8 /* vsync_pulse_width */, 1 /* vsync_back_porch */, 10 /* pclk_active_neg */, 6000000L /* prefer_speed */,
|
||||
false /* useBigEndian */, 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 */,
|
||||
bus, -1 /* RST */, st7701_t_panel_init_operations, sizeof(st7701_t_panel_init_operations));
|
||||
tft = new Arduino_RGB_Display(TFT_WIDTH /* width */, TFT_HEIGHT /* height */, rgbpanel, 0 /* rotation */,
|
||||
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)
|
||||
Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */);
|
||||
@ -65,6 +64,7 @@ void ArduinoGfx::init(int w, int h)
|
||||
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,
|
||||
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)
|
||||
Wire.begin(TOUCH_SDA, TOUCH_SCL, I2C_TOUCH_FREQUENCY);
|
||||
@ -79,7 +79,9 @@ 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_VSYNC_BACK_PORCH);
|
||||
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)
|
||||
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 = new Arduino_RGB_Display(w, h, rgbpanel, 0 /* rotation */, TFT_AUTO_FLUSH, bus, TFT_RST,
|
||||
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)
|
||||
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,
|
||||
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)
|
||||
/* 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);
|
||||
@ -113,10 +118,13 @@ void ArduinoGfx::init(int w, int h)
|
||||
/* 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,
|
||||
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)
|
||||
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 = g;
|
||||
tft = new Arduino_NV3041A(bus, TFT_RST, TFT_ROTATION, TFT_IPS);
|
||||
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||
|
||||
#elif 1
|
||||
/* Reset is not implemented in the panel */
|
||||
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_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 = gfx;
|
||||
tft = new Arduino_RGB_Display_Mod(TFT_WIDTH, TFT_HEIGHT, bus);
|
||||
tft->begin(GFX_NOT_DEFINED); // Used for RFB displays
|
||||
// fb = ((Arduino_RGBPanel_Mod*)tft)->getFramebuffer();
|
||||
#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 */
|
||||
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_miso = TOUCH_MISO;
|
||||
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);
|
||||
_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()
|
||||
{
|
||||
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;
|
||||
idle += sleepTimeOffset; // To force a specific state
|
||||
|
@ -264,18 +264,18 @@ static void webSendFooter()
|
||||
#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));
|
||||
}
|
||||
|
||||
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)
|
||||
webServer.send_P(statuscode, contenttype, data, size);
|
||||
#else
|
||||
webServer.sendHeader("Content-Length", (String)(size));
|
||||
webServer.send(statuscode, contenttype, data);
|
||||
#endif
|
||||
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}
|
||||
|
Loading…
x
Reference in New Issue
Block a user