Compare commits

...

2512 Commits

Author SHA1 Message Date
fvanroie
71cefbee82 Remove Sunton 2.2" 2025-04-14 22:57:18 +02:00
fvanroie
36e86af846 Remove Sunton 2.2" 2025-04-14 22:36:29 +02:00
fvanroie
4bdd77956f Update ace.js to 1.39.1 2025-03-28 21:17:49 +01:00
fvanroie
4c04b93ea0 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2025-03-17 19:59:15 +01:00
fvanroie
4c71062cf1
Merge pull request #879 from Szetya/master
TTGO T-Display S3 Touch
2025-03-14 12:16:28 +01:00
fvanroie
9dffb1ff22
Update build.yaml 2025-03-12 23:53:36 +01:00
fvanroie
8a17fbbf8a
Merge pull request #880 from yetanothercarbot/twatch
Update T-Watch support (add PMIC support)
2025-03-12 13:15:00 +01:00
yetanothercarbot
d5b8f83850 Update T-Watch support (add PMIC support) 2025-03-12 19:50:24 +10:00
Szetya
5ef28aad33
Update touch_driver_cst816.cpp 2025-03-10 18:51:05 +01:00
Szetya
2f7505debb
Add files via upload
CST816 library add
2025-03-10 18:31:02 +01:00
Szetya
5cc1fda908
Add files via upload
CST816 touch driver add
2025-03-10 18:29:51 +01:00
Szetya
cc50dbf59f
Add files via upload 2025-03-10 18:25:52 +01:00
Szetya
38bd749f98
Update platformio_override-template.ini
T-Display S3 touch added
2025-03-10 18:25:20 +01:00
fvanroie
945e06da9f
Merge pull request #869 from plord12/master
Tweak settings for ESP32-8048S050 so that display works.
2025-02-24 13:57:31 +01:00
Peter Lord
e3ae1e6abf Tweak settings for ESP32-8048S050 so that display works.
See https://github.com/HASwitchPlate/openHASP/issues/868 and https://github.com/HASwitchPlate/openHASP/discussions/861
2025-02-23 22:19:09 +00:00
fvanroie
1ffd94a6bd
Merge pull request #863 from HASwitchPlate/l10n_master
New Crowdin updates
2025-02-14 00:48:15 +01:00
fvanroie
4584e907f9 New translations en_us.h (Russian) 2025-02-14 00:46:37 +01:00
fvanroie
c25aa50cb2 New translations en.json (Russian) 2025-02-14 00:46:36 +01:00
fvanroie
e5794ab6e1 New translations en_us.h (Russian) 2025-02-14 00:12:15 +01:00
fvanroie
72e7fdcbed New translations en.json (Russian) 2025-02-14 00:12:14 +01:00
fvanroie
1a92656d3f
Merge pull request #862 from xek/tinloaf/master
Add support for sunton esp32-2432s024{r,c}
2025-02-13 23:57:49 +01:00
Grzegorz Grasza
1ebd9e29fe Working esp32-2432s024r_4MB support
The original configuration displayed only part
of the screen. The needed modification was to
switch width and height and integrate more
flags already used by the capacitive version of
this board.
2025-02-13 21:16:07 +01:00
Lukas Barth
7c7c65acc4 Add sunton esp32-2432s024{r,c} 2025-02-08 11:54:14 +01:00
fvanroie
74063e285f
Merge pull request #851 from Garag/fix_Sunton_ESP32-8048S043C_touch
Sunton ESP32-8048S043C touch size adapted to screen size
2025-01-13 23:21:51 +01:00
Garag
31ca81e274 touch size adapted to screen size 2025-01-13 21:00:50 +01:00
fvanroie
f663d16cb6 Update ace.js 1.37.3 2025-01-07 16:47:55 +01:00
fvanroie
48884ee986
Merge pull request #841 from vorbeiei/test
fix STMPE610 touchscreen ghost touches
2024-12-25 19:40:45 +01:00
alex
9a59ede939 Merge branch 'test' of https://github.com/vorbeiei/openHASP into test 2024-12-25 17:47:35 +01:00
alex
c3a3222e4a stmpe610 fix ghost touches 2024-12-25 17:45:17 +01:00
fvanroie
3eda5a4225 Fix for #839 2024-12-23 17:13:27 +01:00
fvanroie
bddbc3cb39 Add esp32-2432s022c_4MB 2024-12-23 15:21:22 +01:00
fvanroie
ad85ba63d9 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-12-23 15:19:53 +01:00
fvanroie
001bc637df
Merge pull request #838 from bennydiamond/feature/esp32-2432s022c_support
Initial support for Guition ESP32-2432S022C
2024-12-22 13:53:42 +01:00
psyko_chewbacca
1e85b3cd46 Initial support for Guiton ESP32-2432S022C 2024-12-22 00:42:09 -05:00
fvanroie
1340ce19bb Update ace.js to 1.37.0 2024-12-17 21:51:41 +01:00
fvanroie
7e5762d2ef Better solution for #830 and #836 2024-12-14 22:47:49 +01:00
fvanroie
de60c0af49 Add missing SPI_FREQUENCY #836 2024-12-14 22:21:39 +01:00
fvanroie
154a8ff638 Check if SPI_FREQUENCY is defined #153 2024-12-14 22:02:22 +01:00
fvanroie
e815e31a5a Remove default SPI_FREQUENCY if not set #153 2024-12-14 21:58:22 +01:00
fvanroie
78a3b38829 Fix duplicate response headers #834 2024-12-14 16:55:41 +01:00
fvanroie
62154fb35b
Merge pull request #833 from vorbeiei/test
add config for huzza32 v2 with original featherwing
2024-12-14 00:21:17 +01:00
vorbeiei
70c262ebae
add config for huzza32 v2 with featherwing v1 2024-12-13 21:47:29 +01:00
fvanroie
f1c588c5a4 Update to rc15 2024-12-12 02:53:58 +01:00
fvanroie
36f9256162
Merge pull request #831 from marsman7/lovyangfx_tft_offset
add lovyangfx custom offset for tft
2024-12-08 01:28:49 +01:00
marsman7
b251756059 add ini file for waveshare ESP32-S3 1.69inch CTP 2024-12-07 23:34:19 +01:00
marsman7
7ced77a7a9 add lovyangfx custom offset for tft 2024-12-07 22:21:27 +01:00
fvanroie
0dce321aa5 Remove HASP_USE_HA #813 2024-12-07 03:43:15 +01:00
fvanroie
0c82612e8e Update toubuntu-24.04 2024-12-07 03:11:33 +01:00
fvanroie
fea7be0700 Add lanbon_l9 #830 2024-12-07 02:16:11 +01:00
fvanroie
a67bcc3fc0 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-12-07 02:14:44 +01:00
fvanroie
12ec1a11b3
Merge pull request #830 from lylavoie/Lanbon_L9
merge Lanbon L9
2024-12-07 02:08:47 +01:00
Lincoln Lavoie
113b6838f2
Working setup for Lanbon L9
* Changed to Arduino_ESP32PAR8 bus driver.
* Fixed touch driver options, added missing port settings.
* Increased frequency of i2c to 400kHz.
2024-12-06 16:01:00 -05:00
Lincoln Lavoie
c89d10dd90
Updated settings for the Lanbon L9
* Fixed the TFT driver, bad reference to gfx object.
* Added setting for GFX parallel driver speed.
* Corrected touch drive to FT6336.
2024-12-05 23:08:22 -05:00
fvanroie
d8ee62ba7c
Merge pull request #829 from marsman7/fix-compiling_error_with_hasp_use_custom_0
Fix compiling errors when HASP_USE_CUSTOM set to zero
2024-12-04 13:25:40 +01:00
marsman7
932805d3bd Fix compiling errors when HASP_USE_CUSTOM set to zero 2024-12-03 21:37:06 +01:00
fvanroie
9a3e9c03b8
Merge pull request #826 from Llgok/master
The addition of support for T-Panel (verified)
2024-11-21 15:39:14 +01:00
fvanroie
81d35626ae
Update _esp32s3.ini 2024-11-21 15:38:45 +01:00
LILYGO_L
52861a6a5d The addition of support for T-Panel (verified). 2024-11-21 14:21:53 +08:00
fvanroie
5f29881e12 Update ace.js to 1.36.5 2024-11-14 21:59:12 +01:00
fvanroie
355e1dbdda Add ws_esp32_s3_touch_lcd_4p3 2024-11-07 20:50:42 +01:00
fvanroie
a771438a08 Add esp32-2432s028_v2 #396 2024-10-12 23:57:34 +02:00
fvanroie
a52ed04f1e Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-10-12 23:38:44 +02:00
fvanroie
769f283b3c Add esp32-2432s028_v2 #396 2024-10-12 23:38:41 +02:00
fvanroie
8b329dff77
Merge pull request #812 from LarsMichelsen/master
Fix support for Adafruit HUZZAH32 V2 ESP32 Featherwing 3.5 V2
2024-10-12 01:10:42 +02:00
Lars Michelsen
735b4a170b Fix support for Adafruit HUZZAH32 V2 ESP32 Featherwing 3.5 V2
* The board of "env:huzzah32-v2-featherwing-35-v2" was changed to
  adafruit_feather_esp32_v2

  Previously it was pointing to the v1 board. See also:

  V1: https://github.com/platformio/platform-espressif32/blob/develop/boards/featheresp32.json
  V2: https://github.com/platformio/platform-espressif32/blob/develop/boards/adafruit_feather_esp32_v2.json

* Fixed the port numbers
* hasp_gpio_type_t::BUTTON had to be renamed because adafruit_feather_esp32_v2/pins_arduino.h
  defines a macro named BUTTON.
2024-10-11 21:08:41 +02:00
fvanroie
e42b27f67a LV_MEM_CUSTOM default allocators use PSram when available #810 2024-10-08 22:35:01 +02:00
fvanroie
31a1272c5e Fix dropdown text when show_selected=0 2024-10-08 20:00:41 +02:00
fvanroie
22b9d894dc Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-10-05 00:55:23 +02:00
fvanroie
b55efe007d Add Lanbon L9 for testing 2024-10-05 00:51:03 +02:00
fvanroie
3047420676
Merge pull request #807 from shubham-vunet/driver-Approach2
Add Lilygo T-Panel v1.2 Pinmap and Drivers (WIP, Touchscreen not implemented)
2024-10-02 19:47:32 +02:00
Shubham Sharma
f61f0bdfa5
Fix code 2024-10-02 22:28:51 +05:30
Shubham Sharma
0f64a3b0f4 Add "Lilygo T-Panel v1.2" pinmap and touch screen 2024-10-02 21:17:45 +05:30
fvanroie
80a9ddb3ea Downgrade platform 2024-09-01 16:21:18 +02:00
fvanroie
ff83c7717c Test platform 5.4.0 for rc14 #643 2024-08-31 23:43:08 +02:00
fvanroie
53bd328178 Update ace.js to 1.36.2 2024-08-30 17:19:14 +02:00
fvanroie
52259a34a0 Update ace.js to 1.36.1 2024-08-29 23:07:19 +02:00
fvanroie
707078560d Disable useSoftTabs #788 2024-08-29 15:58:44 +02:00
fvanroie
b44e8e4951
Merge pull request #793 from HASwitchPlate/l10n_master
New Crowdin updates
2024-08-29 00:55:12 +02:00
fvanroie
1e0b85b3e4 New translations en.json (Swedish) 2024-08-29 00:32:09 +02:00
fvanroie
be3f934df0
Merge pull request #792 from HASwitchPlate/l10n_master
New Crowdin updates
2024-08-28 23:14:11 +02:00
fvanroie
24c39a4b71 New translations en_us.h (Swedish) 2024-08-28 23:04:50 +02:00
fvanroie
37758b1b26
Merge pull request #790 from HASwitchPlate/l10n_master
New Crowdin updates
2024-08-28 21:56:27 +02:00
fvanroie
be953b904a New translations en.json (Swedish) 2024-08-28 21:49:56 +02:00
fvanroie
b83276bca0 New translations en_us.h (Swedish) 2024-08-28 12:33:53 +02:00
fvanroie
f0506d185d New translations en.json (Swedish) 2024-08-28 12:33:52 +02:00
fvanroie
4809ac3915 New translations en.json (Swedish) 2024-08-28 09:53:27 +02:00
fvanroie
4d2aa8d8e0 New translations en_us.h (Swedish) 2024-08-28 01:45:50 +02:00
fvanroie
4b89d9ca52 New translations en.json (Swedish) 2024-08-28 01:45:49 +02:00
fvanroie
84ec6d125c
Merge pull request #789 from HASwitchPlate/l10n_master
New Crowdin updates
2024-08-27 23:58:06 +02:00
fvanroie
391401b3a3 New translations en.json (Spanish) 2024-08-27 23:55:05 +02:00
fvanroie
5cbb92d617 New translations en_us.h (Swedish) 2024-08-27 23:44:52 +02:00
fvanroie
e799a01bc5 New translations en.json (Swedish) 2024-08-27 23:44:51 +02:00
fvanroie
825f5c6da5 New translations en.json (Spanish) 2024-08-27 23:44:50 +02:00
fvanroie
08dd9c5004 Obsolete workflows 2024-08-26 02:47:24 +02:00
fvanroie
042fe05725 Update build.yaml zip step 2024-08-26 02:32:55 +02:00
fvanroie
7053024146 Upload assets only on release 2024-08-26 02:27:33 +02:00
fvanroie
4e16639794 Zip atrifacts before release upload 2024-08-26 02:22:51 +02:00
fvanroie
1f01ece609 Update release workflow 2024-08-26 02:12:32 +02:00
fvanroie
d6f3b52911 Update asset upload on release 2024-08-26 02:05:57 +02:00
fvanroie
962b01d91f Update build.yaml 2024-08-26 01:49:45 +02:00
fvanroie
401a134658 Add minifests to build step 2024-08-26 01:21:10 +02:00
fvanroie
ca346e868f Fix anti-burn when software rotation is enabled #764 2024-08-24 20:00:05 +02:00
fvanroie
e6eae8b391 Add retain flag to mqtt_send_state #781 2024-08-22 14:29:40 +02:00
fvanroie
73c1539fda Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-08-19 18:50:01 +02:00
fvanroie
be7eba0191 Downgrade acejs to 1.35.3 #783 2024-08-19 18:49:58 +02:00
fvanroie
472033446b
Merge pull request #780 from GiorgioAresu/devcontainer-configuration
Add devcontainer configuration
2024-08-12 11:20:36 +02:00
GiorgioAresu
8b173815c9 Add devcontainer configuration 2024-08-11 22:37:28 +02:00
fvanroie
dada05951c
Merge pull request #774 from yetanothercarbot/master
Add ESP32-S3-BOX-3 support.
2024-07-30 14:34:44 +02:00
yetanothercarbot
319e073e68
Merge branch 'HASwitchPlate:master' into master 2024-07-30 18:00:31 +10:00
yetanothercarbot
1ffa7b8636 ESP32-S3-BOX-3 support finalised 2024-07-30 17:56:00 +10:00
fvanroie
31572ef9d0 Add "event" key to discovery message for push button events 2024-07-23 22:44:50 +02:00
fvanroie
348852476d Use "event" group for pushbuttons in discovery { 2024-07-23 22:28:36 +02:00
fvanroie
2b083d376f Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-07-22 16:44:15 +02:00
fvanroie
734f11d3d8 Update ace?js to v1.35.4 2024-07-22 16:44:12 +02:00
fvanroie
4f8f01166c
Merge pull request #769 from FreeBear-nc/bugfixes
Move USB_TXD/RXD to is_system_pin()
2024-07-19 17:28:25 +02:00
FreeBear
0b30b075fa Move USB_TXD/RXD to is_system_pin() 2024-07-19 16:15:45 +01:00
fvanroie
c91b98ac30
Merge pull request #768 from FreeBear-nc/bugfixes
Hide TFT-G5 & USB GPIO pins in web page
2024-07-19 16:59:49 +02:00
FreeBear-nc
e1a063d8e1
Merge branch 'HASwitchPlate:master' into bugfixes 2024-07-19 15:25:41 +01:00
FreeBear
89ef57346a TFT_G5 was missing from the list of used GPIO pins.
Add the USB TX/RX pins to the list for the Guition ESP32-S3 4848S040 board.
2024-07-19 15:20:11 +01:00
fvanroie
20256b2953 Update ace.js to v1.35.3 2024-07-18 20:03:07 +02:00
fvanroie
bbd96b256a
Merge pull request #752 from FreeBear-nc/bugfixes
Was a mistake to hide TFT_BCKL gpio pin from the user. On some boards…
2024-06-14 14:29:57 +02:00
FreeBear
94ceaf2cf1 Was a mistake to hide TFT_BCKL gpio pin from the user. On some boards, it
can be reassigned by the user (on others, it is baked in to the hardware).
2024-06-14 00:03:26 +01:00
fvanroie
23c7727504
Merge pull request #746 from adampr1/patch-1
Add support for Waveshare ESP32-S3-Touch-LCD-4.3
2024-06-04 15:00:48 +02:00
adampr1
46956526b0
Merge branch 'HASwitchPlate:master' into patch-1 2024-06-04 09:49:54 +02:00
fvanroie
830bf702bd
Merge pull request #747 from adampr1/patch-2
Add support for Waveshare ESP32-S3-Touch-LCD-4.3
2024-05-30 19:25:59 +02:00
adampr1
9107474603
Add support for Waveshare ESP32-S3-Touch-LCD-4.3
Add support for Waveshare ESP32-S3-Touch-LCD-4.3 from https://github.com/HASwitchPlate/openHASP/discussions/602
2024-05-30 17:14:42 +02:00
adampr1
c4217a92e8
Add support for Waveshare ESP32-S3-Touch-LCD-4.3
Add suppor for ws_esp32_s3_touch_lcd_4p3 from post https://github.com/HASwitchPlate/openHASP/discussions/602
2024-05-30 17:12:30 +02:00
fvanroie
57207c7119 Update ace.js to 1.34.2 2024-05-27 17:11:00 +02:00
fvanroie
944f92e588 Add mqttEverySecond 2024-05-24 22:18:57 +02:00
fvanroie
b118e56245 Fix for lv_fs_if_pc_init 2024-05-24 22:06:17 +02:00
fvanroie
f175dc599a Prepare LVFS support for /sdcard 2024-05-24 21:58:15 +02:00
fvanroie
d903bc905f Add mqttEverySecond 2024-05-24 21:39:57 +02:00
fvanroie
8a341fd09c Update ace.js to 1.34.1 2024-05-24 13:50:15 +02:00
fvanroie
5c80f41fcf Add custom_state_subtopic 2024-05-24 05:14:49 +02:00
fvanroie
1f471ad308 Add custom_state_subtopic #611 2024-05-24 05:03:53 +02:00
fvanroie
a9d514b04c Flakey WiFi on Sunton #592 2024-05-24 04:12:41 +02:00
fvanroie
cd34d8994f Add elecrow-s3-8048c050_4MB 2024-05-24 00:09:52 +02:00
fvanroie
6f402cb42d Add guition-jc4827w543c_4MB 2024-05-23 16:17:50 +02:00
fvanroie
27a0e7ce73 Add jc4827w543c_4MB 2024-05-23 16:12:46 +02:00
fvanroie
13a211da4a Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-05-22 20:38:56 +02:00
fvanroie
cd3fa42fc0 Update ace.js to 1.34.0 2024-05-22 20:38:51 +02:00
fvanroie
e3bd3f6ac2
Merge pull request #740 from HASwitchPlate/l10n_master
New Crowdin updates
2024-05-22 20:17:50 +02:00
fvanroie
983cf13fd0 New translations en.json (Spanish) 2024-05-22 20:14:31 +02:00
fvanroie
92f682c6bd New translations en.json (French) 2024-05-22 20:14:30 +02:00
fvanroie
331c1d503d New translations en_us.h (Portuguese) 2024-05-22 20:14:28 +02:00
fvanroie
646f8d91fe New translations en_us.h (Spanish) 2024-05-22 20:14:25 +02:00
fvanroie
1ea0752004 New translations en_us.h (French) 2024-05-22 20:14:23 +02:00
fvanroie
83bdad83e5 New translations en_us.h (Portuguese, Brazilian) 2024-05-22 18:33:58 +02:00
fvanroie
fba1331c3b New translations en_us.h (Chinese Simplified) 2024-05-22 18:33:57 +02:00
fvanroie
ee5df54676 New translations en_us.h (Portuguese) 2024-05-22 18:33:56 +02:00
fvanroie
c088ddff8e New translations en_us.h (Dutch) 2024-05-22 18:33:55 +02:00
fvanroie
00df690a16 New translations en_us.h (Hungarian) 2024-05-22 18:33:54 +02:00
fvanroie
de4c1875c3 New translations en_us.h (German) 2024-05-22 18:33:53 +02:00
fvanroie
0e1d37c859 New translations en_us.h (Danish) 2024-05-22 18:33:52 +02:00
fvanroie
13095042dc New translations en_us.h (Spanish) 2024-05-22 18:33:51 +02:00
fvanroie
6d594e3d53 New translations en_us.h (French) 2024-05-22 18:33:50 +02:00
fvanroie
d2745abb44 New translations en_us.h (Romanian) 2024-05-22 18:33:49 +02:00
fvanroie
cc1d6d9458 Refactor format_bytes 2024-05-22 18:28:53 +02:00
fvanroie
4fbb2417fa Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-05-22 16:51:41 +02:00
fvanroie
07ecdcf1f2
Merge pull request #739 from FreeBear-nc/bugfixes
Using size_t limits max number to 2^32.
2024-05-22 16:54:21 +02:00
FreeBear
fcd99682b3 Forgot to roll back on a test. 2024-05-22 15:27:36 +01:00
FreeBear
e37ca4c318 Just in case file size in the TiB range gets passed, make sure we
don't index beyond the end of the array.
2024-05-22 15:21:44 +01:00
FreeBear
452c619e97 Use a const char* array for format_bytes suffixes at the expense of a little
more system memory.
2024-05-22 15:04:18 +01:00
FreeBear
b65bd46b41 2^60 is Exbi (Ei) not Zebi (Zi) 2024-05-22 12:18:03 +01:00
FreeBear
7dc3de34f8 One too many file system dividers used for megabyte comparison. 2024-05-22 11:59:56 +01:00
FreeBear
33f3c36915 Take onboard comment about loss of precision.
Using size_t would have overflowed at (approx) 2^28. But with a uint64_t
the limit is going to be up in the Exbi range (2^60).
2024-05-22 11:24:54 +01:00
FreeBear
aa09f4bfd4 Using size_t limits max number to 2^32. When dealing with SD cards
we could be asked to print a uint64 (for example, from SD.totalGytes()).
2024-05-22 00:51:02 +01:00
fvanroie
909afcf2ba UPdate ace.js to 1.33.3 2024-05-21 20:28:56 +02:00
fvanroie
3433efbb49 Update sensecap-indicator-d1 2024-05-21 15:50:57 +02:00
fvanroie
bfe590741a Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-05-21 15:48:25 +02:00
fvanroie
eff576efb8
Merge pull request #729 from kiwiz/master
Add support for Guition JC4827W543
2024-05-21 15:10:28 +02:00
fvanroie
9254fac675
Merge pull request #737 from FreeBear-nc/bugfixes
Missing the FILE_SIZE_DIVIDER for gigabits
2024-05-21 15:08:21 +02:00
FreeBear
ca6d521a0a Missing the FILE_SIZE_DIVIDER for gigabits - This results in the number
being printed with the decimal point in the wrong place.
2024-05-21 13:14:58 +01:00
K
86d4511940 Fix backlight freq and suffix build target 2024-05-20 12:18:33 -04:00
fvanroie
8fc9ec7e17
Merge pull request #733 from FreeBear-nc/spelling
Minor spelling mistake corrected
2024-05-20 17:17:37 +02:00
fvanroie
a6685c771f
Merge pull request #734 from FreeBear-nc/systemgpio
Add list of TFT gpio pins so that they can not be selected for IO.
2024-05-20 17:17:05 +02:00
FreeBear
7a3b8d0997 Add the touch gpio pins to the list so that they are hidden from
IO selection.
2024-05-20 15:30:15 +01:00
FreeBear
c70dfe6d42 Add list of TFT gpio pins so that they can not be selected for IO. 2024-05-20 15:03:19 +01:00
K
182c8c670b Add support for Guition JC4827W543 2024-05-18 19:32:04 -04:00
FreeBear
180cc84ea2 Minor spelling mistake corrected 2024-05-17 00:09:34 +01:00
fvanroie
660a8bb512 Update ace.js to 1.33.2 2024-05-13 13:44:00 +02:00
fvanroie
82e4095dd4
Merge pull request #714 from yetanothercarbot/master
Add support for 2424S012 (round display with ESP32-C3)
2024-04-25 17:51:14 +02:00
yetanothercarbot
78ac4d95b4 Boot without serial connected 2024-04-26 01:02:23 +10:00
yetanothercarbot
462491a5b2 Use SDK-provided define instead of own 2024-04-26 00:11:54 +10:00
yetanothercarbot
92bfd8a5cc Initial support (bootloops) 2024-04-25 23:48:34 +10:00
fvanroie
8b6cd9c058 Allow larger btnmap 2024-04-20 22:30:33 +02:00
fvanroie
3e48c23052
Merge pull request #711 from marsman7/feature-crowpanel-5inch
add crowpanel hmi 5inch 800x480
2024-04-20 17:35:54 +02:00
marsman7
63288601e7 add crowpanel hmi 5inch 800x480 2024-04-20 16:13:32 +02:00
fvanroie
c27c8b6d16 Update to rc12 2024-04-12 03:54:13 +02:00
fvanroie
e5b53ce6ae Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-04-12 03:46:12 +02:00
fvanroie
b49f82a425 mqtt_enqueue_message 2024-04-12 03:46:10 +02:00
fvanroie
75af4aed10 Add elecrow-s3-8048c070_4MB 2024-04-12 03:42:53 +02:00
fvanroie
577a7e7fb4
Merge pull request #705 from hb020/master
Allow overriding of LV_MEM_CUSTOM
2024-04-11 14:07:47 +02:00
hans boot
99d9a0668e Allow LV_MEM_CUSTOM override also in v8 2024-04-11 08:22:17 +02:00
hans boot
66fe185bfe Allow LV_MEM_CUSTOM override 2024-04-11 08:14:01 +02:00
fvanroie
2bbc2c53c1
Merge pull request #702 from marsman7/fix-mqtt_subscribe_group_topic
fix: Custom Group Topic name does not work
2024-04-08 01:03:59 +02:00
marsman7
482cda6898 fix: Custom Group Topic name does not work
issues #697

https://github.com/HASwitchPlate/openHASP/issues/697
2024-04-07 21:03:59 +02:00
fvanroie
4facdf0f54
Merge pull request #701 from HASwitchPlate/l10n_master
New Crowdin updates
2024-04-07 15:09:01 +02:00
fvanroie
a5b91a2e5a New translations en_us.h (German) 2024-04-07 15:08:35 +02:00
fvanroie
9458f6a66e
Merge pull request #699 from HASwitchPlate/l10n_master
New Crowdin updates
2024-04-07 15:08:15 +02:00
fvanroie
c6a6f54409 New translations en_us.h (German) 2024-04-07 15:04:11 +02:00
fvanroie
f15b27c143 Lower BACKLIGHT_FREQUENCY to 100 #691 2024-04-07 01:55:38 +02:00
fvanroie
2510a4304f New translations en_us.h (German) 2024-04-06 13:49:27 +02:00
fvanroie
f0eda5018a Update native platform version to 1.2.1 2024-04-04 03:15:48 +02:00
fvanroie
09dc8c947b Fix for Windows64_sdl 2024-04-04 02:45:16 +02:00
fvanroie
0c9151cf7a Fix Windows build 2024-04-04 02:34:27 +02:00
fvanroie
0bf0a02bdf Add #if HASP_USE_QRCODE 2024-04-04 01:36:25 +02:00
fvanroie
eff65ce02b Add #if HASP_USE_QRCODE 2024-04-04 01:33:52 +02:00
fvanroie
9ba255807e Add #if HASP_USE_QRCODE 2024-04-04 01:31:22 +02:00
fvanroie
9b57bf6feb Fix Linux build 2024-04-04 01:22:06 +02:00
fvanroie
1a08c2ca28 Disable HASP_USE_QRCODE on PC targets 2024-04-04 01:14:26 +02:00
fvanroie
4c61df0561 Add qrcode object 2024-04-04 01:07:52 +02:00
fvanroie
0293661bde Fix for Linux build 2024-04-04 01:07:11 +02:00
fvanroie
0cdf250d0c Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-04-04 01:04:07 +02:00
fvanroie
11e48603b6 Fix for linux build 2024-04-04 01:04:05 +02:00
fvanroie
e641a244c5
Merge pull request #695 from marsman7/feature-qrcode
fix: improve memory leaks on delete qrcode
2024-04-01 15:48:34 +02:00
fvanroie
3e2f0a8f8f
Merge pull request #694 from HASwitchPlate/l10n_master
New Crowdin updates
2024-04-01 15:47:53 +02:00
marsman7
3884b7b3f4 fix: improve memory leaks on delete 2024-04-01 15:28:08 +02:00
fvanroie
6eed344aac New translations en.json (Chinese Simplified) 2024-04-01 02:34:47 +02:00
fvanroie
5487edb3fe define 2024-04-01 01:00:34 +02:00
fvanroie
0c6afb21f1
Merge pull request #693 from HASwitchPlate/l10n_master
New Crowdin updates
2024-04-01 00:55:17 +02:00
fvanroie
c8ac856bfd New translations en_us.h (Dutch) 2024-04-01 00:53:18 +02:00
fvanroie
fa55cf4d04 New translations en.json (Dutch) 2024-04-01 00:53:14 +02:00
fvanroie
a5d1eb8d69 New translations en_us.h (German) 2024-04-01 00:53:12 +02:00
fvanroie
a6c5bed7e2
Merge pull request #692 from HASwitchPlate/l10n_master
New Crowdin updates
2024-03-31 23:53:22 +02:00
fvanroie
d3edd9ea1f New translations en_us.h (German) 2024-03-31 23:52:03 +02:00
fvanroie
796c365aff New translations en_us.h (German) 2024-03-31 23:28:40 +02:00
fvanroie
fcd86faa78 New translations en_us.h (German) 2024-03-31 22:08:43 +02:00
fvanroie
b4fc84b3b0 New translations en.json (German) 2024-03-31 20:47:01 +02:00
fvanroie
5c4ca1f609 New translations en_us.h (German) 2024-03-31 20:47:01 +02:00
fvanroie
ad657a0bbc New translations en_us.h (German) 2024-03-31 19:51:06 +02:00
fvanroie
8d0ba7e6f7 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-03-24 14:08:52 +01:00
fvanroie
126113d1f0 Comment rootca_crt_bundle_start 2024-03-24 14:08:48 +01:00
fvanroie
7dbf52734a
Merge pull request #674 from marsman7/master
Add QR-code object
2024-03-24 14:01:45 +01:00
fvanroie
d09452e962 Add Elecrow ESP32-S3 TFT 7.0" 2024-03-23 15:10:11 +01:00
fvanroie
3b9c2f23b3 Add size comment 2024-03-23 14:56:31 +01:00
fvanroie
3168714bc3 Add WiFi All Channel Scan 2024-03-23 14:54:12 +01:00
fvanroie
60a6a3d1d6 Update ace.js to v1.32.8 2024-03-23 14:17:32 +01:00
fvanroie
4b6a00283a Better dimming on esp32-s3-4848s040 2024-03-22 01:25:15 +01:00
fvanroie
fe5b42694c Update esp32-s3-4848s040_16MB 2024-03-21 01:03:28 +01:00
marsman7
6a819f58c7 QR-Code extended by lv_qrcode_get_text 2024-03-17 14:33:50 +01:00
marsman_be
4d25e77ea6 QR code preventing crashes 2024-03-15 11:15:38 +01:00
marsman7
3f4e79a195 qrcode default version increased 2024-03-14 19:45:53 +01:00
marsman7
053f1f91c8 Add QR-code object 2024-03-13 23:03:01 +01:00
fvanroie
b9cff872f5 Fix platform 2024-03-11 20:59:37 +01:00
fvanroie
408ab7af85 ArduinoJson dependencies 2024-03-11 20:35:22 +01:00
fvanroie
80b21d46dd rduinoJson dependencies 2024-03-11 20:24:26 +01:00
fvanroie
5ad81ff774 Update to TFT_eSPI v2.5.43 2024-03-11 20:19:15 +01:00
fvanroie
b5e413e150 Update to Tasmota core 2023.10.03 2024-03-11 15:03:24 +01:00
fvanroie
6abf99fdcd Disable Wireguard in default firmware #585 2024-03-11 14:29:27 +01:00
fvanroie
916cae2b28 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-03-10 21:22:43 +01:00
fvanroie
94207cc323 Lower BACKLIGHT_FREQUENCY to 2000 2024-03-10 21:22:39 +01:00
fvanroie
50f1068c7c
Merge pull request #581 from perexg/topic/black-screen
hasp dark theme - use black (no gradient) for the background
2024-03-10 14:27:43 +01:00
fvanroie
f27744b83b Remove Backlight fade 2024-03-10 14:19:16 +01:00
fvanroie
9d51e974de Remove Backlight fade 2024-03-10 14:15:48 +01:00
fvanroie
70738fb361 Add HASP_USE_ETHSPI guard 2024-03-02 19:57:52 +01:00
fvanroie
a51b3d820a
Merge pull request #659 from bensuffolk/network
Allow lanbon_eth to build
2024-03-02 19:37:17 +01:00
Ben Suffolk
fbc62ba97c
Merge branch 'HASwitchPlate:master' into network 2024-03-02 16:47:21 +00:00
fvanroie
ded1d3e4a4 Add esp32-2432s032c_4MB 2024-02-29 21:29:42 +01:00
fvanroie
006d4ffb3f Rotate screen for ili9342 build #544 2024-02-28 01:54:46 +01:00
fvanroie
50817f057e Add esp32-2432s028r-ili9342_4MB 2024-02-28 00:11:58 +01:00
fvanroie
5dc9d48c7e Add esp32-2432s028r-ili9342_4MB 2024-02-27 23:54:55 +01:00
fvanroie
e1e2ff3833 Add esp32-2432s028r-st7789_4MB 2024-02-27 00:06:46 +01:00
fvanroie
677e8cc1e7 Update Guition 2024-02-26 21:52:27 +01:00
fvanroie
82a382ad57 Fix Guition ESP32-S3-4848S040 2024-02-26 21:47:50 +01:00
fvanroie
ce99b815b9 Remove double quotes #637 2024-02-26 01:17:07 +01:00
fvanroie
ff6a8846ce Update copyright 2024-02-26 00:59:10 +01:00
fvanroie
4523f134ce Only serialize text, not tags 2024-02-26 00:47:49 +01:00
fvanroie
080b41e036 Fix FPSTR redefines 2024-02-25 23:59:57 +01:00
fvanroie
11f695aff7 Add MDNS discovery 2024-02-25 23:12:49 +01:00
fvanroie
510565ca51 Serialize event payloads properly #637 2024-02-25 21:28:38 +01:00
fvanroie
d9ee633c92 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-02-25 20:38:12 +01:00
fvanroie
cf5c02d487 Add MDNS discovery 2024-02-25 20:38:09 +01:00
fvanroie
e37d38e399 Add MDNS discovery 2024-02-25 20:36:08 +01:00
fvanroie
02715644bb
Merge pull request #650 from dgomes/fix_macos
Fix to compile in MacOS 14
2024-02-23 13:25:56 +01:00
Diogo Gomes
d9d4d8d0c9 fix to compile in MacOS 14 2024-02-22 23:24:24 +00:00
fvanroie
ac6796b19d Update ArduinoJson to 6.21.5 2024-02-22 16:19:28 +01:00
fvanroie
837061b380
Merge pull request #631 from kuba2k2/feature/pc-port
Improve PC port feature support (Win32/Linux)
2024-02-22 16:02:30 +01:00
fvanroie
d3b5658385 Disable fade #641 2024-02-17 15:21:54 +01:00
fvanroie
25a73b4255 Update build script 2024-02-17 14:29:35 +01:00
fvanroie
a3c2e9723b Fix for Linux build #641 2024-02-17 14:21:46 +01:00
fvanroie
2fe7bcc1a2
Merge pull request #641 from presslab-us/backlight_fade_cb
Use callback for backlight fade
2024-02-17 14:06:02 +01:00
Kuba Szczodrzyński
6a8bbce6ec
Restore lv_fs_if_init() on Arduino build 2024-02-15 17:37:08 +01:00
Kuba Szczodrzyński
d71473a4e7
Reflect MQTT state with online/offline scripts 2024-02-12 19:30:05 +01:00
Ryan Press
baa125d4b6 enable backlight fade 2024-02-12 10:25:58 -08:00
Kuba Szczodrzyński
37e66cdf5b
Rename PC build envs 2024-02-12 18:33:04 +01:00
Kuba Szczodrzyński
55f39f02d0
Revert changes unrelated to PC build 2024-02-12 18:24:52 +01:00
Kuba Szczodrzyński
b0969892fd
Workaround "clearpage all" crashing on PC build 2024-02-12 18:20:00 +01:00
Kuba Szczodrzyński
9b3c88492c
Switch to tty7 on POSIX fbdev 2024-02-12 16:32:38 +01:00
Kuba Szczodrzyński
d77428db54
Allow publishing MQTT message even with action tag 2024-02-10 23:58:37 +01:00
Kuba Szczodrzyński
d0d2bc1940
Enable Paho Async MQTT client on PC build 2024-02-10 23:43:28 +01:00
fvanroie
e974a42d41
Merge pull request #633 from perexg/topic/wireguard-cleanup
Little wireguard cleanups
2024-02-10 22:25:53 +01:00
Jaroslav Kysela
e93597a881 Little wireguard cleanups
- accept the password mask as valid input string in web ui
- do not set the new configuration immediatelly (use manual restart like for wifi)
2024-02-10 21:50:11 +01:00
Kuba Szczodrzyński
32c21b9c52
Implement command scheduling 2024-02-10 20:30:12 +01:00
Kuba Szczodrzyński
3fcae65fad
Allow suppressing console output on PC build 2024-02-10 18:20:54 +01:00
Kuba Szczodrzyński
3cb5eb2d58
Support event data substitution in action commands 2024-02-10 18:04:18 +01:00
Kuba Szczodrzyński
603d38ae3c
Support executing shell commands on PC build 2024-02-10 16:22:36 +01:00
Kuba Szczodrzyński
4fff3d79c5
Enable command console on PC build 2024-02-10 15:05:01 +01:00
Kuba Szczodrzyński
2738bff96a
Allow changing LVGL refresh and animation period 2024-02-10 12:11:37 +01:00
presslab-us
f1f2f51ba4
Merge branch 'HASwitchPlate:master' into backlight_fade_cb 2024-02-09 19:29:39 -08:00
Ryan Press
c01e4a799e Use callback for backlight fade 2024-02-09 19:28:57 -08:00
Kuba Szczodrzyński
de0aeab435
Hide active tty cursor on POSIX fbdev 2024-02-09 23:47:18 +01:00
Kuba Szczodrzyński
6bfe89cac0
Implement LVGL task for POSIX fbdev 2024-02-09 22:55:11 +01:00
Kuba Szczodrzyński
4c20d6a4b9
Allow choosing fbdev and evdev names, load POSIX settings from config 2024-02-09 22:35:01 +01:00
Kuba Szczodrzyński
a0c8fd49d4
Fix millis() overflow on 32-bit Linux 2024-02-09 20:45:53 +01:00
fvanroie
226a88f3df Updated libraries and CHANGELOG 2024-02-09 02:15:55 +01:00
fvanroie
da9b034289 Fix broken scripts 2024-02-09 02:15:30 +01:00
Kuba Szczodrzyński
a7d900ed7b
Support brightness control on Linux fbdev 2024-02-08 22:44:39 +01:00
Kuba Szczodrzyński
f36dd66a05
Fix memory corruption with memcpy(), support musl libc 2024-02-08 22:07:59 +01:00
Kuba Szczodrzyński
ed6b17cfd7
Print evdev input device resolution, enable cursor on fbdev 2024-02-08 22:02:23 +01:00
fvanroie
f4f5ae0f0d Update Graphics Libraries 2024-02-08 20:13:09 +01:00
fvanroie
18a3f0bb7f Fix macro 2024-02-08 19:47:53 +01:00
Kuba Szczodrzyński
9693ef361a
Scan for input devices on Linux, show splashscreen 2024-02-08 19:44:23 +01:00
Kuba Szczodrzyński
fdc5f9170a
Support evdev on Linux 2024-02-08 18:57:08 +01:00
fvanroie
1a5921080f Update Timezones 2024-02-08 18:21:22 +01:00
fvanroie
109f00368e Remove root CA cert bundle 2024-02-08 17:55:45 +01:00
fvanroie
1043f5ddd7 Update Changelog 2024-02-08 17:55:28 +01:00
fvanroie
7d804f8eab Update hostnames to openhasp.com 2024-02-08 17:23:04 +01:00
fvanroie
2038cce050 Update build actions to Node.js 20 2024-02-08 16:57:23 +01:00
fvanroie
91b347c8d1 Bump RC version 2024-02-08 16:46:10 +01:00
fvanroie
b85542c9ad Update build actions to Node.js 20 2024-02-08 16:44:17 +01:00
Kuba Szczodrzyński
ac5fe4a424
Add POSIX fbdev port 2024-02-08 16:37:14 +01:00
fvanroie
ce11627308 Add root CA cert bundle to src 2024-02-08 16:35:44 +01:00
fvanroie
af6576b402 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-02-08 16:28:15 +01:00
fvanroie
28152302b1 Update root CA certificates 2024-02-08 16:28:12 +01:00
fvanroie
775a269879
Merge pull request #632 from perexg/topic/wireguard-hostname
wireguard - allow to set hostname for the remote peer
2024-02-08 15:41:50 +01:00
Jaroslav Kysela
51f35e7d36 wireguard - allow to set hostname for the remote peer
WireGuard-ESP32 library uses lwip_getaddrinfo() call to resolve
IP/hostname string, so it should work.
2024-02-08 14:24:23 +01:00
Kuba Szczodrzyński
e922042a3d
Fix disk access path separator on Linux 2024-02-07 23:12:23 +01:00
Kuba Szczodrzyński
a884fbf705
Implement LVGL task for Windows GDI 2024-02-07 19:30:17 +01:00
Kuba Szczodrzyński
d0e383e398
Merge setup() and loop() of PC and Arduino 2024-02-07 17:19:45 +01:00
Kuba Szczodrzyński
cb1d860635
Cleanup PC entrypoint, remove MQTT CLI options 2024-02-07 16:33:52 +01:00
Kuba Szczodrzyński
0e87f52c1f
Support config file on PC build 2024-02-07 15:16:32 +01:00
fvanroie
b9a435f0a4 Update to ace?js 1.32.6 2024-02-07 14:29:13 +01:00
fvanroie
62f567773d Disable fade #626 2024-02-07 14:28:14 +01:00
Kuba Szczodrzyński
96bfbf397b
Add HASP_TARGET_ARDUINO and HASP_TARGET_PC macros 2024-02-07 11:11:15 +01:00
Kuba Szczodrzyński
b738c22c67
Disable app_hal.c if not using SDL2 2024-02-06 19:59:28 +01:00
Kuba Szczodrzyński
76b9be4d97
Add Win32Drv GDI port 2024-02-06 19:53:58 +01:00
Kuba Szczodrzyński
9b3bbcc107
Fix PC building with MQTT disabled 2024-02-06 19:52:57 +01:00
Kuba Szczodrzyński
a2d97204f8
Fix storage root path with LV_USE_FS_IF 2024-02-06 19:52:39 +01:00
Kuba Szczodrzyński
246f5e3ac2
Only enable SDL2 driver with USE_MONITOR 2024-02-06 19:52:23 +01:00
Kuba Szczodrzyński
a7b558eb33
Rename SDL2 port to PC 2024-02-06 19:52:00 +01:00
fvanroie
b1716fbca1 Prevent concurrently running scripts 2024-02-06 02:34:26 +01:00
fvanroie
1364795f98 Downgrade to Tasmota core 2023.10.02 2024-02-05 19:15:22 +01:00
fvanroie
71c20b88d6 Update to ace.js v1.32.5 2024-02-02 19:46:55 +01:00
fvanroie
9a97c35df1 Update Copyright to include 2024 2024-02-02 18:26:42 +01:00
fvanroie
fb2bebf14e Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2024-02-02 16:38:03 +01:00
fvanroie
e95b916157 Downgrade to Tasmota core 2023.10.02 2024-02-02 16:36:57 +01:00
fvanroie
71b1e5db40
Merge pull request #626 from presslab-us/backlight_fade
On ESP32 fade the backlight
2024-02-02 16:27:39 +01:00
Ryan Press
91faf61474 On ESP32 fade the backlight 2024-01-29 03:15:29 -08:00
fvanroie
54ca24405b
Merge pull request #625 from hb020/reenable-idle-scripts
re-enable idle scripts
2024-01-28 14:02:09 +01:00
hans boot
c190cf94b5 update to TAG_HASP, as requested 2024-01-27 15:51:33 +01:00
fvanroie
1cb1448e98
Merge pull request #624 from hb020/master
Allow more time for http get
2024-01-27 15:45:55 +01:00
hans boot
889682d49b re-enable idle scripts 2024-01-27 15:05:34 +01:00
hans boot
8436bb6493 revert
re-enable idle_* scripts
2024-01-27 14:45:49 +01:00
hans boot
03cd25edd2 re-enable idle_* scripts 2024-01-27 14:40:48 +01:00
hans boot
6bfdcd47a1 Allow more time for http get 2024-01-27 14:03:59 +01:00
fvanroie
2dce5da766
Merge pull request #622 from TheHexaMaster/master
Update sunton-esp32-s3-tft.ini
2024-01-25 00:29:26 +01:00
TheHexaMaster
db7c9ddf7b
Update sunton-esp32-s3-tft.ini
Fixed display flickering settings while using wifi for sunton-8048s070c_16MB display
2024-01-24 12:12:59 +01:00
fvanroie
c200edf823
Merge pull request #615 from amanaplan/TSC2007-correction
Corrected environment names for huzzah32-v2-* boards
2024-01-17 22:09:35 +01:00
Christian Stück
79f8ed0c33 Corrected environment names for huzzah32-v2-* boards 2024-01-17 10:11:52 -05:00
fvanroie
a57029c974
Merge pull request #605 from HASwitchPlate/revert-582-topic/idle-scripts
Revert "sleep state - run idle scripts and allow to control the backlight"
2024-01-17 14:33:39 +01:00
fvanroie
bc627f0d7b
Merge pull request #613 from amanaplan/TSC2007
Add support for updated Adafruit 2.4 and 3.5 TFT FeatherWings and HUZZAH32 board
2024-01-17 14:29:57 +01:00
fvanroie
0218736d1d
Update .gitmodules 2024-01-17 14:29:19 +01:00
fvanroie
cca34e65f8
Merge pull request #614 from tbxMb/gh-actions-esp32-s3-4848s040
Add esp32-s3-4848s040 to build.yaml
2024-01-17 14:28:32 +01:00
tbxMb
c411f2c3b0
Add esp32-s3-4848s040 to build.yaml 2024-01-17 14:21:18 +01:00
Christian Stück
a0ed65c4ce Add support for updated Adafruit 2.4 and 3.5 TFT FeatherWings and HUZZAH32 boards
Support added for the following displays:

- [Adafruit TFT FeatherWing - 2.4" 320x240 Touchscreen For All Feathers - V2](https://www.adafruit.com/product/3315)
- [Adafruit TFT FeatherWing - 3.5" 480x320 Touchscreen for Feathers - V2 with TSC2007](https://www.adafruit.com/product/3651)

Support added for the following board:

- [Adafruit HUZZAH32 ESP32 Feather V2 - 8MB Flash + 2 MB PSRAM - STEMMA QT](https://www.adafruit.com/product/5400)
2024-01-15 16:15:54 -05:00
Christian Stück
ab4664b4b8 Add support for TSC2007 touch controller 2024-01-15 15:59:42 -05:00
Christian Stück
a5e348e499 Add Adafruit TSC2007 library from https://github.com/adafruit/Adafruit_TSC2007 2024-01-15 15:52:11 -05:00
fvanroie
8d5ae794a1
Merge pull request #612 from tbxMb/esp32-s3-4848S040
Thank you very much, please test the build asset firmware when the Build Action is complete.
2024-01-15 06:42:56 +01:00
tbxMb
c5eedb9b18
Merge branch 'HASwitchPlate:master' into esp32-s3-4848S040 2024-01-14 21:02:36 +01:00
fvanroie
9864ae7a87
Revert "sleep state - run idle scripts and allow to control the backlight" 2024-01-04 03:09:40 +01:00
tbxmb
7af48cff37
Add modified init operations for esp32-s3-4848S040 #603 2024-01-03 03:28:36 +01:00
tbxmb
8b3451a134
Add: Pin configuration for esp32-s3-4848S040 #603 2024-01-02 19:33:56 +01:00
Alvaro Lobato
e756b4b4e2
Fix mac build:
- Change compiler version so it works with newer MacOS
- Fix library paths
- Exclude freetype which creates a build error
2024-01-02 19:32:05 +01:00
fvanroie
0ebfe7dcef
Merge pull request #597 from alvarolobato/fix_mac_build
Fix MacOS build
2023-12-24 23:30:39 +01:00
Alvaro Lobato
4de8f4953e Fix mac build:
- Change compiler version so it works with newer MacOS
- Fix library paths
- Exclude freetype which creates a build error
2023-12-22 00:02:05 +01:00
fvanroie
33d21e0675
Merge pull request #591 from TheHexaMaster/master
Added support for Wizee (Elecrow) 2.8 WZ2432R028 ESP32 Display
2023-12-08 21:38:50 +01:00
TheHexaMaster
62b858fc03
Update platformio_override-template.ini
Added wz2432r028
2023-12-08 21:20:12 +01:00
TheHexaMaster
982ec0bfa6
Create wz2432r028.ini
Support for Wizee 2,8" WZ2432R028 ESP32 Display
2023-12-08 21:19:23 +01:00
fvanroie
87e25de617 Update to ArduinoJson 6.21.4 2023-12-08 00:33:21 +01:00
fvanroie
6aac73484f Merge branches 'master' and 'master' of https://github.com/HASwitchPlate/openHASP 2023-12-06 22:26:01 +01:00
fvanroie
0e4fd945b2
Merge pull request #586 from HASwitchPlate/l10n_master
New Crowdin updates
2023-12-02 22:15:37 +01:00
fvanroie
20830101d2 Update to Ace JS v1.32.0 2023-12-02 22:12:47 +01:00
fvanroie
c7b7cd4f6a New translations en_us.h (Portuguese, Brazilian) 2023-12-01 23:55:06 +01:00
fvanroie
b994f41a07 New translations en.json (Portuguese, Brazilian) 2023-12-01 23:55:06 +01:00
fvanroie
a6ba5fdd7c New translations en_us.h (Chinese Simplified) 2023-12-01 23:55:05 +01:00
fvanroie
a6b660fb93 New translations en.json (Chinese Simplified) 2023-12-01 23:55:04 +01:00
fvanroie
d87f0f9eb2 New translations en_us.h (Portuguese) 2023-12-01 23:55:03 +01:00
fvanroie
3bb6b0b56c New translations en.json (Portuguese) 2023-12-01 23:55:02 +01:00
fvanroie
9a27448372 New translations en_us.h (Dutch) 2023-12-01 23:55:01 +01:00
fvanroie
9f661511e2 New translations en.json (Dutch) 2023-12-01 23:55:00 +01:00
fvanroie
132a074ea3 New translations en_us.h (Hungarian) 2023-12-01 23:54:59 +01:00
fvanroie
646f21e76e New translations en.json (Hungarian) 2023-12-01 23:54:58 +01:00
fvanroie
472a5629a2 New translations en_us.h (German) 2023-12-01 23:54:57 +01:00
fvanroie
a81a4879ca New translations en.json (German) 2023-12-01 23:54:56 +01:00
fvanroie
86c7190660 New translations en_us.h (Danish) 2023-12-01 23:54:55 +01:00
fvanroie
27ccdef806 New translations en.json (Danish) 2023-12-01 23:54:54 +01:00
fvanroie
b2d914f562 New translations en_us.h (Spanish) 2023-12-01 23:54:53 +01:00
fvanroie
a256ae4ca5 New translations en.json (Spanish) 2023-12-01 23:54:52 +01:00
fvanroie
745b415714 New translations en_us.h (French) 2023-12-01 23:54:51 +01:00
fvanroie
10f1ac0c91 New translations en.json (French) 2023-12-01 23:54:50 +01:00
fvanroie
099d75f7e0 New translations en_us.h (Romanian) 2023-12-01 23:54:49 +01:00
fvanroie
4714f2fe2e New translations en.json (Romanian) 2023-12-01 23:54:48 +01:00
fvanroie
ae58e7edf9
Merge pull request #585 from perexg/topic/wireguard
Implement WireGuard VPN
2023-12-01 23:04:15 +01:00
Jaroslav Kysela
2c94573edb add WireGuard implementation to increase security
WireGuard is really ideal for those IoT devices with limited resources.
2023-12-01 22:36:06 +01:00
Jaroslav Kysela
3789d446bd fix some warnings in the wireguard library 2023-12-01 22:05:02 +01:00
Jaroslav Kysela
45dd1ed438 Add wireguard library from https://github.com/ciniml/WireGuard-ESP32-Arduino 2023-12-01 22:05:02 +01:00
fvanroie
031c35d442
Merge pull request #584 from perexg/topic/config-jsondoc-alloc
use one allocation size for DynamicJsonDocument settings
2023-12-01 20:14:43 +01:00
Jaroslav Kysela
58970f485e use one allocation size for DynamicJsonDocument settings
The problem was detected in configSetup() - the configuration was read
only from EEPROM but not from SPI flash FS.

Cleanup things and use only one allocation size for both write and read
configuration operations.
2023-12-01 19:51:58 +01:00
fvanroie
894370b4cc
Merge pull request #582 from perexg/topic/idle-scripts
sleep state - run idle scripts and allow to control the backlight
2023-11-29 20:49:50 +01:00
Jaroslav Kysela
e092b72a6b always run idle scripts when sleep state changes 2023-11-29 18:11:20 +01:00
Jaroslav Kysela
e5e291c104 hasp dark theme - use black (no gradient) for the background
It does not so look really cool to have gradient and border in the dark screen background.
Use just plain dark, but keep background gradient for widgets.
2023-11-29 16:52:01 +01:00
fvanroie
b7283c9498 Revert Tasmota core 2023.07.00 on S2 2023-11-28 21:46:21 +01:00
fvanroie
8d8fc0e976 Revert esp_crt_bundle_set 2023-11-28 17:57:00 +01:00
fvanroie
2228ca04cd update Tasmota Core 2023.10.03 2023-11-28 17:56:36 +01:00
fvanroie
f32d78ee24 update Adafruit STMPE610, TFT_eSPI and Arduino_GFX 2023-11-28 16:17:38 +01:00
fvanroie
3fe34e17df Fix esp_crt_bundle_set 2023-11-28 16:17:09 +01:00
fvanroie
a6cbcadffb Update to Tasmota Core 2023.11.01 2023-11-28 16:09:15 +01:00
fvanroie
6cf4262f23 Update tools 2023-10-27 14:49:41 +02:00
fvanroie
9428da59e9
Merge pull request #561 from alranel/patch-1
Allow long WiFi passwords in the GUI
2023-10-27 13:24:46 +02:00
Alessandro Ranellucci
cfaf1496dd
Allow long WiFi passwords in the GUI 2023-10-27 10:48:06 +02:00
Ben Suffolk
0af0a775f5
Merge branch 'HASwitchPlate:master' into network 2023-10-08 11:25:26 +01:00
fvanroie
1b24478692
Merge pull request #553 from dfsx1/master
Fix #534 ILI9486 Failed to start: src/drv/tft/tft_driver_lovyangfx.cpp
2023-10-02 01:01:55 +02:00
dfsx1
ad0f69f68e Fix #534 ILI9486 Failed to start: src/drv/tft/tft_driver_lovyangfx.cpp 2023-10-01 18:44:01 +02:00
fvanroie
af9cf97a24
Merge pull request #539 from kinosang/mod/swipup
swip up to page back by default
2023-09-27 23:01:05 +02:00
fvanroie
4004188079
Merge pull request #543 from HASwitchPlate/l10n_master
New Crowdin updates
2023-09-27 23:00:09 +02:00
fvanroie
cabfce64c8 New translations en_US.h (Portuguese) 2023-09-13 20:02:59 +02:00
fvanroie
f28627c14d Fix invalid override 2023-09-13 17:29:08 +02:00
fvanroie
cedb130b75 Fix invalif override 2023-09-13 17:18:57 +02:00
fvanroie
da1305df76 Add panlee-zw3d95ce01s-tr 2023-09-13 17:02:04 +02:00
fvanroie
c053421d58 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-09-13 16:45:06 +02:00
fvanroie
febd01043a
Merge pull request #542 from HASwitchPlate/l10n_master
New Crowdin updates
2023-09-13 16:43:00 +02:00
fvanroie
50308777cb New translations en.json (Hungarian) 2023-09-13 16:41:56 +02:00
fvanroie
9d15258e96
Merge pull request #541 from HASwitchPlate/l10n_master
New Crowdin updates
2023-09-13 16:19:01 +02:00
fvanroie
c3e9fe14a4 New translations en.json (Hungarian) 2023-09-13 16:08:10 +02:00
fvanroie
16ae10255c New translations en.json (Hungarian) 2023-09-13 16:00:15 +02:00
fvanroie
96d0732b68
Merge pull request #538 from kinosang/mod/86s
add panlee-zw3d95ce01s-tr-4848_16MB
2023-09-13 15:54:24 +02:00
7IN0SAN9
e1371899bf
add panlee-zw3d95ce01s-tr-4848_16MB ref #435 2023-09-12 23:00:00 +08:00
7IN0SAN9
b7578182e6
swip up to page back by default 2023-09-12 22:56:26 +08:00
fvanroie
f326f48cd0 Update to ace.js v1.24.2 2023-09-10 13:22:13 +02:00
fvanroie
e2910604a2 Update to rc8 with Tasmota Core 2023.08.01 #513 2023-08-30 01:38:03 +02:00
fvanroie
dcb167c07e
Merge pull request #532 from marsman7/master
Update CHANGELOG.md - idle level system scripts
2023-08-26 20:36:04 +02:00
marsman7
1e5a281b22 Update CHANGELOG.md - idle level system scripts 2023-08-26 11:09:41 +02:00
fvanroie
c5ce7c6a9f dispatch_run_script already checks if file exists 2023-08-26 02:21:22 +02:00
fvanroie
71237c2702
Merge pull request #531 from marsman7/master
Adding system scripts that are automatically executed when idle level is changed
2023-08-26 01:55:54 +02:00
marsman7
4ae1e665a1 Adding additional system scripts that are automatically executed when the idle level is changed.
* idle_off.cmd
* idle_short.cmd
* idle_long.cmd

In example this scripts can use to easy control the backlight or change page

* idle_off.cmd

```
backlight {"state": true, "brightness": 255}
moodlight {"state": false}
```

* idle_short.cmd

```
backlight {"state": "on", "brightness": 50}
```

* idle_long.cmd

```
backlight {"state": false, "brightness": 5}
moodlight {"state": true, "color":"green"}
```
2023-08-25 22:50:55 +02:00
fvanroie
5aceb04a26 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-08-25 00:32:53 +02:00
fvanroie
47e9760500 Fix Makerfabs S3 tft35 spi display issues #528 2023-08-25 00:32:45 +02:00
fvanroie
0e0168487d
Merge pull request #527 from marsman7/master
fix compile error : 'lv_font_montserrat_14' was not declared in this scope
2023-08-22 23:28:24 +02:00
Martin
a4d6984797
Merge branch 'HASwitchPlate:master' into master 2023-08-22 23:00:59 +02:00
marsman7
fff79aabab fix compile error : 'lv_font_montserrat_14' was not declared in this scope 2023-08-22 22:56:27 +02:00
fvanroie
7cd9c9496c New translations en_US.h (Portuguese, Brazilian) 2023-08-22 17:59:28 +02:00
fvanroie
d7793049bd New translations en_US.h (Chinese Simplified) 2023-08-22 17:59:27 +02:00
fvanroie
0a2feee6ed New translations en_US.h (Portuguese) 2023-08-22 17:59:26 +02:00
fvanroie
80e29daa65 New translations en_US.h (Dutch) 2023-08-22 17:59:25 +02:00
fvanroie
49e1b83aae New translations en_US.h (Hungarian) 2023-08-22 17:59:24 +02:00
fvanroie
da39d2b37a New translations en_US.h (German) 2023-08-22 17:59:23 +02:00
fvanroie
06131f4171 New translations en_US.h (Danish) 2023-08-22 17:59:22 +02:00
fvanroie
a3e2f8dbbb New translations en_US.h (Spanish) 2023-08-22 17:59:21 +02:00
fvanroie
e7f57e2405 New translations en_US.h (French) 2023-08-22 17:59:20 +02:00
fvanroie
598bfb06ca New translations en_US.h (Romanian) 2023-08-22 17:59:19 +02:00
fvanroie
97c4f7550d Update translations en_US 2023-08-22 16:43:46 +02:00
fvanroie
c0edb143c3 Updatre translation en_US 2023-08-22 16:41:12 +02:00
fvanroie
a6719d0f35 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-08-22 16:33:55 +02:00
fvanroie
9c7ab21f62
Merge pull request #523 from marsman7/master
change german language de_DE.h
2023-08-22 01:09:19 +02:00
marsman7
5869f88f75 change german language de_DE.h 2023-08-21 23:14:08 +02:00
fvanroie
5b436b6159 Update to ace.js v1.24.1 2023-08-16 01:36:38 +02:00
fvanroie
74d0f5b193 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-08-13 20:02:01 +02:00
fvanroie
1b56f3de0b Update ace.js to v1.24.0 2023-08-09 13:32:09 +02:00
fvanroie
19ed33433e
Merge pull request #511 from yetanothercarbot/master
Add support for ESP-BOX and TT21100 touch driver
2023-08-05 19:56:52 +02:00
yetanothercarbot
964184d4c4 Support ESP-BOX 2023-08-05 20:47:44 +10:00
fvanroie
4142adafab Update to LovyanGFX 1.1.8 2023-08-03 16:25:25 +02:00
fvanroie
146c94063b Update to Tasmota Arduino Core 2.0.11 2023-07-24 18:53:33 +02:00
fvanroie
9c3e28f654 Update to ArduinoJson 6.21.3 2023-07-24 11:47:19 +02:00
fvanroie
4d6860ff43 Update Arduino_PCA9535SWSPI 2023-07-23 22:00:15 +02:00
fvanroie
37b3e488a4 Update defined(CONFIG_IDF_TARGET_ESP32S3) 2023-07-23 21:36:17 +02:00
fvanroie
7625d688be Add FT6336U 2023-07-23 20:10:01 +02:00
fvanroie
124a979569 Add sensecap-indicator-d1_8MB 2023-07-23 17:12:48 +02:00
fvanroie
7682eea7b0 Add sensecap-indicator-d1_8MB 2023-07-23 16:28:36 +02:00
fvanroie
4e5114a01b Add SenseCAP Indicator D1 2023-07-23 16:20:39 +02:00
fvanroie
2f4092b39e Rename to ESP32-Terminal 2023-07-18 17:35:30 +02:00
fvanroie
2e5324192b Rename to ESP32-Terminal 2023-07-18 17:35:16 +02:00
fvanroie
dbe3d7e5fb Revent Adafruit STMPE610 to v1.1.4 2023-07-18 16:14:48 +02:00
fvanroie
ed56d9ee42 Update CHANGELOG and libraries 2023-07-18 15:51:13 +02:00
fvanroie
a790679466 Add Elecrow ESP-Terminal SPI and RGB 2023-07-18 15:18:33 +02:00
fvanroie
8c8a7eb717
Merge pull request #487 from HASwitchPlate/l10n_master
New Crowdin updates
2023-07-16 16:54:08 +02:00
fvanroie
8c51550685
Merge pull request #505 from paravoid/makerfabs_4MB
Add 4MB variant for Makerfabs ESP32 TFT Touch
2023-07-16 16:49:32 +02:00
fvanroie
652d0e0223
Merge pull request #507 from paravoid/spelling-changelog
Spelling fixes (changelog)
2023-07-16 16:22:01 +02:00
fvanroie
46a8f6e3b9 New translations en_US.h (Portuguese, Brazilian) 2023-07-16 16:15:21 +02:00
fvanroie
5511d5864b New translations en_US.h (Chinese Simplified) 2023-07-16 16:15:20 +02:00
fvanroie
9b24d43aa3 New translations en_US.h (Portuguese) 2023-07-16 16:15:19 +02:00
fvanroie
1d35530cbe New translations en_US.h (Dutch) 2023-07-16 16:15:18 +02:00
fvanroie
b7be2adaba New translations en_US.h (Hungarian) 2023-07-16 16:15:17 +02:00
fvanroie
081cb69b60 New translations en_US.h (German) 2023-07-16 16:15:16 +02:00
fvanroie
608e2efe6a New translations en_US.h (Danish) 2023-07-16 16:15:15 +02:00
fvanroie
35068e39cb New translations en_US.h (Spanish) 2023-07-16 16:15:14 +02:00
fvanroie
5d9fecceaa New translations en_US.h (French) 2023-07-16 16:15:13 +02:00
fvanroie
b18b72b90d New translations en_US.h (Romanian) 2023-07-16 16:15:12 +02:00
Faidon Liambotis
76a0d54e96 Spelling fixes (changelog)
Fix some very minor issues with the changelog, the most important of
which is... the filename :)
2023-07-16 17:13:38 +03:00
Faidon Liambotis
c1fa5a8cb1 Add 4MB variant for Makerfabs ESP32 TFT Touch
My Makerfabs ESP32 TFT Touch, v1.1 on the silkscreen, purchased in
October 2020, has a 4MB flash as reported by esptool flash_id:
  Manufacturer: 20
  Device: 4016
  Detected flash size: 4MB

Add a makerfabs-tft35-cap_4MB variant, and rename makerfabs-tft35-cap to
makerfabs-tft35-cap_16MB.
2023-07-16 17:05:55 +03:00
fvanroie
ac3a385c04
Merge pull request #506 from paravoid/spelling
Thank you very much for fixing these spelling mistakes. Much appreciated!
2023-07-16 15:38:14 +02:00
Faidon Liambotis
5b3f9f0d8c Spelling fixes (comments & variables) 2023-07-16 16:19:42 +03:00
Faidon Liambotis
bc407b3613 Spelling fixes (user-visible)
While debugging a few WiFi issues, I got a bunch of "Unkown" errors. Fix
this, and an unrelated, but also user-visible s/propery/property/.
2023-07-16 16:19:40 +03:00
fvanroie
7c35ef778d Add ESP32C3 2023-07-12 16:44:27 +02:00
fvanroie
7b10553a5e Update ace.js to 1.23.4 2023-07-12 14:15:16 +02:00
fvanroie
012d6afa6c Update ace.js to 1.23.3 2023-07-11 00:38:50 +02:00
fvanroie
70b4672733 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-07-07 17:17:08 +02:00
fvanroie
579d24361a Update ace.js to v1.23.2 2023-07-07 17:16:21 +02:00
fvanroie
6fd20bae3b Fix flash partition size 2023-07-06 22:22:41 +02:00
fvanroie
a1b514eac9
Update hasp_mqtt.h 2023-07-03 17:43:20 +02:00
fvanroie
f91e2b1d5c
Merge pull request #503 from bensuffolk/master
Comment out LV_FONT_DEFAULT to allow custom builds to compile
2023-07-03 17:32:53 +02:00
Ben Suffolk
a3bcd82a17 Updated ETHSPI to use the correct Ethernet mac address from the ESP fuses instead of reusing the WiFi mac address 2023-07-02 16:10:46 +01:00
Ben Suffolk
5d505a630c Fixed build for W5500 ethernet, adding missing files from esp-idf no longer included in the Arduino Framework 2023-07-02 16:09:49 +01:00
Ben Suffolk
14d5c7ace5 Make mqtt_esp honour the MQTT_GROUPNAME define 2023-07-02 13:54:54 +01:00
Ben Suffolk
2bf8ebfb56 Comment out LV_FONT_DEFAULT to allow custom builds to compile 2023-07-02 12:07:00 +01:00
fvanroie
5c08b2a567
Merge pull request #500 from aseanwatson/cpicker_improvements
Improve cpicker in two ways
2023-06-22 12:36:41 +02:00
Sean
17b13e35d5 Improve cpicker in two ways
\#1. Add support for `mode` as an enum of `hue`, `saturation`, and
`value`.

\#2. Add support for `mode_fixed` attribute. Enable to prevent a long
press from cycling through the modes.

\#3. Have MQTT status responses include `h`, `s`, and `v` attributes
from `cpicker`.
2023-06-22 01:41:29 -07:00
fvanroie
dcc33c5955 Add ESP Terminal SPI and RGB 2023-06-21 17:53:49 +02:00
fvanroie
9dfe882e61 Update to ace.js 1.23.0 2023-06-21 15:04:49 +02:00
fvanroie
fd6a689ec5 New translations en.json (Dutch) 2023-06-19 20:43:13 +02:00
fvanroie
96eb4f7e88 Make NTP servers optional 2023-06-14 14:48:21 +02:00
fvanroie
c9b6e2e67f Update Arduino core 2.0.10 with ESP IDF 4.4.5 2023-06-14 14:46:48 +02:00
fvanroie
c38f2467b0 Fix reserved pins on ESP32 2023-06-14 14:46:21 +02:00
fvanroie
c1d17825e4 Update to Tasmota Arduino 2.0.10 and ESP-IDF 4.4.5 2023-06-14 11:27:25 +02:00
fvanroie
e07958b631 Update to Tasmota Arduino Core 2.0.10 with IDF 4.4.5 2023-06-14 11:25:41 +02:00
fvanroie
f805b90b9d Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-06-11 19:13:11 +02:00
fvanroie
2b34d3d924 Update to LovyanGFX 1.1.7 and ace.js 1.22.1 2023-06-11 19:13:09 +02:00
fvanroie
65fdbdb738
Merge pull request #493 from d00616/Board_ESP32-2432S032C
Add Sunton ESP32-2432S032C
2023-06-09 17:53:51 +02:00
Frank Holtz
7a6e526aa5 Add Sunton ESP32-2432S032C 2023-06-09 09:58:15 +02:00
fvanroie
55152291d1 Add makerfabs-s3-tft40 and makerfabs-s3-tft43 2023-05-28 18:19:25 +02:00
fvanroie
dd0c862aad Add gpio_set_digital_value #464 2023-05-17 17:40:33 +02:00
fvanroie
c47a1b9b5d Update to Tasmota core 2.0.9.2023.05.17 IDF 4.4.4 2023-05-17 13:21:37 +02:00
fvanroie
83fe5474f4 New translations en.json (Danish) 2023-05-17 03:04:53 +02:00
fvanroie
15c9858d37 New translations en.json (Dutch) 2023-05-17 03:04:49 +02:00
fvanroie
23eadbb1eb New translations en_US.h (Chinese Simplified) 2023-05-17 02:47:59 +02:00
fvanroie
e8de162d8c New translations en.json (Chinese Simplified) 2023-05-17 02:47:59 +02:00
fvanroie
24e27ac3f3 New translations en_US.h (Danish) 2023-05-17 02:47:58 +02:00
fvanroie
38b316a375 New translations en.json (Danish) 2023-05-17 02:47:57 +02:00
fvanroie
37ea5da35b Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-05-17 01:40:01 +02:00
fvanroie
4cfd34a866 New translations en_US.h (Portuguese, Brazilian) 2023-05-17 01:36:27 +02:00
fvanroie
8be5599d88 New translations en_US.h (Portuguese) 2023-05-17 01:36:27 +02:00
fvanroie
38679100d5 New translations en_US.h (Dutch) 2023-05-17 01:36:26 +02:00
fvanroie
23cb1e03e5 New translations en_US.h (Hungarian) 2023-05-17 01:36:25 +02:00
fvanroie
1a5a3fc966 New translations en_US.h (German) 2023-05-17 01:36:25 +02:00
fvanroie
d8b5e4537c New translations en_US.h (Spanish) 2023-05-17 01:36:24 +02:00
fvanroie
8c5bd749f3 New translations en_US.h (French) 2023-05-17 01:36:23 +02:00
fvanroie
d3ab954f25 New translations en_US.h (Romanian) 2023-05-17 01:36:23 +02:00
fvanroie
346e4f93f9 New translations en.json (Portuguese, Brazilian) 2023-05-17 01:36:22 +02:00
fvanroie
dd076ec34a New translations en.json (Portuguese) 2023-05-17 01:36:21 +02:00
fvanroie
115f11da70 New translations en.json (Dutch) 2023-05-17 01:36:21 +02:00
fvanroie
6b9b66bc35 New translations en.json (Hungarian) 2023-05-17 01:36:20 +02:00
fvanroie
0ae9bd02f6 New translations en.json (German) 2023-05-17 01:36:20 +02:00
fvanroie
0f50710708 New translations en.json (Spanish) 2023-05-17 01:36:19 +02:00
fvanroie
57f03e1f34 New translations en.json (French) 2023-05-17 01:36:18 +02:00
fvanroie
4d4b9bd988 New translations en.json (Romanian) 2023-05-17 01:36:18 +02:00
fvanroie
2363732a77 Update Crowdin configuration file 2023-05-17 01:21:23 +02:00
fvanroie
6bb74b6321 Update Crowdin configuration file 2023-05-16 21:56:14 +02:00
fvanroie
28177bd846 Update Crowdin configuration file 2023-05-16 20:51:43 +02:00
fvanroie
958ff1b659 Ipdate acejs to v1.21.1 2023-05-16 17:21:51 +02:00
fvanroie
0e1241ccf9 Fix linux build 2023-05-15 20:42:17 +02:00
fvanroie
850bcd357d Update acejs to v1.21.0 2023-05-15 13:17:13 +02:00
fvanroie
6181837cb4 Update ini files 2023-05-12 16:38:13 +02:00
fvanroie
75f61affe3 Update to acejs v1.20.0 2023-05-12 15:30:03 +02:00
fvanroie
894a6657d7 Revert F() and move char* to FlashStringHelper 2023-05-12 14:11:05 +02:00
fvanroie
6ccd10dbe0 Revert F() and move char* to FlashStringHelper 2023-05-09 16:13:39 +02:00
fvanroie
af24bedf6d Fix ttgo-t7-v1_5_ili9341 environment name 2023-05-09 15:38:38 +02:00
fvanroie
86321beb5d Remove F() and move FlashStringHelper to char* 2023-05-09 15:05:32 +02:00
fvanroie
aee55907e4 Update to Tasmota Arduino Core 2.0.9 and IDF 4.4.4 2023-05-09 15:02:52 +02:00
fvanroie
baa37d0364 Update to acejs v1.19.0 2023-05-03 15:51:26 +02:00
fvanroie
aaf535c185 Update License 2023-05-02 13:31:40 +02:00
fvanroie
646ad3d8ca Add Lilygo T-HMI 2023-05-02 13:31:31 +02:00
fvanroie
82482c7c6e Fix page 0 title 2023-05-02 13:20:47 +02:00
fvanroie
f76dee8c88 Update to rc4 2023-04-15 20:52:23 +02:00
fvanroie
a99cc4ec53 Allow HASP_USE_GPIO37 and HASP_USE_GPIO38 to enable GPIO37 and 38 on some boards #453 2023-04-14 02:37:57 +02:00
fvanroie
8148bbc988 Allow HASP_USE_GPIO37 and HASP_USE_GPIO38 to enable GPIO37 and 38 on some boards #453 2023-04-14 02:36:41 +02:00
fvanroie
75997bcde8 Fix backlight state not sent on first touch event 2023-04-14 02:33:50 +02:00
fvanroie
3855d32713 Fix Linux compile error 2023-04-14 00:28:49 +02:00
fvanroie
fe29aafd5b Add timeout parameter to gui_acquire() 2023-04-14 00:09:52 +02:00
fvanroie
871a795210 Add timeout parameter to gui_acquire() 2023-04-14 00:09:26 +02:00
fvanroie
3436cb614d Tasmota Core 2.0.7 based on IDF 4.4.4 2023-04-14 00:08:40 +02:00
fvanroie
97025a0e57 Add HASP_USE_LVGL_TASK 2023-04-14 00:08:12 +02:00
fvanroie
08c465eee5 Update to ace.js v1.17.0 2023-04-13 19:19:27 +02:00
fvanroie
353d33a54d Add makerfabs-s3-tft40-rgb 2023-04-13 19:18:28 +02:00
fvanroie
66a7d1a394 Add M5Stack.hpp 2023-04-13 00:25:17 +02:00
fvanroie
6f4bde6556 Remove obsolete objid property 2023-04-13 00:17:54 +02:00
fvanroie
b74066253c Update to ArduinoJson 6.21.2 2023-04-13 00:08:25 +02:00
fvanroie
a154bb856f LovyanGFX driver update 2023-04-12 23:32:53 +02:00
fvanroie
04daca44d4 Add Makerfabs ESP32-S3 Parallel TFT With Touch 2023-04-12 23:32:06 +02:00
fvanroie
bba7eddd2b Remove obsolete commands and txt property 2023-04-12 23:31:30 +02:00
fvanroie
34149b875a Adjust Sunton timings 2023-04-12 04:22:24 +02:00
fvanroie
8460286641 Adjust Sunton timings 2023-04-12 03:52:06 +02:00
fvanroie
ed596fe72e RC3 and ArduinoJson v6.21.1 2023-04-11 02:51:50 +02:00
fvanroie
e1d78f7c1b TFT_PREFER_SPEED=12000000 2023-04-11 02:44:18 +02:00
fvanroie
d07f7cb83e TFT_PREFER_SPEED=12000000 2023-04-11 02:43:37 +02:00
fvanroie
516b42a7e8 Update wifiShowAP() 2023-04-11 00:23:34 +02:00
fvanroie
7f9dc100bd Update GS-T3E to PCB v2.3 2023-04-11 00:06:32 +02:00
fvanroie
538ca64209 Update Sunton TFT_PREFER_SPEED 2023-04-08 17:59:24 +02:00
fvanroie
3ab88a3485 Fix MQTT_PORT on Windows 2023-03-19 16:47:18 +01:00
fvanroie
c7b8b847ad
Merge pull request #447 from Eshmun/master
Fix custom topic when HASP_USE_CUSTOM is defined
2023-03-15 18:08:18 +01:00
Eshmun
93529509d6 Fix custom topic 2023-03-15 01:06:45 +01:00
fvanroie
3e6c9a67ce Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-03-14 20:54:03 +01:00
fvanroie
e20e9fe500 Remove template task when label is deleted #446 2023-03-14 20:53:58 +01:00
fvanroie
a5ef4c78b6
Update bug_report.md 2023-03-14 19:22:15 +01:00
fvanroie
e783544a9c Update to 0.7.0-rc1 2023-03-03 14:00:29 +01:00
fvanroie
50e06d23d3 Update lanbon_l8-hs.jsonl 2023-02-26 21:25:00 +01:00
fvanroie
eac43ff003 Make WiFi config optional in Web UI 2023-02-26 19:59:21 +01:00
fvanroie
ac17ec87ff Add pages.jsonl configuration option 2023-02-26 19:56:35 +01:00
fvanroie
df4714cfe5 Add default pages.jsonl config option 2023-02-26 19:55:41 +01:00
fvanroie
83d2ab0ad6 Fix for MQTT Port is not saved #434 2023-02-26 19:46:05 +01:00
fvanroie
0b6a2ff0de Set default gpios for Lanbon L8-HS 2023-02-25 21:40:44 +01:00
fvanroie
0e16eeb9e1 Fix typos 2023-02-25 21:39:49 +01:00
fvanroie
265f9c42a9 Fix Captive Portal 2023-02-25 17:30:36 +01:00
fvanroie
f58b1682be Set the default backlight pin 2023-02-25 03:51:56 +01:00
fvanroie
871716f72b Default ansi codes to off 2023-02-25 03:50:56 +01:00
fvanroie
31de835f4f Add HASP_DEBUG flag 2023-02-25 03:50:30 +01:00
fvanroie
d41d22024f Add ^C = Cancel (Quit) to telnet #291 2023-02-25 03:43:53 +01:00
fvanroie
3ad815cd5d Make console less chatty 2023-02-25 03:42:50 +01:00
fvanroie
92b360a7ad action backwards compatibility 2023-02-25 03:42:23 +01:00
fvanroie
f309e7cc25 Detect Ctrl-C and Ctrl-D in Putty #291 2023-02-24 21:21:44 +01:00
fvanroie
b2a3e7425a Probe for GT911 address if TOUCH_IRQ not set 2023-02-24 00:38:12 +01:00
fvanroie
6f089d9145 Probe for GT911 address if TOUCH_IRQ not set 2023-02-23 18:07:12 +01:00
fvanroie
6e21425fa8 Dont use GT911 touch driver with HASP_USE_LGFX_TOUCH 2023-02-23 14:33:05 +01:00
fvanroie
ed9ece22a4 Fix touch resolution for Sunton 8048S043C 2023-02-23 04:01:47 +01:00
fvanroie
de91d0d610 Update GT911 Touch driver 2023-02-23 02:00:10 +01:00
fvanroie
2800795207 Update GT911 Touch driver 2023-02-23 01:58:26 +01:00
fvanroie
87ce17aec7 Update GT911 Touch driver 2023-02-23 01:53:21 +01:00
fvanroie
db24ab0075 WT32 SC01 Plus configuration fix 2023-02-22 21:51:37 +01:00
fvanroie
425e134823 Fix OTA webform and reduce flickering of progressbar 2023-02-19 22:25:16 +01:00
fvanroie
4d93dbdabf Rework action, swipe and tag #432 2023-02-19 17:06:02 +01:00
fvanroie
43f36422d6 Backwards compatibility for swipe property #432 2023-02-19 15:20:31 +01:00
fvanroie
42cd5f91e2 Update assets 2023-02-18 22:45:24 +01:00
fvanroie
43e0ff9270 Fix CI/CD and update binary assets 2023-02-18 22:38:26 +01:00
fvanroie
95d50ff971 Update config files 2023-02-16 21:33:34 +01:00
fvanroie
dd1f7b290b Update to Tasmota Core 2023.01.01 2023-02-16 20:30:26 +01:00
fvanroie
53ae3e5fc8 Use Tasmota Core 2023.01.01 2023-02-16 16:58:32 +01:00
fvanroie
8e8c0c03a9 Update Changelog 2023-02-16 05:14:14 +01:00
fvanroie
93409caa69 Update to Tasmota Core 2.0.6 2023-02-16 05:13:57 +01:00
fvanroie
2f92ba4c59 Update to Tasmota Core 2.0.6 2023-02-16 05:11:24 +01:00
fvanroie
60088f7a77 Update to Tasmota Core 2.0.6 2023-02-16 05:11:07 +01:00
fvanroie
87768f3040 Use secondary color for Toggle buttons in HASP theme 2023-02-16 04:28:55 +01:00
fvanroie
46e9e97132 Allow any command in the swipe attribute (like action) 2023-02-16 04:27:48 +01:00
fvanroie
c296a5e568 Configurable MQTT Topic #428 2023-02-15 20:09:13 +01:00
fvanroie
59bc01be04 Default timezone Etc/Universal 2023-02-14 21:58:15 +01:00
fvanroie
912a69ad31 GT911 driver update 2023-02-14 06:07:12 +01:00
fvanroie
08367a06fa Add I2C_TOUCH_ADDRESS 2023-02-14 05:31:23 +01:00
fvanroie
94642560ed Update ESP32-S2 Environment 2023-02-14 04:53:53 +01:00
fvanroie
cf03790d42 Minor tweaks 2023-02-14 03:55:36 +01:00
fvanroie
303cd45a11 Minor tweaks 2023-02-14 03:55:07 +01:00
fvanroie
8bd001ccb0 Allow longer filenames in FTP #283 2023-02-14 03:40:56 +01:00
fvanroie
187ad58dc5 Update Web UI to petite-vue app 2023-02-14 03:40:15 +01:00
fvanroie
4e681edcaf Update to LovyanGFX 1.1.2 and ArduinoJson 6.20.1 2023-02-09 23:23:13 +01:00
fvanroie
62999284b2 Make Etc the default time region 2023-02-09 23:15:39 +01:00
fvanroie
634c89a386 Fix pressed color and use secondary color for Toggled 2023-02-08 23:42:30 +01:00
fvanroie
1b9135e355 Don't use console if Serial port is disabled 2023-02-08 17:03:01 +01:00
fvanroie
6745c38773 Add T-Display-S3 2023-02-08 00:36:19 +01:00
fvanroie
f372fa542c Set all objects to clickable 2023-02-06 14:18:38 +01:00
fvanroie
ff23d19f08 Allow line and block comments in pages.jsonl 2023-02-05 05:50:21 +01:00
fvanroie
aa1f4e7642 Fix wt32-sc01_4MB flash size 2023-02-04 23:56:04 +01:00
fvanroie
16c900d5e4 Improve antiburn speed on large displays 2023-02-02 04:16:43 +01:00
fvanroie
7934c47509 Add missing tag in configOutput 2023-01-31 03:35:25 +01:00
fvanroie
f842a744e4 Add timezone to possix format 2023-01-31 03:34:51 +01:00
fvanroie
aaa94d263d Add per mille and per ten thousand glyphs 2023-01-31 03:28:37 +01:00
fvanroie
bc53a6fab9 Update static files 2023-01-31 03:27:43 +01:00
fvanroie
321407238d Update to SimpleFTPServer 2.1.5 #283 2023-01-31 03:25:43 +01:00
fvanroie
7c0bc16629 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-01-29 23:53:18 +01:00
fvanroie
ac67dc65a2 Update x509_crt_bundle 2023-01-29 23:53:14 +01:00
fvanroie
a585b969b8
Update CHANGLELOG.md 2023-01-29 21:23:53 +01:00
fvanroie
de4432ce20 Add glyps ‰ and ‱ 2023-01-29 15:01:47 +01:00
fvanroie
d664693407 Fix Button discovery payload #421 2023-01-28 23:10:18 +01:00
fvanroie
972ed6583f Clean-up ESP32-S3 ini files 2023-01-27 05:52:39 +01:00
fvanroie
e379d9276f Clean-up ESP32-S3 ini files 2023-01-26 18:24:09 +01:00
fvanroie
6b05d87b00 Clean-up ESP32 ini files 2023-01-26 18:13:14 +01:00
fvanroie
b6b3cb26da Clean-up ESP32 ini files 2023-01-26 16:52:27 +01:00
fvanroie
27f3de640c Clean-up ESP32 ini files 2023-01-26 16:14:55 +01:00
fvanroie
89753608d7 Clean-up ESP32 ini files 2023-01-26 15:59:37 +01:00
fvanroie
434563b5eb Correct arduino_esp32_v2 ini flags 2023-01-26 14:15:05 +01:00
fvanroie
eca33d0d84 Update freetouchdecj 2023-01-26 01:46:58 +01:00
fvanroie
0362cdc1ce Add nvs_user_begin 2023-01-26 01:11:49 +01:00
fvanroie
a6cf4060d6 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-01-26 01:01:18 +01:00
fvanroie
e2670ab702 Move #include "hasp_config.h" to hasplib 2023-01-26 01:01:13 +01:00
fvanroie
29fbb358dd Bump version to 0.7.0-dev 2023-01-26 00:39:56 +01:00
fvanroie
81b20df787
Update CHANGLELOG.md 2023-01-26 00:19:59 +01:00
fvanroie
d4339cd1a4 Partition Schema change 2023-01-20 22:39:02 +01:00
fvanroie
fa61cfdaf1 Apply fonts 2023-01-20 20:11:44 +01:00
fvanroie
5f376e2344 Include bitmap fonts in 12, 16, 24 & 32pt sizes 2023-01-20 18:59:31 +01:00
fvanroie
445446111b Include bitmap fonts in 12, 16, 24 & 32pt sizes 2023-01-20 18:54:35 +01:00
fvanroie
e22d1e14a8 Update api/license endpoint 2023-01-20 18:52:06 +01:00
fvanroie
a4f1fdde83 Update fonts and static web files 2023-01-20 02:34:24 +01:00
fvanroie
7a83367ee5 Fix LVGL v7 bug #419 2023-01-18 23:06:57 +01:00
fvanroie
1e517c3b24 Bring back 2 bitmap fonts 2023-01-18 20:52:21 +01:00
fvanroie
b3a641db15 Add HASP_LOG_TASKS 2023-01-17 23:13:06 +01:00
fvanroie
d5337fe147 Add HASP_LOG_TASKS 2023-01-17 23:05:07 +01:00
fvanroie
f542195dd6 Fix jsonl NoMemory error 2023-01-17 19:55:19 +01:00
fvanroie
ec4b54f05f Update TFT_eSPI to 2.5.0 2023-01-17 17:11:51 +01:00
fvanroie
116877099b Use heap memory for large JsonDocuments 2023-01-17 16:45:26 +01:00
fvanroie
d6c5f64143 Omit bitmap fonts 2023-01-17 02:19:41 +01:00
fvanroie
38d308a07b Omit bitmap fonts 2023-01-17 01:42:04 +01:00
fvanroie
be7d8050b1 Allow any font size from internal TTF 2023-01-17 01:05:57 +01:00
fvanroie
7deb879ffd Use TTF font for theme fonts 2023-01-17 01:05:03 +01:00
fvanroie
6fba529ab5 Disable HASP_FONT_5 2023-01-17 00:22:09 +01:00
fvanroie
eaa9d34a1a Add filsystem_list 2023-01-16 23:51:24 +01:00
fvanroie
0dd8e3dc2b Exclude petite-vue and ace on 4MB flash devices 2023-01-16 23:44:36 +01:00
fvanroie
596c798f3a Improve WiFi reconnect check 2023-01-16 18:14:08 +01:00
fvanroie
6451c37d01 Update openhasp.ttf 2023-01-15 02:29:34 +01:00
fvanroie
78629de89b Add timeout and delay to http img src 2023-01-13 21:35:31 +01:00
fvanroie
b3230fcd4c Fix json command infinite loop 2023-01-13 21:26:43 +01:00
fvanroie
d4e8b7e6d0 Enable FreeType on all ESP32 chips 2023-01-11 20:22:32 +01:00
fvanroie
f4ffe49d14 Update ArduinoGFX driver 2023-01-11 19:36:25 +01:00
fvanroie
401a2b4af2 Update ArduinoGFX driver 2023-01-11 18:25:41 +01:00
fvanroie
2c62575d9c Add TTGO T7 S3 2023-01-11 18:23:18 +01:00
fvanroie
b26ea27108 Update ArduinoGFX driver 2023-01-11 18:18:21 +01:00
fvanroie
dd9c84fcc5 Add BSSID to info page 2023-01-11 13:49:06 +01:00
fvanroie
8209625f1e Redesign action property 2023-01-11 13:46:58 +01:00
fvanroie
b0ba6a7f2b Add rotation for RGB Panels 2023-01-05 23:03:40 +01:00
fvanroie
4c0e733827 Add rotation for RGB Panels 2023-01-05 22:44:06 +01:00
fvanroie
7c10f4a655 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2023-01-05 22:37:30 +01:00
fvanroie
6e306ec396 Add rotation for RGB Panels 2023-01-05 22:37:27 +01:00
fvanroie
c52d69b4fa
Merge pull request #411 from marc-gist/tdisplay
Add configuration filr for TTGO T-Display v1 (esp32 version)
2023-01-01 16:43:25 +01:00
marc-gist
11f8d7a44f added compile template for TTGO T-Display v1 (esp32 version) 2022-12-31 08:56:34 -05:00
fvanroie
fd91ac5824
Update README.md 2022-12-31 00:46:55 +01:00
fvanroie
91ee270071 Revert platform 2022-12-29 21:36:58 +01:00
fvanroie
3a5190cf7b Revert platform on ESP32 2022-12-28 22:56:54 +01:00
fvanroie
9ca4f8a93f Revert platform on ESP32 2022-12-28 22:51:12 +01:00
fvanroie
e2d448fb46 Use platform espressif32 2022-12-28 22:37:59 +01:00
fvanroie
d93e9200c7 Use platform espressif32 2022-12-28 22:05:21 +01:00
fvanroie
b2f74d9780 Update to ArduinoJson 6.20.0 and Arduino 2.0.6 2022-12-26 23:08:57 +01:00
fvanroie
ca6a59ae2c Store passwords in NVS instead of config.json 2022-12-26 23:08:07 +01:00
fvanroie
da2c975d39 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2022-12-26 21:51:12 +01:00
fvanroie
64e6b13a4f Fix misplaced semi-colons 2022-12-26 21:51:09 +01:00
fvanroie
30df6857b1
Merge pull request #404 from bensuffolk/master
Add option to auto create other standard files
2022-12-20 21:17:02 +01:00
Ben Suffolk
d0da272abb Add option to auto create other standard files 2022-12-20 19:32:03 +00:00
fvanroie
56aba9b986 Add Panlee ZX3D95CE01S 2022-12-18 17:15:16 +01:00
fvanroie
95b28eb222 Add HASP_START_DIM, HASP_START_PAGE and HASP_THEME_ID 2022-12-12 20:45:11 +01:00
fvanroie
867a4c338a
Merge pull request #402 from bensuffolk/master
Updated for new define HASP_USE_ETHSPI to allow ETHSPI to build
2022-12-12 12:42:30 +01:00
Ben Suffolk
ab93f3abf2 Updated for new define HASP_USE_ETHSPI to allow ETHSPI to build 2022-12-12 09:15:52 +00:00
fvanroie
7229ce27e7 Fix compile errors 2022-12-02 01:54:44 +01:00
fvanroie
81c595c80b Update tests 2022-12-02 01:28:47 +01:00
fvanroie
5b8a761d35 Embed default TTF in ESP32S3 binaries only 2022-12-02 01:28:04 +01:00
fvanroie
2870c09207 Update TFT_eSPI to 2.4.79 and exclude PubSubClient 2022-12-02 01:27:39 +01:00
fvanroie
93bc59882c
Delete config.yaml 2022-12-01 22:51:48 +01:00
fvanroie
5ea9e1c373 Fix gui semaphore and dynamic mqtt msg queue #174 2022-12-01 20:08:51 +01:00
fvanroie
8ec8de6980 Change dispatch_exec to dispatch_run_script 2022-12-01 19:46:35 +01:00
fvanroie
560d491f71 Remove Touch driver debug output 2022-12-01 02:57:47 +01:00
fvanroie
eff199ed38 Set default line_width for line object 2022-12-01 02:28:18 +01:00
fvanroie
ef23d054e0 Use buffered writes to syslogClient #285 2022-12-01 02:03:18 +01:00
fvanroie
ad28bbfc09 Default to USB Serial console on SC01 Plus #390 2022-12-01 01:38:21 +01:00
fvanroie
3bdf6b872d Fix attr_out_int bug HEX to DEC 2022-12-01 01:03:46 +01:00
fvanroie
08e1799219 Update tests 2022-11-30 20:38:02 +01:00
fvanroie
42d179c0be Use semaphore instead of queue #174 2022-11-28 17:30:54 +01:00
fvanroie
e30a572dcb Reinstate bitmap fonts for testing 2022-11-28 17:26:49 +01:00
fvanroie
e78abd362f Update MaterialDesignIcons 2022-11-28 17:24:27 +01:00
fvanroie
b401ae7dee Update MaterialDesignIcons 2022-11-28 16:58:21 +01:00
fvanroie
964c34e75d Re-add default fonts from flash TTF 2022-11-26 22:06:07 +01:00
fvanroie
fdf5053174 Update embedded TTF font 2022-11-26 20:50:56 +01:00
fvanroie
26092259cc Add openhasp.ttf 2022-11-26 00:53:37 +01:00
fvanroie
24b92322bc Add openhasp.ttf 2022-11-26 00:29:12 +01:00
fvanroie
50565fb349 Add openhasp.ttf 2022-11-26 00:24:13 +01:00
fvanroie
d2342377fb Use bigger VDB buffer and reduce flickering 2022-11-24 21:56:46 +01:00
fvanroie
3652655bcb Remove sunton-4827s043r_16MB 2022-11-24 18:35:24 +01:00
fvanroie
41ac2e1443 Add Sunton ESP32-S3 TFT 5.0" and 7.0" 2022-11-24 17:40:23 +01:00
fvanroie
bdceca3241 Revert platform for ESP32-S3 2022-11-24 14:15:51 +01:00
fvanroie
730517d68e Add Sunton ESP32-S3 TFT 5.0" and 7.0" 2022-11-24 13:57:36 +01:00
fvanroie
23ba8c8b3b Add Sunton ESP32-S3 TFT 5.0" and 7.0" 2022-11-24 13:51:51 +01:00
fvanroie
0d9fa57f39 Add esp32-3248s035r 2022-11-24 00:14:29 +01:00
fvanroie
2654ccc9d8 Don't set calibration for capacitive touch panels 2022-11-23 20:56:21 +01:00
fvanroie
a92860b4cd Fix recursion bug in networkEvery5Seconds #381 2022-11-23 20:42:19 +01:00
fvanroie
6dfe25a176 Don't set calibration for capacitive touch panels 2022-11-23 20:39:35 +01:00
fvanroie
bbf6432606 Add mqtt_on.cmd and mqtt_off.cmd #174 2022-11-21 02:18:53 +01:00
fvanroie
65ceea7062 Add font sizes 18px and 64px 2022-11-17 01:40:43 +01:00
fvanroie
18a76a0024 Add Sunton S3 4.3" 2022-11-17 01:19:00 +01:00
fvanroie
27207d337a Only define TOUCH_CS when not using TFT_eSPI 2022-11-15 16:53:46 +01:00
fvanroie
9409987c01 Fix TFT_eSPI setTouch 2022-11-15 15:24:22 +01:00
fvanroie
0b02653a31 Fix TFT_eSPI setTouch 2022-11-15 15:04:08 +01:00
fvanroie
b449186aba Add haspTouch.set_calibration() 2022-11-15 03:48:00 +01:00
fvanroie
ec0000039e Add esp32-3248s035c_4MB 2022-11-15 03:41:15 +01:00
fvanroie
63bec8f120 Add tft_defines 2022-11-15 00:42:17 +01:00
fvanroie
4bc2cd5e24 Lovyan Resistive Touch calibration #220 2022-11-14 23:30:29 +01:00
fvanroie
e9ef961ef8 Remove LittleFS_esp32 from lib_ignore 2022-11-14 22:38:17 +01:00
fvanroie
720b3cd81f Remove LittleFS_esp32 from lib_deps 2022-11-14 22:37:46 +01:00
fvanroie
ab28e00fb9 Add ESP32_2432S028R 2022-11-14 16:35:42 +01:00
fvanroie
9099a86882 Update ini files 2022-11-14 16:34:59 +01:00
fvanroie
8ee02425a3 Update esp32-3248s035c 2022-11-14 02:45:26 +01:00
fvanroie
4d513c2209 Add Lilygo Ttgo Lily Pi ESP32 2022-11-12 14:51:10 +01:00
fvanroie
78b8666787 Add ESP32-S3 board definitions 2022-11-12 14:31:19 +01:00
fvanroie
9e1742cb1a Add gs-t3e 2022-11-12 14:25:45 +01:00
fvanroie
988514970c Stability improvements 2022-11-08 20:40:25 +01:00
fvanroie
79303a450b Fix possible overflow bug 2022-11-08 20:37:17 +01:00
fvanroie
2ea173fa75 Add Arduino_GFX driver 2022-11-08 20:35:59 +01:00
fvanroie
1410aa382b Fix for first touch nog working properly #400 2022-11-07 14:48:58 +01:00
fvanroie
cb47cf8e59 Add Lilypi and Sunton 3.5" 2022-11-02 22:05:17 +01:00
fvanroie
97464c9969 Update Lilypi LovyanGFX drivers 2022-11-02 22:00:01 +01:00
fvanroie
3c55479f56 Add --use-pep517 to dulwich install 2022-11-01 14:36:00 +01:00
fvanroie
4935332235 remove Adafruit BusIO from lib_ignore 2022-11-01 13:30:11 +01:00
fvanroie
72224ebd79 Switch back to TFT_eSPI 2022-10-26 22:12:22 +02:00
fvanroie
2fd75af555 Rename wt-sc01-plus to wt32-sc01-plus 2022-10-26 14:41:27 +02:00
fvanroie
7aa7fbbbe8 Only release old img_src if a new img_src is about to be set 2022-10-25 23:39:47 +02:00
fvanroie
ac7e0d6c8d Fix startup page=0 bug 2022-10-25 22:46:35 +02:00
fvanroie
15b33e57b4 Add esp32s3 2022-10-25 19:41:36 +02:00
fvanroie
97308367bf Code cleanup 2022-10-25 19:37:28 +02:00
fvanroie
dae78c1996 Add Makerfabs S3 SPI and SC01 Plus 2022-10-25 19:36:57 +02:00
fvanroie
3ba3fedc66 Rename L8-HD (EU) and L8-HD (AU) 2022-10-25 18:34:43 +02:00
fvanroie
290b2da8b6 Update configurations 2022-10-25 18:34:07 +02:00
fvanroie
d54faed147 Fix duplicate publish of page change event 2022-10-25 12:17:50 +02:00
fvanroie
0afaf994f3 Update lovyanGFX version of wt-86-32-3zw1 2022-10-22 15:15:11 +02:00
fvanroie
e973fe2b16 Fix lovyan driver issue 2022-10-22 01:33:44 +02:00
fvanroie
0b5eb9bb41 Use bus_parallel16 only on ESP32S2 or ESP32S3 #220 #390 2022-10-22 01:17:04 +02:00
fvanroie
a664e5379e Update lovyan driver #220 #390 2022-10-22 01:05:06 +02:00
fvanroie
8454b137ac Set Bodmer/TFT_eSPI to master branch 2022-10-18 23:37:50 +02:00
fvanroie
47c45eb46c Add buttons to input array 2022-10-18 23:01:47 +02:00
fvanroie
f6eb92443a SC01 Plus configuration tweaks #390 2022-10-18 23:00:01 +02:00
fvanroie
8490240f7f Fix Captive Portal 2022-10-18 22:58:07 +02:00
fvanroie
b4a973dda5 Add ATTR_TEMPLATE for event_timer_clock 2022-10-18 02:11:50 +02:00
fvanroie
c02d039e18 Disable LV_MEM_CUSTOM by default 2022-10-18 01:10:10 +02:00
fvanroie
e28a1965e4 Add support for ESP32-S3 2022-10-18 01:09:47 +02:00
fvanroie
d0ab4d7e96 Update esptool to3.3.1 2022-10-18 01:08:02 +02:00
fvanroie
22d4360a2f Add HASP_SERIAL 2022-10-17 18:41:14 +02:00
fvanroie
7e1e04ec71 Update js and css 2022-10-17 18:37:53 +02:00
fvanroie
1e93d22833 Wifi Improvements #392 2022-10-17 16:14:01 +02:00
fvanroie
393195873b Add hwid to discovery response 2022-10-13 15:33:04 +02:00
fvanroie
5b19ede76e Add python-version 2022-10-12 17:49:01 +02:00
fvanroie
a81d8a6500 Update buildscripts 2022-10-12 17:34:42 +02:00
fvanroie
54b43a06cd Add auto-reconnect to Paho MQTT Client 2022-10-12 14:47:50 +02:00
fvanroie
56ae45dae2 Add auto-reconnect to Paho MQTT Client 2022-10-12 14:31:10 +02:00
fvanroie
b370733012 Allow LV_MEM_CUSTOM=1 to disable separate LVGL memory pool 2022-10-10 18:22:36 +02:00
fvanroie
180326f843 Prevent screen updates during antiburn #389 2022-10-10 15:33:48 +02:00
fvanroie
80bda2c78e Fix WiFi reconnect bug #385 2022-10-01 14:09:22 +02:00
fvanroie
2e13e55c68 Add "%" after fragmentation values 2022-09-29 20:59:30 +02:00
fvanroie
e0703d72aa Add "%" after fragmentation values 2022-09-29 20:54:45 +02:00
fvanroie
777b3d0734 Add new static files 2022-09-29 20:44:55 +02:00
fvanroie
42e9d2c2af Add no_ps_ram/ps_ram option 2022-09-29 20:38:12 +02:00
fvanroie
c63ea0a0db Include new embed_files 2022-09-29 20:37:09 +02:00
fvanroie
4f9656a8e2 Add esp32-3248s035c 2022-09-29 20:36:19 +02:00
fvanroie
2e23401d0e Update to Tasmota core 2.0.5.1 2022-09-29 20:35:36 +02:00
fvanroie
a7e75d8632 Add "%" after fragmentation values 2022-09-29 20:19:52 +02:00
fvanroie
0325954649 Add ESP32-S3 support 2022-09-29 20:19:08 +02:00
fvanroie
f8c54af706 Add apis, etag support and use static JSON documents 2022-09-29 20:18:10 +02:00
fvanroie
cb0f3850cf Disable old touch driver 2022-09-28 14:27:04 +02:00
fvanroie
f20814d418 Remove sstaub/Ticker lib from ini 2022-09-28 14:24:17 +02:00
fvanroie
14ba13eb02 Add HASP_USE_ETHSPI 2022-09-27 22:57:30 +02:00
fvanroie
ac2aa275c5 Minor driver tweaks 2022-09-27 22:57:17 +02:00
fvanroie
7c4537225b Add %mac% string template 2022-09-26 20:51:44 +02:00
fvanroie
f12a651443 Restart WiFi on Stop event 2022-09-26 20:50:16 +02:00
fvanroie
2f9b8f3e32 Allow longer font file names 2022-09-26 20:49:30 +02:00
fvanroie
7f4e07914a Fix configRead prototype 2022-09-13 15:06:32 +02:00
fvanroie
e97bebd87e Fix configRead prototype 2022-09-13 14:57:09 +02:00
fvanroie
cbbd2d9bba Fix configRead prototype 2022-09-12 01:19:15 +02:00
fvanroie
ba2ed35a85 Prefer stack to heap memory for JsonDocuments 2022-09-12 01:11:17 +02:00
fvanroie
eccfc6c7a2 Change USE_PAHE to HASP_USE_PAHO 2022-09-11 16:12:10 +02:00
fvanroie
cf6817304b Fix LVGL filesystem interface 2022-09-11 16:11:19 +02:00
fvanroie
dca38d199c Add esp32-3248s035 2022-09-11 14:13:21 +02:00
fvanroie
db322d096f Update to LovyanGFX 0.4.18 and TFT_eSPI 2.4.72 2022-09-07 11:46:53 +02:00
fvanroie
e6256886a0 Add LV_USE_FS_IF 2022-09-04 22:40:08 +02:00
fvanroie
2ac4265ca3 Add Freetype submodule 2022-09-03 19:47:42 +02:00
fvanroie
e7217d1f03 Add ftstdlib.h 2022-09-03 19:38:37 +02:00
fvanroie
c70702db9d Remove unneccessary includes 2022-09-03 18:44:12 +02:00
fvanroie
7805b40fd2 Enable Freetype in ini files 2022-09-03 18:17:03 +02:00
fvanroie
7a8abec978 Fix freetype dependencies 2022-09-03 17:40:43 +02:00
fvanroie
4852b6f4c4 Update discovery reply topic 2022-08-20 22:34:50 +02:00
fvanroie
9a17e70daf Replace strlcpy with strncpy 2022-08-20 13:52:21 +02:00
fvanroie
0dc6e58b86 Add HASP_RANDOM macro 2022-08-20 13:39:58 +02:00
fvanroie
df393d70f9 Ad HASP_RANDOM mcro 2022-08-20 13:37:10 +02:00
fvanroie
bdbceeb539 Add HWID to discovery reply 2022-08-20 12:04:44 +02:00
fvanroie
2f307c0a29 Add page names and transitions 2022-08-20 12:00:09 +02:00
fvanroie
89a1d9535f Add FP_OTA 2022-08-09 15:58:06 +02:00
fvanroie
1796ed2a81 Add /api/config/ #246 and fix file length limitation #366 2022-08-09 14:48:28 +02:00
fvanroie
e919db7f25 Update to tasmota core v2.0.4.1 2022-08-09 14:26:01 +02:00
fvanroie
f04b01ec1f Add Content-Security-Policy #246 2022-07-30 23:38:44 +02:00
fvanroie
3781ddcf52 Bugfix in selector_event_handler 2022-07-30 23:12:32 +02:00
fvanroie
756239d245 Improvements for esp_mqtt client #174 2022-07-30 23:12:13 +02:00
fvanroie
702143e5ee Add service start/stop mqtt #174 2022-07-26 23:12:09 +02:00
fvanroie
74092ce5be Use esp_mqtt client #174 2022-07-26 23:11:44 +02:00
fvanroie
b91efeaac3 Disable Freetype 2022-07-23 12:00:11 +02:00
fvanroie
cbeceaf209 Remove duplicate include 2022-07-21 01:06:43 +02:00
fvanroie
1aea5257df Remove unneeded include 2022-07-21 01:06:03 +02:00
fvanroie
3a72753275 Disable Freetype 2022-07-21 01:02:03 +02:00
fvanroie
3900838ccb Fix mqttClientId 2022-07-21 00:58:14 +02:00
fvanroie
7533a71bbb Fix antiburn on rotated display 2022-07-21 00:57:46 +02:00
fvanroie
f18403d9c3 Check for HASP_USE_WIFI or HASP_USE_ETHERNET 2022-07-21 00:56:46 +02:00
fvanroie
24254cc3a1 Remove lib/freetype 2022-07-21 00:53:23 +02:00
fvanroie
0f7caee05f Remove lib/freetype submodule 2022-07-21 00:52:36 +02:00
fvanroie
15853c789f Use MAX_SSID_LEN and MAX_PASSPHRASE_LEN defines 2022-07-21 00:49:18 +02:00
fvanroie
06b2865ba4 Use MAX_SSID_LEN and MAX_PASSPHRASE_LEN defines 2022-07-21 00:47:20 +02:00
fvanroie
66f05103a5 Check if LV_USE_FS_IF is already defined 2022-07-21 00:46:26 +02:00
fvanroie
18eb8137e5 Update mqtt and wifi input contraints 2022-07-21 00:44:02 +02:00
fvanroie
57e512da7b Fix hostname and save Password to NVS 2022-07-20 16:09:49 +02:00
fvanroie
f31a06cb0a #include "lv_fs_if.h" 2022-07-08 21:48:29 +02:00
fvanroie
9d245b5e78 Move ESP32 lip_deps 2022-07-08 21:19:00 +02:00
fvanroie
daa96491c5 Update to Tasmota Core 2.0.4 with ESP-IDF 4.4.2 2022-07-08 20:16:33 +02:00
fvanroie
73de02d026 Add HASP_USE_SYSLOG and HASP_USE_MDNS 2022-07-08 20:12:55 +02:00
fvanroie
645d2e851c Add esp_mqtt client to replace PubSubClient 2022-07-08 20:12:31 +02:00
fvanroie
74ab9647c1 Fix define for HTTP_USERNAME and HTTP_PASSWORD 2022-07-08 20:11:25 +02:00
fvanroie
13522244dc Add TAG_NVS 2022-07-08 20:10:46 +02:00
fvanroie
8fa7a43f2e Initialize network before HASP #342 2022-07-02 20:11:45 +02:00
fvanroie
1981b1f89e Add comment 2022-06-30 11:12:52 +02:00
arovak
82ec8f8b4b Merge branch 'master' of https://github.com/HASwitchPlate/openHASP into master 2022-06-26 21:19:26 +02:00
arovak
b85ca9c654 Fix rand for Windows 2022-06-26 21:19:15 +02:00
fvanroie
8164630a81 Code cleanup 2022-06-26 10:12:39 +02:00
fvanroie
43651ca2db
Merge pull request #345 from bensuffolk/master
Make MQTT work with Ethernet
2022-06-19 10:47:14 +02:00
Ben Suffolk
5f2ab5852a Call new network_connected & network_disconnected functions instead of networkStart & networkStop 2022-06-18 19:02:18 +01:00
fvanroie
94f36ba1b6 Fix NetworkStop for native builds 2022-06-11 21:08:21 +02:00
fvanroie
2c8037d1d0 Exclude ETHSPI from native builds 2022-06-11 19:54:27 +02:00
fvanroie
c35b322bfd Exclude ETHSPI from ESP32-S 2022-06-11 19:40:53 +02:00
fvanroie
213cc26060 Excluded ETHSPI for ESP32-S2 2022-06-11 19:40:17 +02:00
fvanroie
0f95052dc3 Merge ethernet_esp32 and esthernet_spi.cpp 2022-06-11 19:16:21 +02:00
fvanroie
2af1f4800e
Merge pull request #344 from HASwitchPlate/feature/w5500
Feature/w5500
2022-06-11 16:16:02 +02:00
fvanroie
bab26ff352
Merge pull request #343 from bensuffolk/master
Add W5500 SPI Ethernet
2022-06-11 16:05:23 +02:00
fvanroie
6804a49769 Add alarm 2022-06-11 16:03:08 +02:00
fvanroie
b41d6ee9f4 Update log message 2022-06-11 15:11:18 +02:00
fvanroie
d49e52b6f7 Switch to Arduino v2 2022-06-11 15:11:04 +02:00
Ben Suffolk
755450843c Added lanbon L8 with W5500 Ethernet build configuration 2022-06-11 10:22:42 +01:00
Ben Suffolk
bdafc3d45e Merge https://github.com/HASwitchPlate/openHASP 2022-06-11 10:10:29 +01:00
Ben Suffolk
ac93c70bc1 Removed extra debug lines, and fixed netwrks scripts running multiple times 2022-06-08 21:08:58 +01:00
Ben Suffolk
6643bf031f Fixed hasp_config for SPI Ethernet 2022-06-08 14:23:13 +01:00
Ben Suffolk
a5390eca1b Added SPI Ethernet for W5500 2022-06-08 14:21:17 +01:00
fvanroie
7357842b87 Fix workflow trigger 2022-06-04 14:14:18 +02:00
fvanroie
45daee85f4 Fix bug with id 7 when a tabview is present on the page 2022-06-04 14:12:50 +02:00
fvanroie
c583e1cbf9 Version bump 2022-05-30 16:39:02 +02:00
fvanroie
497f611b03 Disable workflow on release 2022-05-30 11:47:31 +02:00
fvanroie
4cf7fdd1f8 Update changelog and Version 2022-05-29 18:26:46 +02:00
fvanroie
83b801f1c4
Update release.yml 2022-05-29 14:17:35 +02:00
fvanroie
1c86a3a34f Fix value_str issue with parts and states 2022-05-23 16:01:01 +02:00
fvanroie
2e96b0692c Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2022-05-23 10:18:21 +02:00
fvanroie
0dd1066255 Clear value_str for different states 2022-05-23 10:18:17 +02:00
fvanroie
2a40365675 Fix value_str for different states 2022-05-23 10:17:55 +02:00
fvanroie
b179c6cc45 Only run command scripts in HASP mode 2022-05-23 10:17:25 +02:00
fvanroie
31da33f636 Add slider type 2022-05-22 12:01:09 +02:00
fvanroie
145ad5fa2f
Update CHANGLELOG.md 2022-05-17 20:20:39 +02:00
fvanroie
74d95d6394
Update CHANGLELOG.md 2022-05-17 19:46:27 +02:00
fvanroie
f88e4081ba
Update CHANGLELOG.md 2022-05-17 16:53:36 +02:00
fvanroie
4613a3b3c8
Update CHANGLELOG.md 2022-05-17 16:51:51 +02:00
fvanroie
fdfdfd31bf Fix linux build error 2022-05-17 14:15:56 +02:00
fvanroie
64bd33f7d6 Fix linux build error 2022-05-17 14:08:41 +02:00
fvanroie
a1aad7c1a2 Fix linux build error 2022-05-17 14:05:41 +02:00
fvanroie
fcd9d60c08 Update deprecated src_filter to build_src_filter 2022-05-17 11:34:10 +02:00
fvanroie
001d1779eb Add FreeType debug high watermark 2022-05-17 11:33:29 +02:00
fvanroie
558a98410f Update TFT_eSPI to 2.4.61 2022-05-16 18:42:07 +02:00
fvanroie
c326be6380 Add HASP_FONT_5 and HASP_FONT_SIZE_5 2022-05-16 18:39:38 +02:00
fvanroie
baea44089f Fix ttgo-t7-v1.5_ili9341_16MB 2022-05-16 18:25:57 +02:00
fvanroie
8c1c42c258 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2022-05-16 18:07:52 +02:00
fvanroie
7921b755dd Fix touch controller in header 2022-05-16 18:07:49 +02:00
fvanroie
494da6b697
Update README.md 2022-05-14 21:32:06 +02:00
fvanroie
6da43d80fa Add TTGO 16MB 2022-05-13 00:47:23 +02:00
fvanroie
8459b632c7 Always include 5 default fonts 2022-05-11 15:35:22 +02:00
fvanroie
161cafcf7e Add two-digit states and parts 2022-05-11 13:53:54 +02:00
fvanroie
e692190cde Always build otaSetup function 2022-05-10 21:10:27 +02:00
fvanroie
155dba41ce Fix some HASP_USE_ARDUINOOTA compiler errors 2022-05-10 20:45:12 +02:00
fvanroie
53f695fa23 Rename OTA_PASSWORD to ARDUINOOTA_PASSWORD 2022-05-10 20:44:30 +02:00
fvanroie
eb5a39ed1f Adjust freetype line_height calculation 2022-05-10 15:51:21 +02:00
fvanroie
c621881fce Rename HASP_USE_OTA to HASP_USE_ARDUINOOTA 2022-05-10 15:44:58 +02:00
fvanroie
2166583b70 Adjust Freetype line_height 2022-05-10 15:42:18 +02:00
fvanroie
653fca0f32 Version bump to rc2 2022-05-10 15:04:25 +02:00
fvanroie
652a2d4fe1 Remove unused code 2022-05-10 15:03:55 +02:00
fvanroie
2618f2c613 Fix redraw screen after antiburn stops 2022-05-10 14:25:47 +02:00
fvanroie
5e333e85a4 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2022-05-08 04:14:55 +02:00
fvanroie
3338b86974 Update script.js to allow filler to use multiple forms 2022-05-08 04:14:50 +02:00
fvanroie
d5b6b94e83
Update CHANGLELOG.md 2022-05-08 00:23:52 +02:00
fvanroie
00919d7f05 Allow HTTPS sites with or without redirects enabled #300 2022-05-07 22:50:27 +02:00
fvanroie
af336b190b Wifi code improvements 2022-05-07 01:07:37 +02:00
fvanroie
5dfd577599 Allow L: drive letter in script path 2022-05-07 00:58:37 +02:00
fvanroie
09e459bc5b Allow L: drive letter in script path 2022-05-07 00:32:49 +02:00
fvanroie
87c1c8ee0c Add hasp_nvs 2022-05-07 00:32:10 +02:00
fvanroie
8d2b27509d Reduce log messages during web update #300 2022-05-07 00:31:41 +02:00
fvanroie
d4be43588f Set reload timeout depending on update type #300 2022-05-06 21:41:03 +02:00
fvanroie
0883b96908 Tidy up ini files 2022-05-06 21:39:52 +02:00
fvanroie
0de47adeb0 Updata changelog 2022-05-06 21:38:50 +02:00
fvanroie
8b2139d017 Multiply old baudrate to new baudrate 2022-05-06 20:14:59 +02:00
fvanroie
b3b9661aef Get and set real serial speed in config/debug 2022-05-05 23:18:58 +02:00
fvanroie
76d4aa14db Inline LCD build flags for lovyan driver 2022-05-04 23:19:48 +02:00
fvanroie
e3d90d9579 Add Firmware Upgrade From URL #300 2022-05-04 22:59:43 +02:00
fvanroie
666c7d10b6 Fix black screen on WT32-SC01 2022-05-04 22:50:29 +02:00
fvanroie
32075f6f50 Fix CSS SVG icons 2022-05-04 22:49:57 +02:00
fvanroie
71f01efd19 Fix wrong Arduino version 2022-05-04 22:33:18 +02:00
fvanroie
ae728d8fb6 Fix CSS SVG icons 2022-05-04 20:50:14 +02:00
fvanroie
230ad4b5ea Update to Tasmota Arduino core v2.0.3 final 2022-05-04 18:35:45 +02:00
fvanroie
92f3588c5e Don't persist Wifi config 2022-05-03 23:49:16 +02:00
fvanroie
625fe380f7 Wifi connection tweaks 2022-05-03 21:55:06 +02:00
fvanroie
0936962ced Comment unused code 2022-05-03 21:46:29 +02:00
fvanroie
f12655e453 Don't change sys_layer transparancy in antiburn 2022-05-03 21:44:57 +02:00
fvanroie
651be6acb1 Backport lv_lib_freetype from LVGL v8.x #249 2022-05-03 17:51:00 +02:00
fvanroie
a9859e7338 Remove font_clear_list 2022-05-03 17:48:35 +02:00
fvanroie
ca9df5aaf3 Add clearfont and tweak clearpage 2022-05-03 17:48:12 +02:00
fvanroie
6f568ab663 Check Arduino Version for setCACertBundle 2022-05-02 21:20:47 +02:00
fvanroie
8184d2c66e Fix workflow error 2022-04-29 12:12:33 +02:00
fvanroie
fcb228c0a8 Moved to Arduino v2 2022-04-29 11:15:04 +02:00
fvanroie
61a0c8b896 HTTP update logging improvements 2022-04-28 20:56:43 +02:00
fvanroie
6c7ec102cd OTA logging improvements 2022-04-28 20:56:17 +02:00
fvanroie
6e6bce07aa Add Root CA Bundle #300 2022-04-28 03:02:21 +02:00
fvanroie
5feef42e30 Firmware Upgrade From URL #300 2022-04-28 02:51:49 +02:00
fvanroie
cfdc343349 Update resetConfig endpoint to /config/reset #246 2022-04-28 02:00:48 +02:00
fvanroie
301a227d91 Only use new PART and STATE withHASP_USE_NEW_PART_STATE 2022-04-26 21:34:08 +02:00
fvanroie
43fe7e4aff Separate State and Parts into two digits 2022-04-26 19:04:01 +02:00
fvanroie
a7a3ffab3d Add HASP_LOG_LEVEL 2022-04-26 16:15:31 +02:00
fvanroie
1ca618f413 Fix include for Linux build 2022-04-26 15:28:02 +02:00
fvanroie
3fa03f11f8 Move #include "ArduinoLog.h" to hasplib.h 2022-04-26 15:22:07 +02:00
fvanroie
c568187ff4 Fix includes 2022-04-26 15:06:19 +02:00
fvanroie
f4e408d1c5 Allow HASP_LOG_LEVEL as override 2022-04-26 14:45:26 +02:00
fvanroie
188c92c459 Move to Arduino v2 2022-04-26 14:27:26 +02:00
fvanroie
1c2d7760fc Tweak LVGL_FREETYPE_MAX_SIZES and LVGL_FREETYPE_MAX_FACES 2022-04-26 14:14:55 +02:00
fvanroie
4dd0a34cd6 Tweak LVGL_FREETYPE_MAX_FACES and LVGL_FREETYPE_MAX_SIZES 2022-04-26 14:14:26 +02:00
fvanroie
d3faed03ab Update LovyanGFX to 0.4.17 2022-04-26 14:11:58 +02:00
fvanroie
87fd226e32 Update README and CHANGELOG 2022-04-26 14:11:36 +02:00
fvanroie
fc0ecc74f2 Always disable SleepMode 2022-04-25 23:26:57 +02:00
fvanroie
d8109a9309 Add some logging 2022-04-25 23:26:32 +02:00
fvanroie
6640bb09b0 Update README 2022-04-25 23:25:54 +02:00
fvanroie
8040455bab font_clear_list moved to hasp_init 2022-04-25 19:52:38 +02:00
fvanroie
34cb3e8bd1 Add Clear Fonts to Clear Pages button in File Editor 2022-04-25 19:42:32 +02:00
fvanroie
c0db202eb6 Font clear fix and update Logging 2022-04-25 19:14:42 +02:00
fvanroie
cfdeaaa89a Move HASP_USE_FREETYPE define 2022-04-25 18:03:32 +02:00
fvanroie
c5fb8fffc6 Fix Linux compile error 2022-04-25 17:52:41 +02:00
fvanroie
39f8e17add Release fonts with command clearpage all #249 2022-04-25 17:38:14 +02:00
fvanroie
32882ed33b LV_MEM_SIZE adjustment for WirelessTag 2022-04-24 21:47:38 +02:00
fvanroie
4a07ecdc4a Adjust LV_MEM_SIZE to 32Kb on ESP32S2 2022-04-24 20:31:22 +02:00
fvanroie
5cfc34b70a Update changelog and TFT_eSPI version 2022-04-24 20:16:30 +02:00
fvanroie
a7af566f89 Fix BOARD_HAS_PSRAM typo 2022-04-24 20:13:05 +02:00
fvanroie
e9a8697a2c Fix Arduino v2.0.3-RC1 dependencies 2022-04-24 03:41:47 +02:00
fvanroie
ff074dfcda Upgrade to Arduino v2.0.3-RC1 2022-04-24 03:26:53 +02:00
fvanroie
ba2ef55312 Use ledcWrite instead of analogWrite on ESP32 2022-04-24 03:20:03 +02:00
fvanroie
6eaf52f9b0 Fix for PWM issue 2022-04-24 03:12:09 +02:00
fvanroie
36194b715d Update to LovyanGFX 0.4.16 and TFT_eSPI 2.4.50 2022-04-21 15:42:17 +02:00
fvanroie
497ea49550 Add HASP_START_TELNET 2022-04-20 14:15:57 +02:00
fvanroie
90d55a5cdf Use mqttLoop(); 2022-04-20 14:13:56 +02:00
fvanroie
8d8b2a194f Add HTTP_USERNAME and HTTP_PASSWORD to user_config_override 2022-04-20 12:15:00 +02:00
fvanroie
2dbc84f4d3
Merge pull request #322 from nagyrobi/patch-5
Update Romanian
2022-04-20 10:26:06 +02:00
fvanroie
dc4d0a268f
Merge pull request #321 from nagyrobi/patch-4
Update Hungarian
2022-04-20 10:23:48 +02:00
H. Árkosi Róbert
9d8ae83ee1
Update ro_RO.h 2022-04-20 10:04:27 +02:00
H. Árkosi Róbert
d736a63a18
Update Romanian 2022-04-20 10:01:34 +02:00
H. Árkosi Róbert
796b89daf2
Update Hungarian 2022-04-20 09:53:08 +02:00
fvanroie
35aed78ceb Use arduino_esp32_v1 libraries 2022-04-20 00:53:56 +02:00
fvanroie
84d62ecb9e Add compiler flags checks to build offline version 2022-04-20 00:43:12 +02:00
fvanroie
36f5c37888 Add LittleFS_esp32 library 2022-04-19 21:55:44 +02:00
fvanroie
6d4c08e8f7 Fix ini header 2022-04-19 21:38:36 +02:00
fvanroie
4635931ba6 Set larger LV_MEM_SIZE for PSram enabled devices 2022-04-19 21:32:49 +02:00
fvanroie
efe621fd56 Revert to Arduino v1 2022-04-19 21:31:22 +02:00
fvanroie
8ab5c9a6b0 Revert base_line change 2022-04-19 17:14:23 +02:00
fvanroie
eb6c9f85c4 Tweak line_height and base_line 2022-04-19 16:52:03 +02:00
fvanroie
9baa2f97fd Add FT_Set_Char_Size #249 2022-04-19 16:37:43 +02:00
fvanroie
30a17959e5 line_height and base_height tweaks #249 2022-04-19 16:02:37 +02:00
fvanroie
83f128db0b Round line_height and base_line #249 2022-04-19 15:33:30 +02:00
fvanroie
d28f346274 Set USE_LVGL_FREETYPE_MAX_BYTES_PSRAM to 128KB 2022-04-18 21:05:46 +02:00
fvanroie
0417dc95ec Set USE_LVGL_FREETYPE_MAX_BYTES_PSRAM to 128KB 2022-04-18 21:04:53 +02:00
fvanroie
9c5e4af555 Improved logging 2022-04-18 21:04:31 +02:00
fvanroie
564c7ef132 Add Filesystem Total, Used and Free size 2022-04-18 21:04:00 +02:00
fvanroie
7ea6de2ee2 Test Fix for TTF caching issue 2022-04-18 17:29:42 +02:00
fvanroie
53af0b0210 Test if the font exists and can be opened #249 2022-04-18 01:38:23 +02:00
fvanroie
42f05da78e Fix OTF font loading issue #249 2022-04-18 00:40:51 +02:00
fvanroie
9cab993b2f Fix CSS trash icon in GPIO actions 2022-04-16 20:15:04 +02:00
fvanroie
12280820ad Add css white-space:nowrap 2022-04-15 19:55:46 +02:00
fvanroie
b5273fa886 Split lip_deps and lib_ignore into v1 and v2 2022-04-14 21:03:16 +02:00
fvanroie
529424a622 _backlight_pin defaults to undefined 2022-04-14 20:17:18 +02:00
fvanroie
7d7585c04c Revert to Arduino v1.0.6 2022-04-14 20:03:14 +02:00
fvanroie
c17ca8991d Swap bytes used and total 2022-04-14 20:02:20 +02:00
fvanroie
b7afda6cc9 Add custom/my_custom.h to hasplib.h 2022-04-12 23:49:26 +02:00
fvanroie
d521edc04b Add I2C_TOUCH_PORT 2022-04-12 22:24:04 +02:00
fvanroie
991b5fc73e Fix for freetype caching bug 2022-04-12 22:14:35 +02:00
fvanroie
b603742c55 Test LovyanGFX touch driver #220 2022-04-12 22:11:38 +02:00
fvanroie
b323341e17 Fix Screen rotation using Lanbon L8 does not affect touch #318 2022-04-12 22:10:43 +02:00
fvanroie
17a2518687 Fix Javascript error 2022-04-12 13:57:25 +02:00
fvanroie
4c4b74f67a Update data files 2022-04-12 06:19:10 +02:00
fvanroie
0111ed4118 Update CHANGELOG 2022-04-12 06:03:31 +02:00
fvanroie
80e0fc1fe0 Fix typo 2022-04-12 04:58:28 +02:00
fvanroie
289c23444c Update libraries 2022-04-12 04:53:56 +02:00
fvanroie
7629cd5d4e Update CHANGELOG 2022-04-12 04:36:52 +02:00
fvanroie
aa2447d227 Update CHANGELOG 2022-04-12 04:36:21 +02:00
fvanroie
dd44892c72 Add boot.cmd script 2022-04-12 03:38:58 +02:00
fvanroie
beee7f5a4a Tweak random() for native builds 2022-04-12 03:11:39 +02:00
fvanroie
cbb98f7f4e Test writing random antiburn pixels 2022-04-12 03:03:55 +02:00
fvanroie
1a72c9e7a9 Remove headers from old drivers 2022-04-12 03:03:25 +02:00
fvanroie
c402a9932e Add libraries to hasplib 2022-04-12 02:36:14 +02:00
fvanroie
70c58213de Add ColorToHaspPayload 2022-04-12 02:35:21 +02:00
fvanroie
945ce73a76 Add ColorToHaspPayload 2022-04-12 02:35:10 +02:00
fvanroie
9816e0b3d3 Make HASP Settings responsive and implement POST api #246 2022-04-12 02:34:50 +02:00
fvanroie
5a288781a4 Use Primary and Secondary color instead of Hue 2022-04-12 02:28:07 +02:00
fvanroie
a3f2890ea0 Add configSet for lv_color_t variables 2022-04-12 02:24:24 +02:00
fvanroie
b073983275 Prevent redundant idle messages 2022-04-11 03:26:14 +02:00
fvanroie
e3a6391496 Update to Tasmota Arduino core v2.0.3rc1 2022-04-11 00:56:46 +02:00
fvanroie
a174f0dbfb Use LovyanGFX driver 2022-04-10 21:35:31 +02:00
fvanroie
eb846e88f3 Use Arduino core v2 2022-04-10 21:31:08 +02:00
fvanroie
c1143f8e74 Move file touch_driver_analog.h 2022-04-10 21:30:51 +02:00
fvanroie
89b1f7acbe Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2022-04-10 21:27:04 +02:00
fvanroie
702afb12e8 Remove Adafruit Touchscreen 2022-04-10 21:27:01 +02:00
fvanroie
faf04073a8
Update README.md 2022-04-10 19:34:04 +02:00
fvanroie
1cbeb1bc53 Fix for nvs_iterator_t in Arduino core v1 2022-04-10 18:45:01 +02:00
fvanroie
b1b8141506 Make statusupdates smoother 2022-04-10 18:11:50 +02:00
fvanroie
ac98efff3e Add R61529_DRIVER #220 2022-04-10 14:35:36 +02:00
fvanroie
a96e82cc50 Fix std::to_string compiler error 2022-04-10 14:34:57 +02:00
fvanroie
5b83b4ca88 Antiburn improvements 2022-04-10 00:10:57 +02:00
fvanroie
b3eba99558 Add sensors command to publish of the sensor data 2022-04-10 00:10:18 +02:00
fvanroie
83011d3330 Reset sleep offset on local touch 2022-04-09 23:26:58 +02:00
fvanroie
f0443301cc Code cleanup 2022-04-09 23:02:26 +02:00
fvanroie
b0fea83a55 Allow for 8 byte calibration data 2022-04-09 23:02:03 +02:00
fvanroie
014d95aa45 User hasplib header 2022-04-09 21:29:28 +02:00
fvanroie
e30e6bbeca Use hasplib header 2022-04-09 21:29:14 +02:00
fvanroie
3c867c62d1 Update to Arduino Core v2.0.3-rc1 #250 2022-04-06 21:21:37 +02:00
fvanroie
53968a7b43 Add hasp_set_sleep_offset to fix first touch idle 2022-04-06 21:18:59 +02:00
fvanroie
335d0509b4 Move Menu button of the about page up 2022-04-06 20:20:23 +02:00
fvanroie
5ccf73695e Improve backlight handling and idle can be set to a state 2022-04-06 20:18:23 +02:00
fvanroie
372150b7b6 Update JavaScript 2022-04-06 18:33:11 +02:00
fvanroie
a0efbabb3c Downgrade TFT_eSPI to 2.4.42 2022-04-06 01:17:35 +02:00
fvanroie
10ec121143 Update LovyanGFX driver for Lanbon L8 #220 2022-04-06 00:45:56 +02:00
fvanroie
c26570c13e More detaileled chip model in info 2022-04-06 00:34:54 +02:00
fvanroie
d0e1fd0e6d Add lv_roller_get_selected 2022-04-03 19:51:16 +02:00
fvanroie
b471ff0da5 Change SPI_FREQUENCY to 60MHz 2022-04-03 19:48:46 +02:00
fvanroie
df4e287a11 Add backlight_invert, config/time, screenshot isDirty 2022-04-03 01:43:20 +02:00
fvanroie
143abc212d Add hasp_time 2022-04-03 01:39:56 +02:00
fvanroie
13c1c02d66 Add backlight_invert 2022-04-03 01:38:46 +02:00
fvanroie
fe7db71e8b Add GPIO26 for ESP One #312 2022-03-25 00:00:50 +01:00
fvanroie
dec2531686 Fix typo and rename file 2022-03-24 14:11:05 +01:00
fvanroie
c47b3a32a2 Add build for ESP32 One 3.5inch RPi LCD (C) 2022-03-24 14:08:13 +01:00
fvanroie
316c1417ba
Merge pull request #310 from codewise-nicolas/ng_fix_esp32s2_pins
Fixed the GPIO definitions for ESP32S2
2022-03-16 13:30:23 +01:00
Nick
f2a80d5309
Merge branch 'HASwitchPlate:master' into ng_fix_esp32s2_pins 2022-03-15 21:17:19 -07:00
Nicolas
0cab4efa40 Fixed the GPIP definitions for ESP32S2 2022-03-15 20:42:50 -07:00
fvanroie
028640e37d Fix typo 2022-03-12 16:59:22 +01:00
fvanroie
bbb6b099b3 Fix INVERT_COLORS in lovyan driver #220 2022-03-12 16:08:28 +01:00
fvanroie
88a478d28e Use correct mcu chip for S2 bootloader #250 2022-03-12 14:32:09 +01:00
fvanroie
e5332a3aad TFT_eSPI not compatible with Arduino v2 2022-03-09 15:52:42 +01:00
fvanroie
0c4a192c94 PWM resolution fix 2022-03-09 14:30:35 +01:00
fvanroie
06ea14fd7c Add COMMIT_HASH to info endpoint #308 2022-03-09 14:30:00 +01:00
fvanroie
7af944f008 Update lib_deps 2022-03-09 11:43:17 +01:00
fvanroie
d927b49caa Add BACKLIGHT_FREQUENCY 2022-03-09 11:40:41 +01:00
fvanroie
749781587f Add git short hash to bin files #308 2022-03-09 11:39:30 +01:00
fvanroie
ed3ff69fc8 Update to ArduinoJson 6.19.3 2022-03-09 11:14:40 +01:00
fvanroie
7b067f7cc2 Fix for PWM moodlight crashes 2022-03-06 22:42:25 +01:00
fvanroie
476d268789 Update to TFT_eSPI 2.4.42 2022-03-02 22:07:16 +01:00
fvanroie
ecc4b5bd0b ini Tweaks 2022-03-02 21:28:16 +01:00
fvanroie
4d912f0c71 Update Arduino to 2.0.2r3 2022-03-02 21:19:16 +01:00
fvanroie
456fedc2b8 Remove mfix-esp32-psram-cache-issue 2022-03-02 21:15:25 +01:00
fvanroie
2b2febf967 Add LittleFS_esp32 to lib_ignore 2022-03-02 21:15:11 +01:00
fvanroie
fcf7e43b82 Add LittleFS_esp32 to lib_ignore 2022-03-02 21:04:04 +01:00
fvanroie
44f2091bf2 Add ESP32-S2 Solo board 2022-03-02 21:00:51 +01:00
fvanroie
54be291d73 Update Arduino to 2.0.2r3 2022-03-02 20:59:57 +01:00
fvanroie
126fc09733 Update LV_MEM_SIZE to 32kB on ESP32-S2 #250 2022-03-02 18:39:14 +01:00
fvanroie
ed40f28b7a Fix bootloader path for ESP32 and ESP32S2 #307 2022-03-02 18:18:55 +01:00
fvanroie
a3db393d31
Merge pull request #305 from Jason2866/patch-1
Update to Tasmota core 2.0.2.3
2022-02-28 12:33:42 +01:00
Jason2866
14a15d544f
Tasmota core 2.0.2.3
based on idf44 and arduino commits from 24 Feb.
2022-02-27 21:05:19 +01:00
fvanroie
b9eacba046 Add missing lv_ft_info_t #249 2022-02-25 18:22:58 +01:00
fvanroie
6ea280dbe9 Add HASP_USE_FREETYPE #249 2022-02-25 10:14:13 +01:00
fvanroie
817843558b Update Lanbon for Arduino v1 and v2 2022-02-24 16:41:43 +01:00
fvanroie
44355f24b9 Add support for ESP32-S2 #250 2022-02-24 13:22:28 +01:00
fvanroie
e8e78df7d9 FTp server fixes for Arduino v1 2022-02-24 11:26:11 +01:00
fvanroie
d53130ce30 Downgrade Arduino core to v1 2022-02-24 10:10:32 +01:00
fvanroie
ec616daa80 Remember last pageid for mqtt messages 2022-02-20 13:28:28 +01:00
fvanroie
f96e88d63c
Update Funding support 2022-02-20 08:46:08 +01:00
fvanroie
fada55d475 Add wt-86-32-3zw1 2022-02-19 18:04:20 +01:00
fvanroie
b2b2736df7 Cleanup bitmask comments 2022-02-19 11:17:58 +01:00
fvanroie
028595c1ef Fix screenshot rotation issue 2022-02-19 11:15:03 +01:00
fvanroie
65bb5b9a71 Update LovyanGFX driver #250 2022-02-18 20:26:54 +01:00
fvanroie
327ba25956 Update Funding support 2022-02-18 12:00:24 +01:00
fvanroie
898397f5a4 Update Readme 2022-02-18 12:00:09 +01:00
fvanroie
ee568a791a Configurable HASP_LOG_LEVEL 2022-02-18 10:43:04 +01:00
fvanroie
3311de016c Fix pointer 2022-02-18 10:37:43 +01:00
fvanroie
2e2a7423bf Update to Arduino core ESP32 v2.0.2 2022-02-16 16:59:19 +01:00
fvanroie
b8ab3f54e3 Updated to ArduinoJson 6.19.2 2022-02-16 16:04:52 +01:00
fvanroie
f94cad59a3 Fix TFT_ROTATION 2022-02-16 15:55:43 +01:00
fvanroie
09bf85ad2a Reject IP 0.0.0.0 2022-02-16 15:55:25 +01:00
fvanroie
352105a458 Fix captive portal CSS, allow Firmware Upgrade in AP mode 2022-02-16 15:32:10 +01:00
fvanroie
1acbd6439b Remove Update from URL #300 2022-02-15 06:34:19 +01:00
fvanroie
d8c037bcdb Update Changelog 2022-02-14 11:33:50 +01:00
fvanroie
2f5a1ff4dc Fixed a typo 2022-02-12 16:35:56 +01:00
fvanroie
155b1d1713 Check LGFX_USE_V1 as last option 2022-02-12 15:04:25 +01:00
fvanroie
4f2e3e5921 Set I2C_TOUCH_FREQUENCY 2022-02-12 15:02:58 +01:00
fvanroie
b52768b4f6 Update touch_driver_gslx680.h 2022-02-12 15:02:41 +01:00
fvanroie
ae2f0a1a6f Update telnet server login #296 2022-02-12 11:23:08 +01:00
fvanroie
8b17046ea4 Fix compile error for ConsoleInput 2022-02-12 11:12:49 +01:00
fvanroie
4e093700e4 Add missing ConsoleInput dependency 2022-02-12 11:09:56 +01:00
fvanroie
698fa01d7e Add GSL1680 touch driver #250 2022-02-12 11:07:01 +01:00
fvanroie
1dd847af03 Fix compiler warning 2022-02-12 10:37:20 +01:00
fvanroie
bd256bddd8 Add chinese characters to encoding.json #249 2022-02-12 10:22:27 +01:00
fvanroie
e0703de170 Tweaks for ESP32-S2 #250 2022-02-12 10:13:58 +01:00
fvanroie
a1b9171b49 Update links to documentation 2022-02-10 02:18:24 +01:00
fvanroie
f4dbfb295a Update PWM resolution for ESP32S2 #250 2022-02-10 02:18:07 +01:00
fvanroie
0b7c35cd11 Update documentation links 2022-02-09 00:16:29 +01:00
fvanroie
84e20ac39a No credential size limit and anonymous login 2022-02-06 18:18:12 +01:00
fvanroie
64b5b0a084 Set fixed version for TFT_eSPI to 2.4.32 2022-02-05 03:50:21 +01:00
fvanroie
c1c3d112a4 Add bin file path 2022-02-05 03:34:02 +01:00
fvanroie
122d7cecf2 Add bmp to known images files in File Editor 2022-02-05 03:16:01 +01:00
fvanroie
b4ac68eee5 Http password could be overwritten by 8 asterisks 2022-02-05 03:13:54 +01:00
fvanroie
73fd2918ff Move vietnamese to separate folder 2022-02-05 03:11:24 +01:00
fvanroie
91277afef6 Fix screenshot issue on macOS / iOS / Safari 2022-02-02 08:07:44 +01:00
fvanroie
da4934d831 Add 16bit BMP decoder for local files 2022-02-02 08:05:36 +01:00
fvanroie
518914a714 Update lv_fs_if library 2022-02-02 08:04:00 +01:00
fvanroie
522938417c Fix PSram memory leak for CC push images 2022-02-02 00:56:39 +01:00
fvanroie
6c37025714 Set version to 0.6.3-dev 2022-02-01 07:50:50 +01:00
fvanroie
6c8376c97d Parameterize FTP ports #283 2022-02-01 07:50:15 +01:00
fvanroie
4929286ebe Use PSram for data tags if available #195 2022-02-01 07:33:36 +01:00
fvanroie
73b6dd2e2f Remove halGetMacAddress() calls 2022-02-01 07:29:38 +01:00
fvanroie
3e0ca0241f Add HASP_DEBUG_OBJ_TREE compile flag 2022-02-01 07:10:17 +01:00
fvanroie
c3b10fd2c8 Add jsonl pseudo-attribute 2022-02-01 07:07:04 +01:00
fvanroie
d59bde5d9c Possible fix for dropdown list issue #299 2022-02-01 04:10:08 +01:00
fvanroie
f0218f775d Fix and improve state and part support #295 2022-01-31 22:03:32 +01:00
fvanroie
b895dbd591 Update native platform to v1.1.4 2022-01-31 20:11:26 +01:00
fvanroie
7b3ae82d7c Update CHANGELOG 2022-01-31 20:10:56 +01:00
fvanroie
665f8b992a Add FtpServer::end() function #283 2022-01-31 20:10:42 +01:00
fvanroie
fc9e14a926 Update Parser::is_true() for JSON keys 2022-01-31 05:48:05 +01:00
fvanroie
43dff43a27 Fix output state "on" not being recognised 2022-01-31 00:35:51 +01:00
fvanroie
be62ae46bb Fix output state "on" not being recognised 2022-01-31 00:06:41 +01:00
fvanroie
152d366822 Workaround for PASV with FTP started early 2022-01-30 21:54:20 +01:00
fvanroie
5052186e4a Use current IP address in PASV reply if localIP==0 2022-01-30 21:50:00 +01:00
fvanroie
ad236feca1 Update to Arduino v2.0.2.2 2022-01-30 16:57:12 +01:00
fvanroie
fe3b413592 Update to TFT_eSPI 2.4.25 2022-01-30 16:56:52 +01:00
fvanroie
cdb426556f Update to TFT_eSPI 2.4.25 2022-01-30 16:56:23 +01:00
fvanroie
8df2383d9c Add api endpoints and form loader 2022-01-30 16:56:05 +01:00
fvanroie
b2cf43c2f5 Only send tag if it is defined #195 2022-01-29 23:13:11 +01:00
fvanroie
587f38839c
Merge pull request #294 from nagyrobi/patch-3
Update user_config_override-template.h
2022-01-28 18:16:30 +01:00
fvanroie
812375130b
Merge pull request #292 from nagyrobi/patch-1
Update hu_HU.h
2022-01-28 18:15:58 +01:00
fvanroie
0f75d94724
Merge pull request #293 from nagyrobi/patch-2
Update ro_RO.h
2022-01-28 18:15:06 +01:00
H. Árkosi Róbert
22a0987f1b
Update user_config_override-template.h 2022-01-28 18:15:02 +01:00
H. Árkosi Róbert
d7d7d31dc3
Update ro_RO.h 2022-01-28 18:11:30 +01:00
H. Árkosi Róbert
224b97e290
Update hu_HU.h 2022-01-28 18:07:08 +01:00
fvanroie
f27ee802a2 New localization strings 2022-01-28 17:59:26 +01:00
fvanroie
ef3c93c347 Update ini files and formatting 2022-01-28 17:58:44 +01:00
fvanroie
6943f6ed5c Allow override of LV_MEM_SIZE and LV_VDB_SIZE 2022-01-28 17:50:25 +01:00
fvanroie
d1a7975347 Add api/info endpoint #246 2022-01-28 05:48:05 +01:00
fvanroie
4d031db2de Language string updates 2022-01-28 05:32:45 +01:00
fvanroie
b1e06fba1d Make event buffers bigger #195 2022-01-28 05:04:22 +01:00
fvanroie
f02a0ccd36 Update Readme and Funding 2022-01-26 23:25:08 +01:00
fvanroie
b8369c8ada Update Changelog and Readme 2022-01-26 22:56:48 +01:00
fvanroie
57614ee89b Update fonts to lv_font_conv v1.5.2 #249 2022-01-26 04:43:57 +01:00
fvanroie
89c09620fb Update Changelog 2022-01-26 04:16:40 +01:00
fvanroie
239c56f243 Add custom data tag for objects #195 2022-01-26 03:42:38 +01:00
fvanroie
9dfb039247 Update changelog 2022-01-24 22:38:49 +01:00
fvanroie
3b768053e1 Add wt32-86 touchpanel 2022-01-24 22:28:38 +01:00
fvanroie
f28d99d8e3 Fix syslog messages #285 2022-01-24 05:19:21 +01:00
fvanroie
80b9f0641a Add Wireless-Tag WT-86-32-3ZW1 2022-01-22 22:18:52 +01:00
fvanroie
9100621e0f Update environments 2022-01-22 01:10:32 +01:00
fvanroie
ffaaafbfa3 Fix for image corruption and allow https urls 2022-01-20 02:41:20 +01:00
fvanroie
202e824582 Add switch for building for LittleFS vs LITTLEFS 2022-01-20 01:50:06 +01:00
fvanroie
6e177fefe9 Fix for ARDUINO v1.0.2 compatibility 2022-01-19 21:46:47 +01:00
fvanroie
0f61304f4f Allow https as image src parameter 2022-01-19 02:59:16 +01:00
fvanroie
5777066821 Add larger flash variants of FreeTouchDeck and WT-SC01 2022-01-18 17:53:34 +01:00
fvanroie
c2a5359603 Update to lovyan03/LovyanGFX 0.4.12 2022-01-18 17:32:21 +01:00
fvanroie
e459583df1 Add NTPSERVERS to user_config_override.h 2022-01-18 16:34:14 +01:00
fvanroie
6cc646a93f
Fix dropdownlist close bug
Thanks htvekov
2022-01-18 00:13:28 +01:00
fvanroie
b139d20594
Merge pull request #284 from HASwitchPlate/feature-ftp #283
Add FTP Service
2022-01-18 00:02:33 +01:00
fvanroie
bbd4ba8d40 Better FTP transfer debug messages #283 2022-01-17 20:40:57 +01:00
fvanroie
f2b7a722ee Add service commands, update CHANGELOG and About #283 2022-01-17 05:13:58 +01:00
fvanroie
4d337da0e3 Add SimpleFTPServer #283 2022-01-17 03:50:05 +01:00
fvanroie
e5ceb808fb Update Changelog 2022-01-16 21:50:12 +01:00
fvanroie
9230ebb6da Update to LovyanGFX 0.4.11 and Adafruit STMPE610 1.1.4 #250 2022-01-15 15:46:57 +01:00
fvanroie
79deddf273 Update TFT_eSPI to 2.4.25 2022-01-14 20:08:52 +01:00
fvanroie
c3ed81a4cf Update to ArduinoJson 6.19.1 2022-01-14 16:32:56 +01:00
fvanroie
968a04c2e1 Revert disp key in discovery message #278 #279 2022-01-12 23:49:03 +01:00
fvanroie
1b08419a21 Update D_HTTP_CONFIG_CHANGED 2022-01-12 00:49:08 +01:00
fvanroie
394ba36c84 Statusupdate message change to current screen resolution #278 #279 2022-01-12 00:40:45 +01:00
fvanroie
c5eda03b89 Update translations 2022-01-10 06:17:43 +01:00
fvanroie
781c711abb Update License 2022-01-10 05:57:46 +01:00
fvanroie
084f7bd6ee Add width() and height() to haspTFT driver #278 2022-01-10 05:25:22 +01:00
fvanroie
5e0198efc1 Add reboot info text when configuration is changed 2022-01-10 05:03:09 +01:00
fvanroie
a7a437f48f Add display resolution #278 2022-01-10 04:56:18 +01:00
fvanroie
98e8289969 Add RobotoCondensed Regular Vietnamese font 2022-01-10 02:50:28 +01:00
fvanroie
0ab05e6b4a Add vietnamese 2022-01-10 01:48:51 +01:00
fvanroie
89dab2a3d4 Fix linux_build 2022-01-10 01:48:17 +01:00
fvanroie
5c243910be Fix the d1-r32-unoshield_ili9486_adc evironment 2022-01-09 15:24:40 +01:00
fvanroie
eb343e5e1f Fix the d1-r32-unoshield_ili9341_adc evironment 2022-01-09 15:12:28 +01:00
fvanroie
13b4d25870 Add d1-r32-espduino32 build 2022-01-09 14:50:18 +01:00
fvanroie
c0f1eea7ae Update ArduinoJSON library 2022-01-09 14:50:18 +01:00
fvanroie
730d34f22b
Update README.md 2022-01-03 14:32:14 +01:00
fvanroie
793af80c90
Update Readme 2022-01-03 14:25:57 +01:00
fvanroie
00840c0f3a
Update Readme 2022-01-03 14:19:04 +01:00
fvanroie
35362eac96 Update to platform-espressif32 v2.0.2 #250 2022-01-02 15:02:45 +01:00
fvanroie
a8351df7db Reserve correct mqtt hostname array length #265 2022-01-02 12:21:43 +01:00
fvanroie
de83fa8a9d Allow ANSI codes to be disabled #261 2021-12-31 16:06:14 +01:00
fvanroie
cacdb34df8 Update Readme and Funding 2021-12-02 14:19:46 +01:00
fvanroie
7b1125080c Revert MDI codepoints to ones from 0.6.2 2021-11-25 07:27:19 +01:00
fvanroie
758289fe7c Add backlight pin 27 2021-11-25 07:04:09 +01:00
fvanroie
0548367982 Prevent touch driver crash 2021-11-22 20:04:42 +01:00
fvanroie
1335e8a897 Add font parser and dynamic font loader #249 2021-11-22 17:32:57 +01:00
fvanroie
2d3e498a89 Add GPIO0 to possible backlight pins 2021-11-22 11:20:04 +01:00
fvanroie
e8f1300193 Free font allocations on file open error 2021-11-22 11:19:33 +01:00
fvanroie
cfcaa16ab3 Improve btn value_color consistency 2021-11-22 09:20:38 +01:00
fvanroie
017a9e6dcf Add #include <stdbool.h> 2021-11-21 08:33:46 +01:00
fvanroie
511540efd9 Add hasp_use_psram and LV_VDB_SIZE 2021-11-21 08:24:35 +01:00
fvanroie
182a98644b Use hasp_mem for possible PSram memory allocations 2021-11-21 08:23:43 +01:00
fvanroie
5366ed3dda Add LV_VDB_SIZE to ini files 2021-11-21 08:21:23 +01:00
fvanroie
44bce791ad Fix possible credential exposure 2021-11-21 08:20:38 +01:00
fvanroie
0639a0e2b5 Add support for ESP32-S2 #250 2021-11-20 11:34:36 +01:00
fvanroie
ee3ec951b4
Merge pull request #252 from HASwitchPlate/freetype
Add Freetype build options
2021-11-20 02:56:27 +01:00
fvanroie
c5d405cafa
Merge pull request #251 from HASwitchPlate/freetype
Merge freetype #249
2021-11-20 02:25:40 +01:00
fvanroie
355f7d9b94 Add Freetype build options 2021-11-19 06:42:13 +01:00
fvanroie
ca5a59a026 Remove needs 2021-11-17 05:33:33 +01:00
fvanroie
3fc965e9b3 Different strategy 2021-11-17 05:32:54 +01:00
fvanroie
d23a58a1b6 Different strategy 2021-11-17 05:32:36 +01:00
fvanroie
4831ebca6b Different strategy 2021-11-17 05:31:43 +01:00
fvanroie
2f8ab031f8 Add needs 2021-11-17 05:26:36 +01:00
fvanroie
d10a7f2482 update linux_build 2021-11-17 05:20:02 +01:00
fvanroie
352ad7b62f Update buildscript 2021-11-17 05:17:14 +01:00
fvanroie
5a15e09df6 Update buildscript 2021-11-17 05:13:50 +01:00
fvanroie
64923e5d82 Limit freetype library to ESP32 for now 2021-11-17 05:08:40 +01:00
fvanroie
b6ede246b8 Load test fonts, remove ziFonts 2021-11-16 10:51:17 +01:00
fvanroie
1b555fd614 Change obsolete "txt" to "text" 2021-11-16 10:50:24 +01:00
fvanroie
40c15df7a1 Update log messages 2021-11-16 10:50:00 +01:00
fvanroie
d93a11a1c9 Remove ESP8266 2021-11-16 09:32:45 +01:00
fvanroie
1a50f055af Minor css tweaks and fixes #246 2021-11-16 08:52:29 +01:00
fvanroie
ddd35c8be7 Update stylesheet of gpio form for #246 2021-11-16 08:07:22 +01:00
fvanroie
43ef2426da Use ArduinoJson in attr_out functions 2021-11-16 00:25:33 +01:00
fvanroie
09ae100b27 Harmonize hostname, username and password length 2021-11-16 00:02:24 +01:00
fvanroie
86cfbc98da Update MDI icons codepoints 2021-11-14 23:50:44 +01:00
fvanroie
5235c5a2b9 Update CHANGELOG 2021-11-14 00:51:34 +01:00
fvanroie
623be55655 Enable HASP_USE_MDNS and HASP_USE_OTA 2021-11-14 00:45:56 +01:00
fvanroie
39031718f4 Mergi buildsteps 2021-11-14 00:30:36 +01:00
fvanroie
29f9ff8eb1 Build Parameters 2021-11-13 23:47:57 +01:00
fvanroie
97854e5297 Build Parameters 2021-11-13 23:47:11 +01:00
fvanroie
64a3bf6260 Build Parameters 2021-11-13 23:43:36 +01:00
fvanroie
f83cf04978 Build Parameters 2021-11-13 23:42:15 +01:00
fvanroie
943fe5b101 test 2021-11-13 23:34:28 +01:00
fvanroie
6bcf8f3796 test 2021-11-13 23:32:48 +01:00
fvanroie
55d59f4195 Fix esp32 bootloader path 2021-11-13 22:44:49 +01:00
fvanroie
89ba830ce6 Cast i2c frequency to uint32_t 2021-11-13 22:29:07 +01:00
fvanroie
0bb8d20f9e Split build scripts 2021-11-13 22:11:59 +01:00
fvanroie
edeb5779c7 Fix extra_scripts 2021-11-13 21:41:03 +01:00
fvanroie
1dc6a2bf0c Lanbon L8 pulsecounter tweaks 2021-11-13 21:16:24 +01:00
fvanroie
f00e82e54c Use Arduino 2.0 2021-11-13 20:55:56 +01:00
fvanroie
13abc35d46 Add script.js.gz 2021-11-13 08:10:40 +01:00
fvanroie
95fead66a3 Add D_ISO_LANG_CODE 2021-11-13 08:07:10 +01:00
fvanroie
cc9fdaa1eb Update yaml 2021-11-13 05:05:22 +01:00
fvanroie
8ea6b34103 Restore settings 2021-11-13 04:58:51 +01:00
fvanroie
d97359291e Build flag update 2021-11-13 03:32:16 +01:00
fvanroie
8d09776e6e Disable HASP_USE_OTA 2021-11-13 03:22:26 +01:00
fvanroie
c7a008dd1d Add lib/lv_lib_freetype 2021-11-13 03:16:11 +01:00
fvanroie
7f7c2f08c1 Remove lib/lv_lib_freetype submodule 2021-11-13 03:14:03 +01:00
fvanroie
1f4e030b3e Test 2021-11-13 03:11:29 +01:00
fvanroie
6e49a469de Update submodules 2021-11-13 03:00:32 +01:00
fvanroie
8e74dc00ab Update configs 2021-11-13 02:57:59 +01:00
fvanroie
1fa119a7c8 Update freetype submodule 2021-11-13 01:28:13 +01:00
fvanroie
731be56606 #include "lv_fs_if.h" 2021-11-13 01:27:21 +01:00
fvanroie
1db5b32a4a Add lv_lib_freetype submodule 2021-11-13 00:38:23 +01:00
fvanroie
5c11c6db27 Add submodules 2021-11-13 00:31:07 +01:00
fvanroie
dae897ca28 Update base configs 2021-11-09 21:15:17 +01:00
fvanroie
6013ccd452 Cache style.css on the browser if served from flash #246 2021-11-09 18:20:48 +01:00
fvanroie
e3b20858a0 Split Platform specific build flags 2021-11-09 18:14:46 +01:00
fvanroie
32b8e2b3a1 Code cleanup 2021-11-09 07:59:54 +01:00
fvanroie
d482648ecf Convert HTTP Settings and HASP Design forms to CSS #246 2021-11-09 07:29:56 +01:00
fvanroie
9b036cf689 Fix margin styling of the page #246 2021-11-09 04:02:49 +01:00
fvanroie
b1fbcc597a Convert forms to CSS format 2021-11-09 04:02:02 +01:00
fvanroie
c2511edbd7 Fix reporting of the tab object name 2021-11-08 23:43:35 +01:00
fvanroie
2e6ffee9ce More vivid btn background gilite 2021-11-08 21:50:57 +01:00
fvanroie
ea87953f94 Updates colors for Responsive web UI #246 2021-11-08 21:44:13 +01:00
fvanroie
52f2692489 Update touch driver IDs 2021-11-08 17:30:34 +01:00
fvanroie
a874639b7c Update PSram, Touch driver and Flash size configs 2021-11-08 17:24:20 +01:00
fvanroie
af336e4ec1 Hide pointer on antiburn and idle #134 2021-11-06 05:32:01 +01:00
fvanroie
8f9342be32 Make show/hide pointer effective immediately 2021-11-06 05:24:22 +01:00
fvanroie
a566482a8b Hide pointer on antiburn and idle 2021-11-06 05:21:52 +01:00
fvanroie
f32a222936 Allow json payload for antiburn #134 2021-11-06 04:27:55 +01:00
fvanroie
e65d9bc77a Allow json payload for antiburn 2021-11-06 03:55:05 +01:00
fvanroie
47eb19b9b2 Dispatch antiburn on connect #134 2021-11-06 02:01:42 +01:00
fvanroie
884a466ca9 Add uri to discovery message 2021-11-05 23:59:56 +01:00
fvanroie
28bf5b55e5 Add ESP_ARDUINO_VERSION_VAL 2021-11-05 20:02:00 +01:00
fvanroie
471b3b56ae Remove double zip extension 2021-11-05 16:30:18 +01:00
fvanroie
f2fd400b5c Exclude lv_lib_qrcode from native apps 2021-11-05 03:50:31 +01:00
fvanroie
b59a8146fe Fix build error 2021-11-05 03:40:10 +01:00
fvanroie
e625dc1e55 Revert STMPE610 touch driver 2021-11-05 00:59:23 +01:00
fvanroie
ff8566c1a6 Add ttgo-t7-v1.5_ili9341 2021-11-03 01:39:09 +01:00
fvanroie
236e2975b2 Add parallel bus and extra tft/touch drivers #220 2021-11-03 01:36:05 +01:00
fvanroie
32c6dcfbd7 Annotate LOG_FATAL 2021-11-03 01:34:54 +01:00
fvanroie
ec57fa0463 Add I2C_TOUCH_ADDRESS 2021-11-02 05:48:09 +01:00
fvanroie
80623c6615 Add LovyanGfx Touch driver 2021-11-02 05:45:42 +01:00
fvanroie
ee10659e84 Update forms to use CSS #246 2021-11-01 23:12:26 +01:00
fvanroie
f06912824d Suppress readonly warning if obj matches with existing object 2021-10-30 00:26:52 +02:00
fvanroie
b9e0a2fb30 Update include headers 2021-10-29 16:31:44 +02:00
fvanroie
17b71dbe24 Update environments 2021-10-29 15:50:24 +02:00
fvanroie
92f312df15 Don't use extern 2021-10-29 03:50:10 +02:00
fvanroie
df91cacfcc Restructure touch drivers 2021-10-29 03:46:26 +02:00
fvanroie
156814b79c Test 2021-10-29 03:23:04 +02:00
fvanroie
277becea44 Disable fail-fast 2021-10-29 01:56:06 +02:00
fvanroie
d5c3a1e1dc Test buildscript 2021-10-29 01:50:12 +02:00
fvanroie
bdbed02b38 Restructure touch driver read_touch 2021-10-29 00:45:49 +02:00
fvanroie
8c10cf6093 Restructure touch driver read_touch 2021-10-29 00:37:45 +02:00
fvanroie
eb9fb22a39 Fix ttgo-lilygo-pi_st7796 config 2021-10-28 20:20:14 +02:00
fvanroie
26825ad616 Fix yaml syntax error 2021-10-28 18:37:45 +02:00
fvanroie
556738af0e Add lolin-d32-pro_ili9341 2021-10-28 04:47:31 +02:00
fvanroie
94cab8382e Comment ESP Async WebServer 2021-10-27 17:43:38 +02:00
fvanroie
175f579a38 Add ESP32S2 2021-10-27 17:06:36 +02:00
fvanroie
76257add50 Don't use temprature_sens_read on ESP32S2 2021-10-27 15:39:16 +02:00
fvanroie
9c65a63ee5 Merge branch 'master' of https://github.com/HASwitchPlate/openHASP 2021-10-27 04:41:00 +02:00
fvanroie
f9e4b346ed Include edit.htm.gz only on ESP32, not ESP32-S2 2021-10-27 04:20:22 +02:00
fvanroie
7faee81eab
Merge pull request #243 from nagyrobi/patch-3
Make version loose in features table
2021-10-23 17:37:28 +02:00
H. Árkosi Róbert
63b3803a2e
Make version loose in features table
So it won't look outdated.
2021-10-23 10:47:08 +02:00
fvanroie
942a92fdf3 Add hasp_task 2021-10-21 23:35:32 +02:00
fvanroie
e9f6cf87e3 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-10-20 18:14:32 +02:00
fvanroie
14156aa4f9 Version bump 2021-10-20 18:13:40 +02:00
fvanroie
a3792c1619
Merge pull request #242 from HASwitchPlate/0.6.2
Merge pull request #239 from HASwitchPlate/master
2021-10-20 16:30:41 +02:00
fvanroie
522352e20b Update CHANGLELOG 2021-10-20 16:22:15 +02:00
fvanroie
22ed32a791
Merge pull request #239 from HASwitchPlate/master
Update release.yml
2021-10-20 15:52:27 +02:00
fvanroie
f52fda8db8
Update release.yml 2021-10-20 15:50:42 +02:00
fvanroie
b682549bb1 Remove unused httpEvery5Seconds 2021-10-19 17:12:45 +02:00
fvanroie
35975131b3 Fix statLoopCounter overflow 2021-10-19 16:50:53 +02:00
fvanroie
2e7a772668 Fix HASP_USE_HA compile errors #237 2021-10-18 16:28:58 +02:00
fvanroie
3d37f84a4b Fix compile errors with HASP_USE_HA 2021-10-18 15:42:36 +02:00
fvanroie
3a0c77eb37 2nd attempt to fix HASP_GPIO_TEMPLATE #149 2021-10-18 14:12:37 +02:00
fvanroie
7798a79adf LovyanGFX and Arduino 2.0.0 test config 2021-10-18 11:48:33 +02:00
fvanroie
87831daf6e Update LovyanGFX driver 2021-10-18 11:36:50 +02:00
fvanroie
382537ec6d Fix HASP_GPIO_TEMPLATE #149 2021-10-17 23:50:04 +02:00
fvanroie
cf53d657b2 Add CHANGELOG 2021-10-17 00:38:47 +02:00
fvanroie
7b2350f905 Prepare for ESP arduino-esp32 2.0.0 2021-10-16 04:26:01 +02:00
fvanroie
fcb3529c89 Fix compile errors 2021-10-16 01:15:14 +02:00
fvanroie
06ed10dcf0 Add Run Anti Burn-in button to Display config UI 2021-10-15 22:25:46 +02:00
fvanroie
e846db7762 Simplyfy use of getOption and cache CSS and JS on client 2021-10-15 20:26:06 +02:00
fvanroie
08ed4b9df0 Allow recolor of msgbox button texts. 2021-10-15 20:23:27 +02:00
fvanroie
dfb5aa4cce Fix crash when using both btnmatrix and msgbox #236 2021-10-15 18:48:16 +02:00
fvanroie
c6bb59f4f9 Test LovyanGFX 2021-10-15 16:40:17 +02:00
fvanroie
5dd2c0a1d4 Add skip key to jsonl lines to ignore the whole line 2021-10-15 03:51:23 +02:00
fvanroie
3587e8be8c Prevent creation of multiple antiburn tasks #134 2021-10-14 18:25:33 +02:00
fvanroie
886a394421 Add antiburn command 2021-10-14 18:13:42 +02:00
fvanroie
b92586b36e Code clean-up 2021-10-13 17:56:32 +02:00
fvanroie
ac6179f87e Update GT911 driver 2021-10-13 17:55:58 +02:00
fvanroie
0217063690 Add textarea object 2021-10-13 17:54:36 +02:00
fvanroie
d1783bbb15
Merge pull request #226 from nagyrobi/patch-4
fix description line numbers + add user_config_override.h note
2021-10-12 12:38:49 +02:00
fvanroie
1a080ccb81
Merge pull request #225 from nagyrobi/patch-3
add note about user_config_override.h
2021-10-12 12:38:04 +02:00
H. Árkosi Róbert
acd0ca37b7
fix description line numbers + add user_config_override.h note 2021-10-12 09:31:07 +02:00
H. Árkosi Róbert
c4d565e18f
Update my_custom_template.h 2021-10-12 09:25:55 +02:00
fvanroie
4a4caab016 Fix objid is read-only 2021-10-10 03:14:35 +02:00
fvanroie
568716ac28 Remove unused randomSeed() 2021-10-10 03:14:12 +02:00
fvanroie
758b3daa54 Decouple antiburn from wakeup touch 2021-10-10 03:13:36 +02:00
fvanroie
ec9882714d Fix compiler warnings 2021-10-10 00:47:09 +02:00
fvanroie
f6a8abc286 Fix compiler warnings 2021-10-10 00:38:45 +02:00
fvanroie
4fdbe8a5c0 Fix compiler warning 2021-10-10 00:34:52 +02:00
fvanroie
8e5061852f Added #ifndef LV_FONT_DEFAULT 2021-10-10 00:30:11 +02:00
fvanroie
bbba6baaa7 Add missing custom_topic_payload 2021-10-10 00:17:49 +02:00
fvanroie
163bc8480f Update custom templates 2021-10-10 00:13:32 +02:00
fvanroie
b250e1044d Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-10-09 23:30:04 +02:00
fvanroie
358a45f6f3 Fix ccompile error due to missing include 2021-10-09 23:30:00 +02:00
fvanroie
f0433f25b0
Merge pull request #224 from nagyrobi/patch-2
add HASP_USE_CUSTOM with description
2021-10-09 20:47:29 +02:00
H. Árkosi Róbert
1479bd1cf0
add HASP_USE_CUSTOM with description 2021-10-09 12:46:06 +02:00
fvanroie
917fe508b3 Check for custom used pins 2021-10-09 01:03:00 +02:00
fvanroie
91835d3684 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-10-09 00:00:24 +02:00
fvanroie
9974682d2a Make background of the spinner object transparent 2021-10-09 00:00:20 +02:00
fvanroie
aa3cd5fc2c
Merge pull request #223 from nagyrobi/patch-2
missing info fixed
2021-10-08 23:51:02 +02:00
H. Árkosi Róbert
398dc06521
Update my_custom_fan_template.cpp 2021-10-08 23:48:21 +02:00
fvanroie
61464a408a
Merge pull request #222 from nagyrobi/patch-1
remove unneeded stuff
2021-10-08 22:36:52 +02:00
fvanroie
9d5435a1b6
Keep the function names
I removed the code, but kept the names of the function
2021-10-08 22:35:55 +02:00
H. Árkosi Róbert
5a7c270cb2
remove unneeded stuff 2021-10-08 22:05:02 +02:00
fvanroie
7d50baebe9
Merge pull request #221 from nagyrobi/patch-1
Add some more comments on how to use fan
2021-10-08 21:29:49 +02:00
fvanroie
f362cff718 Add type to spinner objecfr 2021-10-08 21:27:58 +02:00
H. Árkosi Róbert
10587fc078
Add some more comments on how to use fan 2021-10-08 21:25:30 +02:00
fvanroie
caa226c70f Add USAGE section 2021-10-08 19:58:58 +02:00
fvanroie
88b0c764cf Add missing custom_topic_payload 2021-10-08 19:51:46 +02:00
fvanroie
45a451c830 Change HASP_USE_CUSTOM > 0 to defined(HASP_USE_CUSTOM) 2021-10-08 18:59:41 +02:00
fvanroie
dffea46d07 Initial LovyanGFX driver #220 2021-10-08 16:05:06 +02:00
fvanroie
8c13df3390 Add #define HASP_BOOTLOGO_H 2021-10-08 00:53:41 +02:00
fvanroie
b0b9bb2e4f Test that USER_SETUP_LOADED is defined 2021-10-08 00:42:06 +02:00
fvanroie
3c44fecb38 Update core to espressif32@^3.3.2 2021-10-08 00:41:35 +02:00
fvanroie
425886bacd Add dummy touch_read to Generic Touch 2021-10-07 22:42:44 +02:00
fvanroie
2ed8af5a49 Add pivot_x and pivot_y to image objects 2021-10-07 15:01:18 +02:00
fvanroie
93b6de6108 Add esp32-one_st7796 2021-10-06 00:21:05 +02:00
fvanroie
fd83f86b39 Add PSram config 2021-10-03 00:14:21 +02:00
fvanroie
22f226243a Add my_image_release_resources and my_line_clear_points 2021-10-03 00:13:22 +02:00
fvanroie
b191dfc363 Code formating 2021-10-03 00:11:54 +02:00
fvanroie
98e2a34899 Change LOG_NOTICE to LOG_INFO 2021-10-03 00:11:18 +02:00
fvanroie
5b4053421b Add backwards compatibility for /littlefs/ 2021-10-02 00:00:01 +02:00
fvanroie
1e045499fb Add cystom loops 2021-10-01 23:59:17 +02:00
fvanroie
b30c4ca589 Add my_custom_fan_template.cpp 2021-10-01 23:15:30 +02:00
fvanroie
3772db01fa Add custom fan animation example 2021-10-01 23:14:17 +02:00
fvanroie
4dac1ae447 Enable click on images by default 2021-10-01 22:17:51 +02:00
fvanroie
1000fbe963 Convert /littlefs/ to L: in image source 2021-10-01 17:47:16 +02:00
fvanroie
bbe2c373bf Create default files after factory reset 2021-10-01 13:58:26 +02:00
fvanroie
39e807ace6 Add arduitouch-esp32_ili9341 2021-09-30 20:16:29 +02:00
fvanroie
389ab10a9b Change to hasp_set_wakeup_touch #134 2021-09-27 14:05:18 +02:00
fvanroie
53b093a245 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-09-27 02:07:06 +02:00
fvanroie
1d7e93be83 Add anti burn-in protection 2021-09-27 02:07:00 +02:00
fvanroie
6ced9e209c
Update README.md 2021-09-25 00:29:11 +02:00
fvanroie
87a56a3e78
Update README.md 2021-09-25 00:28:25 +02:00
fvanroie
8b714a966b Add image zoom, angle and antialias 2021-09-24 22:50:43 +02:00
fvanroie
baba38b563 Update about webpage 2021-09-23 00:26:34 +02:00
fvanroie
7b9852c73a Update library versions 2021-09-22 23:10:32 +02:00
fvanroie
c8c1a31feb Add HASP_USE_CAPTIVE_PORTAL 2021-09-22 22:00:20 +02:00
fvanroie
529f42c58a
Merge pull request #216 from HASwitchPlate/captive-portal
Add Captive Portal
2021-09-22 21:20:27 +02:00
fvanroie
69af6235ba Update user_configs 2021-09-22 17:50:53 +02:00
fvanroie
4b2ecc9e62 Update user_configs 2021-09-22 15:23:32 +02:00
fvanroie
aab7f0cebf Small adjustments to #213 2021-09-22 14:59:22 +02:00
fvanroie
bd0829ca67
Merge pull request #213 from wesleygas/master
ILI9341 unoshield with analog touch implementation
2021-09-20 17:28:01 +02:00
wesleygas
7e36233489 ILI9341 unoshield with analog touch implementation 2021-09-18 20:05:30 -03:00
fvanroie
d97ac75a83 Initialize dimmer at max level #212 2021-09-17 20:28:35 +02:00
fvanroie
a90e7fd0b3 Fix include on Native apps 2021-09-17 19:21:40 +02:00
fvanroie
aa30b97041 Add PSram support for Espressif ESP32-DevkitC-VE 2021-09-17 17:34:22 +02:00
fvanroie
4b35dbbd5e Fix include on Native apps 2021-09-17 17:29:16 +02:00
fvanroie
6192145f7c Add stm32f7 2021-09-17 16:50:00 +02:00
fvanroie
40b622574d Update DAC to HASP_DAC 2021-09-17 16:48:15 +02:00
fvanroie
7cb4ea601d Add includes 2021-09-17 16:36:03 +02:00
fvanroie
74f1bccc9d Add stm32f7 2021-09-17 16:32:48 +02:00
fvanroie
afa3635e55 Add stm32f7 2021-09-17 16:32:29 +02:00
fvanroie
ff3c8d4708
Merge pull request #210 from AndreTeixeira1998/master
added Captive Portal functionality
2021-09-07 00:11:03 +02:00
André_Teixeira_1998
0645dc48e9
fixed styling in captive portal 2021-09-03 17:09:33 +01:00
André_Teixeira_1998
590368734d
added Captive Portal functionality
In this commit I changed the httpsetup and httploop functions and added webHandleCaptivePortalWifiConfig to send the wifi config page when a device connects to the softAP. 
This will simplify the innitial wifi setup. The usercan just scan the QR code and a webpage will automatically appear without the need to enter the IP address.
2021-09-03 15:01:13 +01:00
fvanroie
7170e1467e #209 Fix configurable mqttPort 2021-09-01 18:31:25 +02:00
fvanroie
198e89815e Re-organize lcd_config 2021-08-31 22:58:18 +02:00
fvanroie
986561b6da Fix hasp_gpio_type_t::HASP_DAC 2021-08-31 22:57:15 +02:00
fvanroie
389c2a4e40 Add stm32f7 2021-08-31 22:15:25 +02:00
fvanroie
75c87665bc #208 Keep last dimmer valie when toggling state on/off 2021-08-31 02:19:37 +02:00
fvanroie
58c601875d Add ESP32 One config 2021-08-16 14:11:07 +02:00
fvanroie
41aafd15a7 Rename nscreen32 config 2021-08-16 14:10:51 +02:00
fvanroie
9229321e88 Remove unused image libraries from Windows config 2021-08-13 04:50:18 +02:00
fvanroie
34112882a1 Use L:/file.png instead of /littlefs/file.png 2021-08-10 01:55:48 +02:00
fvanroie
7efac54de3 Update user_setups 2021-08-08 22:08:23 +02:00
fvanroie
7bf750c095 Disable HASP_USE_MDNS 2021-08-08 19:36:33 +02:00
fvanroie
9b2c73fb26 Update about webpage 2021-08-08 17:17:36 +02:00
fvanroie
9b8adb0223 Disable unused widgets 2021-08-08 17:17:10 +02:00
fvanroie
f0e57e92b4 Don't use http src on ESP8266 2021-08-07 01:39:52 +02:00
fvanroie
7e97baaf68 Comment out unused lv_lib_split_jpg 2021-08-07 00:50:56 +02:00
fvanroie
b3b8953efe Fix lv_lib_split_jpg library link 2021-08-07 00:27:07 +02:00
fvanroie
d477d6ad3d Execute filesystemSetupFiles afterdispatch_factory_reset 2021-08-07 00:21:01 +02:00
fvanroie
153315d799 Comment unused linux image libraries 2021-08-06 00:15:58 +02:00
fvanroie
e01ddcb8ad Fix MacOS X compiler issues 2021-08-05 23:47:50 +02:00
fvanroie
20c54f7801 Allow variable parameter as msgbox text 2021-08-03 01:31:44 +02:00
fvanroie
d3da4957bb Create default files on filesystem format 2021-08-03 01:31:02 +02:00
fvanroie
08b3593fdb Add d1 R32 ESP32 with Waveshare ILI9486 Touch Shield 2021-08-02 20:51:37 +02:00
fvanroie
41d42a7ded Http images for Arduino only 2021-08-02 20:50:49 +02:00
fvanroie
a0c9116fcb Version bump 2021-08-02 20:50:31 +02:00
fvanroie
92d96d63ff
Merge pull request #194 from HASwitchPlate/image-improvement
Merge image improvement branch
2021-08-02 20:16:23 +02:00
fvanroie
5e1b4504e8
Merge branch 'master' into image-improvement 2021-08-02 19:08:37 +02:00
fvanroie
3a34fe285f Send sensordata with current state 2021-08-02 00:45:08 +02:00
fvanroie
cdccb1f30d Publish sensor data to state/sensors 2021-08-01 23:28:12 +02:00
fvanroie
26e7b80a4b Change exec command to run 2021-08-01 22:45:25 +02:00
fvanroie
2250a36d0d Remove haspTouch.loop() 2021-08-01 22:27:10 +02:00
fvanroie
287f1f1e0b Fix wifi connect/disconnect bug 2021-08-01 16:41:48 +02:00
fvanroie
4103535aac Scan wire before starting touch driver 2021-08-01 02:11:22 +02:00
fvanroie
cb090b3cf3 Fix compiler warning 2021-08-01 02:10:54 +02:00
fvanroie
5eec41586c Bump ESP32 framework to 3.3.1 2021-08-01 02:09:46 +02:00
fvanroie
ef1e41334c Add backlight pin 13 for D1 R32 2021-08-01 02:09:02 +02:00
fvanroie
1bb974d084 No auto reboot when wifi is disconnected. Execute offline.cmd and online.cmd 2021-08-01 02:08:39 +02:00
fvanroie
5e19ee3fc7 Update to ArduinoJson 6.18.3 2021-07-27 17:47:56 +02:00
fvanroie
a3f1fd1dcc Add source tag to commands 2021-07-19 22:23:08 +02:00
fvanroie
f03d231792 Add source tag to commands and execute online.cmd and offline.cmd 2021-07-19 18:18:49 +02:00
fvanroie
69a67be38c Add source tag to commands 2021-07-19 17:39:38 +02:00
fvanroie
e0c1f6930e Update error reporting 2021-07-19 17:38:59 +02:00
fvanroie
3ec4f70260 Add source tag to commands 2021-07-19 17:37:25 +02:00
fvanroie
a996004a7e Update log messages 2021-07-19 04:38:12 +02:00
fvanroie
ee89b240dc Check ARDUINO for console service 2021-07-19 02:13:44 +02:00
fvanroie
82fd2c930a Add mdns_remove_service 2021-07-19 02:13:19 +02:00
fvanroie
e7fc913dd7 Fix compiler errors for file.open 2021-07-19 01:44:43 +02:00
fvanroie
f72e3f3439 Switch back to main lvgl/lvgl repo 2021-07-19 00:53:51 +02:00
fvanroie
89e30f3877 Initialize _logOutput to NULL 2021-07-19 00:33:45 +02:00
fvanroie
313d4b4152 Code cleanup 2021-07-19 00:33:15 +02:00
fvanroie
a2c9686341 Add HASP_START_CONSOLE 2021-07-19 00:33:03 +02:00
fvanroie
448f37259a Allow editing .cmd files in File Editor 2021-07-19 00:32:41 +02:00
fvanroie
1833215957 Add exec and service start|stop console 2021-07-19 00:32:18 +02:00
fvanroie
31389d92dd Add consoleStart and consoleStop functionality 2021-07-19 00:31:54 +02:00
fvanroie
d194d7f04f Add HASP_START_TELNET and HASP_START_HTTP 2021-07-18 18:00:42 +02:00
fvanroie
446a0357d2 Fix compiler error 2021-07-18 17:42:31 +02:00
fvanroie
08838615a9 Change tabview parts indexes 2021-07-18 17:33:39 +02:00
fvanroie
b1ec4bfc4a Add HASP_START_TELNET and HASP_START_HTTP 2021-07-18 17:02:26 +02:00
fvanroie
cccb81f5d5 Add Tabview parts 2021-07-16 15:52:38 +02:00
fvanroie
02cb5fea78 Fixes gauge critical_value scale tick always visible 2021-07-14 17:23:35 +02:00
fvanroie
1cffc054c8 Cleanup old defines 2021-07-12 15:33:51 +02:00
fvanroie
c36f3fe712 Add dispatch_state_subtopic example 2021-07-12 15:33:17 +02:00
fvanroie
db57b0512a Fix typo 2021-07-12 04:17:07 +02:00
fvanroie
019fe20e1c Add HASP_USE_CUSTOM 2021-07-12 04:13:50 +02:00
fvanroie
0cb5588199 Add HASP_USE_CUSTOM 2021-07-12 04:09:37 +02:00
fvanroie
3b377c8814 Add my_custom_template 2021-07-12 03:56:41 +02:00
fvanroie
a2ab8cfc2c Add HASP_USE_CUSTOM 2021-07-12 02:31:43 +02:00
fvanroie
4ab180be26 Add guiTftInit 2021-07-12 01:47:58 +02:00
fvanroie
2a6c7d509d Fix compile error 2021-07-11 17:09:32 +02:00
fvanroie
7bf1ba0103 Fix font issue on ESP8266 2021-07-11 17:03:18 +02:00
fvanroie
cc27968355 Add Greek letters with tones 2021-07-11 16:23:41 +02:00
fvanroie
6ac5a245c7 Check for defines in dispatch_service 2021-07-11 15:18:43 +02:00
fvanroie
5b2e7dc96b Add Greek character set 2021-07-11 14:44:44 +02:00
fvanroie
dab42f7853 Cleanup unused http styles 2021-07-11 13:49:19 +02:00
fvanroie
d99e848e19 Add service and theme commands for testing purposes 2021-07-11 13:48:04 +02:00
fvanroie
f671a8beb0 Add gauge parts and optimized parts parser 2021-07-06 21:48:44 +02:00
fvanroie
c83afd4f34 Update hasp_font_create.py 2021-07-06 04:12:07 +02:00
fvanroie
d5f385eaad Add hasp_font_create.py 2021-07-06 02:03:45 +02:00
fvanroie
ce4df6d810 Add #if HASP_USE_MDNS check 2021-07-06 01:59:48 +02:00
fvanroie
15aba77c45 Check length of points array items 2021-07-06 01:58:50 +02:00
fvanroie
7db26fda4d Code formatting 2021-07-06 01:56:10 +02:00
fvanroie
e85c093a0f Update heap memory calculation 2021-07-06 01:55:16 +02:00
fvanroie
eb2e541681 Update latin2 font with extra icons 2021-07-05 22:12:23 +02:00
fvanroie
459e5158a6 Correct display model is ST7796S 2021-07-05 05:01:15 +02:00
fvanroie
d8c518c90d Update configurations 2021-07-04 23:37:03 +02:00
fvanroie
e9d98cca44 Disable ArduinoOTA by default 2021-07-04 23:28:32 +02:00
fvanroie
f33973e4b3 update ArduinoJson to 6.18.1 2021-07-04 23:27:54 +02:00
fvanroie
bd45601449 Update cyrillic font with extra icons 2021-07-04 22:49:48 +02:00
fvanroie
f5cb90945c Update latin1 font with extra icons 2021-07-04 22:46:08 +02:00
fvanroie
3cfc62465e Update ascii font with extra icons 2021-07-04 22:14:56 +02:00
fvanroie
674c0a8f3b Add line object parameters auto_size and y_invert 2021-07-03 00:04:10 +02:00
fvanroie
f77b76df87 Add line object 2021-07-02 23:28:44 +02:00
fvanroie
a5b783a03a Allow -1 as btnmatrix value to clear selection 2021-07-02 20:57:21 +02:00
fvanroie
8b28ecc8cf Add M5Stack Core2 backlight dimming 2021-07-02 16:05:35 +02:00
fvanroie
84f5685ca7 Add HASP_USE_HTTP_ASYNC 2021-07-02 16:00:51 +02:00
fvanroie
56c0f6e784 Update ESP32 platform version 2021-07-02 01:40:42 +02:00
fvanroie
c11a127549 Add ttf 2021-07-02 01:38:37 +02:00
fvanroie
16410c3453 Add lv_font_conv 2021-06-30 23:39:05 +02:00
fvanroie
bac6b9e528 Add HASP_USE_TELNET 2021-06-30 19:59:12 +02:00
fvanroie
f9ca984c15 Code cleaanup 2021-06-30 00:40:59 +02:00
fvanroie
4214bec6bb Add HASP_USE_HTTP checks 2021-06-29 23:33:33 +02:00
fvanroie
69b3882460 Adjust flash size to 16MB 2021-06-27 18:32:03 +02:00
fvanroie
d8960c1a15 Fix Dimmer issue after boot 2021-06-27 02:43:31 +02:00
fvanroie
7916b4d639 Add freememory 2021-06-27 01:25:16 +02:00
fvanroie
2f038eddd1 Fix update_backlight 2021-06-26 19:19:06 +02:00
fvanroie
3554296469 Code clean-up 2021-06-26 19:18:03 +02:00
fvanroie
2d31165fe0 Add get_sensors and get_uptime 2021-06-26 19:17:15 +02:00
fvanroie
ef8413234f Code cleanup 2021-06-26 02:57:52 +02:00
fvanroie
a751569bde Add font_loader 2021-06-26 01:27:50 +02:00
fvanroie
b520ae0253 Fix ESP8266 unzip 2021-06-25 23:50:55 +02:00
fvanroie
37face7114 Add Yeacreate Nscreen32 2021-06-22 23:14:16 +02:00
fvanroie
b6072c08ed Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-06-20 00:31:38 +02:00
fvanroie
d674d5d52c Add unzip command 2021-06-20 00:31:34 +02:00
fvanroie
29fec3e8cc Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-06-18 22:09:22 +02:00
fvanroie
1b75319cb7 Get/set btnmatrix last value 2021-06-18 22:09:17 +02:00
fvanroie
098211f0f7 Add extra digit to format_bytes 2021-06-18 21:26:29 +02:00
fvanroie
e099e454c7 Cache 20 images when PSram is present 2021-06-18 01:59:12 +02:00
fvanroie
233cb53f8c Add custom bootlogo_template.h 2021-06-15 23:17:01 +02:00
fvanroie
63793a957b Add ², ³ and weather icons + recycle symbol 2021-06-15 18:34:14 +02:00
fvanroie
3caaa5c885 Include Turkish characters 2021-06-15 04:55:21 +02:00
fvanroie
cf9202aed5 Add ², ³ and missing French characters, add weather icons + recycle 2021-06-15 03:43:10 +02:00
fvanroie
0d4209d9a6 Fix default OTA port 2021-06-14 21:15:47 +02:00
fvanroie
2845083829 Allow custom bootlogo 2021-06-14 21:08:59 +02:00
fvanroie
ac72e2292e Rename bootImage to
logoImage
2021-06-14 21:01:29 +02:00
fvanroie
d1f941828a Allow custom bootlogo 2021-06-14 20:51:43 +02:00
fvanroie
46e7104a19 Fix OTA was never included anymore 2021-06-14 20:48:25 +02:00
fvanroie
2faab3a063 Untested device configs 2021-06-14 19:48:36 +02:00
fvanroie
66c456a1d1 Fix dropdown redraw bugs 2021-06-14 18:36:04 +02:00
fvanroie
99879441d5 Add .val to btnmatrix 2021-06-14 16:22:16 +02:00
fvanroie
3eed71febe Zero image buffer 2021-06-13 20:47:01 +02:00
fvanroie
e86cb437c4 Fix lv_lib_split_jpg lvgl.h include issue 2021-06-13 15:59:31 +02:00
fvanroie
aa2a97090b Use PSram and more debug info 2021-06-13 02:05:49 +02:00
fvanroie
63e2ed953a Remove mklittlefs 2021-06-12 01:02:32 +02:00
fvanroie
d40a9188f8 Add missing MIT License 2021-06-12 00:59:29 +02:00
fvanroie
6f81434615 Disable ArduinoOTA on WT32-SC01 2021-06-12 00:50:14 +02:00
fvanroie
2f33550aac set LV_SPRINTF_CUSTOM to 1 2021-06-11 22:59:20 +02:00
fvanroie
4da628cc68 Fix disconnected mqtt info not showing up 2021-06-11 18:38:48 +02:00
fvanroie
0d1066e97f define LV_LINEMETER_PRECISE 2 2021-06-11 15:04:19 +02:00
fvanroie
b14e581fae
Fix links 2021-06-08 14:43:37 +02:00
fvanroie
75ebb85eaa
Merge pull request #173 from nagyrobi/patch-1
Fix features table
2021-06-08 14:28:40 +02:00
nagyrobi
18b838ccb6
Update README.md 2021-06-08 10:27:10 +02:00
fvanroie
1cca0873fd Test raw image over http 2021-06-07 16:11:10 +02:00
nagyrobi
f2a6909a39
Update README.md 2021-06-07 08:37:08 +02:00
fvanroie
240d559255 Obsolete esp32ResetReason 2021-06-05 23:41:08 +02:00
fvanroie
4ebd010883 Update lv_lib_png repo and gitsubmodules 2021-06-03 16:36:03 +02:00
fvanroie
d345a34598 Version bump 2021-06-02 16:40:59 +02:00
fvanroie
adfc57acd7 Make HASP_LOG_LEVEL default to LOG_LEVEL_TRACE 2021-06-01 20:30:44 +02:00
fvanroie
c9d93dd578 Adjust color of the knobs 2021-06-01 20:28:08 +02:00
fvanroie
5b5261140f Speedup LV_INDEV_DEF_READ_PERIOD 2021-06-01 20:14:42 +02:00
fvanroie
f96d17dca6 Code clean-up 2021-06-01 20:13:56 +02:00
fvanroie
a78f3c213b Specify commit for lv_lib_png 2021-06-01 17:23:52 +02:00
fvanroie
3fd3a7d036 Specify commit for lv_lib_png 2021-06-01 16:20:37 +02:00
fvanroie
0ea0658475 Update image links 2021-06-01 16:03:11 +02:00
fvanroie
d715d8c4dd Fix Lanbon rotation 2021-06-01 15:59:11 +02:00
fvanroie
456a9aadb1 Add Buy me a coffee 2021-06-01 00:24:07 +02:00
fvanroie
12d46c44f5 Enable LV_IMGBTN_TILED 2021-06-01 00:21:07 +02:00
fvanroie
a3aea102cb Move touchdriver to old 2021-06-01 00:20:53 +02:00
fvanroie
d556cd86d2 Update readme 2021-06-01 00:20:11 +02:00
fvanroie
6b19a16805
Merge pull request #171 from HASwitchPlate/touch-redesign
Touch redesign
2021-05-31 21:28:25 +02:00
fvanroie
2573845cab Code cleanup 2021-05-31 19:46:48 +02:00
fvanroie
7a42297e36
Merge pull request #170 from HASwitchPlate/master
Merge master into touch-redesign
2021-05-31 18:52:29 +02:00
fvanroie
432b9ecf1b Fix compile warning 2021-05-31 18:37:42 +02:00
fvanroie
8cd853eef6 Fix GPIO page titles 2021-05-31 18:37:25 +02:00
fvanroie
f9c87e294e Update local attribute parser 2021-05-31 18:36:51 +02:00
fvanroie
a1b6150fa2 Unify gpio state senders 2021-05-30 16:17:58 +02:00
fvanroie
498361654a Fix relay bug 2021-05-30 16:17:28 +02:00
fvanroie
d913a697fb Increase size of the payload buffer 2021-05-30 00:04:07 +02:00
fvanroie
3dadfa606d Use brightness for dimmable lights 2021-05-29 23:37:59 +02:00
fvanroie
5b9d5f45e3 Fix a telnet server crash 2021-05-29 23:13:40 +02:00
fvanroie
629c7c58cb Initialize power state. Only report state for relays 2021-05-29 22:38:08 +02:00
fvanroie
9413d822e6 Touch redesign 2021-05-29 20:39:26 +02:00
fvanroie
fd5dec8f8b Make .val obsolete with relays 2021-05-29 16:59:10 +02:00
fvanroie
3b8985784a Accept .png files for upload 2021-05-29 16:58:26 +02:00
fvanroie
b7a2103899 Simplify device class files 2021-05-29 15:15:57 +02:00
fvanroie
0350f86c35 Rename STMPE_CS to TOUCH_CS 2021-05-29 15:15:10 +02:00
fvanroie
d0a78299a3 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-05-28 15:21:21 +02:00
fvanroie
b104e50027 Add binary_sensor class names 2021-05-28 15:21:06 +02:00
fvanroie
c19b2a7356 Larger config/* response buffer 2021-05-28 15:19:53 +02:00
fvanroie
f5c848e417 Fix old FT6336 driver 2021-05-28 04:28:22 +02:00
fvanroie
c3ffe9cc5e Move old touch driver into subfolder 2021-05-28 04:03:19 +02:00
fvanroie
b78378363f Update tft driver path 2021-05-27 23:27:50 +02:00
fvanroie
b7e95dccb7 Fix config topic 2021-05-27 18:36:35 +02:00
fvanroie
c71e1111e0 Fix config topic 2021-05-27 18:36:13 +02:00
fvanroie
08013d04f4 Touch bug 2021-05-27 18:08:28 +02:00
fvanroie
56a124755f Cleanup SDL2 touch driver 2021-05-27 18:06:29 +02:00
fvanroie
b59fbfd6f5 Update tft driver path 2021-05-27 17:57:14 +02:00
fvanroie
f3a4dad013 Update tft driver path 2021-05-27 17:26:57 +02:00
fvanroie
9bc9dd7500 Optimize touch driver 2021-05-27 16:56:24 +02:00
fvanroie
e1f83e6c58 Fix options attribute 2021-05-27 16:51:40 +02:00
fvanroie
b302b585e3 Translations for obsoleted attributes 2021-05-27 16:51:26 +02:00
fvanroie
50c4d8d20a Translation strings for obsoleted attribute 2021-05-27 16:50:48 +02:00
fvanroie
561c4bfd25 Disconnect telnetClient on reboot 2021-05-27 15:34:41 +02:00
fvanroie
3ab89febc7 Disconnect telnetClient on reboot 2021-05-27 15:34:10 +02:00
fvanroie
a3fa04db62 Move tft driver to drv/tft 2021-05-27 15:33:29 +02:00
fvanroie
ca920eff2d oobe ScanNetworks and fix wifiValidateSsid 2021-05-27 03:52:07 +02:00
fvanroie
b8bdcaf710 Swap out FT5206 for FT6336U 2021-05-27 02:22:05 +02:00
fvanroie
bab84898e0 Add inputX command to retrieve gpio state 2021-05-24 00:14:47 +02:00
fvanroie
57569e7b06 Show IP address on connect 2021-05-24 00:05:21 +02:00
fvanroie
3593ce20b3 Native fixes for millis and dimmer 2021-05-23 23:32:10 +02:00
fvanroie
dae5a89ff1 Change input gpio message to state 2021-05-23 23:05:55 +02:00
fvanroie
880ec25845 Performance tweaking 2021-05-23 22:57:59 +02:00
fvanroie
010067689d Add HASP_GPIO_TEMPLATE 2021-05-23 22:57:32 +02:00
fvanroie
6b613eaf38 Fake gpio inputs for native 2021-05-23 22:57:05 +02:00
fvanroie
e85804b2cc Performance tuning 2021-05-23 22:55:54 +02:00
fvanroie
3991647597 Faster statusupdate check 2021-05-23 20:22:53 +02:00
fvanroie
5b3a7b6140 Fix telnet Client and flush pending line updates 2021-05-23 20:21:59 +02:00
fvanroie
14b0bf3913 Select used fonts via user_config_override #148 2021-05-23 17:16:32 +02:00
fvanroie
72b58ede12 Replace do while loop with while loop 2021-05-23 15:27:51 +02:00
fvanroie
d8f6cf31ca Obsolete wakeup command in favor of idle off 2021-05-23 14:31:26 +02:00
fvanroie
d83b5507c5 Obsolete wakeup command in favor of idle off 2021-05-23 14:30:14 +02:00
fvanroie
99a7b58ae0 Obsolete wakeup command in favor of idle off 2021-05-23 14:29:57 +02:00
fvanroie
6835eda5b2 Fix telnet logoff crash 2021-05-23 14:04:23 +02:00
fvanroie
7d6029ebe6 Obsolete wakeup command in favor of idle off 2021-05-23 14:04:11 +02:00
fvanroie
0a7a405f8e Version bump StreamUtils 2021-05-23 12:54:53 +02:00
fvanroie
bae324aa5f Buffered reads from telnetClient 2021-05-23 12:40:36 +02:00
fvanroie
372c51a9e6 Buffered writes to telnetClient 2021-05-23 12:20:59 +02:00
fvanroie
a80de01d0e Move light and dim into backlight command 2021-05-23 00:01:17 +02:00
fvanroie
0575400c3d Update moodlight json format 2021-05-22 23:00:32 +02:00
fvanroie
ed151860c8 Update File Browser 2021-05-22 16:38:42 +02:00
fvanroie
0e1ff56d30 Update File Browser 2021-05-22 15:45:50 +02:00
fvanroie
aa25af5e37 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-05-22 01:02:18 +02:00
fvanroie
8a29f76a33 Fix get_version() 2021-05-22 01:02:14 +02:00
fvanroie
beda2a380e Fix FS for MacOS X 2021-05-21 23:57:49 +02:00
fvanroie
417d0934fc Straight edges for pages 2021-05-21 22:24:00 +02:00
fvanroie
56fcd80030 New attempt 2021-05-21 22:01:20 +02:00
fvanroie
53047411d2 Allow align specified by numbers as in previous versions. Fix mode attribute. 2021-05-21 21:43:30 +02:00
fvanroie
a7b4b94fe4 Fix filename parsing 2021-05-21 20:44:28 +02:00
fvanroie
c43403b3f7 Fix filename parsing 2021-05-21 20:03:18 +02:00
fvanroie
8d16dfb186 Fix filename parsing 2021-05-21 18:56:32 +02:00
fvanroie
c1d4fad16e Add D_ATTRIBUTE_LONG_MODE_INVALID 2021-05-21 18:21:52 +02:00
fvanroie
d462162307 Ignore comment attribute 2021-05-21 15:28:43 +02:00
fvanroie
2f592a6af6 Ignore comment attribute 2021-05-21 15:15:16 +02:00
fvanroie
5492610d9d Correct partition csv file 2021-05-21 14:08:59 +02:00
fvanroie
1c62b5ef97 Fix toggle, back, prev, next properties 2021-05-21 14:08:39 +02:00
fvanroie
03f891c740 Merge branch 'gpio-redesign' 2021-05-20 15:41:29 +02:00
fvanroie
8fe16cd68d Merge branch 'master' into gpio-redesign 2021-05-20 15:41:09 +02:00
fvanroie
f10494b268 Fix typo 2021-05-20 15:35:56 +02:00
fvanroie
12344b8c73 Set font sizes to HASP_FONT_SIZE_x 2021-05-20 13:54:16 +02:00
fvanroie
083c8caad3 Set font sizes to HASP_FONT_SIZE_x 2021-05-20 13:48:34 +02:00
fvanroie
35da04d96a Version bump TFT_eSPI@^2.3.69 2021-05-18 13:42:52 +02:00
fvanroie
95d0007642 Code cleanup 2021-05-18 13:41:24 +02:00
fvanroie
952ab55b98 Add ssid and ip dynamic text parameters 2021-05-18 13:41:00 +02:00
fvanroie
62540e8443 Add static_text for labels 2021-05-18 04:20:05 +02:00
fvanroie
798cf8bd5e Replace haspGetVersion() with haspDevice.get_version() 2021-05-18 04:19:26 +02:00
fvanroie
af9e45645e Add translations 2021-05-18 02:30:25 +02:00
fvanroie
5c17df8cf2 Use separate input/output buttons 2021-05-18 00:17:11 +02:00
fvanroie
b926e984e3 Check hasp_local_style_attr last 2021-05-18 00:16:51 +02:00
fvanroie
968a78f3a3 Set LV_LED_BRIGHT_MIN=0 2021-05-18 00:16:33 +02:00
fvanroie
2fa975f21c Update discovery and device classes for binary_input 2021-05-18 00:16:13 +02:00
fvanroie
6879cf12f5 Update tests 2021-05-17 14:14:46 +02:00
fvanroie
67542199a8 Add generic_event_handler to spinner 2021-05-16 23:56:21 +02:00
fvanroie
b216cc1096 Rewrite of the attribute parser 2021-05-16 23:55:34 +02:00
fvanroie
9dda843e3b Use ascii characterset for WT32-SC01 2021-05-16 23:54:58 +02:00
fvanroie
4e33888580 Add HASP_OBJ_LINEMETER 2021-05-16 22:21:19 +02:00
fvanroie
5dad8b938e Bugfix in led index 2021-05-16 22:01:15 +02:00
fvanroie
66bba78b03 Change lmeter to linemeter 2021-05-16 22:00:38 +02:00
fvanroie
830b3acbef Add strcpy_P for native builds 2021-05-16 21:59:29 +02:00
fvanroie
00962f1538 Check object type before task run 2021-05-16 21:59:09 +02:00
fvanroie
5f6e0cf45e Add strings for invalid attributes 2021-05-16 21:58:23 +02:00
fvanroie
ee3c037580 Update tests 2021-05-16 21:57:59 +02:00
fvanroie
17cdca19df inline object_get_type functions 2021-05-15 13:49:04 +02:00
fvanroie
8fb8733f05 Fix for fake gpios 2021-05-15 13:48:29 +02:00
fvanroie
09b8fa72a7 Fix esp8266 compile errors 2021-05-15 13:33:49 +02:00
fvanroie
882ccaf79c Update gpio and group dispatcher 2021-05-15 12:46:59 +02:00
fvanroie
5f711fc0ce Update tavern tests 2021-05-15 12:46:04 +02:00
fvanroie
a89fc857c1 Add test/config.yaml 2021-05-15 12:45:49 +02:00
fvanroie
a73984aefa Add types for generic attribute lists 2021-05-15 12:45:25 +02:00
fvanroie
b59207e1b6 Code cleanup 2021-05-15 12:44:56 +02:00
fvanroie
2d9e73d0ff Optimize performance of the main loop 2021-05-15 12:44:25 +02:00
fvanroie
71193fef4d Update group values 2021-05-15 12:43:04 +02:00
fvanroie
52659803fd Add clear and spinner attributes.
More generic attribute methods
2021-05-15 12:42:03 +02:00
fvanroie
7e80c81ea1 Separate input and output config pages 2021-05-15 12:40:02 +02:00
fvanroie
859a111d9e Rework gpios 2021-05-15 12:39:10 +02:00
fvanroie
d42749703e Add power pulse counter 2021-05-15 12:35:20 +02:00
fvanroie
e77a1d14d3 Update config.yaml template 2021-05-15 11:58:07 +02:00
fvanroie
46505290bf Update tavern tests 2021-05-15 11:53:55 +02:00
fvanroie
55961c5b4f Speedup loop 2021-05-15 05:23:59 +02:00
fvanroie
8755f78b4a Add LV_ATTRIBUTE_TASK_HANDLER 2021-05-15 05:20:12 +02:00
fvanroie
8414cd7a71 Add ext_click_h and ext_click_v
Add my_obj_get_range for setting group values
2021-05-13 17:36:05 +02:00
fvanroie
01b26cb70b
Merge pull request #164 from nagyrobi/master
Add gitpod build environment for almost oneclick builds
2021-05-13 09:40:53 +02:00
nagyrobi
54a1f02e18
Create .gitpod.yml 2021-05-13 09:27:49 +02:00
nagyrobi
9d44b2cd6d
Create .gitpod.Dockerfile 2021-05-13 09:10:01 +02:00
fvanroie
6e758a460f Reboot using deepsleep 2021-05-12 09:33:56 +02:00
fvanroie
81850a52ad Remove HASP_NUM_INPUTS 2021-05-12 04:29:32 +02:00
fvanroie
2f2d24954f Add HASP_GPIO_TOUCH 2021-05-12 04:29:20 +02:00
fvanroie
7b03c0ae83 Use hasp_update_value_t to dispatch normalized value updates 2021-05-12 04:29:05 +02:00
fvanroie
5961ce87de Add D_GPIO_TOUCH 2021-05-12 04:24:57 +02:00
fvanroie
9a19ddc747 Fix filesystemInfo for ESP8266 2021-05-11 23:14:52 +02:00
fvanroie
b023cfcec6 Update Portuguese 2021-05-11 22:22:48 +02:00
fvanroie
718d0bfecc Add AceButton pointer to gpio struct 2021-05-11 22:18:12 +02:00
fvanroie
06860ac02f
Merge pull request #163 from dgomes/fix_pt
Improve pt_PT
2021-05-11 22:15:21 +02:00
Diogo Gomes
e35ce74ce9 pt_PT 2021-05-11 21:13:29 +01:00
fvanroie
2bd650ec4f Create regional files for Portuguese 2021-05-11 20:46:57 +02:00
fvanroie
74149bbdc5 Strings for file sizes 2021-05-11 18:42:51 +02:00
fvanroie
011e410ed4
Merge pull request #162 from AndreTeixeira1998/master
Added new Portuguese language header file
2021-05-11 18:29:42 +02:00
André_Teixeira_1998
d1bf2675b7
Added new Portuguese language header file 2021-05-11 17:20:40 +01:00
fvanroie
1b42dd4a6b Add translations for file size units and decimal point/comma 2021-05-11 02:26:03 +02:00
fvanroie
eac9132d78 Merge branch 'gpio-redesign' of http://github.com/fvanroie/hasp-lvgl into gpio-redesign 2021-05-11 01:34:20 +02:00
fvanroie
2f5d75b556 Set LV_MEM_SIZE to 48 kB 2021-05-11 01:34:17 +02:00
fvanroie
da9edfa8fa Add moodlight brightness 2021-05-11 01:33:54 +02:00
fvanroie
5a847f0da2 Code cleanup 2021-05-11 01:33:39 +02:00
fvanroie
64eeb49a78 Add moodlight brightness 2021-05-11 01:32:29 +02:00
fvanroie
637668d9b1 Add usedBytes and totalBytes 2021-05-11 01:31:55 +02:00
fvanroie
16f4c9d3b0 Remove duplicate D_TELNET_CLIENT_NOT_CONNECTED 2021-05-11 01:30:31 +02:00
fvanroie
c314e56d54 Merge branch 'master' of https://github.com/altersis/openHASP into gpio-redesign 2021-05-11 01:26:34 +02:00
Gerardo Castillo
e236905f2e
THis is the new Spanish language file 2021-05-10 18:54:32 -04:00
fvanroie
eecfb8ed43 Merge branch 'gpio-redesign' of http://github.com/fvanroie/hasp-lvgl into gpio-redesign 2021-05-10 23:20:02 +02:00
fvanroie
a20da57b9b Add variable windows size for native apps 2021-05-10 17:41:48 +02:00
fvanroie
2216cc0ddd Update ini for png and filesystem 2021-05-10 12:29:55 +02:00
fvanroie
06fac902fd Don't inline some functions 2021-05-10 09:50:34 +02:00
fvanroie
75b65aa523 Add image_recolor properties 2021-05-10 09:50:08 +02:00
fvanroie
6ea6c8c297 Revert to fixed delays 2021-05-10 06:41:43 +02:00
fvanroie
1765a087c3 Add support for filesystem, png and tftWidth/tftHeight 2021-05-10 06:41:28 +02:00
fvanroie
d380c24bcf Use w and h in setAddrWindow 2021-05-10 06:39:35 +02:00
fvanroie
7555b64220 Tweaks to WiFi disconnect and rssi info 2021-05-10 06:39:07 +02:00
fvanroie
0b9f7ec3ea Load pages.jsonl in native applications 2021-05-10 06:38:27 +02:00
fvanroie
0f60213557 Use HASP_FS over SPIFFS 2021-05-10 06:36:54 +02:00
fvanroie
ff59b55427 Use default settings if filesystem is unavailable 2021-05-10 06:36:35 +02:00
fvanroie
cb4daf442c Add png support 2021-05-10 06:36:05 +02:00
fvanroie
33e3fbb71e Align partition boundaries on 64 kB 2021-05-09 23:41:54 +02:00
fvanroie
333185a472 Adjust partitions to use all remaining space for lfs filesystem 2021-05-09 23:07:36 +02:00
fvanroie
392083c9dc Add anim_time and anim_speed attributes, major housekeeping 2021-05-08 09:01:37 +02:00
fvanroie
b49818e8c2 Fix missing hex color code 2021-05-08 08:10:51 +02:00
fvanroie
afdd106df8 Declare more lv_obj_t* as const 2021-05-08 08:09:55 +02:00
fvanroie
e31b681001 Improve wifi retry interval 2021-05-08 08:08:56 +02:00
fvanroie
2dc871f8bf Don't use HASP_ATTRIBUTE_FAST_MEM 2021-05-08 08:08:32 +02:00
fvanroie
f5328a35b7 LV_ATTRIBUTE_FAST_MEM only on ESP32 2021-05-08 08:08:02 +02:00
fvanroie
1528e48795 Log mqtt data in errors and warnings 2021-05-08 03:03:24 +02:00
fvanroie
dc43fb6600 Add timer events 2021-05-08 03:02:18 +02:00
fvanroie
74439711b1 Add power flag 2021-05-08 03:01:33 +02:00
fvanroie
452b086a8e Speed optimization 2021-05-08 03:01:17 +02:00
fvanroie
a6da2a60e7 Add tab Text property 2021-05-07 15:16:19 +02:00
fvanroie
0be87a7c51 Indent the object tree 2021-05-07 04:37:43 +02:00
fvanroie
70b6f983e9 Implement obj_get_type, code cleanup and msgbox fix 2021-05-07 04:03:52 +02:00
fvanroie
9bf154ccb0 Implement hasp_find_obj_from_page_id and obj_get_type 2021-05-07 04:02:32 +02:00
fvanroie
f80cd90d94 Cleanup MQTT_TOPIC defines 2021-05-07 01:27:13 +02:00
fvanroie
75f76a7f3e Add HASP_TOPIC_COMMAND and HASP_USE_BROADCAST 2021-05-07 00:37:42 +02:00
fvanroie
90a6299279 Allow updating a text attribute with empty string 2021-05-07 00:04:44 +02:00
fvanroie
1088cdf413 Version bump 2021-05-06 22:08:20 +02:00
fvanroie
f704593ad2 Fix ArduinoJson 6.18.0 breaking change 2021-05-06 22:07:50 +02:00
fvanroie
b414e23601 Add discovery command 2021-05-06 21:44:05 +02:00
fvanroie
0e57e62763 Add bblanchon 2021-05-06 21:39:43 +02:00
fvanroie
76ae156018 Add separate hasp_console 2021-05-06 21:26:11 +02:00
fvanroie
8fbab678b3 Add D_TIMESTAMP to lang.h 2021-05-06 18:30:15 +02:00
fvanroie
55d45f29c8 Fix compiler warnings 2021-05-06 18:19:32 +02:00
fvanroie
fdc8d86b3f Restore the debugPrintHaspHeader 2021-05-06 18:16:27 +02:00
fvanroie
6662d07c2d Update ArduinoJson and TFT_eSPI 2021-05-06 17:57:45 +02:00
fvanroie
04ac201fb2 Added more translations 2021-05-06 06:47:21 +02:00
fvanroie
95c37d72fc Add GPIO strings 2021-05-06 06:32:27 +02:00
fvanroie
983c66e490 Add D_INFO_FULL_DUPLEX 2021-05-06 05:07:31 +02:00
fvanroie
21bbdb9c32 Cleanup headers 2021-05-06 04:19:41 +02:00
fvanroie
0d8b3c2a66 Add defines 2021-05-06 04:19:27 +02:00
fvanroie
dca9a5d8b8 Decorate Loop() functions with IRAM_ATTR 2021-05-06 03:47:46 +02:00
fvanroie
0b7bda066d No IRAM_ATTR available on these platforms 2021-05-06 02:54:34 +02:00
fvanroie
46aaa37cc1 Add IRAM_ATTR 2021-05-06 02:40:20 +02:00
fvanroie
633f122929 Disable debug logging 2021-05-06 02:40:03 +02:00
fvanroie
e9a4359f4d Add IRAM_ATTR 2021-05-06 02:39:35 +02:00
fvanroie
037da81cee Add calendar_event_handler and event_timer_calendar 2021-05-06 01:35:42 +02:00
fvanroie
a84c543700 Revert to 6.17.3 because 6.18.0 is not in the registry yet 2021-05-06 01:34:59 +02:00
fvanroie
5706483d50 Add event_timer_calendar, calendar_event_handler and IRAM_ATTR 2021-05-06 01:34:36 +02:00
fvanroie
99a83c2f3c Fix a compiler warning 2021-05-05 23:37:23 +02:00
fvanroie
1275b32a5e Bump ArduinoJson to 6.18.0 2021-05-05 23:37:04 +02:00
fvanroie
036861db3a Add backlight pin GPIO 21 2021-05-05 23:36:28 +02:00
fvanroie
20d711d37c Add backlight pin GPIO 21 2021-05-05 23:36:09 +02:00
fvanroie
196eb382fa Fix typo in native build 2021-05-04 18:44:12 +02:00
fvanroie
f44e2fc1f2 Fix gpioSetup on native build 2021-05-04 04:07:25 +02:00
fvanroie
89bca17408 Update dispatch_normalized_group_values 2021-05-04 02:37:32 +02:00
fvanroie
cca762f1b2 Rework hasp_gpio 2021-05-04 02:21:41 +02:00
fvanroie
73f0b8e131 Rename object_set_group_values and object_set_normalized_group_values 2021-05-04 02:21:01 +02:00
fvanroie
0761b3f207 Add dispatch_normalized_group_values to event handlers 2021-05-04 02:20:19 +02:00
fvanroie
a8a34a1528 Remove inverted types, add inverted parameter and add DAC 2021-05-04 02:19:03 +02:00
fvanroie
a9a0492372 Test Serial1 2021-05-03 04:05:35 +02:00
fvanroie
50fb1e0cce Use webServer.uri() in httpIsAuthenticated instead of fixed strings 2021-05-03 03:32:13 +02:00
fvanroie
5417f8d24a Switch other pins in the same group 2021-05-03 02:23:54 +02:00
fvanroie
c1a8d04da8 Allow longer wifi ssid and password 2021-05-03 02:22:38 +02:00
fvanroie
243a9aac31 Cache css, favicon and edit.htm in the browser 2021-05-03 02:22:13 +02:00
fvanroie
5380276ea1
Merge pull request #158 from nagyrobi/patch-2
Update Romanian translations
2021-05-02 19:41:34 +02:00
fvanroie
2662df881e
Merge pull request #157 from nagyrobi/patch-1
Update Hungarian translations
2021-05-02 19:39:31 +02:00
nagyrobi
3232f3a602
Update ro_RO.h 2021-05-02 10:19:43 +02:00
nagyrobi
fef41f8ab1
Update hu_HU.h 2021-05-02 09:46:06 +02:00
fvanroie
681ec63792 Send 204 for favicon.ico 2021-05-02 07:41:57 +02:00
fvanroie
3ed8fdaa80 Translate strings 2021-05-02 07:39:33 +02:00
fvanroie
00111e46c5 change itoa to snprintf 2021-05-02 06:55:53 +02:00
fvanroie
4ab91f890c Fix error in mqttServer.length() 2021-05-02 06:51:55 +02:00
fvanroie
81c8325574 Exclude spiffs upload on ESP8266 2021-05-02 06:51:33 +02:00
fvanroie
adffef91eb platform = espressif32@^3.2.0 2021-05-02 05:14:52 +02:00
fvanroie
b4594a4eca Update platform = espressif32 2021-05-02 05:09:37 +02:00
fvanroie
326c099c46 Read normal file over .gz if both exist. Allow filesystem upload 2021-05-02 04:38:42 +02:00
fvanroie
517268426d Increment mqttFailedCount on enabled but NotConnected 2021-05-02 04:32:16 +02:00
fvanroie
076c1f1b4d Implement mqttEnabled 2021-05-02 04:31:53 +02:00
fvanroie
7983e8a0d7 Clean page 0 when Clear Pages is pressed in the editor 2021-05-02 01:39:43 +02:00
fvanroie
527f2c4984 Better translation for D_OBJECT_CREATE_FAILED 2021-05-02 01:39:19 +02:00
fvanroie
7cab0c2f5c Fix paho issue when server is not configured 2021-05-02 01:26:33 +02:00
fvanroie
81976d6ec9 Set LV_INDEV_DEF_READ_PERIOD=20 2021-05-02 00:45:22 +02:00
fvanroie
60d2e22ef3 Improve logging 2021-05-02 00:45:08 +02:00
fvanroie
77beb04d27 Cleanup factory reset webpage 2021-05-02 00:35:19 +02:00
fvanroie
bfb730a212 Add D_HTTP_SENDING_PAGE 2021-05-01 23:58:25 +02:00
fvanroie
e4ac45d9a2 Replace halGetResetInfo with haspDevice.gpio_name 2021-05-01 23:22:00 +02:00
fvanroie
fb060cc6c2 Cleanup headers 2021-05-01 23:21:17 +02:00
fvanroie
503db5f063 Add Wifi Rssi translations 2021-05-01 23:21:03 +02:00
fvanroie
8a5282e537 Add common translations 2021-05-01 22:11:00 +02:00
fvanroie
615fc246b7 Add OTA translations 2021-05-01 21:43:03 +02:00
fvanroie
08ee8b4c7b Update translations 2021-05-01 21:31:47 +02:00
fvanroie
5795d53163 Stylesheet for information page 2021-05-01 20:32:37 +02:00
fvanroie
0672e66b3f Add translations 2021-05-01 20:32:21 +02:00
fvanroie
a1fcdd583f Cache the sketchsize because fetching it is slow 2021-05-01 20:29:57 +02:00
fvanroie
b60d76bef4 Text localization information webpage 2021-05-01 19:36:09 +02:00
fvanroie
642f6f67e6 Use new webHandleInfo page 2021-05-01 19:34:29 +02:00
fvanroie
2342746720 Add get_info 2021-05-01 19:28:16 +02:00
fvanroie
6a34490d4e Add *_get_info in json format 2021-05-01 08:13:35 +02:00
fvanroie
06ee1a3c78 Fix warning: comparison between signed and unsigned integer expressions 2021-05-01 04:24:32 +02:00
fvanroie
a546ac2f4a Cleanup headers 2021-05-01 04:24:13 +02:00
fvanroie
4ce87562df Bump AceButton to v1.8.3 2021-05-01 03:50:10 +02:00
fvanroie
c617195719 Fix warning: suggest explicit braces to avoid ambiguous 'else' 2021-05-01 03:48:26 +02:00
fvanroie
1d1130ac94 Fix compile warning: statement is a reference, not call, to function 'debug_flush' 2021-05-01 03:46:39 +02:00
fvanroie
b3427eff6f Fix compiler error 2021-05-01 03:45:17 +02:00
fvanroie
00a43953d2 Better http status codes 2021-05-01 03:21:47 +02:00
fvanroie
d284434f91 Fix warning: format '%lu' expects argument of type 'long unsigned int' 2021-05-01 03:21:21 +02:00
fvanroie
60df747785 Rewrite password masking 2021-05-01 01:40:32 +02:00
fvanroie
9db554e6d7 Mask config.json passwords 2021-05-01 01:39:43 +02:00
fvanroie
44079e1468 Cleanup headers 2021-05-01 01:24:27 +02:00
fvanroie
aabe695836 Rename debugPreSetup to debugSetupWithoutLogging 2021-05-01 00:19:40 +02:00
fvanroie
d18e58a26f Show File Editor button in menu, don't allow config.json 2021-05-01 00:18:24 +02:00
fvanroie
fd82582089 Change D_HTTP_FILE_BROWSER to File Editor 2021-05-01 00:17:20 +02:00
fvanroie
f0693b98f9 TFT_eSPI version bump to 2.3.66 2021-05-01 00:16:37 +02:00
fvanroie
41ae86273d Main Menu button, enable lineWrap 2021-05-01 00:16:05 +02:00
fvanroie
5fccc53d77 Minor tweaks 2021-04-30 18:15:49 +02:00
fvanroie
f2f540db7a Improved http file access logging 2021-04-30 06:46:59 +02:00
fvanroie
9f11cf15f6 Fix download option in File Editor 2021-04-30 06:25:07 +02:00
fvanroie
dce2fb17d1 Add File Editor 2021-04-30 05:31:06 +02:00
fvanroie
71a0983b55 Add hasp_init and hasp_load_json for File Browser 2021-04-30 00:53:56 +02:00
fvanroie
b7c4652d62 Allow init to delete and create new pages at runtime 2021-04-30 00:53:25 +02:00
fvanroie
466c6094f9 Add file browser handlers 2021-04-30 00:52:47 +02:00
fvanroie
b1519d22ab Add dispatch_calibrate 2021-04-30 00:46:36 +02:00
fvanroie
949493dd45 Add lv_obj_set_auto_realign to msgbox 2021-04-29 20:34:23 +02:00
fvanroie
6f176c9f37 Add count attribute to tabview and rename my_obj_set_value_str_text 2021-04-29 20:33:37 +02:00
fvanroie
31181a481b Add Serial2.flush() 2021-04-29 20:32:02 +02:00
fvanroie
2550eedc34 Merge branch 'gpio-redesign' of http://github.com/fvanroie/hasp-lvgl into gpio-redesign 2021-04-29 04:28:45 +02:00
fvanroie
fbfb9d8f76 Tweak dimmer initialization code 2021-04-29 04:28:41 +02:00
fvanroie
9fdd3cce8f Code clean-up 2021-04-29 04:26:59 +02:00
fvanroie
8b9154cb82 Add mklittlefs 2021-04-29 00:07:01 +02:00
fvanroie
c5178f5856 Add auto_close and btn_pos attributes 2021-04-28 19:56:09 +02:00
fvanroie
5157dcfeea Code clean-up 2021-04-28 04:45:06 +02:00
fvanroie
93be1565be Don't discover moodlight gpios 2021-04-28 04:33:59 +02:00
fvanroie
38df70b18e Fix conversion warning 2021-04-28 04:28:38 +02:00
fvanroie
f441780ae5 Set the dimmer range to 0-255 2021-04-28 04:28:17 +02:00
fvanroie
03ad5e4159 Dismiss msgbox only when a button was pressed 2021-04-28 03:28:30 +02:00
fvanroie
6770c57c08 Eliminate %zu parameter 2021-04-28 03:28:07 +02:00
fvanroie
b13252a42d Eliminate %zu parameter 2021-04-28 03:27:54 +02:00
fvanroie
e475b72995 Fix Serial2.write 2021-04-28 03:19:40 +02:00
fvanroie
b2093b5947 Add msgbox 2021-04-28 03:19:10 +02:00
fvanroie
a877e2750a %zu fails on esp-idf, use uint16_t and %u instead 2021-04-28 03:18:17 +02:00
fvanroie
ef00c60238 Update serial2.print to serial2.write 2021-04-28 00:00:26 +02:00
fvanroie
75debb2502 Fix enabled and add click attribute 2021-04-27 03:29:17 +02:00
fvanroie
cb51dd96d0 Add bool return value 2021-04-27 02:53:57 +02:00
fvanroie
669a173cf4 Code cleanup 2021-04-27 02:53:00 +02:00
fvanroie
ba7528d7e6 Add tab and tabview 2021-04-27 02:52:41 +02:00
fvanroie
4a4f410303 Add dispatch_idle and rename dispatch_current_page 2021-04-27 01:19:17 +02:00
fvanroie
67a0902d75 Fix gpio_log_serial_dimmer 2021-04-26 02:44:20 +02:00
fvanroie
a1ae1f8d52 Make output state stick 2021-04-26 02:32:09 +02:00
fvanroie
9cda7d9d66 Populate gpios in discovery 2021-04-26 00:44:40 +02:00
fvanroie
828b518de2 Enable fake gpio for native app 2021-04-26 00:20:11 +02:00
fvanroie
b64d889fad Rework dispatch_gpio 2021-04-25 22:29:33 +02:00
fvanroie
562d7236ed Fix get_model implementation 2021-04-25 22:27:54 +02:00
fvanroie
325e0ed5ba Merge branch 'revert-154-master' into gpio-redesign 2021-04-25 22:01:10 +02:00
fvanroie
8cd8ed61c7 Merge branch 'gpio-redesign' into revert-154-master 2021-04-25 22:00:52 +02:00
fvanroie
1bd4e691ac Check HASP_USE_GPIO in dispatch_gpio 2021-04-25 17:48:22 +02:00
fvanroie
afe71a648e Fix compiler warnings 2021-04-25 06:02:41 +02:00
fvanroie
2c3b383d4f Fix compiler warnings 2021-04-25 05:43:14 +02:00
fvanroie
1b423de6e5 Code cleanup 2021-04-25 05:31:06 +02:00
fvanroie
a1f14223d5 Fix compiler warnings 2021-04-25 05:30:46 +02:00
fvanroie
6520b001c3 Subcribe to group topics in native app 2021-04-25 04:46:02 +02:00
fvanroie
c582df6550 Improve native app mqtt client 2021-04-25 04:34:04 +02:00
fvanroie
034faa78b7 Fix compiler warnings 2021-04-25 03:18:52 +02:00
fvanroie
40c905687d Add discovery 2021-04-25 03:09:12 +02:00
fvanroie
8017be47db Merge branch 'gpio-redesign' of http://github.com/fvanroie/hasp-lvgl into gpio-redesign 2021-04-25 02:59:19 +02:00
fvanroie
4a1d2a3ece Add HASP_USE_GPIO 2021-04-25 02:59:16 +02:00
fvanroie
8b485e4841 Fix compiler warnings 2021-04-25 02:58:29 +02:00
fvanroie
9015d6620f Add discovery 2021-04-25 02:15:00 +02:00
fvanroie
50c1e83fa9 Update HASP_MODEL 2021-04-25 02:14:14 +02:00
fvanroie
074ad55604 Add get_hardware_id 2021-04-25 02:13:41 +02:00
fvanroie
079d0630e6 Update action name 2021-04-25 02:12:53 +02:00
fvanroie
656b3cf933 Minor version bump 2021-04-25 02:12:38 +02:00
fvanroie
268bcb05db
Revert "Merge master back into gpio-redesign" 2021-04-25 02:10:09 +02:00
arovak
ba8f3f017c
Merge pull request #155 from arovak/gpio_template
gpio template via user_config_override
2021-04-25 01:16:09 +02:00
arovak
59ae1859ee re-use existing routines 2021-04-25 01:07:34 +02:00
fvanroie
42feceddc2
Merge pull request #154 from HASwitchPlate/master
Merge master back into gpio-redesign
2021-04-25 00:18:05 +02:00
fvanroie
343f1ce9af
Merge branch 'gpio-redesign' into master 2021-04-25 00:17:09 +02:00
fvanroie
7320fc69b5
Merge pull request #153 from nagyrobi/patch-2
Add GPIO template example to user_config_override-template.h
2021-04-25 00:14:29 +02:00
fvanroie
0fa68d14b2 Add an automatic lv_mem_defrag 2021-04-24 23:55:21 +02:00
nagyrobi
e8b39fefec
Add GPIO template example to user_config_override-template.h 2021-04-24 19:32:23 +02:00
fvanroie
1380345e6e
Merge pull request #151 from arovak/gpio_template
allow gpio template via user_config_override
2021-04-24 18:54:44 +02:00
fvanroie
c457ad02dd Add model to statusupdate 2021-04-24 05:12:02 +02:00
fvanroie
5e4316cd3e Add manufacturer 2021-04-24 05:00:11 +02:00
fvanroie
2fdf8d4e47 Add Model 2021-04-24 04:41:13 +02:00
fvanroie
84e0e45b90 Allow for longer mqtt configuration strings #150 2021-04-23 22:58:29 +02:00
fvanroie
a8c40ab7e1 Code clean-up 2021-04-23 21:11:48 +02:00
arovak
489a321473 allow gpio template via user_config_override 2021-04-23 20:43:58 +02:00
fvanroie
761b3f02f3 Improved reliability when creating/removing lots of value_str or objects 2021-04-23 17:53:44 +02:00
fvanroie
b3e7f6d0e3 Patch memory leak 2021-04-23 00:41:53 +02:00
fvanroie
0aece4f29f Update tests 2021-04-22 05:18:58 +02:00
fvanroie
e018baed09 Update tests 2021-04-22 04:46:02 +02:00
fvanroie
52089e631a Add gpio_log_serial_dimmer 2021-04-22 04:43:03 +02:00
fvanroie
4cd5e1e481 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-04-22 01:48:55 +02:00
fvanroie
d30038db6e Small typo and don't show warning on comment attribute 2021-04-22 01:48:51 +02:00
fvanroie
68da6a07bd Add Serial Dimmer 2021-04-22 01:45:37 +02:00
fvanroie
e2c05b197d
Merge pull request #148 from arovak/override_font
Select used fonts via user_config_override #141
2021-04-21 22:21:47 +02:00
arovak
19a1d0576a Select used fonts via user_config_override 2021-04-21 22:14:58 +02:00
fvanroie
b791af3e41 Restore config/submodule 2021-04-21 18:00:46 +02:00
fvanroie
af8a0e95e5 Temp commit 2021-04-21 17:52:34 +02:00
fvanroie
19408175ca
Merge pull request #144 from nagyrobi/patch-1
replace screenshots with actuals containing MDI icons
2021-04-19 19:45:53 +02:00
nagyrobi
a482453000
replace screenshots with actuals containing MDI icons 2021-04-19 19:37:42 +02:00
fvanroie
a878f9548a
Merge pull request #142 from HASwitchPlate/0.5.0
Update release.yml
2021-04-18 22:35:01 +02:00
fvanroie
3f5ef4e833
Update release.yml 2021-04-18 22:31:20 +02:00
fvanroie
51d0c10580 Update backlight_level to 255 2021-04-18 21:43:08 +02:00
fvanroie
c29c5b27e8 Update comments 2021-04-18 21:42:31 +02:00
fvanroie
208d352af4 Set default HASP_LOG_LEVEL=LOG_LEVEL_TRACE 2021-04-18 21:42:04 +02:00
fvanroie
3a58762009 clearpage all command didn't clear page 0 anymore 2021-04-18 18:25:58 +02:00
fvanroie
964a0f40c1
Update FUNDING.yml 2021-04-18 04:14:43 +02:00
fvanroie
311f37bba5 Final MDI icons fonts 2021-04-18 02:01:37 +02:00
fvanroie
0cf3f85d99 Update MDI fonts 2021-04-17 23:29:49 +02:00
fvanroie
800f458190 Change cyrillic fonts to cpp 2021-04-17 20:25:37 +02:00
fvanroie
0293e6f6d1 Change latin2 fonts to cpp 2021-04-17 20:24:02 +02:00
fvanroie
5eaab5e4ce Change ascii fonts to cpp 2021-04-17 20:22:52 +02:00
fvanroie
92b30c2ebb Update firmware version 2021-04-17 19:48:44 +02:00
fvanroie
a44aa0678e Add swipeid 2021-04-17 19:47:37 +02:00
fvanroie
c1743c770b Change font extention 2021-04-17 19:47:24 +02:00
fvanroie
f19aefbbb4 Swipe events didn't update the state/page 2021-04-17 19:47:11 +02:00
fvanroie
52fd90cf46 Make action attribute a text value 2021-04-17 19:32:57 +02:00
fvanroie
57c0bb29b0 Change latin1 fonts to cpp 2021-04-17 04:09:58 +02:00
fvanroie
971846efea Add back, prev, next attributes to pages #114 2021-04-17 03:14:49 +02:00
fvanroie
0db2a8be67
Merge pull request #139 from HASwitchPlate/mdi-icons
Change default fonts
2021-04-17 01:44:48 +02:00
fvanroie
321a505f9a Add TODo to events 2021-04-17 01:43:43 +02:00
fvanroie
7713f4afab Add swipe property 2021-04-17 00:45:59 +02:00
fvanroie
8dc5ffc7ff Internationilze D_MQTT_PAYLOAD_TOO_LONG string 2021-04-16 22:35:49 +02:00
fvanroie
e420b722b9 Serialize text in string attribute messages #140 2021-04-16 22:26:38 +02:00
fvanroie
8194744387 Set TFT_BACKLIGHT_ON default HIGH 2021-04-15 22:57:27 +02:00
fvanroie
04d970f529 Move defines to hasp_conf.h 2021-04-15 17:15:47 +02:00
fvanroie
9a940b2bcd Remove obj from events 2021-04-15 16:51:35 +02:00
fvanroie
13935ca1a1 Add arduitouch-esp32_ili9341 2021-04-15 16:51:01 +02:00
fvanroie
d5b144745e Add roller mode infinite attribute 2021-04-15 06:12:00 +02:00
fvanroie
e7bd0dc101 Add btnmatric toggle and one_check attributes 2021-04-15 05:40:36 +02:00
fvanroie
0e1b64527f Remove hasp_utilities 2021-04-15 05:02:59 +02:00
fvanroie
ef90cbc8c7 Remove hasp_utilities 2021-04-15 04:53:33 +02:00
fvanroie
f922809331 Fix compiler warning 2021-04-15 04:46:03 +02:00
fvanroie
a494181030 Rework event handlers for #119 2021-04-15 04:36:38 +02:00
fvanroie
3b0aebf02c Merge Utilities class into Parser class 2021-04-15 04:30:22 +02:00
fvanroie
c7eb8bb55c Add selected part properties for roller object 2021-04-14 23:54:35 +02:00
fvanroie
d1a2fa5a1b Add "up" and "down" events to toggle, switch and checkbox 2021-04-14 23:12:55 +02:00
fvanroie
e84b8d2521 Rename "short" and "up" events to "up" and "release" 2021-04-14 04:42:39 +02:00
fvanroie
cf915a0142 Rename "short" and "up" events to "up" and "release" 2021-04-14 04:26:21 +02:00
fvanroie
e8a5c123f8 Rename "short" and "up" events to "up" and "release" 2021-04-14 04:12:04 +02:00
fvanroie
f68d303ae7 add scan_method = WIFI_ALL_CHANNEL_SCAN for ESP32 2021-04-14 02:17:49 +02:00
fvanroie
88d1f69069 objid property is obsolete, use obj instead 2021-04-13 04:45:00 +02:00
fvanroie
83b54eeec6 txt property is obsolete, use text instead 2021-04-13 04:44:12 +02:00
fvanroie
67ffc1e266 Update strings 2021-04-13 04:08:10 +02:00
fvanroie
44cb84e6a7 Reduce colorpickers value updates #119 2021-04-13 02:37:07 +02:00
fvanroie
0e7bd6c2bb Rename hasp_send_obj_attribute to attr_out 2021-04-13 02:00:03 +02:00
fvanroie
394580fa45 Add hasp_event 2021-04-13 01:43:51 +02:00
fvanroie
f9a78afbaf Add warning objid property is obsolete 2021-04-12 21:34:35 +02:00
fvanroie
e7ce3e0664 Improve swipe events for page change 2021-04-12 18:53:29 +02:00
fvanroie
97f46c1b95 Reduce build warnings 2021-04-12 03:49:26 +02:00
fvanroie
2dc7255117 Reduce build warnings 2021-04-12 03:28:13 +02:00
fvanroie
fd0e5cfc57 Cleanup driver hasp_drv_tft_espi 2021-04-12 03:12:55 +02:00
fvanroie
6daac9b460 Show splashscreen after rotation and invert is set 2021-04-12 02:55:30 +02:00
fvanroie
4aedd19491 Restore bootscreen 2021-04-12 02:43:48 +02:00
fvanroie
1734b5cc21 Add back fontsize 22 2021-04-12 00:31:05 +02:00
fvanroie
cdd615f4ce Font sizes dependent on screen size 2021-04-11 20:24:30 +02:00
fvanroie
3d6f563344 Font sizes dependent on screen size 2021-04-11 20:23:09 +02:00
fvanroie
05f6bbbffa Testing character sets, sizes and icons 2021-04-11 19:39:29 +02:00
fvanroie
bc1cbdb301 Merge branch 'mdi-icons' of http://github.com/fvanroie/hasp-lvgl into mdi-icons 2021-04-11 17:21:55 +02:00
fvanroie
d9d405ae9d Update fonts 2021-04-11 17:20:52 +02:00
fvanroie
f5a33e7a54 Fix the defines for HASP_FONT_# 2021-04-11 01:30:43 +02:00
fvanroie
4b180c6180 Add custom folder 2021-04-11 01:12:05 +02:00
fvanroie
870df4b2b0 Merge branch 'mdi-icons' of http://github.com/fvanroie/hasp-lvgl into mdi-icons 2021-04-10 23:54:20 +02:00
fvanroie
e4cd1411d0 Add ascii, latin1, latin2 fonts with mdi icons 2021-04-10 23:50:53 +02:00
fvanroie
bc286e9263 Rename hasp-lvgl to openHASP 2021-04-10 22:34:39 +02:00
fvanroie
486605ff9e Adjust buildtime timezone 2021-04-10 22:34:06 +02:00
fvanroie
d8a16faabe Change GPIO_NUM_MAX for esp8266 2021-04-10 17:54:27 +02:00
fvanroie
79294a2e85 Test pagenav gestures 2021-04-10 17:35:59 +02:00
fvanroie
9aa880c761 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-04-10 17:33:25 +02:00
fvanroie
cc18ff0a15 Add backlight_invert 2021-04-10 17:33:21 +02:00
fvanroie
6fa1a1bf94
Update FUNDING.yml 2021-04-09 03:04:53 +02:00
fvanroie
b4aa18074b Add Backlight pin 15 for AZ Touch 2021-04-08 14:13:05 +02:00
fvanroie
c8b871af73 Update fonts 2021-04-07 22:02:57 +02:00
fvanroie
5759c1b51a Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-04-06 03:31:47 +02:00
fvanroie
3b14ed1e5d Update config 2021-04-06 03:30:34 +02:00
fvanroie
85a7ef6a00 Initial mdi font support 2021-04-06 03:28:47 +02:00
fvanroie
e9b8e0e41d Update bug report 2021-04-06 03:24:38 +02:00
fvanroie
f41625894e Bump tft_espi library version 2021-04-06 02:40:53 +02:00
fvanroie
e83d6c6ba6 Allow startDim 0-255 and startPage 1-12 2021-04-06 02:30:07 +02:00
fvanroie
8022b03ae6 Fix HASwitchPlate/openHASP-custom-component#37 2021-04-06 02:27:14 +02:00
arovak
63a6286029
Merge pull request #125 from arovak/user_override
Expand user_config_override-template.h with example settings and add possibility to define the build language.
2021-04-06 00:53:20 +02:00
arovak
6abf19b1df allow MQTT_NODENAME override 2021-04-05 23:35:20 +02:00
arovak
b95e2d78f1 rearrange some includes and defines 2021-04-05 23:34:54 +02:00
arovak
c818ad8680 combine user_override files 2021-04-05 23:32:31 +02:00
arovak
ed3ba7d55c Add user_override_sample.h with example settings 2021-04-05 21:31:51 +02:00
arovak
1da1358dde
Merge pull request #124 from arovak/web_template_tweak
minor tweak on web templates
2021-04-05 15:20:19 +02:00
arovak
5321b60242 minor tweak on web templates 2021-04-05 15:17:20 +02:00
fvanroie
f780e0011a
Merge pull request #120 from arovak/template_fix
fix http template when not defined in user_config_override.h
2021-04-02 23:46:29 +02:00
arovak
d0750aa22d fix http template 2021-04-02 23:38:53 +02:00
fvanroie
1f1b54f316 Name change to openHASP 2021-04-02 18:54:13 +02:00
fvanroie
d8e9c33057 Update url 2021-04-02 15:20:07 +02:00
fvanroie
4fbecc1406 Name change from hasp-lvgl to openHASP 2021-04-02 15:11:28 +02:00
fvanroie
0c19a136b7
Merge pull request #118 from nagyrobi/patch-7
Add HA auto-discovery option to override-template
2021-04-02 13:36:03 +02:00
nagyrobi
1b587b2539
Add HA auto-discovery option to override-template 2021-04-02 09:28:07 +02:00
fvanroie
6b9da1c137
Update README.md 2021-04-01 23:36:33 +02:00
fvanroie
2a04cd652b Add calendar for esp8266 2021-04-01 23:26:25 +02:00
fvanroie
f5f42df519
Update release.yml 2021-04-01 22:55:14 +02:00
fvanroie
c4008d0428
Update build.yaml 2021-04-01 22:54:50 +02:00
fvanroie
01a54e11aa
Merge pull request #117 from arovak/freetouchdeck
add freetouchdeck config
2021-04-01 22:51:35 +02:00
arovak
6fef5cbce5 add freetouchdeck config 2021-04-01 22:36:53 +02:00
fvanroie
db40945782 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-03-29 23:17:50 +02:00
fvanroie
e4afc62edf Add calendar object 2021-03-29 23:17:47 +02:00
fvanroie
512fdde016 Reduce lvgl debug messages 2021-03-29 23:17:28 +02:00
fvanroie
650e27ee46
Merge pull request #115 from dgomes/patch-1
Retain LWT
2021-03-29 18:43:28 +02:00
Diogo Gomes
e87b1bbf98 missing online 2021-03-29 17:16:05 +01:00
Diogo Gomes
27704a9aa1
Retain LWT 2021-03-29 17:11:35 +01:00
fvanroie
5d69f909e5 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-03-29 04:12:23 +02:00
fvanroie
c968b3b6b9 Add dropdown properties 2021-03-29 04:12:19 +02:00
fvanroie
a848e56c70
Update release.yml 2021-03-29 03:42:27 +02:00
fvanroie
d20fac7245 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-03-29 03:06:27 +02:00
fvanroie
66c6da4c25
Merge pull request #113 from nagyrobi/patch-6
Update user_config_override-template.h
2021-03-29 03:06:02 +02:00
fvanroie
cd4be903fe Add mac address and idle to statusupdate messages 2021-03-29 02:48:41 +02:00
nagyrobi
eea2e11ca7
Update user_config_override-template.h
Add Web interface coloring info to override template
2021-03-28 23:54:53 +02:00
fvanroie
54cb9df986
Update release.yml 2021-03-28 23:29:28 +02:00
fvanroie
731ffb31c3 Add clearpage=all 2021-03-28 22:23:02 +02:00
fvanroie
971dbe5ff0 Revert lv_disp_set_rotation 2021-03-28 22:12:37 +02:00
fvanroie
d4f5bea65c Add HASP_USE_HA 2021-03-28 22:12:16 +02:00
fvanroie
7dd98b263f
Merge pull request #112 from arovak/web_templates
web page color scheme via user_config_override.h
fixes #100
2021-03-26 22:59:09 +01:00
arovak
f5aaf786e4 web page color scheme via user_config_override.h 2021-03-26 22:50:31 +01:00
fvanroie
943084d0ab
Merge pull request #111 from fvanroie/feature-reduce-slider-events
Address issue #88
2021-03-26 22:22:41 +01:00
fvanroie
1f1b3eebd1 Address issue #88 2021-03-26 16:02:03 +01:00
fvanroie
6ef4538fda Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-03-23 21:47:44 +01:00
fvanroie
c15355a71f Only change page when needed 2021-03-23 21:47:41 +01:00
fvanroie
97fecd6c4e
Update build.yaml 2021-03-23 15:11:24 +01:00
fvanroie
2a6a3cd186
Merge pull request #106 from fvanroie/0.4.0-dev
merge 0.4.0 dev into master
2021-03-23 14:17:10 +01:00
fvanroie
92ca6bf1d8 Merge branch 'feature-pagenav' into 0.4.0-dev 2021-03-23 12:24:37 +01:00
fvanroie
44be606e78 Correct huzzah32-featherwing-35 2021-03-23 11:44:51 +01:00
fvanroie
e07857533a Tidy up code 2021-03-23 11:33:19 +01:00
fvanroie
57435c6c33 Add Adafruit Featherwings 2021-03-23 11:33:10 +01:00
fvanroie
036a47f772 Decode std output 2021-03-23 11:32:52 +01:00
fvanroie
de62f90fe7 Add esp32-touchdown and m5stack-core2 2021-03-23 01:14:31 +01:00
fvanroie
184234bdd0 Update config files, add merge_bin firmware 2021-03-23 01:00:01 +01:00
fvanroie
2bf1541f48 Font tweaks 2021-03-22 14:42:34 +01:00
fvanroie
0ee205a78a
Merge pull request #104 from arovak/0.4.0-dev-tweaks
0.4.0 dev tweaks
2021-03-22 08:26:52 +01:00
arovak
4c26b9ee3a update setting min/max attributes 2021-03-22 01:07:49 +01:00
arovak
68406b2a9b fix esp8266 core status message 2021-03-22 01:05:03 +01:00
fvanroie
1c9b2c5d5f Update partition scheme 2021-03-20 17:44:44 +01:00
fvanroie
ec838d6f21 Code clean-up 2021-03-20 16:18:41 +01:00
fvanroie
a80b3343cc Fix teleperiod not saved 2021-03-20 14:50:57 +01:00
fvanroie
56b0e49bad Fix teleperiod setting 2021-03-20 14:38:36 +01:00
fvanroie
3f0835821f Modify some translations 2021-03-20 13:53:08 +01:00
fvanroie
b608e29696 Add back/next/prev options 2021-03-19 01:01:26 +01:00
fvanroie
608fc73852 Faster transitions 2021-03-19 01:00:58 +01:00
fvanroie
bdbff875dc Merge branch '0.4.0-dev' into feature-pagenav 2021-03-19 00:18:44 +01:00
fvanroie
1b17282ce3 Merge branch '0.4.0-dev' into feature-pagenav 2021-03-19 00:18:17 +01:00
fvanroie
7e588181b8 Add object_set_normalized_group_value 2021-03-18 23:16:55 +01:00
fvanroie
a5d19a2283 Testing the use of object_set_group_state 2021-03-18 23:02:06 +01:00
fvanroie
83bf62d9d6 Use int16_t type in hasp_process_obj_attribute_val 2021-03-18 23:01:17 +01:00
fvanroie
0f52d808ea Remove some font logging for esp8266 2021-03-18 01:53:48 +01:00
fvanroie
6b5c3c1d12 Gpio fixes 2021-03-18 01:49:52 +01:00
fvanroie
1d3eab7e85 Fix build error for native and esp8266 2021-03-17 20:56:07 +01:00
fvanroie
33aaa68f74 Change normalized functions to use val, min & max 2021-03-17 19:53:17 +01:00
fvanroie
b8bbf0c642 Add get_obj_type_name 2021-03-17 19:52:52 +01:00
fvanroie
6c69a235c1 Update tests 2021-03-17 19:47:19 +01:00
fvanroie
3ad2dd7b3c Reset default fonts 2021-03-17 18:27:54 +01:00
fvanroie
94e7c290a0 Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-17 13:34:47 +01:00
fvanroie
c8ad24e29a Add logging 2021-03-17 13:34:44 +01:00
fvanroie
496a4af2ec Add logging 2021-03-17 13:34:18 +01:00
fvanroie
794c770212
Merge pull request #96 from arovak/0.4.0-dev-tweaks
0.4.0 dev tweaks
2021-03-17 13:32:29 +01:00
arovak
d1f1b70bdd intermediate tweak to have ZI font as font 0 2021-03-17 12:26:30 +01:00
arovak
bc5f93dd91 modify GT911 driver to allow smoother touch 2021-03-17 12:25:52 +01:00
arovak
e4ea6e69ce fix date/time entry in console 2021-03-17 12:24:27 +01:00
arovak
eef386950f Allow for timezone setting in user_config_override.h 2021-03-17 12:23:00 +01:00
arovak
b1089039fd update TOUCH_IRQ pin 2021-03-17 12:21:58 +01:00
fvanroie
0523c37598 Set higher touch treshold for XPT2046 2021-03-16 23:35:19 +01:00
fvanroie
72b36f54b9 Adjust partitions 2021-03-16 20:55:17 +01:00
fvanroie
57fb7bb9f4 Increase flash partitions 2021-03-16 20:08:51 +01:00
fvanroie
147414f953 Increase flash partitions 2021-03-16 19:43:49 +01:00
fvanroie
1f4abb215f Set lvgl version to 7.11.0 2021-03-16 17:38:53 +01:00
fvanroie
793682161c Make driver pointers static for v8 2021-03-16 17:37:37 +01:00
fvanroie
66efad3aa8 Fix ziFont for ESP8266 2021-03-16 16:02:28 +01:00
fvanroie
5dfbd5b5df Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-16 15:27:22 +01:00
fvanroie
984f8d918d Fix for zifont crash 2021-03-16 15:27:19 +01:00
fvanroie
dfb3c13238 Use custom logging function again 2021-03-16 00:52:52 +01:00
fvanroie
74a1c34f90 Use custom logging function again 2021-03-16 00:52:36 +01:00
fvanroie
edfaae4299 Additional logging 2021-03-15 23:47:23 +01:00
fvanroie
86fb12a752
Update build.yaml 2021-03-14 18:15:08 +01:00
fvanroie
228148b92d Update config 2021-03-14 00:05:10 +01:00
fvanroie
3bf531db7c Temporarily disable Syslog 2021-03-14 00:04:52 +01:00
fvanroie
7a1afc5ac7 Add ESP32-Touchdown 2021-03-12 22:29:14 +01:00
fvanroie
b57a5a6931 Reduce verbosity 2021-03-12 04:14:21 +01:00
fvanroie
4d6f59bb19 Xplatform debug 2021-03-12 04:13:16 +01:00
fvanroie
f383ecc15e Update README 2021-03-12 04:10:10 +01:00
fvanroie
81b6614520 Add bootscreen and pages.jsonl 2021-03-11 21:06:19 +01:00
fvanroie
3a95dd0caf Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-11 00:22:03 +01:00
fvanroie
898667425c Optimize theme size 2021-03-11 00:22:00 +01:00
fvanroie
9c7c255039 Add drv directory 2021-03-10 21:15:05 +01:00
fvanroie
a06942e446 Update driver includes 2021-03-10 20:03:39 +01:00
fvanroie
93f09dc7df Update touch drivers 2021-03-10 16:19:46 +01:00
fvanroie
2d44ff7aa4
Merge pull request #94 from fvanroie/master
Merge master back to 0.4.0-dev
2021-03-10 14:54:32 +01:00
fvanroie
dbb160ac94 Fix merge issue 2021-03-10 14:53:52 +01:00
fvanroie
34e671f693 Merge branch 'master' into 0.4.0-dev 2021-03-10 14:52:12 +01:00
fvanroie
333f558dc0 Update version 2021-03-10 14:25:15 +01:00
fvanroie
bf8b5680ad
Merge pull request #91 from nagyrobi/patch-3
Create hu_HU.h
2021-03-10 14:03:32 +01:00
fvanroie
6f6f970511
Merge pull request #92 from nagyrobi/patch-4
Create ro_RO.h
2021-03-10 14:03:16 +01:00
fvanroie
33984f1dbc
Merge pull request #93 from nagyrobi/patch-5
Update hasp_http.cpp
2021-03-10 13:51:11 +01:00
nagyrobi
85854fe9c0
Update hasp_http.cpp
Add `<meta charset='utf-8'>` to head of the webpages so that diacritics are rendered properly by the web browsers.
2021-03-10 11:24:51 +01:00
nagyrobi
9b1ef19436
Create ro_RO.h
Romanian translation
2021-03-10 11:22:46 +01:00
nagyrobi
0c01c42039
Create hu_HU.h
Hungarian translation
2021-03-10 11:21:49 +01:00
fvanroie
fff06f5b30 Move STMPE610 to Feather environments 2021-03-10 04:33:38 +01:00
fvanroie
a6b062ee19 Add get_tft_model 2021-03-10 01:46:57 +01:00
fvanroie
e80fb7960a Resize ESP32 partition 2021-03-10 01:10:16 +01:00
fvanroie
5e3d49ff84 Obsolete CoreVersion, ChipModel, DisplayDriverName 2021-03-10 01:09:52 +01:00
fvanroie
787b91910d Add chip_model 2021-03-10 01:08:39 +01:00
fvanroie
aff19396fe Rename Windows SDL environment 2021-03-09 23:12:08 +01:00
fvanroie
5b21c715ff Initialize default device info 2021-03-09 22:19:27 +01:00
fvanroie
51981a56db Fix monitor_title and monitor_backlight 2021-03-09 20:43:50 +01:00
fvanroie
9a3ea4def0 File formatting 2021-03-09 20:31:28 +01:00
fvanroie
fb84ec0659 Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-09 20:31:05 +01:00
fvanroie
ce91bc7279 Add https to webUpdate 2021-03-09 20:28:21 +01:00
fvanroie
e7c10e7991 Optimize theme size 2021-03-09 20:27:56 +01:00
fvanroie
e0993614a1 Update configuration 2021-03-09 20:27:29 +01:00
fvanroie
3259bdcbe8 Add Windows OS version 2021-03-09 20:26:37 +01:00
fvanroie
34292fb684 Remove lv_drivers 2021-03-09 20:24:30 +01:00
fvanroie
3109960e25 Add hostname 2021-03-09 20:23:30 +01:00
fvanroie
ffb732ce7f Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-09 16:58:24 +01:00
fvanroie
29294f0096 Don't call window_update directly 2021-03-09 16:58:20 +01:00
fvanroie
be2019d344 Add README 2021-03-09 16:31:14 +01:00
fvanroie
70c063635e Add backlight and title to MacOS 2021-03-09 16:31:03 +01:00
fvanroie
97e5802c1d Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-09 00:25:23 +01:00
fvanroie
aac809e478 Fix wakeup touch 2021-03-09 00:25:19 +01:00
fvanroie
e25b87d181 Add darwin_sdl 2021-03-08 15:50:08 +01:00
fvanroie
27e7c95cef Add local page transitions 2021-03-08 04:30:59 +01:00
fvanroie
cc6ce5c4f8 Add local page navigation action 2021-03-08 03:37:21 +01:00
fvanroie
9eb87d969e
Merge pull request #82 from nagyrobi/patch-2
Update lanbon_l8.ini
2021-03-07 21:26:17 +01:00
nagyrobi
7be618ccf7
Update lanbon_l8.ini
Ignore ESP32 BLE Arduino as Lanbon doesn't have BLE hardware.
2021-03-07 21:23:41 +01:00
fvanroie
b7e302927a
Merge pull request #79 from dgomes/darwin
add support for emulator in darwin (MacOS)
2021-03-07 21:09:51 +01:00
Diogo Gomes
902431332e move to ini 2021-03-06 11:46:09 +00:00
Diogo Gomes
4ff22c622e remove print 2021-03-06 11:43:04 +00:00
Diogo Gomes
9ed1a6f8e5 add support for darwin (MacOS) 2021-03-06 11:39:08 +00:00
fvanroie
f4ad8ed3d8 Enable updates from http server 2021-03-06 00:55:01 +01:00
fvanroie
aeb9c03bd1 Small code improvements 2021-03-06 00:53:35 +01:00
fvanroie
9527e6368f Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-03-06 00:07:03 +01:00
fvanroie
47c3f42ee4 Update action name 2021-03-06 00:06:59 +01:00
fvanroie
28c41ac889 Update action name 2021-03-06 00:05:58 +01:00
fvanroie
7285b51dfd
Revert change in master 2021-03-05 23:19:18 +01:00
fvanroie
3fa56fd862 Update action name 2021-03-05 23:15:10 +01:00
fvanroie
5439ae7658 Merge branch '0.4.0-dev' of https://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-03-05 23:01:31 +01:00
fvanroie
157c5e9449 Use the zero terminated copy as payload 2021-03-05 23:01:25 +01:00
fvanroie
20ac36f727 Add -p to mkdir 2021-03-05 21:07:49 +01:00
fvanroie
d12bab2b83 Fix build error in linux if paho/src isn't there 2021-03-05 21:04:09 +01:00
fvanroie
82061a9ecd Inlude MQTTClient.h 2021-03-05 20:40:46 +01:00
fvanroie
b013481ceb Add Install SDL2 library 2021-03-05 20:29:04 +01:00
fvanroie
7875e9af96 Add libsdl2-dev 2021-03-05 20:25:00 +01:00
fvanroie
8028861729 Add user_setups/linux_sdl 2021-03-05 20:03:59 +01:00
fvanroie
d995c719f4 Enable linux platforms 2021-03-05 19:55:00 +01:00
fvanroie
0e56f4e213 Rename build workflow 2021-03-05 19:50:41 +01:00
fvanroie
5486a97f2a
Activate linux environments 2021-03-05 19:49:24 +01:00
fvanroie
0aa869d5e2
Add linux_sdl_64bits 2021-03-05 19:43:20 +01:00
fvanroie
549728d30b Move platform #if to top of the file 2021-03-05 19:38:33 +01:00
fvanroie
62d26eb189 Remove debug messages 2021-03-05 18:04:20 +01:00
fvanroie
7591ce4418 Add linux_sdl environment 2021-03-05 16:43:58 +01:00
fvanroie
ee49a2c6b3
Merge pull request #70 from thouters/linux
Add linux emulator platform
2021-03-05 15:58:10 +01:00
fvanroie
73ec50af27 Formatting 2021-03-05 15:36:43 +01:00
fvanroie
719f0c4038 Include .vscode/extensions.json 2021-03-04 20:37:42 +01:00
fvanroie
41527a6738
Merge pull request #71 from nagyrobi/patch-1
Allow long wifi passwords
2021-03-04 19:48:51 +01:00
fvanroie
9a2d4d49d0
Pin platform to espressif32@3.0.0 2021-03-04 19:47:35 +01:00
nagyrobi
4ca50771e7
Update hasp_wifi.cpp
Allow the WiFi key to be the maximum 64 characters supported by the standard.
2021-03-04 16:07:21 +01:00
fvanroie
80ed53e062 remove hasp_drv_display 2021-03-03 18:18:50 +01:00
fvanroie
8ece088ce0 Set moodlight payload to uppercase 2021-03-02 00:24:22 +01:00
fvanroie
f4339203b7 Set backlight payload to lowercase 2021-03-02 00:23:54 +01:00
Thomas Langewouters
6681b2765b
Merge branch '0.4.0-dev' into linux 2021-03-01 21:46:10 +01:00
Thomas Langewouters
67a63105ce Add linux emulator platform 2021-03-01 21:38:45 +01:00
fvanroie
c780fabead Switch HA message order 2021-03-01 04:29:53 +01:00
fvanroie
0ef0f8c520 New event handler state senders 2021-02-28 22:04:12 +01:00
fvanroie
9f71460a65 Fix 255.255.255.255 IP error 2021-02-28 21:19:03 +01:00
fvanroie
17550d7b66 Add MQTT error codes 2021-02-28 20:49:55 +01:00
fvanroie
190f2d649e Add D_ERROR_UNKNOWN 2021-02-28 20:49:04 +01:00
fvanroie
68abc722bf
Merge pull request #69 from arovak/0.4.0-stmpe610
0.4.0 stmpe610 updates for featherwing
2021-02-28 20:31:25 +01:00
arovak
a1971947f3 stmpe610 touch driver 2021-02-28 20:15:59 +01:00
arovak
3ecf71c1ac add featherwing lcd_config 2021-02-28 20:14:07 +01:00
arovak
56bbc19414 huzzah32-featherwings ini files 2021-02-28 20:13:07 +01:00
fvanroie
5e25c85689 Change on/off states to lower case 2021-02-28 02:16:20 +01:00
fvanroie
6d8a3967d7 Change idle events to lowercase 2021-02-28 02:10:23 +01:00
fvanroie
b62b2841c9 Change event names to lower case 2021-02-28 00:51:16 +01:00
fvanroie
372af71fdd
Merge pull request #68 from arovak/0.4.0-stmpe610
add stmpe610 touch driver
2021-02-28 00:20:38 +01:00
arovak
51a6a73967 add stmpe610 touch driver 2021-02-28 00:13:15 +01:00
fvanroie
489ccd4034 Move dispatchSetup to main setup for oobe support 2021-02-27 18:26:54 +01:00
fvanroie
96dddbb5b2 Add config/gpio support 2021-02-27 18:25:46 +01:00
fvanroie
51c97f16d9 Add mqtt username and password to tests 2021-02-27 13:51:49 +01:00
fvanroie
80052140f3 Add lvfs config 2021-02-27 01:17:51 +01:00
fvanroie
da00c41a21 Move dispatchSetup to haspSetup 2021-02-26 23:52:54 +01:00
fvanroie
6d6e1b99ef Make commands array autosized 2021-02-26 23:24:46 +01:00
fvanroie
deac936e82 Update issue templates 2021-02-26 20:48:09 +01:00
fvanroie
4b08687a42 Update issue templates 2021-02-26 20:46:20 +01:00
fvanroie
400159fe04
Delete other_question.md 2021-02-26 20:45:07 +01:00
fvanroie
ad98ac595c Update issue templates 2021-02-26 20:44:45 +01:00
fvanroie
829210f3cf
Create other_question.md 2021-02-26 20:40:44 +01:00
fvanroie
0ca341a7ae Fix filename 2021-02-25 20:01:37 +01:00
fvanroie
7c9b420c8c Fix wrong #endif 2021-02-25 20:01:28 +01:00
fvanroie
a115cb2b9b Add hasplib 2021-02-25 20:01:11 +01:00
fvanroie
5967d137f6 Add scale attributes 2021-02-25 20:00:31 +01:00
fvanroie
87557f8b05 Fixes for STM32F4 2021-02-24 23:06:51 +01:00
fvanroie
6c6f645692 Rename file to the environment name 2021-02-24 23:06:23 +01:00
fvanroie
241cb0ff4e Bump ArduinoJson version 2021-02-24 22:39:01 +01:00
fvanroie
ea70eb6fed Code formatting 2021-02-24 22:38:46 +01:00
fvanroie
43bfcae843 Add support for STM32F4 2021-02-24 22:38:07 +01:00
fvanroie
cea0439c75 Fix incorrect defines 2021-02-24 22:36:42 +01:00
fvanroie
662a634c60 Fix for STM32F4 2021-02-24 22:36:04 +01:00
fvanroie
257f753057 Move AXP192 library to external github 2021-02-24 22:35:00 +01:00
fvanroie
58f8c4cb26 Merge branch '0.4.0-dev' of http://github.com/fvanroie/hasp-lvgl into 0.4.0-dev 2021-02-24 04:28:15 +01:00
fvanroie
920911dec0 Update ststm32 platform environment 2021-02-24 04:28:11 +01:00
fvanroie
ebc8490dcb Add Stm32f4Device 2021-02-24 04:27:18 +01:00
fvanroie
8ac166ce2d Update stm32 base environment 2021-02-24 04:26:44 +01:00
fvanroie
fd2deddd40 Update README 2021-02-24 04:26:23 +01:00
fvanroie
218aa2565b
Rename README to README.md 2021-02-24 04:06:11 +01:00
fvanroie
5be38e9020
Create README 2021-02-24 04:05:51 +01:00
fvanroie
8481ba85f7 Code clean-up 2021-02-24 03:09:14 +01:00
fvanroie
45a364c076 Fix build errors on ESP32 ethernet 2021-02-24 03:09:05 +01:00
fvanroie
38f80b0b91 Add ARDUINOJSON_ENABLE_STD_STRING for std::string 2021-02-23 23:15:52 +01:00
fvanroie
abb69ce5dd Check if TFT_BCKL is defined before using 2021-02-23 23:14:25 +01:00
fvanroie
301af99dd6 Add default return value to is_driver_pin 2021-02-23 23:13:52 +01:00
fvanroie
e3156d659d Remove HASP prefix from enitiy names 2021-02-23 23:13:31 +01:00
fvanroie
5ca89f9c84 Fix gpio lag when changing moodlight 2021-02-23 23:13:11 +01:00
fvanroie
c81bf0da00 Fix telnet server 2021-02-23 21:16:54 +01:00
fvanroie
0f24c6c4ae Code clean-up 2021-02-23 21:15:10 +01:00
fvanroie
7f765c9a85 Version bump 2021-02-23 20:53:47 +01:00
fvanroie
13563809d9 Update moodlight auto-discovery 2021-02-23 20:42:09 +01:00
fvanroie
6d2ac82452 Corrected HASP_USE_GPIO 2021-02-23 20:41:28 +01:00
fvanroie
1042076845 Add is_driver_pin 2021-02-23 20:40:47 +01:00
fvanroie
c5204b48d5 Add is_system_pin 2021-02-23 20:40:16 +01:00
fvanroie
e97d7459f4 Enable telnet 2021-02-23 14:55:21 +01:00
fvanroie
df09d8ae5c Fix screen refresh during long updates 2021-02-23 14:55:10 +01:00
fvanroie
c38b75dd1a Fix webServer landing page in STA mode 2021-02-23 14:54:56 +01:00
fvanroie
8b25b87b3f Update License header 2021-02-23 01:37:38 +01:00
fvanroie
e649fa9941 Start network in AP mode 2021-02-23 00:46:22 +01:00
fvanroie
203c575d70 Fix telnet 2021-02-23 00:43:13 +01:00
fvanroie
28f420be1c Fix webHandleConfig callback 2021-02-23 00:26:00 +01:00
fvanroie
b50278a68b Fix webHandleConfig callback 2021-02-23 00:06:57 +01:00
fvanroie
202c958057 Change power to state 2021-02-23 00:05:10 +01:00
fvanroie
a1f818f83c Set correct webHandleConfig callback 2021-02-23 00:04:44 +01:00
fvanroie
6f5d90a824 Merge branch 'master' of http://github.com/fvanroie/hasp-lvgl 2021-02-22 23:35:16 +01:00
fvanroie
98def24a74 Start network services in AP mode 2021-02-22 23:35:10 +01:00
fvanroie
952034af06 Add .on("/config") to AP mode 2021-02-22 23:34:23 +01:00
fvanroie
f874ff9248 Bump version 2021-02-22 23:33:31 +01:00
fvanroie
05901395d1 Fix AP mode soes not start webServer 2021-02-22 23:12:46 +01:00
fvanroie
81b30d8303 Update env:my_custom_build 2021-02-22 23:04:45 +01:00
fvanroie
0df9d188c1 Fix AP webserver not saving 2021-02-22 22:44:35 +01:00
fvanroie
e17404358f Code cleanup 2021-02-22 01:57:34 +01:00
fvanroie
91026864fd Add missing member methods 2021-02-22 00:51:58 +01:00
fvanroie
ae4ee0f534 Change TFT_eSPI.h 2021-02-21 20:58:49 +01:00
fvanroie
0c695f6c8a Add TAG_DEV 2021-02-21 20:52:21 +01:00
fvanroie
d288059035 Move dispatchLoop 2021-02-21 20:51:48 +01:00
fvanroie
9dca1e0891 Harmonize setup routines 2021-02-21 20:51:19 +01:00
fvanroie
8452cbaecd Update display drivers 2021-02-21 20:50:26 +01:00
fvanroie
748fe57334 Update device drivers 2021-02-21 20:48:41 +01:00
fvanroie
cc4cc54c22 Hamonize mqtt drivers 2021-02-21 20:46:29 +01:00
fvanroie
2223e5722a Move to haspTft class 2021-02-21 20:45:43 +01:00
fvanroie
898518071a Test rotation and fullscreen 2021-02-21 20:44:28 +01:00
fvanroie
2a2fc45425 Add strcasecmp 2021-02-21 20:36:38 +01:00
fvanroie
4aeea47dee
Update LICENSE 2021-02-21 11:51:09 +01:00
fvanroie
06949a9c08
Update LICENSE 2021-02-21 11:50:06 +01:00
fvanroie
ba34f1dd25
Update FUNDING.yml 2021-02-21 02:38:57 +01:00
fvanroie
ed76abc245
Update FUNDING.yml 2021-02-21 02:38:35 +01:00
fvanroie
1afc9f281c
Update FUNDING.yml 2021-02-21 02:31:29 +01:00
fvanroie
cc59d93e80
Update FUNDING.yml 2021-02-21 02:30:14 +01:00
fvanroie
6008e94142
Create FUNDING.yml 2021-02-21 02:26:49 +01:00
fvanroie
aa2a3b3fc2 Add name command line parameter 2021-02-21 00:08:07 +01:00
fvanroie
578ab09318 Update tests 2021-02-20 03:01:18 +01:00
fvanroie
bee68ca791 Console & Windows app, add command line options 2021-02-20 02:43:09 +01:00
fvanroie
fb9a844fc7 move lvgl init to hasp_gui 2021-02-20 01:59:42 +01:00
fvanroie
ea7d3757ad Allow stretched window for fullscreen 2021-02-20 01:56:55 +01:00
fvanroie
94842f7036 Tweak backlight dimming 2021-02-20 01:53:59 +01:00
fvanroie
5951214138 Switch paho from async to single thread sync client 2021-02-20 01:20:25 +01:00
fvanroie
1ccbbf16ea Add virtual backlight dimming 2021-02-19 01:58:20 +01:00
fvanroie
e8850d99fe Add set_hostname to device class 2021-02-18 22:17:29 +01:00
fvanroie
06cba2ea8e Use haspDevice for hostname 2021-02-18 19:17:00 +01:00
fvanroie
7857ea03ed Changes to haspDevice class 2021-02-18 19:06:46 +01:00
fvanroie
b7366336cc Fix build errors 2021-02-17 23:18:03 +01:00
fvanroie
046ecb0b7a Post latest updates 2021-02-17 22:12:56 +01:00
fvanroie
4a993392fd Add Xplatform 2021-02-17 14:55:58 +01:00
fvanroie
1c6ea7c38f Fix memcpy overrun and TasmotaClient rename 2021-02-17 14:43:50 +01:00
fvanroie
7009c10c97 Rename pre-setup to init 2021-02-17 14:41:54 +01:00
fvanroie
215c2645b3 Move network services into system 2021-02-17 14:41:18 +01:00
fvanroie
0b2b3fe7a8 Update environments with TasmotaClient 2021-02-17 14:40:10 +01:00
fvanroie
a43787c3f9 Code cleanup 2021-02-17 05:41:25 +01:00
fvanroie
28bf02642d Enable ARDUINOJSON_ENABLE_PROGMEM 2021-02-17 05:41:04 +01:00
fvanroie
830a2ef415 Move files to src 2021-02-17 05:17:29 +01:00
fvanroie
09c9e7f066 Add memory functions to device class 2021-02-17 05:16:25 +01:00
fvanroie
a7e6def457 Re-organize environments 2021-02-17 03:41:56 +01:00
fvanroie
b4a901ef9a Update driver path 2021-02-17 03:41:37 +01:00
fvanroie
79467a8846 Minor tweaks 2021-02-17 03:41:08 +01:00
fvanroie
0c927a67d7 Use device and code clean-up 2021-02-17 03:40:47 +01:00
fvanroie
5692bb8b90 Extended device classes for ESP32 and ESP8266 2021-02-17 03:39:56 +01:00
fvanroie
8156e8ca33 Add Out of Memory 2021-02-17 03:26:17 +01:00
fvanroie
3d95275c83 Reorganize environments 2021-02-17 03:25:50 +01:00
fvanroie
941c8c90d7 Update lv_drv_conf 2021-02-16 18:31:02 +01:00
fvanroie
a19d82f06c Use settings structs 2021-02-16 17:26:50 +01:00
fvanroie
d04d3b4140 Move files around 2021-02-16 17:26:08 +01:00
fvanroie
e7d1fdef85 Move files around 2021-02-16 17:25:05 +01:00
fvanroie
2148ee7777 Xplatform changes 2021-02-16 17:24:00 +01:00
fvanroie
52eef3f657 Xplatform changes 2021-02-16 17:18:19 +01:00
fvanroie
874456b458 Xplatfotm changes 2021-02-16 17:17:07 +01:00
fvanroie
19a1ce5eb0 Xplatform changes and add settings struct 2021-02-16 17:16:38 +01:00
fvanroie
367458469b Xplatform changes 2021-02-16 17:12:38 +01:00
fvanroie
63ccab10fa Xplatform changes and fix some object types 2021-02-16 17:11:22 +01:00
fvanroie
c1ec46d708 Add parser and margin attributes 2021-02-16 17:10:01 +01:00
fvanroie
ea6a8cd532 Xplatform changes 2021-02-16 17:09:50 +01:00
fvanroie
8d3fec7da9 Move files around 2021-02-16 17:08:52 +01:00
fvanroie
0d53ff02a7 Seperate mqtt stacks 2021-02-16 17:08:25 +01:00
fvanroie
17e88dcd35 Move files around 2021-02-16 17:07:56 +01:00
fvanroie
9229280502 Move files around 2021-02-16 17:07:25 +01:00
fvanroie
ea78d55980 Cahnges to arduino environment 2021-02-16 17:04:46 +01:00
fvanroie
b992779c36 Move user_config_override.h 2021-02-16 17:03:19 +01:00
fvanroie
5ffbd18d8b Xplatform changes 2021-02-16 17:02:49 +01:00
fvanroie
760de1b092 Move user_config_override.h 2021-02-16 14:14:05 +01:00
fvanroie
bfe1877a91 Add class wrapper 2021-02-16 14:13:07 +01:00
fvanroie
3858d68a5b
Update README.md 2021-02-16 01:49:46 +01:00
fvanroie
929e507dc4 Update tests 2021-02-16 01:35:19 +01:00
fvanroie
1e1afeaa69 Update tests 2021-02-15 22:12:34 +01:00
fvanroie
e3dfee55c1 Tweak Windows environment 2021-02-15 22:11:33 +01:00
fvanroie
8723e655a9 Enable spinner 2021-02-15 22:10:55 +01:00
fvanroie
e9c75fe3c3 Add win32 environment 2021-02-15 04:27:02 +01:00
fvanroie
b6a1793538 Add win32 environment 2021-02-15 04:26:30 +01:00
fvanroie
1c707cfe5b Add win32 environment 2021-02-15 04:22:13 +01:00
fvanroie
a70eb1fd5f Add Windows client 2021-02-15 03:09:17 +01:00
fvanroie
027ffa983f Update tests 2021-02-15 03:05:00 +01:00
fvanroie
3d81331143 Add analyze_elf.py 2021-02-12 03:03:54 +01:00
fvanroie
2305212351 Merge branch 'master' of https://github.com/fvanroie/hasp-lvgl 2021-02-11 02:56:44 +01:00
fvanroie
3c92b61cfa Require a wakeup touch when backlight is off 2021-02-11 02:56:40 +01:00
fvanroie
72a9afd6a9 Disable LV_USE_FONT_SUBPX 2021-02-11 01:48:34 +01:00
fvanroie
883cf08b34
Update bug_report.md 2021-02-09 22:39:43 +01:00
fvanroie
d695b0ef52
Create bug_report.md 2021-02-09 22:35:25 +01:00
fvanroie
ed33bf5f5f Add text attribute, obsolete txt 2021-02-09 22:22:44 +01:00
fvanroie
9ef3adedf2 Add strings 2021-02-09 22:09:10 +01:00
fvanroie
c9249106fe Add String 2021-02-09 21:26:29 +01:00
fvanroie
3c1366ee80 Overall log level and log macros 2021-02-09 21:26:03 +01:00
fvanroie
109991cd01 New object parser 2021-02-09 06:28:51 +01:00
fvanroie
30f25813d4 Code compression exercise 2021-02-09 04:50:44 +01:00
fvanroie
8984402f60 Compact code 2021-02-08 01:06:43 +01:00
fvanroie
f90a2a1e57 Add define for LWT_TOPIC 2021-02-08 01:06:24 +01:00
fvanroie
7997ed53ea Compact code 2021-02-08 01:05:49 +01:00
fvanroie
97ed56456c Tweak memory buffers 2021-02-08 01:05:35 +01:00
fvanroie
25ff9858ac Filter lv_font_montserrat 2021-02-08 00:38:46 +01:00
fvanroie
f5a2e5d222 Re-enable mono theme 2021-02-08 00:38:25 +01:00
fvanroie
f188f90e52 Add D_MANUFACTURER 2021-02-08 00:38:11 +01:00
fvanroie
3d6f97f605 Move hasp_util_format_bytes function 2021-02-08 00:37:41 +01:00
fvanroie
4ee9937950 Remove IRAM_ATTR to save some space 2021-02-08 00:36:41 +01:00
fvanroie
869bdf4dd9 Compacting code 2021-02-07 23:48:07 +01:00
fvanroie
99ef38d40c Default language EN 2021-02-07 17:40:40 +01:00
fvanroie
9f82e6fff5 Move unscii to font folder 2021-02-07 17:40:02 +01:00
fvanroie
8e0b379ba9 Initial internationalization 2021-02-07 06:17:09 +01:00
fvanroie
3618305d42 Update lv_fs_pc.c 2021-02-06 19:36:11 +01:00
fvanroie
c71203439b Disable Mono theme 2021-02-06 18:51:19 +01:00
fvanroie
cdd54ce469 Enabled PS_Ram 2021-02-06 15:24:23 +01:00
fvanroie
fbc6347a67 Enabled PS_Ram 2021-02-06 02:21:59 +01:00
fvanroie
16befa998d Hide invalid pins 2021-02-05 03:10:13 +01:00
fvanroie
806232b69f Set integrated SPI flash pins as system pins 2021-02-05 03:02:02 +01:00
fvanroie
309a06186b Add env:ttgo-esp32-lilygo-pi 2021-02-05 02:57:33 +01:00
fvanroie
3751608c0e Add OTA_PASSWORD 2021-02-05 02:56:48 +01:00
fvanroie
d73d6b19d5 Add moodlight command 2021-02-05 02:56:22 +01:00
fvanroie
beddba6daf Fix HA auto-discovery MAC identifier 2021-02-04 22:48:52 +01:00
fvanroie
7df826d2de Smoother console input 2021-02-04 18:30:48 +01:00
fvanroie
e23a17c09e Buffer size tweaks 2021-02-04 18:30:25 +01:00
fvanroie
fd7335485b More flexible font defines 2021-02-04 18:30:19 +01:00
fvanroie
c8cbaa27f7 Defaultt font icon tweaks 2021-02-04 18:24:53 +01:00
fvanroie
17c5266ae5 allow p0b1 and p[0].b[1] notiations 2021-02-04 00:43:03 +01:00
fvanroie
99fe6641d1 Use built-in lvgl functions for lv_arc_set_*_angle 2021-02-04 00:41:55 +01:00
fvanroie
dcb8389bb9 Fix backlightpin and sleep initial value bug 2021-02-04 00:40:50 +01:00
fvanroie
097d9ce5be Code clean-up 2021-02-04 00:40:04 +01:00
fvanroie
1a29225f3e Add HASP_OBJECT_NOTATION 2021-02-04 00:39:47 +01:00
fvanroie
bbfe673e8b Change object notation 2021-01-31 23:53:14 +01:00
fvanroie
ac08900d0f Style sweep 2021-01-31 23:52:04 +01:00
fvanroie
f3891077d0 Update HA auto-discovery 2021-01-31 01:23:16 +01:00
fvanroie
5edeafbe31 Merge branch 'master' 2021-01-31 01:22:36 +01:00
fvanroie
e829f58152 Update HA auto-discovery 2021-01-31 01:21:05 +01:00
fvanroie
9df70a8b1b
Merge pull request #54 from blakadder/patch-1
add missing json attributes
2021-01-31 01:19:22 +01:00
blakadder
588682a3bb
add missing json attributes
needs json attributes to pull info
2021-01-30 17:24:15 +01:00
fvanroie
8a54b698a0
Update README.md 2021-01-30 16:48:48 +01:00
fvanroie
7ace26ebc0
Merge pull request #52 from blakadder/master
add active page mqtt number entity
2021-01-30 15:55:53 +01:00
fvanroie
e3be249e66
Remove platformio_override copy.ini
Remove  platformio_override copy.ini from PR
2021-01-30 15:54:12 +01:00
fvanroie
377fa31a9b Bug fix in clearpage and code cleanup 2021-01-30 15:39:13 +01:00
blakadder
b3ae2a64f0 add active page mqtt number entity 2021-01-30 14:55:50 +01:00
fvanroie
7676fa3d0f Add pxby syntax next to p[x].b[y] 2021-01-30 00:09:48 +01:00
fvanroie
00b3d1b884 Fix page changing bug 2021-01-30 00:09:19 +01:00
fvanroie
e3bd676202 Add more HA mqtt auto discovery 2021-01-29 21:04:47 +01:00
fvanroie
2b156c38d4 Add gpioEvery5Seconds 2021-01-29 21:04:26 +01:00
fvanroie
9bae29d67f Tweak roller text_font setting 2021-01-29 21:04:12 +01:00
fvanroie
d6a40b8fd2 Add Mood light options and startpage from 1 2021-01-29 21:03:39 +01:00
fvanroie
6020d6479b Make page 254 page 0 instead 2021-01-29 21:01:18 +01:00
fvanroie
dad89c4224 Add device object 2021-01-29 21:00:19 +01:00
fvanroie
e3c129fd37 Version bump 2021-01-29 20:59:02 +01:00
fvanroie
84a1a6605c Disable empty theme 2021-01-28 22:36:44 +01:00
fvanroie
d29680b3ac Fix rotation in the Web UI 2021-01-27 18:47:11 +01:00
fvanroie
81bf4f7ea5 Fix buffer length for p254bx buttons 2021-01-27 17:53:47 +01:00
fvanroie
3a6a3ebf60 Make dispatch_get_event_name public 2021-01-27 17:53:14 +01:00
fvanroie
8c2fbe9c4b Fix idle state wonkiness 2021-01-26 15:30:25 +01:00
fvanroie
fe5e80529a Add .to_front and .to_back 2021-01-25 23:49:10 +01:00
fvanroie
cf0aab0f92 Fix SHORT/LONG state when time is set to 0 2021-01-25 23:48:42 +01:00
fvanroie
b575405a1c Fix HA mqtt status online 2021-01-25 23:48:19 +01:00
fvanroie
33f85b8975 set BACKLIGHT_CHANNEL to 0 2021-01-25 17:47:51 +01:00
fvanroie
a59ba3887c Add node name in statusupdate 2021-01-25 17:47:33 +01:00
fvanroie
847647272e Change colorpicker val to color attribute 2021-01-24 02:27:32 +01:00
fvanroie
1b64ec7747 Do not quote numbers in response json 2021-01-24 00:44:20 +01:00
fvanroie
666cbbf804 Merge branch 'master' of https://github.com/fvanroie/hasp-lvgl 2021-01-23 22:22:28 +01:00
fvanroie
a0409d0c7f Add Invert Colors display option 2021-01-23 22:22:25 +01:00
fvanroie
a00c920851
Update README.md 2021-01-23 02:03:50 +01:00
fvanroie
3f52fab0d1 Fix INPUT_PULLDOWN on ESP8266 2021-01-23 02:01:32 +01:00
fvanroie
524e60a04f Update value_str test 2021-01-23 01:33:14 +01:00
fvanroie
7ca86b59bb Allow gpio PWM 2021-01-23 01:32:52 +01:00
fvanroie
6a29167c50 Update tests 2021-01-21 22:43:47 +01:00
fvanroie
0b33ce2cf8 Update object attributes test 2021-01-21 22:28:35 +01:00
fvanroie
67d803ff2d Update color test 2021-01-21 21:31:25 +01:00
fvanroie
00f6ae8391 Test colors and value_str 2021-01-21 21:18:20 +01:00
fvanroie
551fd16101 Alignment of text 2021-01-21 16:42:34 +01:00
fvanroie
9afcac61de Add otaUpdateCheck 2021-01-21 16:40:49 +01:00
fvanroie
61d1746c26 Update scripts 2021-01-21 16:38:30 +01:00
fvanroie
e845b73290 Switch to LittleFS 2021-01-20 19:35:09 +01:00
fvanroie
199dff2c49 Switch to LittleFS 2021-01-20 18:46:07 +01:00
fvanroie
8adc9ca93f Test button discovery 2021-01-20 18:27:03 +01:00
fvanroie
0b7c2e3c32 Switch to LittleFS 2021-01-20 18:01:26 +01:00
fvanroie
6e2d6f573c Merge branch 'master' of https://github.com/fvanroie/hasp-lvgl 2021-01-20 17:56:09 +01:00
fvanroie
ee01ad0c0d Code cleanup 2021-01-20 17:55:14 +01:00
fvanroie
bb6e5c5938 Remove literal string, add environment 2021-01-20 02:18:59 +01:00
fvanroie
6888572970 Remove literal string 2021-01-20 02:18:26 +01:00
fvanroie
156bf2be1b Update user_setups 2021-01-19 22:10:38 +01:00
fvanroie
591391e1cd Version bump 2021-01-19 19:10:52 +01:00
fvanroie
7745fdba86
Update release.yml 2021-01-19 16:26:53 +01:00
fvanroie
afa04e40d0 Set default portrait orientation 2021-01-17 01:42:57 +01:00
631 changed files with 468389 additions and 29542 deletions

View File

@ -1,12 +1,12 @@
---
Language: Cpp
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: false
AlignEscapedNewlinesLeft: false
AlignOperands: true
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
@ -21,51 +21,51 @@ AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackParameters: true
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: true
AfterUnion: true
BeforeCatch: false
BeforeElse: false
IndentBraces: false
AfterStruct: true
AfterUnion: true
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ColumnLimit: 120
CommentPragmas: "^ IWYU pragma:"
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '$'
ForEachMacros: [foreach, Q_FOREACH, BOOST_FOREACH]
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: ".*"
Priority: 1
IncludeIsMainRegex: "$"
IndentCaseLabels: true
IndentWidth: 4
IndentWidth: 4
IndentWrappedFunctionNames: false
IndentPPDirectives: BeforeHash
# IndentPPDirectives: BeforeHash
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MacroBlockBegin: ""
MacroBlockEnd: ""
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
@ -77,21 +77,20 @@ PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Middle
ReflowComments: true
SortIncludes: false
PointerAlignment: Left
ReflowComments: true
SortIncludes: false
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Never
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
UseTab: Never
...
Standard: Cpp11
TabWidth: 4
UseTab: Never

View File

@ -0,0 +1,35 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "Ubuntu",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/base:jammy",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/python:1": {}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",
// Configure tool-specific properties.
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools",
"platformio.platformio-ide"
]
}
},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
// Allow uploading to device
"mounts": ["type=bind,source=/dev/bus/usb,target=/dev/bus/usb"],
"runArgs": ["--privileged"]
}

16
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,16 @@
# These are supported funding model platforms
github: [aderusha, lovyan03, bblanchon] # Replace with up to 4 GitHub Sponsors-enabled usernames
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: openhasp
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: [
"https://www.paypal.com/donate/?business=E76SN28JLZCXU",
"https://www.buymeacoffee.com/aktdCofU",
"https://arduinojson.org/book/",
] # Up to 4 links

45
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,45 @@
---
name: Bug report
about: Create a bug report to help us improve
title: ''
labels: bug
assignees: ''
---
<!--
IMPORTANT
Issues that don't use this template will be ignored and closed.
If you are not sure if your issue is a bug, please open a [github discussion](https://github.com/HASwitchPlate/openHASP/discussions) first
or join the [#openHASP channel](https://discord.gg/VCWyuhF) on Discord.
-->
### Perform all steps below and tick them with [x]
- [ ] Check the related part of the [Documentation](https://www.openhasp.com/)
- [ ] Update openHASP to the latest version
- [ ] Reproduce the issue and describe all steps
### Describe the bug
<!--
A clear and concise description of what the bug is.
-->
### To Reproduce
<!--
Provide a small, independent code sample that can be used to reproduce the issue.
Format the code like this:
```json
your code here
```
-->
### Expected behavior
<!--
A clear and concise description of what you expected to happen.
-->
### Screenshots or video
<!--
If applicable, add screenshots to help explain your problem.
-->

View File

@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -0,0 +1,16 @@
---
name: Other Question
about: Please use the forum or discord for general questions
title: ''
labels: question
assignees: ''
---
## Questions
We only keep bug reports and active requests being worked on in the issues tracker.
For general questions we have opened the [discussion forum](https://github.com/HASwitchPlate/openHASP/discussions) on github and [#openHASP channel](https://discord.gg/VCWyuhF) on Discord.
If you are not sure if your question is related to the code development, feel free to ask!

12
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,12 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for more information:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
# https://containers.dev/guide/dependabot
version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: weekly

168
.github/workflows/build.yaml vendored Normal file
View File

@ -0,0 +1,168 @@
name: Build branch
on:
release:
types: [published]
push:
branches:
- master
paths-ignore:
- "**.md"
- "**.yml"
- "**.yaml"
workflow_dispatch:
jobs:
build_esp32:
runs-on: ubuntu-latest
#runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
environment:
- out: adafruit
env: "huzzah32-featherwing-24 -e huzzah32-featherwing-35 -e huzzah32-featherwing-24-v2 -e huzzah32-featherwing-35-v2 -e huzzah32-v2-featherwing-24-v2 -e huzzah32-v2-featherwing-35-v2"
- out: az-touch
env: "az-touch-mod-esp32_ili9341_4MB -e az-touch-mod-esp32_ili9341_8MB"
- env: d1-mini-esp32_ili9341
out: d1-mini-esp32
- out: d1-r32-espduino32
env: "d1-r32-waveshare_ili9486 -e d1-r32-unoshield_ili9341_adc -e d1-r32-unoshield_ili9486_adc"
- out: dustinwatts
env: "freetouchdeck_4MB -e freetouchdeck_8MB -e esp32-touchdown"
- out: elecrow
env: "esp32-terminal-rgb_16MB -e esp32-terminal-spi_16MB -e elecrow-s3-8048c050_4MB -e elecrow-s3-8048c070_4MB"
- out: globalsecurity
env: gs-t3e_16MB
- out: guition
env: esp32-s3-4848s040_16MB -e guition-jc4827w543c_4MB
- out: lanbon
env: lanbon_l8 -e lanbon_l9
- out: lilygo-ttgo
env: "lilygo-lily-pi_st7796 -e lilygo-lily-pi_ili9481 -e ttgo-t7-v1_5_ili9341_4MB -e ttgo-t7-v1_5_ili9341_16MB"
- out: lolin
env: lolin-d32-pro_ili9341
- out: m5stack
env: m5stack-core2
- out: makerfabs
env: "makerfabs-tft35-cap_4MB -e makerfabs-tft35-cap_16MB -e makerfabs-s3-tft35-spi -e makerfabs-s3-tft40-rgb -e makerfabs-s3-tft43-rgb"
- out: panlee
env: "panlee-zw3d95ce01s-ar-4848_16MB -e panlee-zw3d95ce01s-ur-4848_16MB -e panlee-zw3d95ce01s-tr-4848_16MB"
- 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"
- out: waveshare
env: "esp32-one_ili9486 -e esp32-one_st7796 -e ws_esp32_s3_touch_lcd_4p3"
- out: wireless-tag
env: "wt32-sc01_4MB -e wt32-sc01_16MB -e wt-86-32-3zw1 -e wt32-sc01-plus_8MB -e wt32-sc01-plus_16MB"
- out: yeacreate
env: yeacreate-nscreen32
steps:
- uses: actions/checkout@v4
with:
submodules: "true"
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v4
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Install Setuptools
run: |
pip install --upgrade setuptools
- name: Enable ESP32 platforms from platformio_override-template.ini
run: |
sed 's/; user_setups\/esp32/user_setups\/esp32/g' platformio_override-template.ini > platformio_override.ini
- name: List all files in current folder
run: |
ls -la
- name: Cat platformio_override.ini
run: |
cat platformio_override.ini
- name: Run PlatformIO
run: pio run -e ${{ matrix.environment.env }}
- name: Upload output file
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.environment.out }}
path: build_output/firmware/*.*n
## Release only:
- name: Zip artifact for deployment
if: github.ref != 'refs/heads/master'
run: |
zip ${{ matrix.environment.out }}.zip build_output/firmware/*.bin -r
- name: On Release, upload assets to that Release
if: github.ref != 'refs/heads/master'
uses: AButler/upload-release-assets@v3.0
with:
files: ${{ matrix.environment.out }}.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}
linux_build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "true"
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v4
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Enable Linux platform from platformio_override.ini
run: |
sed 's/; user_setups\/linux/user_setups\/linux/g' platformio_override-template.ini > platformio_override.ini
mkdir -p .pio/libdeps/linux_sdl/paho/src
- name: Install SDL2 library
run: |
sudo apt-get update
sudo apt-get install libsdl2-dev
- name: List all files in current folder
run: |
ls -la
- name: Cat platformio_override.ini
run: |
cat platformio_override.ini
- name: Enable Linux platform from platformio_override.ini
run: |
sed -i 's/; user_setups\/linux/user_setups\/linux/g' platformio_override.ini
mkdir -p .pio/libdeps/linux_sdl/paho/src
- name: Install SDL2 library
run: |
sudo apt-get update
sudo apt-get install libsdl2-dev
- name: Run PlatformIO
run: pio run -e linux_sdl

74
.github/workflows/build_linux.yaml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Build Linux (Obsolete)
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
environments:
- linux_sdl
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v4
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
# - name: Enable ESP platforms from platformio_override-template.ini
# run: |
# sed 's/; user_setups\/esp/user_setups\/esp/g' platformio_override-template.ini > platformio_override.ini
- name: Enable Linux platform from platformio_override.ini
run: |
sed -i 's/; user_setups\/linux/user_setups\/linux/g' platformio_override.ini
mkdir -p .pio/libdeps/linux_sdl/paho/src
- name: Install SDL2 library
run: |
sudo apt-get update
sudo apt-get install libsdl2-dev
- name: List all files in current folder
run: |
ls -la
- name: Cat platformio_override.ini
run: |
cat platformio_override.ini
- name: Run PlatformIO
run: pio run -e ${{ matrix.environments }}
# - name: Upload output file
# uses: actions/upload-artifact@v2
# with:
# name: ${{ matrix.environments }}
# path: build_output/firmware/*.bin
#- name: Create release and upload firmware
# run: |
# set -x
# assets=()
# for asset in build_output/firmware/*.bin; do
# assets+=("-a" "$asset")
# done
# tag_name="${GITHUB_REF##*/}"
# hub release create "${assets[@]}" -m "$tag_name" "$tag_name"
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,8 +1,9 @@
on:
release:
types: [created]
# release:
# types: [created]
workflow_dispatch:
name: Create Release
name: Create Release (Obsolete)
jobs:
build:
@ -11,21 +12,23 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
@ -33,6 +36,14 @@ jobs:
- name: Enable ESP platforms from platformio_override-template.ini
run: |
sed 's/; user_setups\/esp/user_setups\/esp/g' platformio_override-template.ini > platformio_override.ini
- name: Enable Linux platform from platformio_override.ini
run: |
sed -i 's/; user_setups\/linux/user_setups\/linux/g' platformio_override.ini
mkdir -p .pio/libdeps/linux_sdl/paho/src
- name: Install SDL2 library
run: |
sudo apt-get update
sudo apt-get install libsdl2-dev
- name: List all files in current folder
run: |
ls -la
@ -40,11 +51,29 @@ jobs:
run: |
cat platformio_override.ini
- name: Run PlatformIO
run: pio run -e d1-mini-esp32_ili9341 -e d1-mini-esp8266_ili9341
run: pio run -e lolin-d32-pro_ili9341
- name: Run PlatformIO
run: pio run -e az-touch-mod-esp32_ili9341_4MB -e az-touch-mod-esp32_ili9341_8MB
- name: Run PlatformIO
run: pio run -e makerfabs-tft35-cap_4MB -e makerfabs-tft35-cap_16MB
- name: Run PlatformIO
run: pio run -e yeacreate-nscreen32 -e
- name: Run PlatformIO
run: pio run -e d1-mini-esp32_ili9341
- name: Run PlatformIO
run: pio run -e esp32-touchdown -e freetouchdeck_4MB -e freetouchdeck_8MB
- name: Run PlatformIO
run: pio run -e huzzah32-featherwing-24 -e huzzah32-featherwing-35 -e huzzah32-featherwing-24-v2 -e huzzah32-featherwing-35-v2 -e huzzah32-v2-featherwing-24-v2 -e huzzah32-v2-featherwing-35-v2
- name: Run PlatformIO
run: pio run -e lanbon_l8
- name: Run PlatformIO
run: pio run -e wt32-sc01_4MB -e wt32-sc01_16MB
- name: Run PlatformIO
run: pio run -e m5stack-core2
- name: Upload output file
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: hasp-lvgl firmware.zip
name: openHASP firmware.zip
path: build_output/firmware/*.bin
- name: Create release and upload firmware
run: |

View File

@ -1,56 +0,0 @@
name: PlatformIO CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v2
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v2
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Enable ESP platforms from platformio_override-template.ini
run: |
sed 's/; user_setups\/esp/user_setups\/esp/g' platformio_override-template.ini > platformio_override.ini
- name: List all files in current folder
run: |
ls -la
- name: Cat platformio_override.ini
run: |
cat platformio_override.ini
- name: Run PlatformIO
run: pio run -e d1-mini-esp32_ili9341 -e lanbon_l8 -e wt32-sc01 -e d1-mini-esp8266_ili9341
- name: Upload output file
uses: actions/upload-artifact@v2
with:
name: hasp-lvgl firmware.zip
path: build_output/firmware/*.bin
#- name: Create release and upload firmware
# run: |
# set -x
# assets=()
# for asset in build_output/firmware/*.bin; do
# assets+=("-a" "$asset")
# done
# tag_name="${GITHUB_REF##*/}"
# hub release create "${assets[@]}" -m "$tag_name" "$tag_name"
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

46
.gitignore vendored
View File

@ -4,21 +4,61 @@
## Project files ######
.git
.pio
bin/*
data/*
src/user_setups/active/*
!data/edit.htm
!data/en.json
!data/main.js
!data/openhasp.ttf
!data/style.css
!data/script.js
!data/vars.css
!data/cert/
!data/cert/x509_crt_bundle.bin
!data/pages/
!data/pages/*.jsonl
!data/static/
!data/static/*.gz
data/static/edit.htm.gz
data/static/en.json.gz
data/static/main.js.gz
data/static/script.js.gz
data/static/style.css.gz
data/static/*.js
include/user_config_override.h
src/user_config_override.h
user_config_override.h
platformio_override.ini
user_setups/active/*
user_setups/custom/*
build_output/*
build_output/firmware/*.bin
build_output/firmware/*.exe
lib/SimpleFTPServer/examples/*
src/custom/*
!src/custom/README.md
!src/custom/bootlogo_template.h
!src/custom/my_custom_template.h
!src/custom/my_custom_template.cpp
!src/custom/my_custom_fan_template.cpp
#npm filter
node_modules/*
package.json
package-lock.json
## Test result files
*.xml
*.bin
## Visual Studio Code specific ######
.vscode
!.vscode
.vscode/*
!.vscode/extensions.json
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
*.bak
test/config.yaml
tools/mklittlefs*

7
.gitmodules vendored
View File

@ -1,3 +1,4 @@
[submodule "lib/lv_lib_qrlodepng"]
path = lib/lv_lib_qrlodepng
url = https://github.com/littlevgl/lv_lib_lodepng
[submodule "lib/freetype"]
path = lib/freetype
url = https://github.com/fvanroie/freetype

5
.gitpod.Dockerfile vendored Normal file
View File

@ -0,0 +1,5 @@
FROM gitpod/workspace-full
USER gitpod
RUN pip install -U platformio

7
.gitpod.yml Normal file
View File

@ -0,0 +1,7 @@
tasks:
- init: cp platformio_override-template.ini platformio_override.ini
- before: platformio upgrade; npm install -g lv_font_conv
- command: echo "Please open 'platformio_override.ini', uncomment the platform, override and environment you wish to build for, save and then run command 'platformio run'."
image:
file: .gitpod.Dockerfile

11
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,11 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"ms-vscode.cpptools",
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

329
CHANGELOG.md Normal file
View File

@ -0,0 +1,329 @@
# openHASP Changelog
## v0.7.0
!!! THE PARTITION SCHEME OF THE INTERNAL FLASH HAS CHANGED, CHECK THE DOCS BEFORE UPGRADING !!!
### Commands
- Removed deprecated `dim`, `brightness` and `light` commands, use `backlight` instead
### Objects
<!-- ? Support for State and Part properties -->
- `action` and `swipe` can now be set to any command
- Set default `line_width` of new `line` objects to 1
- Add `qrcode` object (thanks @marsman7)
- Allow line and block comments in pages.jsonl
- Removed deprecated `txt` property, use `text` instead
- Removed deprecated `objid` property, use `obj` instead
- HASP theme: Toggle objects now use the secondary color when they are in the toggled state.
### Fonts
- Firmware files include the bitmapped font sizes 12, 16, 24 and 32pt
- Use embedded TrueType font for other font sizes (PSram highly recommended)
- Add glyphs from Cyrillic, Latin-2, Greek and Viernamese character sets to default fonts
- Add 12 new MDI icons
### Web UI
- Update Web UI to petite-vue app
- Redesigned the File Editor
<!-- - _Selectable dark/light theme?_ -->
### Services
- Change MQTT client from _PubSubClient_ to asynchronic Espressif _esp_mqtt_ client
- Make the MQTT topics configurable
- MQTT discovery now uses a subtopic of `hasp/discovery`. Discovery requires version 0.7.x of the Custom Component.
- Add service start/stop mqtt
- Add SimpleFTPServer to easily upload and download files to the plate *(one simultaneous connection only)*
- Add service start/stop ftp
- Add configuration for NTP servers and timezone
- Add support system scripts executed when the idle level is changed
- Add support for WireGuard (thanks @perexg)
### Devices
- Add Elecrow ESP32-Terminal 3.5" SPI and RGB
- Add GS-T3E Smart Panel
- Add Lilygo Ttgo Lily Pi ESP32
- Add Makerfabs ESP32-S3 SPI
- Add Sunton ESP32-S3 TFT 4.3", 5.0" and 7.0"
- Add Sunton ESP32-2432S028R ESP32-3248S035C ESP32-3248S035R
- Add support for Wireless-Tag WT32-SC01 Plus and WT32S3-86V
- Deprecate support for WT-86-32-3ZW1 with ESP32-S2
- Fade backlight on ESP32 devices (thanks @presslab-us)
## Bug fixes
- Fix for first touch not working properly
- Add button GPIOs to input discovery message
### Architecture
- Moved to Tasmota Arduino 2.0.11 and ESP-IDF 4.4.5 (thanks @Jason2866)
- Add Arduino-GFX display driver
- Add support for ESP32-S3 and ESP32-C3 devices
- Deprecation of support for ESP32-S2 devices due to lack of sRAM
Updated libraries to Arduino_GFX v1.4.0, ArduinoJson 6.21.5, ArduinoStreamUtils 1.8.0, AceButton 1.10.1, TFT_eSPI 2.5.43, LovyanGFX 1.1.12 and SimpleFTPServer 2.1.5
## v0.6.3
### Commands
- Additional `idle` parameters now accept `off`, `short` and `long`
- Add `sensors` command to trigger the sensors state message
- Run `L:/boot.cmd` when the plate is (re)booted if the script exists
- You can now use the `pXbY.jsonl` command to update multiple object properties at once (thanks @nagyrobi)
### Objects
- All objects have a custom `tag` property which can contain arbitrary JSON data *(or numbers or text)* (thanks @nagyrobi)
- `img.src` now accepts both `http` and `https` urls (thanks @htvekov)
- `img.src` now accepts `png` and `binary` image urls, PSram is *highly* recommended
- `img.src` now accepts 16-bit BMP files stored in flash
### Web UI
- Updated to modern responsive design *(requires JavaScript)*
- Add `/api/info/` and `/api/config/*/` endpoints
- Allow for a customizable `vars.css`, `style.css`, `script.js` and `edit.htm`
- Display a message when the configuration is changed and a reboot is needed
- Add checkbox for backlight inversion to Display settings (thanks @wolffman122)
- Add checkbox to toggle ANSI codes #261 (thanks @geiseri)
- Allow firmware upgrade/downgrade in AP mode
### GUI
- `antiburn` displays random pixels *aka.* white noise
- Hide cursor during `antiburn` and `idle` if the pointer is enabled
### MQTT
- Remember last `page` id of `jsonl` messages. Sending multiple messages now behaves like `jsonl` files (thanks @arovak)
### Fonts
- Use TrueType fonts from flash, PSram is *highly* recommended (thanks to @s-hadinger)
- Custom LVGL binary fonts can be read from flash and loaded into memory, PSram is *highly* recommended
- Font ID is replaced by `namexx` *(where `xx` is the font size)* but the previous Font IDs still work for backwards compatibility
- Added build option for Vietnamese character set (thanks @kydang789)
- ⚠️ **Breaking:** Removed defunct .zi font support!
### Bug fixes
- Fixed Lanbon L8 v1.17 PCB screen corruption #316 (thanks @DJBenson)- Fix for screenshots not showing properly in Safari on macOS/iOS (thanks @masto)
- Fix bug that would not accept `on` state for setting output GPIOs #275 (thanks @freshnas and @cerietke)
- Fix a bug in `dropdownlist` were `close` method performed `open` instead #299 (thanks @htvekov)
- Fix `src` bug in `img` objects that could corrupt images sent over http (thanks @htvekov)
- Fix screen dimensions in `statusupdate` message, taking into account current orientation #278 (thanks @kquinsland)
- Fix for HTTP password that could be overwritten by 8 asterisks when it was not changed in the web UI
- Fixed MQTT hostname limit *again*... #304 (thanks @fake-name)
- Fixed firmware upgrade from URL #300 (thank @nagyrobi)
- Fixed a bug that prevented Wifi from connecting to different BSSID #330 (thanks @Braehead)
- Syslog message format fixes and improvements #285 (thanks @geiseri)
### Custom component
- Expose `antiburn` and `page` in the CC (thanks @dgomes)
- Expose the device URL in discovery message and CC
### Architecture
- Moved to Tasmota Arduino 2.0.3 with native LittleFS library (thanks @Jason2866) and ESP-IDF 4.4.1 fixes for FragAttacks CVEs (thanks @nagyrobi)
- Add support for ESP32-S2 devices
- ⚠️ **Breaking:** Removed support for ESP8266!
Updated libraries to ArduinoJson 6.19.4, ArduinoStreamUtils 1.6.3, AceButton 1.9.2, TFT_eSPI 2.4.61, LovyanGFX 0.4.17 and Adafruit STMPE610 1.1.4
## v0.6.2
### Initial Setup
- Add Captive Portal to first time setup (thanks @AndreTeixeira1998)
- Create default `pages.jsonl`, `online.cmd` and `offline.cmd` files if they don't exist (thanks @nagyrobi)
### Objects
- Enable `click` by default on `image` object
- Add `type` to `spinner` object
- Add `zoom`, `angle`, `pivot_x`, `pivot_y` and `antialias` attributes to `image` object
- Allow url as `src` of `image` object for raw webimages and from push image service from the CC (thanks @dgomes and @nagyrobi)
- Use `L:/file.png` instead of `/littlefs/file.png` for image paths, `/littlefs/` still works for backwards compatibility
### Objects
- Add `antiburn` command to prevent static parts of the screen to create a *ghosting* effect in some LCDs or conditions
### Devices
- Add Analog touch driver for Unoshield displays (thanks @wesleygas)
- Add AZ-Touch MOD ESP32 with 2.4" or 2.8"
- Add Lilygo®Ttgo Pi ESP32 with TFT 3.5"
- Add Waveshare ESP32 One development board with Rpi MHS4001(B) or Waveshare RPi(C) LCD display
- Add D1-R32 ESP32 development board with Waveshare ILI9486 Touch Shield
### Bug fixes
- Fix bug that caused a crash when both `btnmatrix` and `msgbox` where used (thanks @AndreTeixeira1998)
- Fix L8-HD dimmer brightness initialization after a reboot (thanks @Stupco)
- Keep last dimmer value when toggling dimmer state on/off
- Fix configurable mqttPort (thanks @Qargh)
- Fix opaque background of `spinner` object in HASP theme (thanks @nagyrobi)
Updated libraries to AceButton 1.9.1 and ArduinoJson 6.18.5
## v0.6.1
### Commands
- Add `run` command to execute script files (`.cmd` or `.jsonl`)
- Add `unzip` command for __no-compression__ zip files
- Add `service` command to start/stop a service
### Wifi
- Don't reboot the plate anymore after prolonged wifi connection lost
- Run `/online.cmd` or `/offline.cmd` script when the wifi status changed
### Objects
- Add new *[line](https://www.openhasp.com/0.6.1/design/objects/#line)* object
- Add `val` to *[btnmatrix](https://www.openhasp.com/0.6.1/design/objects/#button-matrix)* when `one_select` is set
- Cache up to 20 *[images](https://www.openhasp.com/0.6.1/design/objects/#image)* in PSram when available
- Improve precision on the *[linemeter](https://www.openhasp.com/0.6.1/design/objects/#line-meter)* scales
- Fix *[dropdown](https://www.openhasp.com/0.6.1/design/objects/#dropdown-list)* redraw bug
### Devices
- Fix [L8-HD dimmer](https://www.openhasp.com/0.6.1/devices/lanbon-l8/) not responding correctly to mqtt after a reboot
- Add [M5Stack Core2](https://www.openhasp.com/0.6.1/devices/m5stack-core2/) backlight dimming
- Add [Yeacreate Nscreen32](https://www.openhasp.com/0.6.1/devices/yeacreate-nscreen32/)
- Add [Makerfabs ESP32 TFT Touch](https://www.openhasp.com/0.6.1/devices/makerfabs-tft-touch/) Capacitive
### Fonts
- [Additional characters](https://www.openhasp.com/0.6.1/design/fonts/#ascii): `²` (squared) and `³` (cubed)
- [Additional icons](https://www.openhasp.com/0.6.1/design/fonts/#built-in-icons): recycle-variant and additional weather icons
- Use latin1 as default charset on [WT32-SC01](https://www.openhasp.com/0.6.1/devices/wt32-sc01/)
- Add [Greek font](https://www.openhasp.com/0.6.1/design/fonts/#greek)
### Compiling
- Allow custom bootlogo
- Selectively start http, telnet or console at boot
- Updated AceButton to 1.9.0 and ArduinoJson to 6.18.3
## v0.6.0
### Commands:
- Obsolete `dim` and `light` commands, use `backlight` command instead
- Add `discovery` command to facilitate HA CC discovery
- Add `idle` command to retrieve idle state, replaces `wakeup` command
- Updated `moodlight` command with brightness support
- Rewrite `outputX` and add `inputX` command
### Objects:
- `lmeter` object renamed to `linemeter`
- `align` values are now `left`, `right`, `center` instead of numbers *(numbers can still be used)*
- Added `ext_click_h` and `ext_click_v` attributes to extend the clickable area
- Added `clear` method to remove only the child objects from an object
- New `tabview`, `tab`, `calendar` and `msgbox` objects
- Add `img` object with png support *(needs PSram for any sizable images)*
- Added missing properties of the `spinner` object
### Web UI:
- Updated GPIO configuration pages
- Include a File Editor on ESP32: Create, Edit, Upload, Delete and Apply pages.jsonl (Thanks Cossie)
- Cache css, favicon and edit.htm.gz in the browser
- New Information page layout, including MQTT message counters for sent, received and failed
### MCU:
- Allow longer wifi ssid and password
- Update partition boundaries to use *all* remaining space for lfs filesystem
- Speed improvement: keep LVGL functions in fast memory & reduce overhead in main loop
- Use ascii characterset for WT32-SC01 due to limited flash size
### GPIO rewrite:
- Better handling of gpios
- Support for Lanbon L8-HD dimmer (EU and AU version, thanks to @Stupco)
- Add moodlight brightness support
### Broadcast and Discovery topic (HASP_USE_BROADCAST and HASP_USE_DISCOVERY)
- Allow dynamic configuration of HA entities using the [openHASP Custom Component](https://github.com/HASwitchPlate/openHASP-custom-component/releases/) (thanks @dgomes)
- Add Manufacturer and Model to statusupdate
Updated libraries to lvgl 7.11.0, ArduinoJson 6.18.0 and TFT_eSPI 2.3.70
### Internationalization:
- Added French language
- Added Portuguese language (thanks @AndreTeixeira1998 and @dgomes)
- Added Spanish language (thanks @altersis)
## v0.5.1
- Restore broken `config/submodule` topics
- Don't show warning on `comment` attribute
- Patched a potential memory leak
- Added an automatic lv_mem_defrag to free up lvgl memory
- Allow selection of fonts via user_config_override
- Allow for longer mqtt configuration strings in user_config_override
- Allow default HASP_GPIO_TEMPLATE configuration in user_config_override
- Add `manufacturer` and `model` to statusupdate
- Fixed `enabled` attribute and added `click` attribute
## v0.5.0
Name changed to openHASP - https://www.openhasp.com/
> When using HomeAssistant also update the [openHASP Custom Component](https://github.com/HASwitchPlate/openHASP-custom-component/releases/tag/0.5.0)
- Switch built-in icons from FontAwesome to MaterialDesign icons #139
- Add built option for other character sets then latin1
- Built-in Font sizes dependent on screen size
- Add `swipe` property to switch pages
- Add `action` property for local page navigation
- Add `back`, `prev`, `next` attributes to pages #114
- JSON Serialize text in payloads containing text attributes #140
- Add az-touch-mod-esp32_ili9341 config and allow for TFT_BACKLIGHT_ON set to LOW #131
- Add [FreeTouchDeck](https://www.openhasp.com/0.5/#devices/freetouchdeck/) and [ESP32-Touchdown](https://www.openhasp.com/0.5/#devices/esp32-touchdown/) configs
- Add roller `mode` `infinite` attribute
- Add btnmatrix `toggle` and `one_check` attributes
- Rework all event handlers to reduce update events and prevent race condition #119 *(events have changed!)*
- Add ability to style the selected part of roller object
- Add `scan_method = WIFI_ALL_CHANNEL_SCAN` for ESP32, improving multi-AP connection
- Add warning `objid` property is obsolete, use `obj` instead
- Add warning `txt` property is obsolete, use `text` instead
- Add dark theme build option for web UI
- Update lvgl and tft_espi library version
- Update maximum backlight_level from 100 to 255
- Set default `HASP_LOG_LEVEL=LOG_LEVEL_TRACE`
## v0.4.0
**Note:** The partition scheme has changed and you will need to reflash the device over serial first.
*All data will be erased, so make sure to backup your pages.jsonl, config.json and fonts.*
Changes:
- Provide all-in-one binary files for ESP32 to flash a device over serial using a single .bin file
- Allow long wifi passwords (#71 thanks @nagyrobi)
- Wakeup screen on first touch (#80)
- Reduce slider events (#88)
- Update events to accommodate the [HA Custom Component](https://github.com/HASwitchPlate/openHASP-custom-component) (by @dgomes)
- Remove HA auto-discovery in favor of the HA Custom Component
- Add `clearpage all` command option
- Add local page navigation and transitions
- Add [scale properties](https://www.openhasp.com/0.5/#styling/#scale)
- Add `config/gpio` command
- Allow for timezone setting in user_config_override.h (thanks @arovak)
- Start localizations for NL, HU and RO (thanks @nagyrobi)
- New prebuild devices:
- esp32-touchdown (thanks @joelhaasnoot and @dustinwatts)
- huzzah featherwing 2.4" and 3.5" (thanks @arovak)
- m5stack-core2
- Fix zi font crash bug
- Update setting min/max attributes (#103 thanks @arovak)
- Native builds for Windows, MacOS and Linux (thanks to @thouters and @dgomes)
## v0.3.4
The webserver was not properly started at initial setup, when the device was in AP mode.
## v0.3.3
- Change `txt` to `text`. `txt` is now obsoleted.
- Initial support for moodlight e.g. Lanbon L8
## v0.3.2
- Add Lanbon L8
- Add WT32-SC01
## v0.3.1
- Fixes wifi connection issue in OOBE
- Fixes memory leak in value_str
## v0.3.0
First release of compiled .bin files

View File

@ -1,8 +1,7 @@
MIT License
Copyright (c) 2020 Francis Van Roie
Based upon HASwitchPlate - Copyright (c) 2019 Allen Derusha allen@derusha.org
Copyright (c) 2019-2024 Francis Van Roie
Copyright (c) 2018-2019 Allen Derusha allen@derusha.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,77 +1,41 @@
# HASP - Open Hardware edition
# openHASP firmware
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/fvanroie/hasp-lvgl/PlatformIO%20CI?label=build%20status&logo=github&logoColor=%23dddddd)](https://github.com/fvanroie/hasp-lvgl/actions?query=workflow%3A%22PlatformIO+CI%22)
[![GitHub release](https://img.shields.io/github/release/fvanroie/hasp-lvgl.svg)](https://github.com/fvanroie/hasp-lvgl/releases)
[![GitHub issues](https://img.shields.io/github/issues/fvanroie/hasp-lvgl.svg)](http://github.com/fvanroie/hasp-lvgl/issues)
[![Discord](https://img.shields.io/discord/538814618106331137?color=%237289DA&label=support&logo=discord&logoColor=white)][6]
[![GitHub Workflow Status]( https://img.shields.io/github/actions/workflow/status/HASwitchPlate/openHASP/build.yaml?branch=master&label=build%20status&logo=github&logoColor=%23dddddd)](https://github.com/HASwitchPlate/openHASP/actions)
[![GitHub release](https://img.shields.io/github/v/release/HASwitchPlate/openHASP?include_prereleases)](https://github.com/HASwitchPlate/openHASP/releases)
[![GitHub issues](https://img.shields.io/github/issues/HASwitchPlate/openHASP.svg)](http://github.com/HASwitchPlate/openHASP/issues)
[![Discord](https://img.shields.io/discord/538814618106331137?color=%237289DA&label=discord&logo=discord&logoColor=white)][3]
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](#Contributing)
[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/fvanroie/hasp-lvgl/blob/master/LICENSE)
[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/HASwitchPlate/openHASP/blob/master/LICENSE)
[!["PayPal"](https://img.shields.io/badge/Paypal-donate-00457C.svg?logo=paypal)](https://github.com/HASwitchPlate/openHASP#donate)
Control your home-automation devices from a customizable touchscreen UI connected via MQTT.
This project is a re-implementation of the popular HASwitchPlate sketch created by aderusha.
The [original HASwitchPlate][1] project uses a Wemos D1 mini and requires a Nextion/TJC HMI display.
This rewrite removes the Nextion/TJC requirement by using the [Littlev Graphics Library][2] on the MCU to drive a cheap commodity display.
The [HASPone][1] project uses a Wemos D1 mini and requires a Nextion/TJC HMI display.
This rewrite removes the Nextion/TJC hardware requirement by using the [Light and Versatile Graphics Library][2] on the MCU to drive a commodity display.
This version also adds ESP32 and STM32F4 support to take advantage of the additional hardware capabilities.
openHASP uses the ESP32 and STM32F4 to take advantage of the hardware capabilities.
## Demo Screens
![Screenshot](https://raw.githubusercontent.com/fvanroie/hasp-lvgl/0.0.11/docs/img/sliders.png) &nbsp;
![Screenshot](https://raw.githubusercontent.com/fvanroie/hasp-lvgl/0.0.11/docs/img/buttons.png) &nbsp;
![Screenshot](https://raw.githubusercontent.com/fvanroie/hasp-lvgl/0.0.11/docs/img/mediaplayer.png)
![Screenshot](https://www.openhasp.com/0.6/assets/images/screenshots/demo_switches_covers.png) &nbsp;
![Screenshot](https://www.openhasp.com/0.6/assets/images/screenshots/demo_jaffa1.png) &nbsp;
![Screenshot](https://www.openhasp.com/0.6/assets/images/screenshots/demo_mediaplayer.png)
## Features
| Feature | ESP8266 | ESP32 | STM32F4
|-------------------------|---------|---------|----------
| SPI display | :white_check_mark: yes | :white_check_mark: yes | :white_check_mark: yes
| Parallel display | :x: no | :white_check_mark: yes | :white_check_mark: yes
| PWM Screen dimming | :white_check_mark: yes | :white_check_mark: yes | :white_check_mark: yes
| Maximum Page Count | 4 | 12 | 12
| Object Types / Widgets | 14 | 15 | 15
| Dynamic Objects | :white_check_mark: yes | :white_check_mark: yes | :white_check_mark: yes
| [Lvgl Theme Support][3] | basic only | all themes | tbd
| [Custom .zi V5 font][4] | :white_check_mark: yes (latin1) | :white_check_mark: yes (latin1) | no
| [FontAwesome Icons][5] | :white_check_mark: 1300+ | :white_check_mark: 1300+ | no
| PNG images | :x: no | :grey_question: tbd | :grey_question: tbd
| Network | :white_check_mark: Wifi | :white_check_mark: Wifi | :white_check_mark: Ethernet
## Cloning
Make sure to add the `--recursive` parameter when cloning the project. Otherwise git will not download the required submodules in the `/lib` subdirectory.
```bash
git clone --recursive https://github.com/fvanroie/hasp-lvgl
```
If you already cloned hasp-lvgl without the submodules, you can fetch the submodules seperately using:
```bash
git submodule update --init --recursive
```
To build a defierent branch use:
```bash
git clone --recursive https://github.com/fvanroie/hasp-lvgl
cd hasp-lvgl
git checkout 0.1.0-dev
git submodule update --init --recursive
```
## Getting Started
Check out the [wiki](https://github.com/fvanroie/hasp-lvgl/wiki) for how-to's, information and frequently asked questions.
Check out the [documentation](https://www.openhasp.com/) for how-to's, information and frequently asked questions.</br>
For support using openHASP, please join the [#openHASP channel][3] on Discord.
Support
---------------------------
For support using hasp-lvgl, please join the [#hasp-lvgl channel][6] on Discord.
## Donate
[![Paypal donation](https://img.shields.io/badge/Paypal-donate-00457C?style=for-the-badge&logo=paypal)][4]
[![Buy a coffee](https://img.shields.io/badge/Kofi-donate-FF5E5B?style=for-the-badge&logo=kofi)](https://ko-fi.com/openhasp)
[![Buy me a coffee](https://img.shields.io/badge/Buy_Me_a_Coffee-donate-FFDD00?style=for-the-badge&logo=buymeacoffee)](https://www.buymeacoffee.com/aktdCofU)
[1]: https://github.com/aderusha/HASwitchPlate
[2]: https://github.com/littlevgl/lvgl
[3]: https://littlevgl.com/themes
[4]: https://github.com/fvanroie/HMI-Font-Pack/releases
[5]: https://fontawesome.com/cheatsheet/
[6]: https://discord.gg/VCWyuhF
[1]: https://github.com/HASwitchPlate/HASPone
[2]: https://github.com/lvgl/lvgl
[3]: https://www.openhasp.com/discord
[4]: https://www.paypal.com/donate/?business=E76SN28JLZCXU&currency_code=EUR

35
boards/esp32s2.json Normal file
View File

@ -0,0 +1,35 @@
{
"build": {
"arduino": {
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": "-DBOARD_HAS_PSRAM",
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32s2",
"variant": "esp32s2",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s2.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S2",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-saola-1-v1.2.html",
"vendor": "Espressif"
}

35
boards/esp32s2_solo1.json Normal file
View File

@ -0,0 +1,35 @@
{
"build": {
"arduino": {
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": "-DBOARD_HAS_PSRAM -DCORE32SOLO1",
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qoi",
"mcu": "esp32s2",
"variant": "esp32s2",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s2.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S2",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-saola-1-v1.2.html",
"vendor": "Espressif"
}

View File

@ -0,0 +1,43 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ESP32S3_DEV",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32s3",
"variant": "esp32s3"
},
"connectivity": [
"wifi"
],
"debug": {
"default_tool": "esp-builtin",
"onboard_tools": [
"esp-builtin"
],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP32-S3-FLASH-16MB",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"require_upload_port": true,
"speed": 921600
},
"url": "null",
"vendor": "null"
}

View File

@ -0,0 +1,41 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"memory_type": "opi_opi"
},
"boot": "opi",
"psram_type": "opi",
"core": "esp32",
"extra_flags": [
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S3 4M Flash, Tasmota 1856k Code/OTA, 320k FS",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 921600
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/",
"vendor": "Espressif"
}

View File

@ -0,0 +1,41 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"memory_type": "opi_qspi"
},
"boot": "opi",
"psram_type": "qspi",
"core": "esp32",
"extra_flags": [
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S3 4M Flash, Tasmota 1856k Code/OTA, 320k FS",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 921600
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/",
"vendor": "Espressif"
}

View File

@ -0,0 +1,41 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"memory_type": "qio_opi"
},
"boot": "qio",
"psram_type": "opi",
"core": "esp32",
"extra_flags": [
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S3 4M Flash, Tasmota 1856k Code/OTA, 320k FS",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 921600
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/",
"vendor": "Espressif"
}

View File

@ -0,0 +1,41 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"memory_type": "qio_qspi"
},
"boot": "qio",
"psram_type": "qspi",
"core": "esp32",
"extra_flags": [
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S3 4M Flash, Tasmota 1856k Code/OTA, 320k FS",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 921600
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/",
"vendor": "Espressif"
}

5
crowdin.yml Normal file
View File

@ -0,0 +1,5 @@
files:
- source: data/en.json
translation: /data/%locale_with_underscore%.%file_extension%
- source: /src/lang/en_US.h
translation: /%original_path%/%locale_with_underscore%.%file_extension%

Binary file not shown.

162
data/da_DK.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Dansk",
"home": {
"title": "Hovedmenu",
"btn": "Hovedmenu",
"nav": "Forside"
},
"save": "Gem Indstillinger",
"user": "Brugernavn",
"pass": "Adgangskode",
"hasp": {
"title": "HASP Design",
"btn": "HASP Design",
"theme": "UI Tema",
"color1": "Primær farve",
"color2": "Sekundær farve",
"pages": "Start Layout",
"font": "Standardfont",
"startpage": "Opstarts side",
"startdim": "Opstartslysstyrke"
},
"screenshot": {
"title": "Skærmbillede",
"btn": "Skærmbillede",
"nav": "Skærmbillede",
"prev": "Forrige Side",
"next": "Næste Side",
"refresh": "Opdater"
},
"info": {
"title": "Information",
"btn": "Information",
"nav": "Information"
},
"config": {
"title": "Konfiguration",
"btn": "Konfiguration",
"nav": "Indstillinger"
},
"ota": {
"title": "Firmware Opdatering",
"btn": "Firmware Opdatering",
"nav": "Firmware",
"submit": "Opdater Firmware",
"file": "Firmware Fil",
"url": "Firmware URL",
"redirect": "Følg Omdirigeringer",
"never": "Aldrig",
"strict": "Streng",
"always": "Altid"
},
"editor": {
"title": "Fil Editor",
"btn": "Fil Editor",
"nav": "Fil Editor"
},
"reset": {
"title": "Gendan fabriksindstillinger",
"btn": "Gendan fabriksindstillinger",
"warning": "Advarsel",
"message": "Denne proces vil nulstille alle indstillinger til standardværdierne. Den interne flash vil blive slettet, og enheden genstartes. Du skal muligvis oprette forbindelse til WiFi AP vist på panelet for at omkonfigurere enheden, før du får adgang til den igen.",
"fileloss": "ALLE FILER VIL TABE!"
},
"reboot": {
"title": "Genstarter...",
"btn": "Genstart",
"nav": "Genstart",
"message": "Enheden er ved at genstarte."
},
"about": {
"credits": "Baseret på det tidligere arbejde fra følgende open source-udviklere:",
"copyright": "Ophavsret ",
"rights": "Alle rettigheder forbeholdes.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "MIT Licens",
"bsd": "Bsd Licens",
"freebsd": "FreeBSD Licens",
"apache2": "Apache2 Licens"
},
"wifi": {
"title": "WiFi Indstillinger",
"btn": "WiFi Indstillinger",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Settings",
"btn": "WireGuard Settings",
"vpnip": "VPN IP",
"privkey": "Private Key",
"host": "Remote IP",
"port": "Remote Port",
"pubkey": "Remote Public Key"
},
"mqtt": {
"title": "MQTT Indstillinger",
"btn": "MQTT Indstillinger",
"name": "Værtsnavn",
"group": "Gruppenavn",
"host": "Broker",
"port": "Port",
"node_t": "Node Emne",
"group_t": "Gruppe Emne",
"broadcast_t": "Broadcast Emne",
"hass_t": "HA LWT Emne"
},
"http": {
"title": "HTTP Indstillinger",
"btn": "HTTP Indstillinger"
},
"ftp": {
"title": "FTP Indstillinger",
"btn": "FTP Indstillinger",
"port": "FTP Port",
"pasv": "Passiv Port"
},
"gui": {
"title": "Skærm Indstillinger",
"btn": "Skærm Indstillinger",
"antiburn": "Antiforbrænding",
"calibrate": "Kalibrér"
},
"gpio": "GPIO Indstillinger",
"debug": {
"title": "Debug Indstillinger",
"btn": "Debug Indstillinger",
"baud": "Baudrate",
"tele": "Tele Periode",
"ansi": "Brug ANSI-koder",
"host": "Syslog Server",
"port": "Syslog Port",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facilitet"
},
"time": {
"title": "Tids Indstillinger",
"btn": "Tids Indstillinger",
"region": "Region",
"zone": "Tidszone",
"tz": "Tidszone",
"ntp": "NTP-servere"
},
"region": {
"etc": "Etcetera ",
"continents": "Kontinenter ",
"af": "Afrika ",
"as": "Asien ",
"au": "Australien ",
"aq": "Antarktis ",
"eu": "Europa ",
"na": "Nordamerika ",
"sa": "Sydamerika ",
"islands": "Øer ",
"at": "Atlanterhavet ",
"in": "Indiske Ocean ",
"pa": "Stillehavet "
}
}
}

162
data/de_DE.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Deutsch",
"home": {
"title": "Hauptmenü",
"btn": "Hauptmenü",
"nav": "Startseite"
},
"save": "Einstellungen speichern",
"user": "Benutzername",
"pass": "Passwort",
"hasp": {
"title": "HASP-Design",
"btn": "HASP-Design",
"theme": "UI-Thema",
"color1": "Hauptfarbe",
"color2": "Sekundärfarbe",
"pages": "Start-Layout",
"font": "Standardschrift",
"startpage": "Startseite",
"startdim": "Starthelligkeit"
},
"screenshot": {
"title": "Bildschirmaufnahme",
"btn": "Bildschirmaufnahme",
"nav": "Bildschirmaufnahme",
"prev": "Vorherige Seite",
"next": "Nächste Seite",
"refresh": "Aktualisieren"
},
"info": {
"title": "Informationen",
"btn": "Informationen",
"nav": "Informationen"
},
"config": {
"title": "Konfiguration",
"btn": "Konfiguration",
"nav": "Konfiguration"
},
"ota": {
"title": "Firmware Update",
"btn": "Firmware Update",
"nav": "Firmware",
"submit": "Firmware aktualisieren",
"file": "Firmware-Datei",
"url": "Firmware-URL",
"redirect": "Umleitungen folgen",
"never": "Niemals",
"strict": "Strikt",
"always": "Immer"
},
"editor": {
"title": "Datei Editor",
"btn": "Datei Editor",
"nav": "Datei Editor"
},
"reset": {
"title": "Werkseinsetzung",
"btn": "Werkseinstellungen zurücksetzen",
"warning": "Warnung",
"message": "Dieser Prozess setzt alle Einstellungen auf die Standardwerte zurück. Der interne Blitz wird gelöscht und das Gerät wird neu gestartet. Möglicherweise müssen Sie eine Verbindung zu dem WiFi AP auf dem Panel herstellen, um das Gerät neu zu konfigurieren, bevor Sie auf es erneut zugreifen.",
"fileloss": "ALLE DATEIEN WERDEN GELÖSCHT!"
},
"reboot": {
"title": "Neustarten...",
"btn": "Neustarten",
"nav": "Neustart",
"message": "Das Gerät wird neu gestartet."
},
"about": {
"credits": "Basierend auf der bisherigen Arbeit der folgenden Open-Source-Entwickler:",
"copyright": "Urheberrechte ",
"rights": "Alle Rechte vorbehalten.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "MIT-Lizenz",
"bsd": "BSD-Lizenz",
"freebsd": "FreeBSD-Lizenz",
"apache2": "Apache2-Lizenz"
},
"wifi": {
"title": "WiFi-Einstellungen",
"btn": "WiFi-Einstellungen",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Einstellungen",
"btn": "WireGuard Einstellungen",
"vpnip": "VPN IP",
"privkey": "Privater Schlüssel",
"host": "Entfernte IP",
"port": "Entfernter Port",
"pubkey": "Öffentlicher Remote-Schlüssel"
},
"mqtt": {
"title": "MQTT-Einstellungen",
"btn": "MQTT-Einstellungen",
"name": "Hostname",
"group": "Gruppenname",
"host": "Broker",
"port": "Port",
"node_t": "Knoten-Thema",
"group_t": "Gruppen-Thema",
"broadcast_t": "Broadcast-Thema",
"hass_t": "HA LWT-Thema"
},
"http": {
"title": "HTTP-Einstellungen",
"btn": "HTTP-Einstellungen"
},
"ftp": {
"title": "FTP-Einstellungen",
"btn": "FTP-Einstellungen",
"port": "FTP-Port",
"pasv": "Passiver Port"
},
"gui": {
"title": "Bildschirmeinstellungen",
"btn": "Bildschirmeinstellungen",
"antiburn": "Anti-Burn",
"calibrate": "Kalibrieren"
},
"gpio": "GPIO-Einstellungen",
"debug": {
"title": "Debug-Einstellungen",
"btn": "Debug-Einstellungen",
"baud": "Baudrate",
"tele": "Tele-Periode",
"ansi": "ANSI-Codes verwenden",
"host": "Syslog-Server",
"port": "Syslog-Port",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "Zeit Einstellungen",
"btn": "Zeit Einstellungen",
"region": "Region",
"zone": "Zeitzone",
"tz": "Zeitzone",
"ntp": "NTP-Server"
},
"region": {
"etc": "Etcetera ",
"continents": "Kontinenten ",
"af": "Afrika ",
"as": "Asien ",
"au": "Australien ",
"aq": "Antarctica ",
"eu": "Europa ",
"na": "Nordamerika ",
"sa": "Südamerika ",
"islands": "Inseln ",
"at": "Atlantischer Ozean ",
"in": "Indischer Ozean ",
"pa": "Pazifischer Ozean "
}
}
}

1
data/edit.htm Normal file
View File

@ -0,0 +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.39.1/ace.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.39.1/theme-monokai.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.39.1/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>

1
data/en.json Normal file
View File

@ -0,0 +1 @@
{"en":{"language":"English","home":{"title":"Main Menu","btn":"Main Menu","nav":"Home"},"save":"Save Settings","user":"Username","pass":"Password","hasp":{"title":"HASP Design","btn":"HASP Design","theme":"UI Theme","color1":"Primary color","color2":"Secondary color","pages":"Start Layout","font":"Default Font","startpage":"Startup Page","startdim":"Startup Dim"},"screenshot":{"title":"Screenshot","btn":"Screenshot","nav":"Screenshot","prev":"Prev Page","next":"Next Page","refresh":"Refresh"},"info":{"title":"Information","btn":"Information","nav":"Information"},"config":{"title":"Configuration","btn":"Configuration","nav":"Settings"},"ota":{"title":"Firmware Update","btn":"Firmware Update","nav":"Firmware","submit":"Update Firmware","file":"Firmware File","url":"Firmware URL","redirect":"Follow Redirects","never":"Never","strict":"Strict","always":"Always"},"editor":{"title":"File Editor","btn":"File Editor","nav":"File Editor"},"reset":{"title":"Factory Reset","btn":"Factory Reset","warning":"Warning","message":"This process will reset all settings to the default values. The internal flash will be erased and the device is restarted. You may need to connect to the WiFi AP displayed on the panel to reconfigure the device before accessing it again.","fileloss":"ALL FILES WILL BE LOST!"},"reboot":{"title":"Rebooting...","btn":"Restart","nav":"Reboot","message":"The device is rebooting."},"about":{"credits":"Based on the previous work of the following open source developers:","copyright":"Copyright ","rights":"All rights reserved.","clause1":"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:","clause2":"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.","clause3":"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.","mit":"MIT License","bsd":"BSD License","freebsd":"FreeBSD License","apache2":"Apache2 License"},"wifi":{"title":"Wifi Settings","btn":"Wifi Settings","ssid":"SSID"},"wg":{"title":"WireGuard Settings","btn":"WireGuard Settings","vpnip":"VPN IP","privkey":"Private Key","host":"Remote IP","port":"Remote Port","pubkey":"Remote Public Key"},"mqtt":{"title":"MQTT Settings","btn":"MQTT Settings","name":"Hostname","group":"Groupname","host":"Broker","port":"Port","node_t":"Node Topic","group_t":"Group Topic","broadcast_t":"Broadcast Topic","hass_t":"HA LWT Topic"},"http":{"title":"HTTP Settings","btn":"HTTP Settings"},"ftp":{"title":"FTP Settings","btn":"FTP Settings","port":"FTP Port","pasv":"Passive Port"},"gui":{"title":"Display Settings","btn":"Display Settings","antiburn":"Antiburn","calibrate":"Calibrate"},"gpio":"GPIO Settings","debug":{"title":"Debug Settings","btn":"Debug Settings","baud":"Baudrate","tele":"Tele Period","ansi":"Use ANSI codes","host":"Syslog Server","port":"Syslog Port","ietf":"IETF (RFC 5424)","bsd":"BSD (RFC 3164)","log":"Facility"},"time":{"title":"Time Settings","btn":"Time Settings","region":"Region","zone":"Timezone","tz":"Timezone","ntp":"NTP Servers"},"region":{"etc":"Etcetera ","continents":"Continents ","af":"Africa ","as":"Asia ","au":"Australia ","aq":"Antarctica ","eu":"Europe ","na":"North America ","sa":"South America ","islands":"Islands ","at":"Atlantic Ocean ","in":"Indian Ocean ","pa":"Pacific Ocean "}}}

162
data/es_ES.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Español",
"home": {
"title": "Menu Principal",
"btn": "Menu Principal",
"nav": "Inicio"
},
"save": "Guardar Configuración",
"user": "Usuario",
"pass": "Contraseña",
"hasp": {
"title": "Diseño de HASP",
"btn": "Diseño de HASP",
"theme": "Tema de IU",
"color1": "Color Primario",
"color2": "Color Secundario",
"pages": "Diseño Inicial",
"font": "Fuente por Defecto",
"startpage": "Página de Inicio",
"startdim": "Brillo Inicial"
},
"screenshot": {
"title": "Captura de Pantalla",
"btn": "Captura de Pantalla",
"nav": "Captura de Pantalla",
"prev": "Prev Página",
"next": "Siguiente Página",
"refresh": "Actualizar"
},
"info": {
"title": "Información",
"btn": "Información",
"nav": "Información"
},
"config": {
"title": "Configuración",
"btn": "Configuración",
"nav": "Configuraciones"
},
"ota": {
"title": "Actualización de Firmware",
"btn": "Actualización de Firmware",
"nav": "Firmware",
"submit": "Actualizar Firmware",
"file": "Archivo Firmware",
"url": "URL del Firmware",
"redirect": "Sigue Redirecciones",
"never": "Nunca",
"strict": "Estricto",
"always": "Siempre"
},
"editor": {
"title": "Editor de Archivos",
"btn": "Editor de Archivos",
"nav": "Editor de Archivos"
},
"reset": {
"title": "Reconfiguración de Fábrica",
"btn": "Restaurar conf de Fábrica",
"warning": "Aviso",
"message": "Este proceso restablecerá todos los ajustes a los valores predeterminados. El flash interno se borrará y el dispositivo se reiniciará. Es posible que necesite conectarse al AP WiFi mostrado en el panel para reconfigurar el dispositivo antes de volver a acceder a él.",
"fileloss": "¡TODOS LOS ARCHIVOS SERÁN PERDIDOS!"
},
"reboot": {
"title": "Reiniciando...",
"btn": "Reiniciar",
"nav": "Reiniciar",
"message": "El dispositivo se está reiniciando."
},
"about": {
"credits": "Basado en el trabajo anterior de los siguientes desarrolladores de código abierto:",
"copyright": "Copyright ",
"rights": "Todos los derechos reservados.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "Licencia MIT",
"bsd": "Licencia BSD",
"freebsd": "Licencia FreeBSD",
"apache2": "Licencia Apache2"
},
"wifi": {
"title": "Ajustes WiFi",
"btn": "Ajustes WiFi",
"ssid": "SSID"
},
"wg": {
"title": "Ajustes de WireGuard",
"btn": "Ajustes de WireGuard",
"vpnip": "IP VPN",
"privkey": "Clave Privada",
"host": "IP Remota",
"port": "Puerto Remoto",
"pubkey": "Clave Pública Remota"
},
"mqtt": {
"title": "Ajustes MQTT",
"btn": "Ajustes MQTT",
"name": "Nombre del Host",
"group": "Nombre del Grupo",
"host": "Broker",
"port": "Puerto",
"node_t": "Tema del Nodo",
"group_t": "Tema del Grupo",
"broadcast_t": "Tema de Broadcast",
"hass_t": "Tema HA LWT"
},
"http": {
"title": "Ajustes HTTP",
"btn": "Ajustes HTTP"
},
"ftp": {
"title": "Ajustes FTP",
"btn": "Ajustes FTP",
"port": "Puerto FTP",
"pasv": "Puerto Pasivo"
},
"gui": {
"title": "Ajustes de Pantalla",
"btn": "Ajustes de Pantalla",
"antiburn": "Anti-quemaduras",
"calibrate": "Calibrar"
},
"gpio": "Ajustes GPIO",
"debug": {
"title": "Ajustes de Depuración",
"btn": "Ajustes de Depuración",
"baud": "Tasa Baudios",
"tele": "Periodo de Tele",
"ansi": "Usar códigos ANSI",
"host": "Servidor Syslog",
"port": "Puerto Syslog",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "Ajustes de Tiempo",
"btn": "Ajustes de Tiempo",
"region": "Región",
"zone": "Zona Horaria",
"tz": "Zona Horaria",
"ntp": "Servidor NTP"
},
"region": {
"etc": "Etcetera ",
"continents": "Continentes ",
"af": "Africa ",
"as": "Asia ",
"au": "Australia ",
"aq": "Antártida ",
"eu": "Europa ",
"na": "América del Norte ",
"sa": "América del Sur ",
"islands": "Islas ",
"at": "Océano Atlántico ",
"in": "Océano Índico ",
"pa": "Océano Pacífico "
}
}
}

162
data/fr_FR.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Français",
"home": {
"title": "Menu Principal",
"btn": "Menu Principal",
"nav": "Page d'accueil"
},
"save": "Enregistrer les Paramètres",
"user": "Nom d'utilisateur",
"pass": "Mot de Passe",
"hasp": {
"title": "Design HASP",
"btn": "Design HASP",
"theme": "Thème UI",
"color1": "Couleur Primaire",
"color2": "Couleur Secondaire",
"pages": "Mise en page",
"font": "Police par défaut",
"startpage": "Page de départ",
"startdim": "Luminosité"
},
"screenshot": {
"title": "Capture d'écran",
"btn": "Capture d'écran",
"nav": "Capture d'écran",
"prev": "Page Précédente",
"next": "Page Suivante",
"refresh": "Actualiser"
},
"info": {
"title": "Information",
"btn": "Information",
"nav": "Information"
},
"config": {
"title": "Configuration",
"btn": "Configuration",
"nav": "Paramètres"
},
"ota": {
"title": "Mise à jour du micrologiciel",
"btn": "Mise à jour du micrologiciel",
"nav": "Micrologiciel",
"submit": "Mettre à jour le firmware",
"file": "Fichier du Firmware",
"url": "URL du Firmware",
"redirect": "Suivre les redirections",
"never": "Jamais",
"strict": "Stricte",
"always": "Toujours"
},
"editor": {
"title": "Éditeur de fichiers",
"btn": "Éditeur de fichiers",
"nav": "Éditeur de fichiers"
},
"reset": {
"title": "Paramètres d'usine",
"btn": "Retour aux paramètres d'usine",
"warning": "Attention",
"message": "Ce processus va réinitialiser tous les paramètres aux valeurs par défaut. Le flash interne sera effacé et l'appareil sera redémarré. Il se peut que vous deviez vous connecter à l'AP WiFi affiché sur le panneau pour reconfigurer l'appareil avant d'y accéder.",
"fileloss": "TOUS LES FICHIERS SERONT PERDUS !"
},
"reboot": {
"title": "Redémarrage en cours...",
"btn": "Redémarrer",
"nav": "Redémarrer",
"message": "L'appareil est en cours de redémarrage."
},
"about": {
"credits": "Basé sur le travail précédent des développeurs Open Source suivants :",
"copyright": "Droits dauteur ",
"rights": "Tous les droits sont réservés.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "Licence MIT",
"bsd": "Licence BSD",
"freebsd": "Licence FreeBSD",
"apache2": "Licence Apache2"
},
"wifi": {
"title": "Paramètres WiFi",
"btn": "Paramètres WiFi",
"ssid": "SSID"
},
"wg": {
"title": "Paramètres WireGuard",
"btn": "Paramètres WireGuard",
"vpnip": "IP du VPN",
"privkey": "Clé Privée",
"host": "Adresse IP distante",
"port": "Port Distant",
"pubkey": "Clé publique distante"
},
"mqtt": {
"title": "Paramètres MQTT",
"btn": "Paramètres MQTT",
"name": "Nom d'hôte",
"group": "Groupe",
"host": "Broker",
"port": "Port",
"node_t": "Sujet du Node",
"group_t": "Sujet de Groupe",
"broadcast_t": "Sujet Broadcast",
"hass_t": "Sujet HA LWT"
},
"http": {
"title": "Paramètres HTTP",
"btn": "Paramètres HTTP"
},
"ftp": {
"title": "Paramètres FTP",
"btn": "Paramètres FTP",
"port": "Port FTP",
"pasv": "Port Passif"
},
"gui": {
"title": "Paramètres d'affichage",
"btn": "Paramètres d'affichage",
"antiburn": "Anti-brûlure",
"calibrate": "Calibrer"
},
"gpio": "Paramètres GPIO",
"debug": {
"title": "Paramètres de Débogage",
"btn": "Paramètres de Débogage",
"baud": "Baudrate",
"tele": "Période de Tele",
"ansi": "Utiliser les codes ANSI",
"host": "Serveur Syslog",
"port": "Port Syslog",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "Paramètres de l'heure",
"btn": "Paramètres de l'heure",
"region": "Région",
"zone": "Fuseau horaire",
"tz": "Fuseau horaire",
"ntp": "Serveurs NTP"
},
"region": {
"etc": "Etcetera ",
"continents": "Continents ",
"af": "L'Afrique ",
"as": "L'Asie ",
"au": "L'Australie ",
"aq": "Antarctique ",
"eu": "LEurope ",
"na": "L'Amérique du Nord ",
"sa": "L'Amérique du Sud ",
"islands": "Îles ",
"at": "L'océan Atlantique ",
"in": "L'océan Indien ",
"pa": "L'océan Pacifique "
}
}
}

162
data/hu_HU.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Magyar",
"home": {
"title": "Főmenü",
"btn": "Főmenü",
"nav": "Főoldal"
},
"save": "Beállítások mentése",
"user": "Felhasználónév",
"pass": "Jelszó",
"hasp": {
"title": "Képernyő dizájn",
"btn": "Képernyő dizájn",
"theme": "UI téma",
"color1": "Elsődleges szín",
"color2": "Másodlagos szín",
"pages": "Betöltendő oldalak",
"font": "Alapértelmezett font",
"startpage": "Kezdő oldal",
"startdim": "Kezdeti fényerő"
},
"screenshot": {
"title": "Képernyőkép",
"btn": "Képernyőkép",
"nav": "Képernyőkép",
"prev": "Előző oldal",
"next": "Következő oldal",
"refresh": "Frissítés"
},
"info": {
"title": "Információk",
"btn": "Információk",
"nav": "Információk"
},
"config": {
"title": "Beállítások",
"btn": "Beállítások",
"nav": "Beállítások"
},
"ota": {
"title": "Firmware frissítés",
"btn": "Firmware frissítés",
"nav": "Firmware",
"submit": "Firmware frissítése",
"file": "Firmware fájl",
"url": "Firmware URL",
"redirect": "Átirányítások",
"never": "Soha",
"strict": "Szigorú",
"always": "Mindig"
},
"editor": {
"title": "Fájlkezelő",
"btn": "Fájlkezelő",
"nav": "Fájlkezelő"
},
"reset": {
"title": "Gyári beállítások visszaállítása",
"btn": "Gyári beállítások visszaállítása",
"warning": "Képernyőkép",
"message": "Ez a folyamat az összes beállítást visszaállítja az alapértelmezett értékekre. A belső memória törlődik, majd a készülék újraindul. Előfordulhat, hogy csatlakoznia kell a panelen megjelenő WiFi hozzáférési ponthoz az eszköz újrakonfigurálásához, mielőtt ismét hozzá tudna férni.",
"fileloss": "AZ ÖSSZES FÁJL TÖRLŐDIK!"
},
"reboot": {
"title": "Újraindítás...",
"btn": "Újraindítás",
"nav": "Újraindítás",
"message": "Az eszköz újraindul."
},
"about": {
"credits": "Az alábbi nyílt forráskódú fejlesztők korábbi munkája alapján:",
"copyright": "Copyright ",
"rights": "Minden jog fenntartva.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "MIT licenc",
"bsd": "BSD licenc",
"freebsd": "FreeBSD licenc",
"apache2": "Apache2 licenc"
},
"wifi": {
"title": "WiFi beállítások",
"btn": "WiFi beállítások",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Settings",
"btn": "WireGuard Settings",
"vpnip": "VPN IP",
"privkey": "Private Key",
"host": "Remote IP",
"port": "Remote Port",
"pubkey": "Remote Public Key"
},
"mqtt": {
"title": "MQTT beállítások",
"btn": "MQTT beállítások",
"name": "Név",
"group": "Csoport",
"host": "Szerver",
"port": "Port",
"node_t": "Eszköz topik",
"group_t": "Csoport topik",
"broadcast_t": "Mindenki topik",
"hass_t": "HA LWT topik"
},
"http": {
"title": "HTTP beállítások",
"btn": "HTTP beállítások"
},
"ftp": {
"title": "FTP beállítások",
"btn": "FTP beállítások",
"port": "FTP Port",
"pasv": "Passzív Port"
},
"gui": {
"title": "Képernyő beállítások",
"btn": "Képernyő beállítások",
"antiburn": "Beégésvédelem futtatása",
"calibrate": "Kalibrálás"
},
"gpio": "GPIO beállítások",
"debug": {
"title": "Hibakeresési beállítások",
"btn": "Hibakeresési beállítások",
"baud": "Baud ráta",
"tele": "Tele- periódus",
"ansi": "ANSI kódolás",
"host": "Syslog szerver",
"port": "Syslog port",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "Idő beállítások",
"btn": "Idő beállítások",
"region": "Régió",
"zone": "Időzóna",
"tz": "Időzóna",
"ntp": "NTP szerverek"
},
"region": {
"etc": "Etcetera ",
"continents": "Kontinensek ",
"af": "Afrika ",
"as": "Ázsia ",
"au": "Ausztrália ",
"aq": "Antarktika ",
"eu": "Európa ",
"na": "Észak-Amerika ",
"sa": "Dél-Amerika ",
"islands": "Szigetek ",
"at": "Atlanti-óceán ",
"in": "Indiai-óceán ",
"pa": "Csendes-óceán "
}
}
}

1
data/main.js Normal file

File diff suppressed because one or more lines are too long

162
data/nl_NL.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Nederlands",
"home": {
"title": "Hoofdmenu",
"btn": "Hoofdmenu",
"nav": "Hoofdpagina"
},
"save": "Instellingen Opslaan",
"user": "Gebruikersnaam",
"pass": "Wachtwoord",
"hasp": {
"title": "HASP Design",
"btn": "HASP Design",
"theme": "UI Thema",
"color1": "Primaire Kleur",
"color2": "Secundaire Kleur",
"pages": "Start Lay-out",
"font": "Standaard Lettertype",
"startpage": "Startpagina",
"startdim": "Start Helderheid"
},
"screenshot": {
"title": "Schermafdruk",
"btn": "Schermafdruk",
"nav": "Schermafdruk",
"prev": "Vorige Pagina",
"next": "Volgende Pagina",
"refresh": "Vernieuwen"
},
"info": {
"title": "Informatie",
"btn": "Informatie",
"nav": "Informatie"
},
"config": {
"title": "Instellingen",
"btn": "Instellingen",
"nav": "Instellingen"
},
"ota": {
"title": "Firmware Bijwerken",
"btn": "Firmware Bijwerken",
"nav": "Firmware",
"submit": "Firmware Bijwerken",
"file": "Firmware Bestand",
"url": "Firmware URL",
"redirect": "Volg Redirects",
"never": "Nooit",
"strict": "Strikt",
"always": "Altijd"
},
"editor": {
"title": "Bestandseditor",
"btn": "Bestandseditor",
"nav": "Bestandseditor"
},
"reset": {
"title": "Fabrieksinstellingen",
"btn": "Fabrieksinstellingen",
"warning": "Waarschuwing",
"message": "Dit proces zal alle instellingen terugzetten naar de standaardwaarden. De interne flash zal worden gewist en het apparaat wordt opnieuw gestart. U moet mogelijk verbinding maken met het Wifi AP die wordt weergegeven op het paneel om het apparaat opnieuw te configureren voordat u weer toegang krijgt.",
"fileloss": "ALLE BESTANDEN WORDEN VERWIJDERD!"
},
"reboot": {
"title": "Herstarten...",
"btn": "Herstarten",
"nav": "Herstart",
"message": "Het apparaat wordt herstart."
},
"about": {
"credits": "Gebaseerd op het eerdere werk van de volgende Open Source ontwikkelaars:",
"copyright": "Copyright ",
"rights": "Alle rechten voorbehouden.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "MIT Licentie",
"bsd": "BSD Licentie",
"freebsd": "FreeBSD Licentie",
"apache2": "Apache2 Licentie"
},
"wifi": {
"title": "Wifi Instellingen",
"btn": "Wifi Instellingen",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Instellingen",
"btn": "WireGuard Instellingen",
"vpnip": "VPN IP",
"privkey": "Private Sleutel",
"host": "Extern IP",
"port": "Externe Poort",
"pubkey": "Externe Openbare Sleutel"
},
"mqtt": {
"title": "MQTT Instellingen",
"btn": "MQTT Instellingen",
"name": "Hostnaam",
"group": "Groepsnaam",
"host": "Broker",
"port": "Poort",
"node_t": "Node Onderwerp",
"group_t": "Groep Onderwerp",
"broadcast_t": "Broadcast Onderwerp",
"hass_t": "HA LWT Onderwerp"
},
"http": {
"title": "HTTP Instellingen",
"btn": "HTTP Instellingen"
},
"ftp": {
"title": "FTP Instellingen",
"btn": "FTP Instellingen",
"port": "FTP Poort",
"pasv": "Passieve Poort"
},
"gui": {
"title": "Scherminstellingen",
"btn": "Scherminstellingen",
"antiburn": "Inbranden Voorkomen",
"calibrate": "Kalibreer"
},
"gpio": "GPIO Instellingen",
"debug": {
"title": "Debug Instellingen",
"btn": "Debug Instellingen",
"baud": "Baudrate",
"tele": "Tele Periode",
"ansi": "Gebruik ANSI codes",
"host": "Syslog Server",
"port": "Syslog Poort",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Faciliteit"
},
"time": {
"title": "Tijdsinstellingen",
"btn": "Tijdsinstellingen",
"region": "Regio",
"zone": "Tijdzone",
"tz": "Tijdzone",
"ntp": "NTP Servers"
},
"region": {
"etc": "Etcetera ",
"continents": "Continenten ",
"af": "Afrika ",
"as": "Azië ",
"au": "Australië ",
"aq": "Antarctica ",
"eu": "Europa ",
"na": "Noord-Amerika ",
"sa": "Zuid-Amerika ",
"islands": "Eilanden ",
"at": "Atlantische Oceaan ",
"in": "Indische Oceaan ",
"pa": "Stille Oceaan "
}
}
}

BIN
data/openhasp.ttf Normal file

Binary file not shown.

View File

@ -0,0 +1,73 @@
{"page":1,"comment":"Connected Relay Buttons"}
{"id":1,"obj":"switch","x":30,"y":40,"w":180,"h":75,"radius":40,"radius20":40,"groupid":1}
{"id":2,"obj":"switch","x":30,"y":122,"w":180,"h":75,"radius":40,"radius20":40,"groupid":2}
{"id":3,"obj":"switch","x":30,"y":205,"w":180,"h":75,"radius":40,"radius20":40,"groupid":3}
{"page":2,"comment":"WLED Control Panel"}
{"id":103,"obj":"switch","x":12,"y":29,"w":60,"h":20,"radius":15}
{"id":104,"obj":"label","x":10,"y":5,"w":180,"h":32,"text":"Night Light","text_color":"#FFFFFF"}
{"id":105,"obj":"label","x":5,"y":57,"w":180,"h":32,"text":"Brightness","text_color":"#FFFFFF"}
{"id":106,"obj":"slider","x":34,"y":82,"w":14,"h":90,"min":0,"max":255}
{"id":107,"obj":"cpicker","x":85,"y":10,"w":150,"h":150}
{"id":108,"obj":"dropdown","x":10,"y":200,"w":115,"h":30,"options":""}
{"id":110,"obj":"btn","x":10,"y":255,"w":115,"h":30}
{"id":111,"obj":"label","x":15,"y":180,"w":180,"h":32,"text":"Preset","text_color":"#FFFFFF"}
{"id":112,"obj":"label","x":15,"y":260,"w":180,"h":32,"text":"","text_color":"#FFFFFF"}
{"id":113,"obj":"label","x":160,"y":180,"w":180,"h":32,"text":"Intensity","text_color":"#FFFFFF"}
{"id":114,"obj":"label","x":160,"y":233,"w":180,"h":32,"text":"Speed","text_color":"#FFFFFF"}
{"id":115,"obj":"slider","x":145,"y":205,"w":90,"h":14,"min":0,"max":255}
{"id":116,"obj":"slider","x":145,"y":260,"w":90,"h":14,"min":0,"max":255}
{"id":117,"obj":"label","x":15,"y":233,"w":180,"h":32,"text":"Random Effect","text_color":"#FFFFFF"}
{"page":3,"comment":"Media Player"}
{"id":10,"obj":"obj","x":5,"y":35,"w":230,"h":250,"click":0,"bg_opa":0,"shadow_opa":140,"shadow_color":"black","shadow_width":20,"shadow_spread":0}
{"id":13,"obj":"label","x":0,"y":5,"w":117,"h":30,"text":"-","mode":"scroll","align":1}
{"id":12,"obj":"label","x":120,"y":5,"w":120,"h":30,"text":"-","mode":"scroll","align":1}
{"id":14,"obj":"bar","x":8,"y":278,"w":200,"h":5,"min":0,"max":100,"border_opa":0,"pad_top":0,"pad_bottom":0,"pad_left":0,"pad_right":0}
{"id":21,"obj":"obj","x":8,"y":35,"w":200,"h":200,"radius":6,"clip_corner":1,"hidden":1}
{"id":22,"obj":"img","x":0,"y":0,"w":200,"h":200,"parentid":21,"src":"","auto_size":1}
{"id":17,"obj":"btn","x":8,"y":226,"w":50,"h":50,"toggle":false,"text":"\uE4AE","text_font":32}
{"id":18,"obj":"btn","x":66,"y":226,"w":83,"h":50,"toggle":false,"text":"\uE40A","text_font":32}
{"id":19,"obj":"btn","x":157,"y":226,"w":51,"h":50,"toggle":false,"text":"\uE4AD","text_font":32}
{"id":20,"obj":"slider","x":212,"y":38,"w":20,"h":244,"min":0,"max":100,"val":85}
{"page":4,"comment":"Thermostat"}
{"id":1,"obj":"label","x":5,"y":5,"w":230,"h":25,"text":"Master Bedroom","align":"center"}
{"id":10,"obj":"obj","x":5,"y":35,"w":230,"h":250,"click":0}
{"id":20,"obj":"arc","x":5,"y":37,"w":230,"h":230,"min":170,"max":300,"val":250,"border_side":0,"type":0,"rotation":0,"start_angle":135,"end_angle":45,"adjustable":"true","line_width":21,"line_width10":21,"line_color10":"#34bdeb","bg_opa":0,"pad_top20":5,"pad_bottom20":5,"pad_left20":5,"pad_right20":5,"pad_top":5,"pad_bottom":5,"pad_left":5,"pad_right":5}
{"id":21,"obj":"gauge","x":28,"y":28,"w":175,"h":175,"parentid":20,"min":170,"max":300,"val":224,"format":1,"critical_value":301,"label_count":14,"line_count":27,"border_width":0,"pad_top":2,"pad_bottom":2,"pad_left":2,"pad_right":2,"value_str":"°C","value_ofs_y":55,"value_font":16,"bg_opa":0,"line_width10":3,"line_rounded10":1,"line_color":"#348feb","line_color60":"#348feb","scale_grad_color":"#eb4934","scale_grad_color60":"#eb4934","scale_end_color60":"#eb4934"}
{"id":22,"obj":"obj","x":85,"y":85,"w":60,"h":60,"parentid":20,"click":0,"radius":30,"border_width":2,"border_opa":200}
{"id":23,"obj":"label","x":80,"y":100,"w":70,"h":30,"parentid":20,"text":"22.4","text_font":24,"align":"center"}
{"id":24,"obj":"obj","x":145,"y":245,"w":60,"h":30,"click":0,"radius":5}
{"id":25,"obj":"label","x":145,"y":245,"w":60,"h":30,"text":"25","text_font":24,"align":"center"}
{"id":26,"obj":"label","x":90,"y":220,"w":60,"h":30,"text":"#909090 \u2022# #000000 \u2022# #909090 \u2022#","text_font":24,"align":"center","text_color":"grey","border_width":0}
{"id":30,"obj":"tabview","x":0,"y":235,"w":240,"h":80,"btn_pos":0,"bg_opa":0,"border_width":0,"radius":0}
{"id":31,"obj":"tab","parentid":30}
{"id":32,"obj":"tab","parentid":30}
{"id":33,"obj":"tab","parentid":30}
{"id":41,"obj":"switch","x":35,"y":10,"w":60,"h":30,"parentid":31,"radius":25,"radius20":25}
{"id":42,"obj":"dropdown","x":15,"y":10,"w":110,"h":30,"parentid":32,"options":"fan_modes","direction":"1","radius":5}
{"id":43,"obj":"dropdown","x":15,"y":10,"w":110,"h":30,"parentid":33,"options":"hvac_modes","direction":"1","radius":5}
{"page":5,"comment":"Backlight"}
{"id":1,"obj":"label","x":5,"y":5,"w":230,"h":25,"text":"Backlight","align":"center"}
{"id":10,"obj":"btn","x":20,"y":40,"w":90,"h":75,"text":"10%","action":{"up":"backlight {'state':'on','brightness':26}"}}
{"id":11,"obj":"btn","x":130,"y":40,"w":90,"h":75,"text":"40%","action":{"up":"backlight {'state':'on','brightness':103}"}}
{"id":12,"obj":"btn","x":20,"y":122,"w":90,"h":75,"text":"70%","action":{"up":"backlight {'state':'on','brightness':179}"}}
{"id":13,"obj":"btn","x":130,"y":122,"w":90,"h":75,"text":"100%","action":{"up":"backlight {'state':'on','brightness':255}"}}
{"id":14,"obj":"btn","x":20,"y":205,"w":200,"h":75,"text":"Off","action":{"up":"backlight {'state':'off'}"}}
{"page":6,"comment":"Moodlight"}
{"id":1,"obj":"label","x":5,"y":5,"w":230,"h":25,"text":"Moodlight","align":"center"}
{"id":10,"obj":"btn","x":20,"y":40,"w":90,"h":75,"text":"Red","action":{"up":"moodlight {'state':'on','brightness':255,'color':'red'}","hold":"moodlight {'state':'on','brightness':255,'color':'maroon'}"}}
{"id":11,"obj":"btn","x":20,"y":122,"w":90,"h":75,"text":"Green","action":{"up":"moodlight {'state':'on','brightness':255,'color':'green'}","hold":"moodlight {'state':'on','brightness':255,'color':'lime'}"}}
{"id":12,"obj":"btn","x":20,"y":205,"w":90,"h":75,"text":"Blue","action":{"up":"moodlight {'state':'on','brightness':255,'color':'blue'}","hold":"moodlight {'state':'on','brightness':255,'color':'cyan'}"}}
{"id":13,"obj":"btn","x":130,"y":40,"w":90,"h":75,"text":"Yellow","action":{"up":"moodlight {'state':'on','brightness':255,'color':'yellow'}","hold":"moodlight {'state':'on','brightness':255,'color':'orange'}"}}
{"id":14,"obj":"btn","x":130,"y":122,"w":90,"h":75,"text":"Purple","action":{"up":"moodlight {'state':'on','brightness':255,'color':'purple'}","hold":"moodlight {'state':'on','brightness':255,'color':'magenta'}"}}
{"id":15,"obj":"btn","x":130,"y":205,"w":90,"h":75,"text":"Off","action":{"up":"moodlight {'state':'off'}","hold":"moodlight {'state':'on','brightness':255,'color':'white'}"}}
{"page":0,"comment":"Page Navigation"}
{"id":1,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#2C3E50","text":"\uE141","text_color":"#FFFFFF","radius":0,"border_side":0,"text_font":28}
{"id":2,"obj":"btn","action":"p1","x":80,"y":290,"w":80,"h":32,"bg_color":"#2C3E50","text":"\uE2DC","text_color":"#FFFFFF","radius":0,"border_side":0,"text_font":22}
{"id":3,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#2C3E50","text":"\uE142","text_color":"#FFFFFF","radius":0,"border_side":0,"text_font":28}
{"id":6,"obj":"obj","swipe":1,"x":0,"y":0,"h":30,"w":240,"opacity":0,"comment":"swipe-area-at-top"}

1
data/pages/pages.jsonl Normal file
View File

@ -0,0 +1 @@
{"page":1,"id":10,"w":240,"obj":"label","text":"%hostname%"}

162
data/pt_BR.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Portuguese-Brazil",
"home": {
"title": "Menu Principal",
"btn": "Menu Principal",
"nav": "Início"
},
"save": "Guardar Configuração",
"user": "Usuário",
"pass": "Senha",
"hasp": {
"title": "Design do HASP",
"btn": "Design do HASP",
"theme": "Tema da IU",
"color1": "Cor principal",
"color2": "Cor secundária",
"pages": "Layout inicial",
"font": "Fonte padrão",
"startpage": "Startup Page",
"startdim": "Startup Dim"
},
"screenshot": {
"title": "Screenshot",
"btn": "Screenshot",
"nav": "Screenshot",
"prev": "Página Anterior",
"next": "Página Seguinte",
"refresh": "Atualizar"
},
"info": {
"title": "Informação",
"btn": "Informação",
"nav": "Informação"
},
"config": {
"title": "Configuração",
"btn": "Configuração",
"nav": "Configuração"
},
"ota": {
"title": "Atualização do firmware",
"btn": "Atualização do firmware",
"nav": "Firmware",
"submit": "Atualizar o firmware",
"file": "Arquivo de Firmware",
"url": "URL de Firmware",
"redirect": "Seguir redirecionamentos",
"never": "Nunca",
"strict": "Estrito",
"always": "Sempre"
},
"editor": {
"title": "Editor de ficheiros",
"btn": "Editor de ficheiros",
"nav": "Editor de ficheiros"
},
"reset": {
"title": "Repor configuração de fábrica",
"btn": "Repor configuração de fábrica",
"warning": "Aviso",
"message": "Este processo irá redefinir todas as configurações para os valores padrão. O flash interno será apagado e o dispositivo será reiniciado. Talvez seja necessário conectar-se ao WiFi AP exibido no painel para reconfigurar o dispositivo antes de acessá-lo novamente.",
"fileloss": "TODOS OS ARQUIVOS SERÃO PERDIDOS!"
},
"reboot": {
"title": "Reiniciando...",
"btn": "Reiniciar",
"nav": "Reiniciar",
"message": "Este dispositivo está reiniciando."
},
"about": {
"credits": "Com base no trabalho anterior dos seguintes desenvolvedores de código aberto:",
"copyright": "Direitos autorais ",
"rights": "Todos os direitos reservados.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "Licença MIT",
"bsd": "Licença BSD",
"freebsd": "Licença FreeBSD",
"apache2": "Licença Apache2"
},
"wifi": {
"title": "Configurar Wifi",
"btn": "Configurar Wifi",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Settings",
"btn": "WireGuard Settings",
"vpnip": "VPN IP",
"privkey": "Private Key",
"host": "Remote IP",
"port": "Remote Port",
"pubkey": "Remote Public Key"
},
"mqtt": {
"title": "Configurar MQTT",
"btn": "Configurar MQTT",
"name": "Nome do host",
"group": "Nome do Grupo",
"host": "Broker",
"port": "Porta",
"node_t": "Tópico do Node",
"group_t": "Tópico do Grupo",
"broadcast_t": "Tópico do Broadcast",
"hass_t": "Tópico HA LWT"
},
"http": {
"title": "Configurar HTTP",
"btn": "Configurar HTTP"
},
"ftp": {
"title": "Configurar FTP",
"btn": "Configurar FTP",
"port": "Porta FTP",
"pasv": "Porta Passiva"
},
"gui": {
"title": "Configurar Tela",
"btn": "Configurar Tela",
"antiburn": "Anti-queimadura",
"calibrate": "Calibrar"
},
"gpio": "Configurar GPIO",
"debug": {
"title": "Configurar debug",
"btn": "Configurar debug",
"baud": "Baudrate",
"tele": "Período Tele",
"ansi": "Usar códigos ANSI",
"host": "Servidor Syslog",
"port": "Porta Syslog",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "Configurar hora",
"btn": "Configurar hora",
"region": "Região",
"zone": "Fuso horário",
"tz": "Fuso horário",
"ntp": "Servidores NTP"
},
"region": {
"etc": "Etcetera ",
"continents": "Continentes ",
"af": "África ",
"as": "Ásia ",
"au": "Austrália ",
"aq": "Antarctica ",
"eu": "Europa ",
"na": "América do Norte ",
"sa": "América do Sul ",
"islands": "Ilhas ",
"at": "Oceano Atlântico ",
"in": "Oceano Índico ",
"pa": "Oceano Pacífico "
}
}
}

162
data/pt_PT.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Português",
"home": {
"title": "Menu Principal",
"btn": "Menu Principal",
"nav": "Início"
},
"save": "Guardar Configuração",
"user": "Utilizador",
"pass": "Palavra-passe",
"hasp": {
"title": "Design do HASP",
"btn": "Design do HASP",
"theme": "Tema da IU",
"color1": "Cor Principal",
"color2": "Cor secundária",
"pages": "Layout inicial",
"font": "Fonte padrão",
"startpage": "Startup Page",
"startdim": "Startup Dim"
},
"screenshot": {
"title": "Screenshot",
"btn": "Screenshot",
"nav": "Screenshot",
"prev": "Página Anterior",
"next": "Página Seguinte",
"refresh": "Atualizar"
},
"info": {
"title": "Informação",
"btn": "Informação",
"nav": "Informação"
},
"config": {
"title": "Configuração",
"btn": "Configuração",
"nav": "Configuração"
},
"ota": {
"title": "Atualização do firmware",
"btn": "Atualização do firmware",
"nav": "Firmware",
"submit": "Atualizar o firmware",
"file": "Arquivo de Firmware",
"url": "URL do Firmware",
"redirect": "Seguir Redirecionamentos",
"never": "Nunca",
"strict": "Estrito",
"always": "Sempre"
},
"editor": {
"title": "Editor de ficheiros",
"btn": "Editor de ficheiros",
"nav": "Editor de ficheiros"
},
"reset": {
"title": "Repor configuração de fábrica",
"btn": "Repor configuração de fábrica",
"warning": "Aviso",
"message": "Este processo irá redefinir todas as configurações para os valores padrão. O flash interno será apagado e o dispositivo será reiniciado. Talvez seja necessário conectar-se ao WiFi AP exibido no painel para reconfigurar o dispositivo antes de acessá-lo novamente.",
"fileloss": "TODOS OS ARQUIVOS SERÃO PERDIDOS!"
},
"reboot": {
"title": "Reiniciando...",
"btn": "Reiniciar",
"nav": "Reiniciar",
"message": "O dispositivo está reiniciando."
},
"about": {
"credits": "Baseado no trabalho anterior dos seguintes desenvolvedores de código aberto:",
"copyright": "Copyright ",
"rights": "Todos os direitos reservados.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "Licença MIT",
"bsd": "Licença BSD",
"freebsd": "Licença FreeBSD",
"apache2": "Licença Apache2"
},
"wifi": {
"title": "Configurar Wifi",
"btn": "Configurar Wifi",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Settings",
"btn": "WireGuard Settings",
"vpnip": "VPN IP",
"privkey": "Private Key",
"host": "Remote IP",
"port": "Remote Port",
"pubkey": "Remote Public Key"
},
"mqtt": {
"title": "Configurar MQTT",
"btn": "Configurar MQTT",
"name": "Nome do host",
"group": "Nome do Grupo",
"host": "Broker",
"port": "Porta",
"node_t": "Tópico do Node",
"group_t": "Tópico de Grupo",
"broadcast_t": "Tópico do Broadcast",
"hass_t": "Tópico HA LWT"
},
"http": {
"title": "Configurar HTTP",
"btn": "Configurar HTTP"
},
"ftp": {
"title": "Configurar FTP",
"btn": "Configurar FTP",
"port": "Porta de FTP",
"pasv": "Porta Passiva"
},
"gui": {
"title": "Configurar tela",
"btn": "Configurar tela",
"antiburn": "Anti-queimaduras",
"calibrate": "Calibrar"
},
"gpio": "Configurar MQTT",
"debug": {
"title": "Configurar debug",
"btn": "Configurar debug",
"baud": "Baudrate",
"tele": "Período Tele",
"ansi": "Usar códigos ANSI",
"host": "Servidor Syslog",
"port": "Porta Syslog",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "Configurar Hora",
"btn": "Configurar Hora",
"region": "Região",
"zone": "Fuso horário",
"tz": "Fuso horário",
"ntp": "Servidores NTP"
},
"region": {
"etc": "Etcetera ",
"continents": "Continentes ",
"af": "África ",
"as": "Ásia ",
"au": "Austrália ",
"aq": "Antarctica ",
"eu": "Europa ",
"na": "América do Norte ",
"sa": "América do Sul ",
"islands": "Ilhas ",
"at": "Oceano Atlântico ",
"in": "Oceano Índico ",
"pa": "Oceano Pacífico "
}
}
}

162
data/ro_RO.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Română",
"home": {
"title": "Meniu principal",
"btn": "Meniu principal",
"nav": "Acasă"
},
"save": "Salvarea setărilor",
"user": "Nume utilizator",
"pass": "Parola",
"hasp": {
"title": "Desenul ecranului",
"btn": "Desenul ecranului",
"theme": "Tema UI",
"color1": "Culoare primară",
"color2": "Culoare secundară",
"pages": "Layout inițial",
"font": "Font implicit",
"startpage": "Pagină inițială",
"startdim": "Luminozitatea"
},
"screenshot": {
"title": "Captură de ecran",
"btn": "Captură de ecran",
"nav": "Captură de ecran",
"prev": "Pagina anterioară",
"next": "Pagina următoare",
"refresh": "Reîmprospătare"
},
"info": {
"title": "Informații",
"btn": "Informații",
"nav": "Informații"
},
"config": {
"title": "Setări",
"btn": "Setări",
"nav": "Setări"
},
"ota": {
"title": "Actualizare Firmware",
"btn": "Actualizare Firmware",
"nav": "Firmware",
"submit": "Actualizarea firmware-ului",
"file": "Fișier firmware",
"url": "URL firmware",
"redirect": "Redirecționări",
"never": "Niciodată",
"strict": "Strict",
"always": "Mereu"
},
"editor": {
"title": "Browser de fișiere",
"btn": "Browser de fișiere",
"nav": "Browser de fișiere"
},
"reset": {
"title": "Resetare la parametri de fabrică",
"btn": "Resetare la parametri de fabrică",
"warning": "Avertizare",
"message": "Acest proces va reseta toate setările la valorile implicite. Flash intern va fi șters și dispozitivul este repornit. Este posibil să fie necesar să vă conectați la WiFi AP afișat pe panou pentru a reconfigura dispozitivul înainte de a-l accesa din nou.",
"fileloss": "TOATE FIȘIERELE VOR FI PIERDE!"
},
"reboot": {
"title": "Repornire...",
"btn": "Repornire",
"nav": "Repornire",
"message": "Dispozitivul se repornire."
},
"about": {
"credits": "Pe baza lucrărilor anterioare ale următorilor dezvoltatori open source:",
"copyright": "Drepturi de autor ",
"rights": "Toate drepturile rezervate.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "Licență MIT",
"bsd": "Licență BSD",
"freebsd": "Licență FreeBSD",
"apache2": "Licență Apache2"
},
"wifi": {
"title": "Setări WiFi",
"btn": "Setări WiFi",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard Settings",
"btn": "WireGuard Settings",
"vpnip": "VPN IP",
"privkey": "Private Key",
"host": "Remote IP",
"port": "Remote Port",
"pubkey": "Remote Public Key"
},
"mqtt": {
"title": "Setări MQTT",
"btn": "Setări MQTT",
"name": "Nume gazdă",
"group": "Nume grup",
"host": "Broker",
"port": "Poartă",
"node_t": "Subiect nod",
"group_t": "Subiect Grup",
"broadcast_t": "Subiect difuzare",
"hass_t": "Subiect HA LWT"
},
"http": {
"title": "Setări HTTP",
"btn": "Setări HTTP"
},
"ftp": {
"title": "Setări FTP",
"btn": "Setări FTP",
"port": "Port FTP",
"pasv": "Port Pasiv"
},
"gui": {
"title": "Setări ecran",
"btn": "Setări ecran",
"antiburn": "Anti-arsuri",
"calibrate": "Calibrare"
},
"gpio": "Setări GPIO",
"debug": {
"title": "Setări Depanare",
"btn": "Setări Depanare",
"baud": "Baudrate",
"tele": "Perioada Tele",
"ansi": "Utilizează codurile ANSI",
"host": "Server Syslog",
"port": "Poartă Syslog",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facilitate"
},
"time": {
"title": "Setări de timp",
"btn": "Setări de timp",
"region": "Regiune",
"zone": "Fus orar",
"tz": "Fus orar",
"ntp": "Servere NTP"
},
"region": {
"etc": "Etcetera ",
"continents": "Continente ",
"af": "Africa ",
"as": "Asia ",
"au": "Australia ",
"aq": "Antarctica ",
"eu": "Europa ",
"na": "America de Nord ",
"sa": "America de Sud ",
"islands": "Insulele ",
"at": "Oceanul Atlantic ",
"in": "Oceanul Indian ",
"pa": "Oceanul Pacific "
}
}
}

162
data/ru_RU.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Русский",
"home": {
"title": "Главное меню",
"btn": "Главное меню",
"nav": "Домой"
},
"save": "Сохранить настройки",
"user": "Имя пользователя",
"pass": "Пароль",
"hasp": {
"title": "Оформление",
"btn": "Настройка оформления",
"theme": "Тема интерфейса",
"color1": "Основной цвет",
"color2": "Вторичный цвет",
"pages": "Начальный макет",
"font": "Шрифт по умолчанию",
"startpage": "Стартовая страница",
"startdim": "Ярокость при запуске"
},
"screenshot": {
"title": "Скриншот",
"btn": "Скриншот",
"nav": "Скиншот",
"prev": "Предыдущая страница",
"next": "Следующая страница",
"refresh": "Обновить"
},
"info": {
"title": "Информация",
"btn": "Информация",
"nav": "Информация"
},
"config": {
"title": "Настройки",
"btn": "Настройки",
"nav": "Настройки"
},
"ota": {
"title": "Обновление прошивки",
"btn": "Обновление прошивки",
"nav": "Прошивка",
"submit": "Обновление прошивки",
"file": "Файл прошивки",
"url": "URL прошивки",
"redirect": "Разрешить редиректы",
"never": "Никогда",
"strict": "Строго",
"always": "Всегда"
},
"editor": {
"title": "Редактор файлов",
"btn": "Редактор файлов",
"nav": "Редактор файлов"
},
"reset": {
"title": "Сброс на заводские настройки",
"btn": "Сброс на заводские настройки",
"warning": "Предупреждение",
"message": "Этот процесс вернет все настройки к значениям по умолчанию. Внутренняя флэш-память будет очищена и устройство перезапустится. Возможно, вам придется подключиться к точке доступа Wi-Fi, отображаемой на панели, чтобы перенастроить устройство перед повторным доступом к нему.",
"fileloss": "ВСЕ ФАЙЛЫ БУДУТ ПОТЕРЯНЫ!"
},
"reboot": {
"title": "Перезагрузка...",
"btn": "Перезагрузка",
"nav": "Перезагрузка",
"message": "Устройство перезагружается."
},
"about": {
"credits": "Based on the previous work of the following open source developers:",
"copyright": "Copyright ",
"rights": "All rights reserved.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "Лицензия MIT",
"bsd": "Лицезия BSD",
"freebsd": "Лицензия FreeBSD",
"apache2": "Лицензия Apache2"
},
"wifi": {
"title": "Настройка WiFi",
"btn": "Настройка WiFi",
"ssid": "SSID"
},
"wg": {
"title": "Настройки WireGuard",
"btn": "Настройки WireGuard",
"vpnip": "VPN IP",
"privkey": "Private Key",
"host": "Remote IP",
"port": "Remote Port",
"pubkey": "Remote Public Key"
},
"mqtt": {
"title": "Настройки MQTT",
"btn": "Настройки MQTT",
"name": "Имя хоста",
"group": "Имя группы",
"host": "Брокер",
"port": "Порт",
"node_t": "Node Topic",
"group_t": "Group Topic",
"broadcast_t": "Broadcast Topic",
"hass_t": "HA LWT Topic"
},
"http": {
"title": "Настройки HTTP",
"btn": "Настройки HTTP"
},
"ftp": {
"title": "Настройки FTP",
"btn": "Настройкаи FTP",
"port": "FTP порт",
"pasv": "Пароль"
},
"gui": {
"title": "Настройки экрана",
"btn": "Настройки экрана",
"antiburn": "Прдеотвращение выгорания",
"calibrate": "Калибровка"
},
"gpio": "Настройки GPIO",
"debug": {
"title": "Настройки отладки",
"btn": "Настройки отладки",
"baud": "Baudrate",
"tele": "Tele период",
"ansi": "Использовать кодировку ANSI",
"host": "Сервер Syslog",
"port": "Порт Syslog",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Объект"
},
"time": {
"title": "Настройки времени",
"btn": "Настройки времени",
"region": "Регион",
"zone": "Часовой пояс",
"tz": "Часовой пояс",
"ntp": "Сервер NTP"
},
"region": {
"etc": "Прочие ",
"continents": "Континент ",
"af": "Африка ",
"as": "Азия ",
"au": "Австралия ",
"aq": "Антарктика ",
"eu": "Европа ",
"na": "Северная Америка ",
"sa": "Южна Америка ",
"islands": "Острова ",
"at": "Атлантический океан ",
"in": "Индийский океан ",
"pa": "Тихий океан "
}
}
}

1
data/script.js Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

BIN
data/static/hasp.htm.gz Normal file

Binary file not shown.

BIN
data/static/logo.svg.gz Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

607
data/style.css Normal file
View File

@ -0,0 +1,607 @@
/* Icons SVG files */
:root {
--info: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-information-outline" viewBox="0 0 24 24"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z" /></svg>');
--home: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-home-outline" viewBox="0 0 24 24"><path d="M12 5.69L17 10.19V18H15V12H9V18H7V10.19L12 5.69M12 3L2 12H5V20H11V14H13V20H19V12H22" /></svg>');
--shot: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-camera-outline" viewBox="0 0 24 24"><path d="M20,4H16.83L15,2H9L7.17,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6A2,2 0 0,0 20,4M20,18H4V6H8.05L9.88,4H14.12L15.95,6H20V18M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15Z" /></svg>');
--ota: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-cpu-32-bit" viewBox="0 0 24 24"><path d="M9,3V5H7A2,2 0 0,0 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11H21V9H19V7A2,2 0 0,0 17,5H15V3H13V5H11V3M7,9H10.5A1,1 0 0,1 11.5,10V14A1,1 0 0,1 10.5,15H7V13.5H10V12.75H8.5V11.25H10V10.5H7M12.5,9H16A1,1 0 0,1 17,10V11.75A1,1 0 0,1 16,12.75H14V13.5H17V15H12.5V12.25A1,1 0 0,1 13.5,11.25H15.5V10.5H12.5" /></svg>');
--browse: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-file-edit-outline" viewBox="0 0 24 24"><path d="M10 20H6V4H13V9H18V12.1L20 10.1V8L14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H10V20M20.2 13C20.3 13 20.5 13.1 20.6 13.2L21.9 14.5C22.1 14.7 22.1 15.1 21.9 15.3L20.9 16.3L18.8 14.2L19.8 13.2C19.9 13.1 20 13 20.2 13M20.2 16.9L14.1 23H12V20.9L18.1 14.8L20.2 16.9Z" /></svg>');
--cog: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-cog-outline" viewBox="0 0 24 24"><path d="M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z" /></svg>');
--star: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-10 -6 16 16"><line y1="-3" y2="3" stroke="red" transform="rotate(15)"></line><line y1="-3" y2="3" stroke="red" transform="rotate(75)"></line><line y1="-3" y2="3" stroke="red" transform="rotate(-45)"></line></svg>');
--trash: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can-outline" width="24" height="24" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z" /></svg>');
--download: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-download" width="24" height="24" viewBox="0 0 24 24"><path d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" /></svg>');
--upload: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-file-upload-outline" viewBox="0 0 24 24"><path d="M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,12L16,16H13.5V19H10.5V16H8L12,12Z" /></svg>');
--flash: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-chip" viewBox="0 0 24 24"><path d="M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z" /></svg>');
--file: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-file-outline" viewBox="0 0 24 24"><path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z" /></svg>');
--dir: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder-outline" viewBox="0 0 24 24"><path d="M20,18H4V8H20M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z" /></svg>');
--diropen: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder-open-outline" viewBox="0 0 24 24"><path d="M6.1,10L4,18V8H21A2,2 0 0,0 19,6H12L10,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H19C19.9,20 20.7,19.4 20.9,18.5L23.2,10H6.1M19,18H6L7.6,12H20.6L19,18Z" /></svg>');
--html: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-code-tags" viewBox="0 0 24 24"><path d="M14.6,16.6L19.2,12L14.6,7.4L16,6L22,12L16,18L14.6,16.6M9.4,16.6L4.8,12L9.4,7.4L8,6L2,12L8,18L9.4,16.6Z" /></svg>');
--image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-file-image-outline" viewBox="0 0 24 24"><path d="M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M17,13V19H7L12,14L14,16M10,10.5A1.5,1.5 0 0,1 8.5,12A1.5,1.5 0 0,1 7,10.5A1.5,1.5 0 0,1 8.5,9A1.5,1.5 0 0,1 10,10.5Z" /></svg>');
--zip: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-file-cabinet" viewBox="0 0 24 24"><path d="M14,8H10V6H14V8M20,4V20C20,21.11 19.11,22 18,22H6C4.89,22 4,21.11 4,20V4A2,2 0 0,1 6,2H18C19.11,2 20,2.9 20,4M18,13H6V20H18V13M18,4H6V11H18V4M14,15H10V17H14V15Z" /></svg>');
--cmd: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-application-outline" viewBox="0 0 24 24"><path d="M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 20H3V6H21V20Z" /></svg>');
--css: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-script-outline" viewBox="0 0 24 24"><path d="M15,20A1,1 0 0,0 16,19V4H8A1,1 0 0,0 7,5V16H5V5A3,3 0 0,1 8,2H19A3,3 0 0,1 22,5V6H20V5A1,1 0 0,0 19,4A1,1 0 0,0 18,5V9L18,19A3,3 0 0,1 15,22H5A3,3 0 0,1 2,19V18H13A2,2 0 0,0 15,20Z" /></svg>');
--ttf: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-format-text" viewBox="0 0 24 24"><path d="M18.5,4L19.66,8.35L18.7,8.61C18.25,7.74 17.79,6.87 17.26,6.43C16.73,6 16.11,6 15.5,6H13V16.5C13,17 13,17.5 13.33,17.75C13.67,18 14.33,18 15,18V19H9V18C9.67,18 10.33,18 10.67,17.75C11,17.5 11,17 11,16.5V6H8.5C7.89,6 7.27,6 6.74,6.43C6.21,6.87 5.75,7.74 5.3,8.61L4.34,8.35L5.5,4H18.5Z" /></svg>');
--eye: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-eye-outline" viewBox="0 0 24 24"><path d="M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z" /></svg>');
--json: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-code-braces" viewBox="0 0 24 24"><path d="M8,3A2,2 0 0,0 6,5V9A2,2 0 0,1 4,11H3V13H4A2,2 0 0,1 6,15V19A2,2 0 0,0 8,21H10V19H8V14A2,2 0 0,0 6,12A2,2 0 0,0 8,10V5H10V3M16,3A2,2 0 0,1 18,5V9A2,2 0 0,0 20,11H21V13H20A2,2 0 0,0 18,15V19A2,2 0 0,1 16,21H14V19H16V14A2,2 0 0,1 18,12A2,2 0 0,1 16,10V5H14V3H16Z" /></svg>');
--audio: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" id="mdi-file-music-outline" viewBox="0 0 24 24"><path d="M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M13,10V12H11V17A2,2 0 0,1 9,19A2,2 0 0,1 7,17A2,2 0 0,1 9,15C9.4,15 9.7,15.1 10,15.3V10H13Z" /></svg>');
}
.fn:hover {
text-decoration: underline;
}
.fi {
display: inline-block;
vertical-align: middle;
width: 1.1rem;
height: 1.25rem;
mask-size: auto;
mask-repeat: no-repeat;
mask-position: center;
-webkit-mask-size: auto;
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center;
background-color: var(--txt);
}
.fa {
display: block;
text-indent: -9999px;
width: clamp(2rem, 7.5vw, 5rem);
height: 2rem;
mask-size: auto;
mask-repeat: no-repeat;
mask-position: center;
-webkit-mask-size: auto;
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center;
background-color: var(--clr-primary-400);
transition: 0.5s;
padding: 1rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
.fa-browse { mask-image: var(--browse); -webkit-mask-image: var(--browse)}
.fa-cog { mask-image: var(--cog); -webkit-mask-image: var(--cog)}
.fa-download{ mask-image: var(--download); -webkit-mask-image: var(--download)}
.fa-upload { mask-image: var(--upload); -webkit-mask-image: var(--upload)}
.fa-home { mask-image: var(--home); -webkit-mask-image: var(--home)}
.fa-info { mask-image: var(--info); -webkit-mask-image: var(--info)}
.fa-ota { mask-image: var(--ota); -webkit-mask-image: var(--ota)}
.fa-shot { mask-image: var(--shot); -webkit-mask-image: var(--shot)}
.fa-star { mask-image: var(--star); -webkit-mask-image: var(--star)}
.fa-trash { mask-image: var(--trash); -webkit-mask-image: var(--trask)}
.fa-flash { mask-image: var(--flash); -webkit-mask-image: var(--flash)}
.fa-file { mask-image: var(--file); -webkit-mask-image: var(--file)}
.fa-dir { mask-image: var(--dir); -webkit-mask-image: var(--dir)}
.fa-diropen { mask-image: var(--diropen); -webkit-mask-image: var(--diropen)}
.fa-eye { mask-image: var(--eye); -webkit-mask-image: var(--eye)}
.fa-zip { mask-image: var(--zip); -webkit-mask-image: var(--zip)}
.fa-css { mask-image: var(--css); -webkit-mask-image: var(--css)}
.fa-cmd { mask-image: var(--cmd); -webkit-mask-image: var(--cmd)}
.fa-json { mask-image: var(--json); -webkit-mask-image: var(--json)}
.fa-jsonl { mask-image: var(--json); -webkit-mask-image: var(--json)}
.fa-image { mask-image: var(--image); -webkit-mask-image: var(--image)}
.fa-audio { mask-image: var(--audio); -webkit-mask-image: var(--audio)}
.fa-html { mask-image: var(--html); -webkit-mask-image: var(--html)}
.fa-ttf { mask-image: var(--ttf); -webkit-mask-image: var(--ttf)}
.nav-list {
font-size: var(--fs-nav);
padding: 0;
display: flex;
justify-content: space-evenly;
gap: clamp(1.5rem, 10vw, var(--size-500));
width: clamp(275px, 80vw, 600px);
}
.nav-list a {
position: relative;
display: flex;
justify-content: space-evenly;
align-items: center;
flex-direction: column;
text-decoration: none;
color: var(--clr-primary-400);
}
.nav-list a:hover,
.nav-list a:focus-visible {
color: var(--clr-accent-400);
}
.nav-list a .text {
position: absolute;
letter-spacing: -0.05rem;
font-size: var(--fs-500);
font-weight: var(--fw-semi-bold);
white-space: nowrap;
opacity: 0;
transition: 0.5s;
transform: translateY(0.5rem);
}
.nav-list a:hover .text,
.nav-list a:focus-visible .text {
opacity: 1;
transform: translateY(1rem);
}
.nav-list a:hover .fa,
.nav-list a:focus-visible .fa {
background-color: var(--clr-accent-400);
transform: translateY(-0.5rem);
}
/* Box sizing rules */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Set default margin */
* {
margin: 0px;
padding: 0px;
}
p {
margin: 1em 0px;
}
/* Main Style */
body {
font-family: 'Inter', sans-serif;
line-height: 1.5;
height: 100%;
background: var(--bg);
color: var(--txt)
}
a {
text-decoration: none;
}
a[href],
input[type='submit'],
label[for],
select,
button,
.pointer {
cursor: pointer;
}
/* Message Fields */
.error,
.info,
.success,
.validation,
.warning {
border: 1px solid;
margin: 1rem auto;
padding: 2rem 1rem 1rem 3rem;
background-repeat: no-repeat;
background-position: 10px center;
max-width: 500px
}
.info { color: #00529B; background-color: #BDE5F8 }
.success{ color: #4F8A10; background-color: #DFF2BF }
.warning{ color: #9F6000; background-color: #FEEFB3 }
.error { color: #D8000C; background-color: #FFD2D2 }
.left { float: left }
.right { float: right }
.bold { font-weight: bold }
/* Main Page */
#doc {
text-align: left;
margin: 0 auto;
/* display: inline-block;
display: table; */
color: var(--txt);
width: 80%;
min-width: 300px;
max-width: 600px;
}
#doc>a,
.dist>a,
#doc button,
#doc input[type=submit] {
/* padding: 12px; */
height: 3rem;
border: 1px solid var(--btnbrd);
border-radius: .6rem;
background-color: var(--btnbg);
color: var(--btnfg);
font-size: 1rem;
width: 100%;
margin: 12px 0;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
text-decoration: none
}
#doc>a:hover,
.dist>a:hover,
#doc button:hover,
#doc input[type=submit]:hover {
background-color: var(--btnbghi)
}
#doc input:not([type=file]) {
background-color: var(--fldbg);
color: var(--fldfg)
}
#doc input[type=checkbox],
#doc input[type=radio] {
width: 1rem;
height: 1rem;
margin: 0.25rem
}
#doc input[type=color] {
width: 30%;
padding: 5px
}
#doc input:invalid {
border: 1px solid var(--fldred)
}
#doc select {
background-color: var(--fldbg);
color: var(--fldfg)
}
.c {
text-align: center
}
#doc>a.red,
#doc button.red {
background-color: var(--btnred)
}
#doc>a.red:focus,
#doc>a.red:hover,
#doc button.red:focus,
#doc button.red:hover {
background-color: var(--btnredhi)
}
#doc td {
padding-bottom: 0;
padding-top: 0
}
#doc th {
padding-top: .5rem
}
#doc input,
#doc select,
#doc textarea {
width: 100%;
padding: 1rem;
border: 1px solid #ccc;
border-radius: .6rem;
resize: vertical
}
#doc select {
appearance: none;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right .8rem center;
background-size: 1rem
}
#doc label {
padding-right: 18px;
padding-left: .25rem;
display: inline-block
}
#bmp {
max-width: 100%;
height: auto;
}
.required {
background-image: var(--star);
background-position: right;
background-repeat: no-repeat;
background-size: 1.5rem 1.5rem;
}
.icon {
background-size: 1.25rem 1.25rem;
background-position: left;
background-repeat: no-repeat;
width: 1.5rem;
display: inline-block;
text-decoration: none
}
.icon:before{content: "\0000a0"}
.edit{background-image: var(--browse)}
.trash{background-image: var(--trash)}
/* Forms */
.container {
background-color: var(--grpbg);
color: var(--grpfg);
border-radius: .6rem;
padding: 10px;
margin: 20px 0
}
.dist {
display: flex;
justify-content: space-between;
width: 100%;
margin: 1rem 0
}
.dist>a {
flex-grow: 1;
margin: 0 6px
}
.dist>a:first-child {
margin-left: 0
}
.dist>a:last-child {
margin-right: 0
}
.row:after {
content: "";
display: table;
clear: both
}
.row {
/* font-size: .833rem; */
margin: 5px
}
.gap,
.row:last-of-type {
margin-bottom: 1rem
}
.col-25 {
/* float: left;
width: 25%; */
text-align: left;
}
/* .col-75 {
float: left;
width: 75%
} */
#doc label,
#doc legend {
padding: 5px 18px 5px 0;
}
#doc fieldset {
display: contents
}
[v-cloak] > * { display:none }
/* [v-cloak]::before { content: "Loading…"; margin: auto; } */
@media screen and (min-width:800px) {
.row {
display:flex;
align-items:center
}
.col-25,
.col-75
{
float: left;
width: 75%;
margin-top: 0
}
.col-25 {
width: 25%;
text-align: right
}
}
/*
@media screen and (max-width:800px) {
// #doc input[type=submit],
.col-25,
.col-75
{
width: 100%;
margin-top: 0
}
.col-25 {
text-align: left
}
#doc label {
padding: 5px 18px 5px 0
}
}
*/
/* ********** Page Footer ********** */
.foot {
background-color: transparent !important;
all: revert;
float: right;
margin: 0;
font-size: .6rem
}
a.foot:link,
a.foot:visited {
color: var(--footfg)
}
.clear {
clear: both
}
/* ********** File Editor ********** */
.container__editor {
/* display: none; */
display: flex;
/* Misc */
border: 0;
width: 100vw;
height: 100vh;
background-color: var(--bg);
}
.container__left {
/* Initially, the left takes 3/4 width */
width: 10rem;
min-width: 6rem;
max-width: 20rem;
/* Misc */
/* align-items: center; */
display: flex;
justify-content: left;
overflow-x: clip;
overflow-y: scroll;
background-color: var(--treebg);
/* Popout */
top: 0;
bottom: 0;
left: 0;
right: clamp(10rem, 15vw, 80rem);
z-index: 10;
/* position: absolute; */
/* visibility: hidden; */
}
.resizer {
background-color: #d5dbe2;
cursor: ew-resize;
height: 100%;
width: 5px;
}
.container__right {
/* Take the remaining width */
flex: 1;
flex-direction: column;
/* Misc */
align-items: center;
display: flex;
background-color: #888;
}
.toolbar {
text-align: center;
width: 100%;
padding: 0.5rem;
color: var(--btnfg);
background-color: var(--toolbg)
}
.container__bottom {
/* Take the remaining width */
flex: 1;
/* Misc */
align-items: center;
display: flex;
justify-content: center;
top: 0;
bottom: 0;
width: 100%;
/* background-color: bisque; */
}
#sizeList {
width: 4rem;
}
#ctx {
display: none;
top: 10px;
left: 50px;
position: absolute;
background: #fff;
z-index: 10;
padding: 0.75rem;
border-radius: 0.5rem;
box-shadow: 0 0.5rem 0.75rem rgba(0,0,0,0.25);
}
#ctx > ul {
padding-left: 0px;
}
#ctx > ul > li {
white-space: nowrap
}
#ctx > ul > li:hover {
background: #ccc;
}
#fontsize, #page {
width: 3rem
}
#preview {
padding: 0.3rem;
overflow: scroll;
}
#preview > img {
max-width:100%;
max-height:100%;
height: 100%;
margin: auto;
display: block
}
#download-frame,
#preview {
display:none;
}
#tree {
width: 100%;
line-height: 1.3rem;
font-size: 0.95rem;
}
.download{background-image: var(--download)}
.upload{background-image: var(--upload)}
.eye{background-image: var(--eye)}
.flash{background-image: var(--flash)}
.file{background-image: var(--file)}
.zip{background-image: var(--zip)}
.css{background-image: var(--css)}
.cmd{background-image: var(--cmd)}
.json{background-image: var(--json)}
.jsonl{background-image: var(--json)}
.image{background-image: var(--image)}
.audio{background-image: var(--audio)}
.html{background-image: var(--html)}
.dir{background-image: var(--dir)}
.diropen{background-image: var(--diropen)}
#toast {
position: fixed;
bottom: 1rem;
right: 1.5rem;
display: grid;
align-items: end;
align-content: end;
gap: 1rem;
}
.toast {
font-size: 1rem;
margin: 0;
font-weight: bold;
line-height: 1;
padding: 0.5em 1em;
background-color: lightblue;
animation: toastIt 3000ms cubic-bezier(0.785, 0.135, 0.15, 0.86) forwards;
}
@keyframes toastIt {
0%,
100% {
transform: translateY(150%);
opacity: 0;
}
10%,
90% {
transform: translateY(0);
opacity: 1;
}
}

162
data/sv_SE.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "Svenska",
"home": {
"title": "Huvudmeny",
"btn": "Huvudmeny",
"nav": "Hem"
},
"save": "Spara Inställningar",
"user": "Användarnamn",
"pass": "Lösenord",
"hasp": {
"title": "HASP Design",
"btn": "HASP Design",
"theme": "UI Tema",
"color1": "Primärfärg",
"color2": "Sekundärfärg",
"pages": "Starta Layout",
"font": "Standardtypsnitt",
"startpage": "Startsida",
"startdim": "Startljusstyrka"
},
"screenshot": {
"title": "Skärmbild",
"btn": "Skärmbild",
"nav": "Skärmbild",
"prev": "Föregående Sida",
"next": "Nästa Sida",
"refresh": "Uppdatera"
},
"info": {
"title": "Information",
"btn": "Information",
"nav": "Information"
},
"config": {
"title": "Inställningar",
"btn": "Konfiguration",
"nav": "Inställningar"
},
"ota": {
"title": "Firmware-uppdatering",
"btn": "Firmware-uppdatering",
"nav": "Firmware",
"submit": "Uppdatera Firmware",
"file": "Firmware-fil",
"url": "Firmware URL",
"redirect": "Följ omdirigeringar",
"never": "Aldrig",
"strict": "Strikt",
"always": "Alltid"
},
"editor": {
"title": "Filredigerare",
"btn": "Filredigerare",
"nav": "Filredigerare"
},
"reset": {
"title": "Fabriksåterställning",
"btn": "Fabriksåterställning",
"warning": "Varning",
"message": "Denna process kommer att återställa alla inställningar till standardvärden. Det interna minnet kommer att raderas och enheten startas om. Du kan behöva ansluta till WiFi AP som visas på panelen för att konfigurera om enheten innan du öppnar den igen.",
"fileloss": "ALLA FILLER KOMMER ATT FÖRLORAS!"
},
"reboot": {
"title": "Startar om...",
"btn": "Omstart",
"nav": "Omstart",
"message": "Enheten startar om."
},
"about": {
"credits": "Baserat på det tidigare arbetet av följande utvecklare av öppen källkod:",
"copyright": "Copyright ",
"rights": "Alla rättigheter förbehållna.",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "MIT Licens",
"bsd": "BSD Licens",
"freebsd": "FreeBSD Licens",
"apache2": "Apache2 Licens"
},
"wifi": {
"title": "Inställningar för WiFi",
"btn": "Inställningar för WiFi",
"ssid": "SSID"
},
"wg": {
"title": "Inställningar för WireGuard",
"btn": "Inställningar för WireGuard",
"vpnip": "VPN IP-adress",
"privkey": "Privat nyckel",
"host": "Fjärr-IP",
"port": "Fjärrport",
"pubkey": "Publik fjärrnyckel"
},
"mqtt": {
"title": "MQTT Inställningar",
"btn": "MQTT Inställningar",
"name": "Servernamn",
"group": "Gruppnamn",
"host": "Broker",
"port": "Port",
"node_t": "Nod topic",
"group_t": "Grupp topic",
"broadcast_t": "Broadcast topic",
"hass_t": "HA LWT topic"
},
"http": {
"title": "HTTP Inställningar",
"btn": "HTTP Inställningar"
},
"ftp": {
"title": "FTP Inställningar",
"btn": "FTP Inställningar",
"port": "FTP Port",
"pasv": "Passiv port"
},
"gui": {
"title": "Bildskärmsinställningar",
"btn": "Bildskärmsinställningar",
"antiburn": "Antiburn",
"calibrate": "Kalibrera"
},
"gpio": "GPIO Inställningar",
"debug": {
"title": "Debug Inställningar",
"btn": "Debug Inställningar",
"baud": "Datahastighet",
"tele": "Telemetri period",
"ansi": "Använd ANSI-kod",
"host": "Syslog server",
"port": "Syslog port",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facilitet"
},
"time": {
"title": "Tidsinställningar",
"btn": "Tidsinställningar",
"region": "Region",
"zone": "Tidszon",
"tz": "Tidszon",
"ntp": "NTP-servrar"
},
"region": {
"etc": "Etcetera ",
"continents": "Kontinenter ",
"af": "Afrika ",
"as": "Asien ",
"au": "Australien ",
"aq": "Antarktis",
"eu": "Europa ",
"na": "Nordamerika ",
"sa": "Sydamerika ",
"islands": "Öar ",
"at": "Atlanten ",
"in": "Indiska oceanen ",
"pa": "Stilla havet "
}
}
}

13
data/vars.css Normal file
View File

@ -0,0 +1,13 @@
:root {
--txt: #000;
--bg: #fff;
--btnfg: #fff;
--btnbg: #1fa3ec;
--btnbghi: #0083cc;
--grpbg: #f2f2f2;
--fldbg: #fff;
--fldfg: #000;
--btnred: #f00;
--btnredhi: #b00;
--btnbrd: transparent;
}

162
data/zh_CN.json Normal file
View File

@ -0,0 +1,162 @@
{
"en": {
"language": "中文(简体)",
"home": {
"title": "主菜单",
"btn": "主菜单",
"nav": "首页"
},
"save": "保存设置",
"user": "用户名",
"pass": "密码",
"hasp": {
"title": "HASP 设计",
"btn": "HASP 设计",
"theme": "界面主题",
"color1": "主颜色",
"color2": "副颜色",
"pages": "开始布局",
"font": "默认字体",
"startpage": "开机页面",
"startdim": "开机亮度"
},
"screenshot": {
"title": "截屏",
"btn": "截屏",
"nav": "截屏",
"prev": "上一页",
"next": "下一页",
"refresh": "刷新页面"
},
"info": {
"title": "信息",
"btn": "信息",
"nav": "信息"
},
"config": {
"title": "配置",
"btn": "配置",
"nav": "配置"
},
"ota": {
"title": "固件更新",
"btn": "固件更新",
"nav": "固件",
"submit": "更新固件",
"file": "固件文件",
"url": "固件网址",
"redirect": "跟随重定向",
"never": "从不",
"strict": "严格",
"always": "总是"
},
"editor": {
"title": "文件编辑器",
"btn": "文件编辑器",
"nav": "文件编辑器"
},
"reset": {
"title": "出厂重置",
"btn": "出厂重置",
"warning": "警告",
"message": "此过程会将所有设置重置为默认值。 内部闪存将被擦除,设备将重新启动。 您可能需要连接到面板上显示的 WiFi AP 以重新配置设备,然后才能再次访问它。",
"fileloss": "所有文件都会被删除!"
},
"reboot": {
"title": "重启中...",
"btn": "重启",
"nav": "重启",
"message": "设备正在重启。"
},
"about": {
"credits": "基于以下开源开发者的先前工作:",
"copyright": "版权 ",
"rights": "版权所有。",
"clause1": "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"clause2": "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"clause3": "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"mit": "MIT 许可证",
"bsd": "BSD 许可证",
"freebsd": "FreeBSD 许可证",
"apache2": "Apache2 许可证"
},
"wifi": {
"title": "Wifi 设置",
"btn": "Wifi 设置",
"ssid": "SSID"
},
"wg": {
"title": "WireGuard 设置",
"btn": "WireGuard 设置",
"vpnip": "VPN IP",
"privkey": "专用密钥",
"host": "远程IP",
"port": "删除",
"pubkey": "远程公钥"
},
"mqtt": {
"title": "MQTT 设置",
"btn": "MQTT 设置",
"name": "主机名",
"group": "组名",
"host": "MQTT 经纪人",
"port": "端口",
"node_t": "设备主题",
"group_t": "群组主题",
"broadcast_t": "广播主题",
"hass_t": "HA LWT 主题"
},
"http": {
"title": "HTTP 设置",
"btn": "HTTP 设置"
},
"ftp": {
"title": "FTP设置",
"btn": "FTP设置",
"port": "FTP 端口",
"pasv": "被动端口"
},
"gui": {
"title": "屏幕设置",
"btn": "屏幕设置",
"antiburn": "防烧",
"calibrate": "校准"
},
"gpio": "GPIO 设置",
"debug": {
"title": "调试设置",
"btn": "调试设置",
"baud": "波特率",
"tele": "远程时期",
"ansi": "使用 ANSI 代码",
"host": "Syslog 服务器",
"port": "Syslog端口",
"ietf": "IETF (RFC 5424)",
"bsd": "BSD (RFC 3164)",
"log": "Facility"
},
"time": {
"title": "时间设置",
"btn": "时间设置",
"region": "区域",
"zone": "时区",
"tz": "时区",
"ntp": "NTP 服务器"
},
"region": {
"etc": "等等 ",
"continents": "大洲数 ",
"af": "非洲 ",
"as": "亚洲 ",
"au": "澳大利亚 ",
"aq": "南极洲 ",
"eu": "欧洲 ",
"na": "北美洲 ",
"sa": "南美洲 ",
"islands": "群岛 ",
"at": "大西洋 ",
"in": "印度洋 ",
"pa": "太平洋 "
}
}
}

57
hal/sdl2/app_hal.c Normal file
View File

@ -0,0 +1,57 @@
#if USE_MONITOR
#include <unistd.h>
#define SDL_MAIN_HANDLED /*To fix SDL's "undefined reference to WinMain" issue*/
#include <SDL2/SDL.h>
#include "display/monitor.h"
#include "indev/mouse.h"
#include "indev/mousewheel.h"
#include "indev/keyboard.h"
/**
* A task to measure the elapsed time for LittlevGL
* @param data unused
* @return never return
*/
static int tick_thread(void* data)
{
(void)data;
while(1) {
SDL_Delay(5); /*Sleep for 5 millisecond*/
lv_tick_inc(5); /*Tell LittelvGL that 5 milliseconds were elapsed*/
}
return 0;
}
void hal_setup(void)
{
// Workaround for sdl2 `-m32` crash
// https://bugs.launchpad.net/ubuntu/+source/libsdl2/+bug/1775067/comments/7
#ifndef WIN32
setenv("DBUS_FATAL_WARNINGS", "0", 1);
#endif
/* Add a display
* Use the 'monitor' driver which creates window on PC's monitor to simulate a display*/
monitor_init(MONITOR_HOR_RES, MONITOR_VER_RES);
/* Add the mouse as input device
* Use the 'mouse' driver which reads the PC's mouse*/
mouse_init();
/* Tick init.
* You have to call 'lv_tick_inc()' in periodically to inform LittelvGL about how much time were elapsed
* Create an SDL thread to do this*/
SDL_CreateThread(tick_thread, "tick", NULL);
}
void hal_loop(void)
{
// we don't use thise !!
// while(1) {
// SDL_Delay(5);
// lv_task_handler();
// }
}
#endif

17
hal/sdl2/app_hal.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef DRIVER_H
#define DRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
void hal_setup(void);
void hal_loop(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*DRIVER_H*/

View File

@ -0,0 +1,50 @@
#include <Arduino.h>
#include "stm32f4xx.h"
//#include "stm32f429i_discovery.h"
#include "tft.h"
//#include "touchpad.h"
#ifdef USE_RTOS_SYSTICK
#include <cmsis_os.h>
#endif
void hal_setup(void)
{
pinMode(PD12, OUTPUT);
digitalWrite(PD12, HIGH);
// HAL_Init();
// /* Configure the system clock to 180 MHz */
// SystemClock_Config();
// /* Start up indication */
// BSP_LED_Init(LED3);
// for (uint8_t i = 0; i < 8; i++) { BSP_LED_Toggle(LED3); delay(50); }
tft_init();
//touchpad_init();
}
// void SysTick_Handler(void)
// {
// HAL_IncTick();
// HAL_SYSTICK_IRQHandler();
// lv_tick_inc(1);
// #ifdef USE_RTOS_SYSTICK
// osSystickHandler();
// #endif
// }
void hal_loop(void)
{
//while (1)
{
delay(5);
lv_task_handler();
}
}

View File

@ -0,0 +1,17 @@
#ifndef DRIVER_H
#define DRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
void hal_setup(void);
void hal_loop(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*DRIVER_H*/

65
hal/stm32f407_btt/tft.c Normal file
View File

@ -0,0 +1,65 @@
/**
* @file disp.c
*
*/
/*********************
* INCLUDES
*********************/
#include <string.h>
#include "tft.h"
#include "stm32f4xx.h"
#include "fsmc_ssd1963.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
static lv_disp_drv_t disp_drv;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Initialize your display here
*/
void tft_init(void)
{
static lv_color_t disp_buf1[TFT_HOR_RES * 40];
static lv_disp_buf_t buf;
lv_disp_buf_init(&buf, disp_buf1, NULL, TFT_HOR_RES * 40);
lv_disp_drv_init(&disp_drv);
fsmc_ssd1963_init(0, false);
disp_drv.buffer = &buf;
disp_drv.flush_cb = fsmc_ssd1963_flush;
disp_drv.hor_res = TFT_HOR_RES;
disp_drv.ver_res = TFT_VER_RES;
#if TFT_USE_GPU != 0
DMA2D_Config();
disp_drv.gpu_blend_cb = gpu_mem_blend;
disp_drv.gpu_fill_cb = gpu_mem_fill;
#endif
lv_disp_drv_register(&disp_drv);
}
/**********************
* STATIC FUNCTIONS
**********************/

37
hal/stm32f407_btt/tft.h Normal file
View File

@ -0,0 +1,37 @@
/**
* @file disp.h
*
*/
#ifndef DISP_H
#define DISP_H
/*********************
* INCLUDES
*********************/
#include <stdint.h>
#include "lvgl.h"
/*********************
* DEFINES
*********************/
#define TFT_HOR_RES TFT_WIDTH
#define TFT_VER_RES TFT_HEIGHT
#define TFT_EXT_FB 1 /*Frame buffer is located into an external SDRAM*/
#define TFT_USE_GPU 0 /*Enable hardware accelerator*/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
void tft_init(void);
/**********************
* MACROS
**********************/
#endif

View File

@ -0,0 +1,123 @@
#include "stm32f4xx.h"
#include "stm32f429i_discovery.h"
#include "tft.h"
#include "touchpad.h"
#ifdef USE_RTOS_SYSTICK
#include <cmsis_os.h>
#endif
/**
* @brief System Clock Configuration
* The system Clock is configured as follow :
* System Clock source = PLL (HSE)
* SYSCLK(Hz) = 180000000
* HCLK(Hz) = 180000000
* AHB Prescaler = 1
* APB1 Prescaler = 4
* APB2 Prescaler = 2
* HSE Frequency(Hz) = 8000000
* PLL_M = 8
* PLL_N = 360
* PLL_P = 2
* PLL_Q = 7
* VDD(V) = 3.3
* Main regulator output voltage = Scale1 mode
* Flash Latency(WS) = 5
* The LTDC Clock is configured as follow :
* PLLSAIN = 192
* PLLSAIR = 4
* PLLSAIDivR = 8
* @param None
* @retval None
*/
static void SystemClock_Config(void)
{
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
/* Enable Power Control clock */
__HAL_RCC_PWR_CLK_ENABLE();
/* The voltage scaling allows optimizing the power consumption when the device is
clocked below the maximum system frequency, to update the voltage scaling value
regarding system frequency refer to product datasheet. */
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/*##-1- System Clock Configuration #########################################*/
/* Enable HSE Oscillator and activate PLL with HSE as source */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 360;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
/* Activate the Over-Drive mode */
HAL_PWREx_EnableOverDrive();
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
clocks dividers */
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
/*##-2- LTDC Clock Configuration ###########################################*/
/* LCD clock configuration */
/* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 1 MHz */
/* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 192 MHz */
/* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 192/4 = 48 MHz */
/* LTDC clock frequency = PLLLCDCLK / RCC_PLLSAIDIVR_8 = 48/8 = 6 MHz */
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_8;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
}
void hal_setup(void)
{
HAL_Init();
/* Configure the system clock to 180 MHz */
SystemClock_Config();
/* Start up indication */
BSP_LED_Init(LED3);
for (uint8_t i = 0; i < 8; i++) { BSP_LED_Toggle(LED3); HAL_Delay(50); }
tft_init();
touchpad_init();
}
void SysTick_Handler(void)
{
HAL_IncTick();
HAL_SYSTICK_IRQHandler();
lv_tick_inc(1);
#ifdef USE_RTOS_SYSTICK
osSystickHandler();
#endif
}
void hal_loop(void)
{
while(1) {
HAL_Delay(5);
lv_task_handler();
}
}

View File

@ -0,0 +1,17 @@
#ifndef DRIVER_H
#define DRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
void hal_setup(void);
void hal_loop(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*DRIVER_H*/

236
hal/stm32f429_disco/tft.c Normal file
View File

@ -0,0 +1,236 @@
/**
* @file disp.c
*
*/
/*********************
* INCLUDES
*********************/
#include <string.h>
#include "tft.h"
#include "stm32f4xx.h"
#include "stm32f429i_discovery_lcd.h"
#include "ili9341.h"
/*********************
* DEFINES
*********************/
#define SDRAM_BANK_ADDR ((uint32_t)0xD0000000)
#define DMA_STREAM DMA2_Stream0
#define DMA_CHANNEL DMA_CHANNEL_0
#define DMA_STREAM_IRQ DMA2_Stream0_IRQn
#define DMA_STREAM_IRQHANDLER DMA2_Stream0_IRQHandler
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void tft_flush(lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_p);
/**********************
* STATIC VARIABLES
**********************/
extern LTDC_HandleTypeDef LtdcHandler;
#if TFT_USE_GPU != 0
static DMA2D_HandleTypeDef Dma2dHandle;
#endif
#if TFT_EXT_FB != 0
static __IO uint16_t *my_fb = (__IO uint16_t *)(SDRAM_BANK_ADDR);
#else
static uint16_t my_fb[TFT_HOR_RES * TFT_VER_RES];
#endif
/*DMA to flush to frame buffer*/
static void DMA_Config(void);
static void DMA_TransferComplete(DMA_HandleTypeDef *han);
static void DMA_TransferError(DMA_HandleTypeDef *han);
DMA_HandleTypeDef DmaHandle;
static lv_disp_drv_t disp_drv;
static int32_t x1_flush;
static int32_t y1_flush;
static int32_t x2_flush;
static int32_t y2_fill;
static int32_t y_fill_act;
static const lv_color_t *buf_to_flush;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Initialize your display here
*/
void tft_init(void)
{
static lv_color_t disp_buf1[TFT_HOR_RES * 40];
static lv_disp_buf_t buf;
lv_disp_buf_init(&buf, disp_buf1, NULL, TFT_HOR_RES * 40);
lv_disp_drv_init(&disp_drv);
BSP_LCD_Init();
BSP_LCD_LayerDefaultInit(0, (uint32_t)my_fb);
HAL_LTDC_SetPixelFormat(&LtdcHandler, LTDC_PIXEL_FORMAT_RGB565, 0);
DMA_Config();
disp_drv.buffer = &buf;
disp_drv.flush_cb = tft_flush;
disp_drv.hor_res = TFT_HOR_RES;
disp_drv.ver_res = TFT_VER_RES;
#if TFT_USE_GPU != 0
DMA2D_Config();
disp_drv.gpu_blend_cb = gpu_mem_blend;
disp_drv.gpu_fill_cb = gpu_mem_fill;
#endif
lv_disp_drv_register(&disp_drv);
}
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Flush a color buffer
* @param x1 left coordinate of the rectangle
* @param x2 right coordinate of the rectangle
* @param y1 top coordinate of the rectangle
* @param y2 bottom coordinate of the rectangle
* @param color_p pointer to an array of colors
*/
static void tft_flush(lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_p)
{
/*Return if the area is out the screen*/
if (area->x2 < 0)
return;
if (area->y2 < 0)
return;
if (area->x1 > TFT_HOR_RES - 1)
return;
if (area->y1 > TFT_VER_RES - 1)
return;
/*Truncate the area to the screen*/
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
int32_t act_x2 = area->x2 > TFT_HOR_RES - 1 ? TFT_HOR_RES - 1 : area->x2;
int32_t act_y2 = area->y2 > TFT_VER_RES - 1 ? TFT_VER_RES - 1 : area->y2;
x1_flush = act_x1;
y1_flush = act_y1;
x2_flush = act_x2;
y2_fill = act_y2;
y_fill_act = act_y1;
buf_to_flush = color_p;
/*##-7- Start the DMA transfer using the interrupt mode #*/
/* Configure the source, destination and buffer size DMA fields and Start DMA Stream transfer */
/* Enable All the DMA interrupts */
HAL_StatusTypeDef err;
err = HAL_DMA_Start_IT(&DmaHandle, (uint32_t)buf_to_flush, (uint32_t)&my_fb[y_fill_act * TFT_HOR_RES + x1_flush],
(x2_flush - x1_flush + 1));
if (err != HAL_OK)
{
while (1)
; /*Halt on error*/
}
}
static void DMA_Config(void)
{
/*## -1- Enable DMA2 clock #################################################*/
__HAL_RCC_DMA2_CLK_ENABLE();
/*##-2- Select the DMA functional Parameters ###############################*/
DmaHandle.Init.Channel = DMA_CHANNEL; /* DMA_CHANNEL_0 */
DmaHandle.Init.Direction = DMA_MEMORY_TO_MEMORY; /* M2M transfer mode */
DmaHandle.Init.PeriphInc = DMA_PINC_ENABLE; /* Peripheral increment mode Enable */
DmaHandle.Init.MemInc = DMA_MINC_ENABLE; /* Memory increment mode Enable */
DmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; /* Peripheral data alignment : 16bit */
DmaHandle.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD; /* memory data alignment : 16bit */
DmaHandle.Init.Mode = DMA_NORMAL; /* Normal DMA mode */
DmaHandle.Init.Priority = DMA_PRIORITY_HIGH; /* priority level : high */
DmaHandle.Init.FIFOMode = DMA_FIFOMODE_ENABLE; /* FIFO mode enabled */
DmaHandle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_1QUARTERFULL; /* FIFO threshold: 1/4 full */
DmaHandle.Init.MemBurst = DMA_MBURST_SINGLE; /* Memory burst */
DmaHandle.Init.PeriphBurst = DMA_PBURST_SINGLE; /* Peripheral burst */
/*##-3- Select the DMA instance to be used for the transfer : DMA2_Stream0 #*/
DmaHandle.Instance = DMA_STREAM;
/*##-4- Initialize the DMA stream ##########################################*/
if (HAL_DMA_Init(&DmaHandle) != HAL_OK)
{
while (1)
;
}
/*##-5- Select Callbacks functions called after Transfer complete and Transfer error */
HAL_DMA_RegisterCallback(&DmaHandle, HAL_DMA_XFER_CPLT_CB_ID, DMA_TransferComplete);
HAL_DMA_RegisterCallback(&DmaHandle, HAL_DMA_XFER_ERROR_CB_ID, DMA_TransferError);
/*##-6- Configure NVIC for DMA transfer complete/error interrupts ##########*/
HAL_NVIC_SetPriority(DMA_STREAM_IRQ, 0, 0);
HAL_NVIC_EnableIRQ(DMA_STREAM_IRQ);
}
/**
* @brief DMA conversion complete callback
* @note This function is executed when the transfer complete interrupt
* is generated
* @retval None
*/
static void DMA_TransferComplete(DMA_HandleTypeDef *han)
{
y_fill_act++;
if (y_fill_act > y2_fill)
{
lv_disp_flush_ready(&disp_drv);
}
else
{
buf_to_flush += x2_flush - x1_flush + 1;
/*##-7- Start the DMA transfer using the interrupt mode ####################*/
/* Configure the source, destination and buffer size DMA fields and Start DMA Stream transfer */
/* Enable All the DMA interrupts */
if (HAL_DMA_Start_IT(han, (uint32_t)buf_to_flush, (uint32_t)&my_fb[y_fill_act * TFT_HOR_RES + x1_flush],
(x2_flush - x1_flush + 1)) != HAL_OK)
{
while (1)
; /*Halt on error*/
}
}
}
/**
* @brief DMA conversion error callback
* @note This function is executed when the transfer error interrupt
* is generated during DMA transfer
* @retval None
*/
static void DMA_TransferError(DMA_HandleTypeDef *han)
{
}
/**
* @brief This function handles DMA Stream interrupt request.
* @param None
* @retval None
*/
void DMA_STREAM_IRQHANDLER(void)
{
/* Check the interrupt and clear flag */
HAL_DMA_IRQHandler(&DmaHandle);
}

37
hal/stm32f429_disco/tft.h Normal file
View File

@ -0,0 +1,37 @@
/**
* @file disp.h
*
*/
#ifndef DISP_H
#define DISP_H
/*********************
* INCLUDES
*********************/
#include <stdint.h>
#include "lvgl.h"
/*********************
* DEFINES
*********************/
#define TFT_HOR_RES 240
#define TFT_VER_RES 320
#define TFT_EXT_FB 1 /*Frame buffer is located into an external SDRAM*/
#define TFT_USE_GPU 0 /*Enable hardware accelerator*/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
void tft_init(void);
/**********************
* MACROS
**********************/
#endif

View File

@ -0,0 +1,144 @@
/**
* @file indev.c
*
*/
/*********************
* INCLUDES
*********************/
#include "tft.h"
#include "lvgl.h"
#include "stm32f4xx.h"
#include "stm32f429i_discovery.h"
#include "stmpe811.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static bool touchpad_read(lv_indev_drv_t * drv, lv_indev_data_t *data);
static bool touchpad_get_xy(int16_t *x, int16_t *y);
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Initialize your input devices here
*/
void touchpad_init(void)
{
stmpe811_Init(TS_I2C_ADDRESS);
stmpe811_TS_Start(TS_I2C_ADDRESS);
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.read_cb = touchpad_read;
indev_drv.type = LV_INDEV_TYPE_POINTER;
lv_indev_drv_register(&indev_drv);
}
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Read an input device
* @param indev_id id of the input device to read
* @param x put the x coordinate here
* @param y put the y coordinate here
* @return true: the device is pressed, false: released
*/
static bool touchpad_read(lv_indev_drv_t * drv, lv_indev_data_t *data)
{
static int16_t last_x = 0;
static int16_t last_y = 0;
bool detected;
int16_t x;
int16_t y;
detected = touchpad_get_xy(&x, &y);
if(detected) {
data->point.x = x;
data->point.y = y;
last_x = data->point.x;
last_y = data->point.y;
data->state = LV_INDEV_STATE_PR;
} else {
data->point.x = last_x;
data->point.y = last_y;
data->state = LV_INDEV_STATE_REL;
}
return false;
}
static bool touchpad_get_xy(int16_t *x, int16_t *y)
{
static int32_t _x = 0, _y = 0;
int16_t xDiff, yDiff, xr, yr, x_raw, y_raw;;
bool detected;
detected = stmpe811_TS_DetectTouch(TS_I2C_ADDRESS);
if(!detected) return false;
stmpe811_TS_GetXY(TS_I2C_ADDRESS, &x_raw, &y_raw);
/* Y value first correction */
y_raw -= 360;
/* Y value second correction */
yr = y_raw / 11;
/* Return y_raw position value */
if(yr <= 0) yr = 0;
else if (yr > TFT_VER_RES) yr = TFT_VER_RES - 1;
y_raw = yr;
/* X value first correction */
if(x_raw <= 3000) x_raw = 3870 - x_raw;
else x_raw = 3800 - x_raw;
/* X value second correction */
xr = x_raw / 15;
/* Return X position value */
if(xr <= 0) xr = 0;
else if (xr > TFT_HOR_RES) xr = TFT_HOR_RES - 1;
x_raw = xr;
xDiff = x_raw > _x? (x_raw - _x): (_x - x_raw);
yDiff = y_raw > _y? (y_raw - _y): (_y - y_raw);
if (xDiff + yDiff > 5) {
_x = x_raw;
_y = y_raw;
}
/* Update the X and Y position */
*x = _x;
*y = _y;
return true;
}

View File

@ -0,0 +1,32 @@
/**
* @file indev.h
*
*/
#ifndef INDEV_H
#define INDEV_H
/*********************
* INCLUDES
*********************/
#include <stdbool.h>
#include <stdint.h>
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
void touchpad_init(void);
/**********************
* MACROS
**********************/
#endif

View File

@ -1,39 +1,4 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
The header files in this folder configure the different components of HASP, LVGL and paho.

12
include/VersionInfo.h Normal file
View File

@ -0,0 +1,12 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
/* This file is used during the build of the paho library */
#ifndef VERSIONINFO_H
#define VERSIONINFO_H
#define BUILD_TIMESTAMP "@BUILD_TIMESTAMP@"
#define CLIENT_VERSION "@CLIENT_VERSION@"
#endif /* VERSIONINFO_H */

View File

@ -1,41 +0,0 @@
// Images can be converted to XBM format by using the online converter here:
// https://www.online-utility.org/image/convert/to/XBM
// The output must be pasted in a header file, renamed and adjusted to appear
// as as a const unsigned char array in PROGMEM (FLASH program memory).
// The xbm format adds padding to pixel rows so they are a whole number of bytes
// In this example 50 pixel width means 56 bits = 7 bytes
// the 50 height then means array uses 50 x 7 = 350 bytes of FLASH
// The library ignores the padding bits when drawing the image on the display.
// The NetWize logo uses the MaterialDesign icons font, released under the OFL license
#include <pgmspace.h> // PROGMEM support header
#define logoWidth 148
#define logoHeight 20
// Image is stored in this array
PROGMEM const unsigned char bootscreen[] = {
0x0F, 0x0F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x1F, 0x0F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x1F, 0x0F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x0F, 0x0F, 0x0F, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x1F, 0x0F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x0F, 0x0F, 0x0F, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x3F, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x0F, 0x00,
0x3F, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00,
0x7F, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x00,
0x7F, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x00,
0xFF, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0xC0, 0x03, 0x00, 0xFF, 0x0F,
0xFF, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0xFF, 0x0F,
0xFF, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0xFF, 0x0F,
0xFF, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0xF0, 0x00, 0x00, 0xFF, 0x0F,
0xEF, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00,
0xEF, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00,
0xCF, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x00,
0xCF, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00,
0x8F, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0xFF, 0xFF, 0x0F, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x8F, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0xFF, 0xFF, 0x0F, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x8F, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
0x0F, 0x0F, 0xC0, 0xFF, 0x03, 0x80, 0x07, 0x00, 0xFC, 0xFF, 0x03, 0x80, 0x7F, 0x00, 0xFE, 0x1F, 0x00, 0xFF, 0x0F,
};

View File

@ -1,3 +1,6 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
#ifndef WIFISPI_H
#define WIFISPI_H

183
include/ftstdlib.h Normal file
View File

@ -0,0 +1,183 @@
/****************************************************************************
*
* ftstdlib.h
*
* ANSI-specific library and header configuration file (specification
* only).
*
* Copyright (C) 2002-2020 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/**************************************************************************
*
* This file is used to group all `#includes` to the ANSI~C library that
* FreeType normally requires. It also defines macros to rename the
* standard functions within the FreeType source code.
*
* Load a file which defines `FTSTDLIB_H_` before this one to override it.
*
*/
#ifndef FTSTDLIB_H_
#define FTSTDLIB_H_
#include <stddef.h>
#include "hasp_mem.h"
typedef void hasp_FILE;
extern hasp_FILE * lv_ft_fopen(const char * filename, const char * mode );
extern int lv_ft_fclose(hasp_FILE * stream);
extern size_t lv_ft_fread(void * ptr, size_t size, size_t count, hasp_FILE * stream);
extern int lv_ft_fseek(hasp_FILE * stream, long int offset, int origin );
extern int lv_ft_ftell(hasp_FILE * stream);
#define ft_ptrdiff_t ptrdiff_t
/**************************************************************************
*
* integer limits
*
* `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of
* `int` and `long` in bytes at compile-time. So far, this works for all
* platforms the library has been tested on.
*
* Note that on the extremely rare platforms that do not provide integer
* types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where
* `int` is 36~bits), we do not make any guarantee about the correct
* behaviour of FreeType~2 with all fonts.
*
* In these cases, `ftconfig.h` will refuse to compile anyway with a
* message like 'couldn't find 32-bit type' or something similar.
*
*/
#include <limits.h>
#define FT_CHAR_BIT CHAR_BIT
#define FT_USHORT_MAX USHRT_MAX
#define FT_INT_MAX INT_MAX
#define FT_INT_MIN INT_MIN
#define FT_UINT_MAX UINT_MAX
#define FT_LONG_MIN LONG_MIN
#define FT_LONG_MAX LONG_MAX
#define FT_ULONG_MAX ULONG_MAX
/**************************************************************************
*
* character and string processing
*
*/
#include <string.h>
#define ft_memchr memchr
#define ft_memcmp memcmp
#define ft_memcpy memcpy
#define ft_memmove memmove
#define ft_memset memset
#define ft_strcat strcat
#define ft_strcmp strcmp
#define ft_strcpy strcpy
#define ft_strlen strlen
#define ft_strncmp strncmp
#define ft_strncpy strncpy
#define ft_strrchr strrchr
#define ft_strstr strstr
/**************************************************************************
*
* file handling
*
*/
#include <stdio.h>
#define FT_FILE hasp_FILE
#define ft_fclose lv_ft_fclose
#define ft_fopen lv_ft_fopen
#define ft_fread lv_ft_fread
#define ft_fseek lv_ft_fseek
#define ft_ftell lv_ft_ftell
#define ft_sprintf sprintf
/**************************************************************************
*
* sorting
*
*/
#include <stdlib.h>
#define ft_qsort qsort
/**************************************************************************
*
* memory allocation
*
*/
#define ft_scalloc hasp_calloc
#define ft_sfree hasp_free
#define ft_smalloc hasp_malloc
#define ft_srealloc hasp_realloc
/**************************************************************************
*
* miscellaneous
*
*/
#define ft_strtol strtol
#define ft_getenv getenv
/**************************************************************************
*
* execution control
*
*/
#include <setjmp.h>
#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */
/* `jmp_buf` is defined as a macro */
/* on certain platforms */
#define ft_longjmp longjmp
#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */
/* The following is only used for debugging purposes, i.e., if */
/* `FT_DEBUG_LEVEL_ERROR` or `FT_DEBUG_LEVEL_TRACE` are defined. */
#include <stdarg.h>
#endif /* FTSTDLIB_H_ */
/* END */

View File

@ -1,8 +1,47 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
#ifndef HASP_CONF_H
#define HASP_CONF_H
#if HASP_TARGET_ARDUINO
#include "Arduino.h"
#endif
#ifdef USE_CONFIG_OVERRIDE
#include "user_config_override.h"
#endif
// language specific defines
#include "lang/lang.h"
// Lengths
#ifndef MAX_PASSWORD_LENGTH
#define MAX_PASSWORD_LENGTH 64
#endif
#ifndef MAX_USERNAME_LENGTH
#define MAX_USERNAME_LENGTH 32
#endif
#ifndef MAX_HOSTNAME_LENGTH
#define MAX_HOSTNAME_LENGTH 128
#endif
// TFT defines
#ifndef TFT_BACKLIGHT_ON
#define TFT_BACKLIGHT_ON HIGH
#endif
#ifndef TFT_BCKL
#define TFT_BCKL -1
#endif
#define HASP_USE_APP 1
/* Validate that build target was specified */
#if HASP_TARGET_ARDUINO + HASP_TARGET_PC != 1
#error "Build target invalid! Set *one* of: HASP_TARGET_ARDUINO, HASP_TARGET_PC"
#endif
#ifndef HASP_USE_DEBUG
#define HASP_USE_DEBUG 1
#endif
@ -13,23 +52,64 @@
#endif
#ifndef HASP_USE_WIFI
#define HASP_USE_WIFI (ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0 || HASP_USE_WIFI > 0)
#define HASP_USE_WIFI (ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0)
#endif
#define HASP_HAS_NETWORK (ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0 || HASP_USE_ETHERNET > 0 || HASP_USE_WIFI > 0)
#ifndef HASP_USE_CAPTIVE_PORTAL
#define HASP_USE_CAPTIVE_PORTAL (ARDUINO_ARCH_ESP32 > 0) && (HASP_USE_WIFI > 0)
#endif
#ifndef HASP_USE_OTA
#define HASP_USE_OTA (HASP_HAS_NETWORK)
#define HASP_HAS_NETWORK \
(ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0 || HASP_USE_ETHERNET > 0 || HASP_USE_WIFI > 0)
#ifndef HASP_USE_ARDUINOOTA
#define HASP_USE_ARDUINOOTA 0 //(HASP_HAS_NETWORK)
#endif
#ifndef HASP_USE_HTTP_UPDATE
#define HASP_USE_HTTP_UPDATE (HASP_HAS_NETWORK) // Adds 10kB
#endif
#ifndef HASP_USE_MQTT
#define HASP_USE_MQTT (HASP_HAS_NETWORK)
#endif
#ifndef HASP_USE_MQTT_ASYNC
#define HASP_USE_MQTT_ASYNC (HASP_TARGET_PC)
#endif
#ifndef HASP_USE_WIREGUARD
#define HASP_USE_WIREGUARD 0
#endif
#ifndef HASP_USE_BROADCAST
#define HASP_USE_BROADCAST 1
#endif
#ifndef MQTT_NODENAME
#define MQTT_NODENAME "plate"
#endif
#ifndef HASP_START_CONSOLE
#define HASP_START_CONSOLE 1
#endif
#ifndef HASP_USE_HTTP
#define HASP_USE_HTTP (HASP_HAS_NETWORK)
#endif
#ifndef HASP_USE_HTTP_ASYNC
#define HASP_USE_HTTP_ASYNC 0 //(HASP_HAS_NETWORK)
#endif
#ifndef HASP_START_HTTP
#define HASP_START_HTTP 1
#endif
#ifndef HASP_START_FTP
#define HASP_START_FTP 1
#endif
#ifndef HASP_USE_MDNS
#define HASP_USE_MDNS (HASP_HAS_NETWORK)
#endif
@ -38,10 +118,22 @@
#define HASP_USE_SYSLOG (HASP_HAS_NETWORK)
#endif
#ifndef HASP_USE_FTP
#define HASP_USE_FTP 0
#endif
#ifndef HASP_USE_TELNET
#define HASP_USE_TELNET 0
#endif
#ifndef HASP_START_TELNET
#define HASP_START_TELNET 1
#endif
#ifndef HASP_USE_CONSOLE
#define HASP_USE_CONSOLE 1
#endif
/* Filesystem */
#define HASP_HAS_FILESYSTEM (ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0)
@ -77,13 +169,25 @@
#define HASP_USE_PNGDECODE 0
#endif
#ifndef HASP_USE_BMPDECODE
#define HASP_USE_BMPDECODE 0
#endif
#ifndef HASP_USE_GIFDECODE
#define HASP_USE_GIFDECODE 0
#endif
#ifndef HASP_USE_JPGDECODE
#define HASP_USE_JPGDECODE 0
#endif
#ifndef HASP_NUM_GPIO_CONFIG
#define HASP_NUM_GPIO_CONFIG 8
#endif
#ifndef HASP_NUM_INPUTS
#define HASP_NUM_INPUTS 4 // Number of ACE Buttons
#endif
// #ifndef HASP_USE_CUSTOM
// #define HASP_USE_CUSTOM 0
// #endif
// #ifndef HASP_NUM_OUTPUTS
// #define HASP_NUM_OUTPUTS 3
@ -97,29 +201,78 @@
#endif
#endif
#define HASP_OBJECT_NOTATION "p%ub%u"
#ifndef HASP_ATTRIBUTE_FAST_MEM
#define HASP_ATTRIBUTE_FAST_MEM
#endif
#ifndef IRAM_ATTR
#define IRAM_ATTR
#endif
#if !defined(FPSTR)
#define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper*>(pstr_pointer))
#endif
#if !defined(PGM_P)
#define PGM_P const char*
#endif
/* Workarounds for PC build */
#if HASP_TARGET_PC
#ifndef __FlashStringHelper
typedef char __FlashStringHelper;
#endif
#if defined(__cplusplus) && !defined(String)
#include <iostream>
using String = std::string;
#endif
#ifndef F
#define F(x) (x)
#endif
#ifndef PSTR
#define PSTR(x) x
#endif
#ifndef PROGMEM
#define PROGMEM
#endif
#endif
/* Includes */
#ifdef WINDOWS
#include "winsock2.h"
#include "Windows.h"
#elif defined(POSIX)
#else
#include <Arduino.h>
#endif
#if HASP_USE_SPIFFS > 0
#if defined(ARDUINO_ARCH_ESP32)
#include "SPIFFS.h"
#endif
#include <FS.h> // Include the SPIFFS library
// #if defined(ARDUINO_ARCH_ESP32)
// #include "SPIFFS.h"
// #endif
// #include <FS.h> // Include the SPIFFS library
#include "hasp_filesystem.h"
#endif
#if HASP_USE_LITTLEFS > 0
#if defined(ARDUINO_ARCH_ESP32)
#include "LITTLEFS.h"
#elif defined(ARDUINO_ARCH_ESP8266)
#include <FS.h> // Include the FS library
#endif
// #if defined(ARDUINO_ARCH_ESP32)
// #include "LITTLEFS.h"
// #elif defined(ARDUINO_ARCH_ESP8266)
// #include <FS.h> // Include the FS library
// #include <LittleFS.h>
// #endif
#include "hasp_filesystem.h"
#endif
#if HASP_USE_SPIFFS > 0 || HASP_USE_LITTLEFS > 0
#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_ESP8266)
#include "lv_zifont.h"
// #include "lv_zifont.h"
#endif
#endif
@ -128,7 +281,7 @@
#endif
#if HASP_USE_WIFI > 0
#include "net/hasp_wifi.h"
#include "sys/net/hasp_wifi.h"
#if defined(STM32F4xx)
#include "WiFiSpi.h"
@ -136,10 +289,19 @@ static WiFiSpiClass WiFi;
#endif
#endif // HASP_USE_WIFI
#if HASP_USE_WIREGUARD > 0
#include "sys/net/hasp_wireguard.h"
#endif
#if HASP_USE_ETHERNET > 0
#if defined(ARDUINO_ARCH_ESP32)
#include <ETH.h>
#include "sys/net/hasp_ethernet_esp32.h"
#if HASP_USE_ETHSPI > 0
#include <ETHSPI.h>
#warning Using ESP32 Ethernet SPI W5500
#define HASP_ETHERNET ETHSPI
#else
#define ETH_ADDR 0
#define ETH_POWER_PIN -1
#define ETH_MDC_PIN 23
@ -147,9 +309,10 @@ static WiFiSpiClass WiFi;
#define NRST 5
#define ETH_TYPE ETH_PHY_LAN8720
#define ETH_CLKMODE ETH_CLOCK_GPIO17_OUT
#include "net/hasp_ethernet_esp32.h"
#include <ETH.h>
#warning Using ESP32 Ethernet LAN8720
#define HASP_ETHERNET ETH
#endif // HASP_USE_ETHSPI
#else
#if USE_BUILTIN_ETHERNET > 0
@ -164,51 +327,104 @@ static WiFiSpiClass WiFi;
#include "Ethernet.h"
#warning Use W5x00 Ethernet shield
#endif
#include "net/hasp_ethernet_stm32.h"
#include "sys/net/hasp_ethernet_stm32.h"
#endif
#endif
#if HASP_USE_MQTT > 0
#include "svc/hasp_mqtt.h"
#include "mqtt/hasp_mqtt.h"
#if HASP_TARGET_PC
#define HASP_USE_PAHO
#else
#define HASP_USE_ESP_MQTT
//#define HASP_USE_PUBSUBCLIENT
#endif
#endif
#if HASP_USE_GPIO > 0
#include "hasp_gpio.h"
#include "sys/gpio/hasp_gpio.h"
#endif
#if HASP_USE_HTTP > 0
#include "svc/hasp_http.h"
#include "sys/svc/hasp_http.h"
#endif
#if HASP_USE_HTTP_ASYNC > 0
#include "sys/svc/hasp_http.h"
#endif
#if HASP_USE_CONSOLE > 0
#include "sys/svc/hasp_console.h"
#endif
#if HASP_USE_FTP > 0
#include "sys/svc/hasp_ftp.h"
#endif
#if HASP_USE_TELNET > 0
#include "svc/hasp_telnet.h"
#include "sys/svc/hasp_telnet.h"
#endif
#if HASP_USE_MDNS > 0
#include "svc/hasp_mdns.h"
#include "sys/svc/hasp_mdns.h"
#endif
#if HASP_USE_OTA > 0
#include "svc/hasp_ota.h"
#ifndef HASP_OTA_PORT
#if defined(ARDUINO_ARCH_ESP32)
#define HASP_OTA_PORT 3232
#elif defined(ARDUINO_ARCH_ESP8266)
#define HASP_OTA_PORT 8266
#if HASP_USE_ARDUINOOTA > 0 || HASP_USE_HTTP_UPDATE > 0
#include "sys/svc/hasp_ota.h"
#endif
#if HASP_USE_TASMOTA_CLIENT > 0
#include "sys/svc/hasp_slave.h"
#endif
#if defined(WINDOWS)
#include <Windows.h>
#define delay Sleep
#endif
#if defined(POSIX)
#ifdef USE_MONITOR
#define delay SDL_Delay
#else
#define delay msleep
#endif
#endif
#if HASP_USE_TASMOTA_SLAVE > 0
#include "svc/hasp_slave.h"
#if HASP_TARGET_PC
#include <string.h>
#include <strings.h>
#include <stdio.h>
#if USE_MONITOR
#include <SDL2/SDL.h>
#endif
#ifndef FPSTR
#define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
#define snprintf_P snprintf
#define memcpy_P memcpy
#define strcasecmp_P strcasecmp
#define strcmp_P strcmp
#define strcpy_P strcpy
#define strstr_P strstr
#define halRestartMcu()
#if USE_MONITOR
#define millis SDL_GetTicks
#elif defined(WINDOWS)
#define millis Win32Millis
#elif defined(POSIX)
#define millis PosixMillis
#endif
#ifndef PGM_P
#define PGM_P const char *
#define DEC 10
#define HEX 16
#define BIN 2
#define guiGetDim() 255
#define guiSetDim(x)
#define guiGetBacklight() 1
#define guiSetBacklight(x)
//#define guiCalibrate()
#endif
#endif // HASP_CONF_H
#endif // HASP_CONF_H

94
include/hasp_macro.h Normal file
View File

@ -0,0 +1,94 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
#ifndef HASP_MACRO_H
#define HASP_MACRO_H
#ifdef ARDUINO
#include "ArduinoLog.h"
#endif
#ifdef USE_CONFIG_OVERRIDE
#include "user_config_override.h"
#endif
#if HASP_TARGET_PC
#define HASP_RANDOM(x) rand() % x
#elif HASP_TARGET_ARDUINO
#define HASP_RANDOM(x) random(x)
#else
#define HASP_RANDOM(x) random() % x
#endif
#if HASP_TARGET_PC
#define LOG_OUTPUT(x, ...) printf(__VA_ARGS__)
#else
#ifndef HASP_LOG_LEVEL
#define HASP_LOG_LEVEL LOG_LEVEL_TRACE
#endif
#define LOG_OUTPUT(...) Log.output(...)
#if HASP_LOG_LEVEL >= LOG_LEVEL_FATAL
#define LOG_FATAL(...) \
Log.fatal(__VA_ARGS__); \
while(true) { \
}
#else
#define LOG_FATAL(...) \
do { \
} while(0)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_ALERT
#define LOG_ALERT(...) Log.alert(__VA_ARGS__)
#else
#define LOG_ALERT(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_CRITICAL
#define LOG_CRITICAL(...) Log.critical(__VA_ARGS__)
#else
#define LOG_CRITICAL(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_ERROR
#define LOG_ERROR(...) Log.error(__VA_ARGS__)
#else
#define LOG_ERROR(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_WARNING
#define LOG_WARNING(...) Log.warning(__VA_ARGS__)
#else
#define LOG_WARNING(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_INFO
#define LOG_INFO(...) Log.notice(__VA_ARGS__)
#else
#define LOG_INFO(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_TRACE
#define LOG_TRACE(...) Log.trace(__VA_ARGS__)
#else
#define LOG_TRACE(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_VERBOSE
#define LOG_VERBOSE(...) Log.verbose(__VA_ARGS__)
#else
#define LOG_VERBOSE(...)
#endif
#if HASP_LOG_LEVEL >= LOG_LEVEL_DEBUG
#define LOG_DEBUG(...) Log.debug(__VA_ARGS__)
#else
#define LOG_DEBUG(...)
#endif
#endif
#endif // HASP_MACRO_H

31
include/hasp_mem.h Normal file
View File

@ -0,0 +1,31 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
#ifndef HASP_MEM_H
#define HASP_MEM_H
#include <stdlib.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef LODEPNG_NO_COMPILE_ALLOCATORS
void* lodepng_calloc(size_t num, size_t size);
void* lodepng_malloc(size_t size);
void* lodepng_realloc(void* ptr, size_t new_size);
void lodepng_free(void* ptr);
#endif // LODEPNG_NO_COMPILE_ALLOCATORS
bool hasp_use_psram();
void* hasp_calloc(size_t num, size_t size);
void* hasp_malloc(size_t size);
void* hasp_realloc(void* ptr, size_t new_size);
void hasp_free(void* ptr);
#ifdef __cplusplus
}
#endif
#endif // HASP_MEM_H

View File

@ -1,42 +0,0 @@
/**
* @file lv_comp_conf.h
*
*/
/*
* COPY THIS FILE AS `lv_comp_conf.h` NEXT TO the `lvgl` FOLDER
*/
#if 1 /*Set it to "1" to enable content*/
#ifndef LV_COMP_CONF_H
#define LV_COMP_CONF_H
#define LV_USE_CALENDAR 1
#define LV_USE_CALENDAR_HEADER_ARROW 1
#define LV_USE_COLORWHEEL 1
#define LV_USE_KEYBOARD 1
#define LV_USE_LED 1
#define LV_LED_BRIGHT_MIN 0
#define LV_LED_BRIGHT_MAX 255
#define LV_USE_LIST 1
#define LV_USE_MSGBOX 1
#define LV_USE_SPINBOX 1
#define LV_USE_SPINNER 1
#define LV_USE_TABVIEW 1
#define LV_USE_TILEVIEW 1
#define LV_USE_WIN 1
#endif /*LV_COMP_CONF_H*/
#endif /*End of "Content enable"*/

View File

@ -1,3 +1,7 @@
#ifdef USE_CONFIG_OVERRIDE
#include "user_config_override.h"
#endif
#include "lv_conf_v7.h"
#define LV_THEME_DEFAULT_FLAGS LV_THEME_DEFAULT_FLAG

View File

@ -5,12 +5,14 @@
#if 1 /*Set it to "1" to enable content*/
#ifndef LV_CONF_H
#define LV_CONF_H
/* clang-format off */
#ifndef LV_CONF_H
#define LV_CONF_H
/* clang-format off */
#include <stdint.h>
#include "lv_symbol_mdi_def.h"
#if defined(ARDUINO_ARCH_ESP8266)
#define LV_HIGH_RESOURCE_MCU 0
#endif
@ -26,6 +28,8 @@
/* Maximal horizontal and vertical resolution to support by the library.*/
#define LV_HOR_RES_MAX (TFT_WIDTH)
#define LV_VER_RES_MAX (TFT_HEIGHT)
#define LV_HOR_RES (TFT_WIDTH)
#define LV_VER_RES (TFT_HEIGHT)
/* Color depth:
* - 1: 1 byte per pixel
@ -55,7 +59,7 @@
/* Default display refresh period.
* Can be changed in the display driver (`lv_disp_drv_t`).*/
#define LV_DISP_DEF_REFR_PERIOD 30 /*[ms]*/
#define LV_DISP_DEF_REFR_PERIOD 50 /*[ms]*/
/* Dot Per Inch: used to initialize default sizes.
* E.g. a button with width = LV_DPI / 2 -> half inch wide
@ -72,19 +76,32 @@ typedef int16_t lv_coord_t;
/* LittelvGL's internal memory manager's settings.
* The graphical objects and other related data are stored here. */
//#define LV_FS_SEEK(x, y) lv_fs_seek(x, y, LV_FS_SEEK_SET)
#define LV_FS_SEEK(x, y) lv_fs_seek(x, y)
#define _lv_img_decoder_t _lv_img_decoder
#ifndef LV_MEM_CUSTOM
/* 1: use custom malloc/free, 0: use the built-in `lv_mem_alloc` and `lv_mem_free` */
#define LV_MEM_CUSTOM 0
#endif
#if LV_MEM_CUSTOM == 0
/* Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
#ifndef LV_MEM_SIZE
#if defined(ARDUINO_ARCH_ESP8266)
# define LV_MEM_SIZE (10 * 1024U) // Minimum 10 Kb
# define LV_MEM_SIZE (12 * 1024U) // Minimum 12 Kb
#elif defined(ESP32S2) && defined(BOARD_HAS_PSRAM)
# define LV_MEM_SIZE (48 * 1024U) // 48Kb on ESP32-S2 with PSram
#elif defined(ESP32S2)
# define LV_MEM_SIZE (32 * 1024U) // 32Kb on ESP32-S2
#elif defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM)
# define LV_MEM_SIZE (64 * 1024U) // 64Kb on ESP32 with PSram
#elif defined(ARDUINO_ARCH_ESP32)
# define LV_MEM_SIZE (48 * 1024U) // 48Kb on ESP32
#else
# define LV_MEM_SIZE (20 * 1024U) // 20Kb is much better
#endif
# define LV_MEM_SIZE (256 * 1024U) // native app
#endif
#endif // LV_MEM_SIZE
/* Complier prefix for a big array declaration */
# define LV_MEM_ATTR
@ -98,11 +115,25 @@ typedef int16_t lv_coord_t;
/* Automatically defrag. on free. Defrag. means joining the adjacent free cells. */
# define LV_MEM_AUTO_DEFRAG 1
#else /*LV_MEM_CUSTOM*/
# define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
# define LV_MEM_CUSTOM_ALLOC malloc /*Wrapper to malloc*/
# define LV_MEM_CUSTOM_FREE free /*Wrapper to free*/
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
#define LV_MEM_CUSTOM_ALLOC hasp_malloc /*Wrapper to malloc*/
#define LV_MEM_CUSTOM_FREE hasp_free /*Wrapper to free*/
#endif /*LV_MEM_CUSTOM*/
#ifndef LV_VDB_SIZE
#if defined(ARDUINO_ARCH_ESP8266)
# define LV_VDB_SIZE (8 * 1024U) // Minimum 8 Kb
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
# define LV_VDB_SIZE (16 * 1024U) // 16kB draw buffer
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
# define LV_VDB_SIZE (48 * 1024U) // 16kB draw buffer
#elif defined(ARDUINO_ARCH_ESP32)
# define LV_VDB_SIZE (32 * 1024U) // 32kB draw buffer
#else
# define LV_VDB_SIZE (128 * 1024U) // native app
#endif
#endif // LV_VDB_SIZE
/* Garbage Collector settings
* Used if lvgl is binded to higher level language and the memory is managed by that language */
#define LV_ENABLE_GC 0
@ -120,7 +151,9 @@ typedef int16_t lv_coord_t;
* Can be changed in the Input device driver (`lv_indev_drv_t`)*/
/* Input device read period in milliseconds */
#define LV_INDEV_DEF_READ_PERIOD 30
#ifndef LV_INDEV_DEF_READ_PERIOD
#define LV_INDEV_DEF_READ_PERIOD 20 /*[ms]*/
#endif
/* Drag threshold in pixels */
#define LV_INDEV_DEF_DRAG_LIMIT 10
@ -134,7 +167,7 @@ typedef int16_t lv_coord_t;
/* Repeated trigger period in long press [ms]
* Time between `LV_EVENT_LONG_PRESSED_REPEAT */
#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100
#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 200
/* Gesture threshold in pixels */
@ -178,19 +211,27 @@ typedef void* lv_group_user_data_t;
#define LV_USE_FILESYSTEM 1
#if LV_USE_FILESYSTEM
/*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/
typedef void* lv_fs_drv_user_data_t;
typedef const char* lv_fs_drv_user_data_t;
/*File system interface*/
#define LV_USE_FS_IF 1
#ifndef LV_USE_FS_IF
#define LV_USE_FS_IF !defined(STM32)
#endif
#if LV_USE_FS_IF
# define LV_FS_IF_FATFS '\0'
#if defined(STM32F4xx) // || defined(ARDUINO_ARCH_ESP8266)
# define LV_FS_IF_PC '\0'
#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_ESP8266)
# define LV_FS_IF_SPIFFS 'E' // internal esp Flash
//# define LV_FS_IF_SPIFFS '\0' // internal esp Flash
#else
# define LV_FS_IF_SPIFFS '\0' // no internal esp Flash
# define LV_FS_IF_PC 'L' // Local filesystem
# define LV_FS_IF_POSIX '\0'
//# define LV_FS_IF_SPIFFS '\0' // no internal esp Flash
#endif
#endif /*LV_USE_FS_IF*/
#if HASP_TARGET_ARDUINO && !defined(LV_FS_PC_PATH)
#define LV_FS_PC_PATH "/littlefs"
#endif
#endif
@ -213,7 +254,12 @@ typedef void* lv_fs_drv_user_data_t;
* With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
* However the opened images might consume additional RAM.
* LV_IMG_CACHE_DEF_SIZE must be >= 1 */
#ifndef LV_IMG_CACHE_DEF_SIZE
#define LV_IMG_CACHE_DEF_SIZE 1
#endif
#ifndef LV_IMG_CACHE_DEF_SIZE_PSRAM
#define LV_IMG_CACHE_DEF_SIZE_PSRAM 12 // special openHASP setting when PSRAM is used
#endif
/*Declare the type of the user data of image decoder (can be e.g. `void *`, `int`, `struct`)*/
typedef void* lv_img_decoder_user_data_t;
@ -225,7 +271,9 @@ typedef void* lv_img_decoder_user_data_t;
#define LV_ATTRIBUTE_TICK_INC
/* Define a custom attribute to `lv_task_handler` function */
#ifndef LV_ATTRIBUTE_TASK_HANDLER
#define LV_ATTRIBUTE_TASK_HANDLER
#endif
/* With size optimization (-Os) the compiler might not align data to
* 4 or 8 byte boundary. This alignment will be explicitly applied where needed.
@ -250,12 +298,18 @@ typedef void* lv_img_decoder_user_data_t;
/* 1: use a custom tick source.
* It removes the need to manually update the tick with `lv_tick_inc`) */
#ifdef ARDUINO
#define LV_TICK_CUSTOM 1
#if LV_TICK_CUSTOM == 1
#define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the sys time function*/
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current systime in ms*/
#endif /*LV_TICK_CUSTOM*/
#else
#define LV_TICK_CUSTOM 0
#endif
typedef void* lv_disp_drv_user_data_t; /*Type of user data in the display driver*/
typedef void* lv_indev_drv_user_data_t; /*Type of user data in the input device driver*/
@ -326,69 +380,398 @@ typedef void* lv_indev_drv_user_data_t; /*Type of user data in the in
/*==================
* FONT USAGE
*===================*/
// #if 1 || HASP_USE_FREETYPE<=0
// #if TFT_HEIGHT>=480 && TFT_WIDTH>=480
// #ifndef ROBOTOCONDENSED_REGULAR_24_LATIN1
// #define ROBOTOCONDENSED_REGULAR_24_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_32_LATIN1
// #define ROBOTOCONDENSED_REGULAR_32_LATIN1 1
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef ROBOTOCONDENSED_REGULAR_48_LATIN1
// #define ROBOTOCONDENSED_REGULAR_48_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_64_LATIN1
// #define ROBOTOCONDENSED_REGULAR_64_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_16_LATIN1
// #define ROBOTOCONDENSED_REGULAR_16_LATIN1 1
// #endif
// #endif
/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
* The symbols are available via `LV_SYMBOL_...` defines
* More info about fonts: https://docs.littlevgl.com/#Fonts
* To create a new font go to: https://littlevgl.com/ttf-font-to-c-array
*/
// #ifndef HASP_FONT_1
// #define HASP_FONT_1 robotocondensed_regular_24_latin1 /* 5% Width */
// #endif
// #ifndef HASP_FONT_2
// #define HASP_FONT_2 robotocondensed_regular_32_latin1 /* 5% Width */
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_3
// #define HASP_FONT_3 robotocondensed_regular_48_latin1 /* 10% Width */
// #endif
// #ifndef HASP_FONT_4
// #define HASP_FONT_4 robotocondensed_regular_64_latin1 /* 10% Height */
// #endif
// #ifndef HASP_FONT_5
// #define HASP_FONT_5 robotocondensed_regular_16_latin1 /* 5% Width */
// #endif
// #endif
/* Robot fonts with bpp = 4
* https://fonts.google.com/specimen/Roboto */
#define LV_FONT_MONTSERRAT_12 0 // LV_HIGH_RESOURCE_MCU
#define LV_FONT_MONTSERRAT_16 0 // LV_HIGH_RESOURCE_MCU
#define LV_FONT_MONTSERRAT_22 0 // LV_HIGH_RESOURCE_MCU
#define LV_FONT_MONTSERRAT_28 0 // LV_HIGH_RESOURCE_MCU
// #ifndef HASP_FONT_SIZE_1
// #define HASP_FONT_SIZE_1 24
// #endif
// #ifndef HASP_FONT_SIZE_2
// #define HASP_FONT_SIZE_2 32
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_SIZE_3
// #define HASP_FONT_SIZE_3 48
// #endif
// #ifndef HASP_FONT_SIZE_4
// #define HASP_FONT_SIZE_4 64
// #endif
// #ifndef HASP_FONT_SIZE_5
// #define HASP_FONT_SIZE_5 16
// #endif
// #endif
// #elif TFT_HEIGHT>=320 && TFT_WIDTH>=320
// #ifndef ROBOTOCONDENSED_REGULAR_16_LATIN1
// #define ROBOTOCONDENSED_REGULAR_16_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_24_LATIN1
// #define ROBOTOCONDENSED_REGULAR_24_LATIN1 1
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef ROBOTOCONDENSED_REGULAR_32_LATIN1
// #define ROBOTOCONDENSED_REGULAR_32_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_48_LATIN1
// #define ROBOTOCONDENSED_REGULAR_48_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_12_LATIN1
// #define ROBOTOCONDENSED_REGULAR_12_LATIN1 1
// #endif
// #endif
/* Demonstrate special features */
#define LV_FONT_MONTSERRAT_12_SUBPX 0
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 // LV_HIGH_RESOURCE_MCU /*bpp = 3*/
// #ifndef HASP_FONT_1
// #define HASP_FONT_1 robotocondensed_regular_16_latin1 /* 5% Width */
// #endif
// #ifndef HASP_FONT_2
// #define HASP_FONT_2 robotocondensed_regular_24_latin1 /* 5% Width */
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_3
// #define HASP_FONT_3 robotocondensed_regular_32_latin1 /* 10% Width */
// #endif
// #ifndef HASP_FONT_4
// #define HASP_FONT_4 robotocondensed_regular_48_latin1 /* 10% Height */
// #endif
// #ifndef HASP_FONT_5
// #define HASP_FONT_5 robotocondensed_regular_12_latin1 /* 5% Width */
// #endif
// #endif
// #ifndef HASP_FONT_SIZE_1
// #define HASP_FONT_SIZE_1 16
// #endif
// #ifndef HASP_FONT_SIZE_2
// #define HASP_FONT_SIZE_2 24
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_SIZE_3
// #define HASP_FONT_SIZE_3 32
// #endif
// #ifndef HASP_FONT_SIZE_4
// #define HASP_FONT_SIZE_4 48
// #endif
// #ifndef HASP_FONT_SIZE_5
// #define HASP_FONT_SIZE_5 12
// #endif
// #endif
// #elif TFT_HEIGHT>=272 && TFT_WIDTH>=272
// #ifndef ROBOTOCONDENSED_REGULAR_14_LATIN1
// #define ROBOTOCONDENSED_REGULAR_14_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_18_LATIN1
// #define ROBOTOCONDENSED_REGULAR_18_LATIN1 1
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef ROBOTOCONDENSED_REGULAR_28_LATIN1
// #define ROBOTOCONDENSED_REGULAR_28_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_36_LATIN1
// #define ROBOTOCONDENSED_REGULAR_36_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_48_LATIN1
// #define ROBOTOCONDENSED_REGULAR_48_LATIN1 1
// #endif
// #endif
// #ifndef HASP_FONT_1
// #define HASP_FONT_1 robotocondensed_regular_14_latin1 /* 5% Width */
// #endif
// #ifndef HASP_FONT_2
// #define HASP_FONT_2 robotocondensed_regular_18_latin1 /* 5% Width */
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_3
// #define HASP_FONT_3 robotocondensed_regular_28_latin1 /* 10% Width */
// #endif
// #ifndef HASP_FONT_4
// #define HASP_FONT_4 robotocondensed_regular_36_latin1 /* 10% Height */
// #endif
// #ifndef HASP_FONT_5
// #define HASP_FONT_5 robotocondensed_regular_48_latin1 /* 5% Width */
// #endif
// #endif
// #ifndef HASP_FONT_SIZE_1
// #define HASP_FONT_SIZE_1 14
// #endif
// #ifndef HASP_FONT_SIZE_2
// #define HASP_FONT_SIZE_2 18
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_SIZE_3
// #define HASP_FONT_SIZE_3 28
// #endif
// #ifndef HASP_FONT_SIZE_4
// #define HASP_FONT_SIZE_4 36
// #endif
// #ifndef HASP_FONT_SIZE_5
// #define HASP_FONT_SIZE_5 48
// #endif
// #endif
// #else // smaller than 272
// #ifndef HASP_FONT_1
// #define HASP_FONT_1 robotocondensed_regular_12_latin1 /* 5% Width */
// #endif
// #ifndef HASP_FONT_2
// #define HASP_FONT_2 robotocondensed_regular_16_latin1 /* 5% Width */
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_3
// #define HASP_FONT_3 robotocondensed_regular_24_latin1 /* 10% Width */
// #endif
// #ifndef HASP_FONT_4
// #define HASP_FONT_4 robotocondensed_regular_32_latin1 /* 10% Height */
// #endif
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_12_LATIN1
// #define ROBOTOCONDENSED_REGULAR_12_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_16_LATIN1
// #define ROBOTOCONDENSED_REGULAR_16_LATIN1 1
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef ROBOTOCONDENSED_REGULAR_24_LATIN1
// #define ROBOTOCONDENSED_REGULAR_24_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_32_LATIN1
// #define ROBOTOCONDENSED_REGULAR_32_LATIN1 1
// #endif
// #ifndef ROBOTOCONDENSED_REGULAR_48_LATIN1
// #define ROBOTOCONDENSED_REGULAR_48_LATIN1 1
// #endif
// #endif
// #ifndef HASP_FONT_SIZE_1
// #define HASP_FONT_SIZE_1 12
// #endif
// #ifndef HASP_FONT_SIZE_2
// #define HASP_FONT_SIZE_2 16
// #endif
// #if HASP_USE_FREETYPE<=0
// #ifndef HASP_FONT_SIZE_3
// #define HASP_FONT_SIZE_3 24
// #endif
// #ifndef HASP_FONT_SIZE_4
// #define HASP_FONT_SIZE_4 32
// #endif
// #ifndef HASP_FONT_SIZE_5
// #define HASP_FONT_SIZE_5 48
// #endif
// #endif
// #endif
// #endif
#ifndef ROBOTOCONDENSED_REGULAR_12_ALL
#define ROBOTOCONDENSED_REGULAR_12_ALL 1
#endif
#ifndef ROBOTOCONDENSED_REGULAR_16_ALL
#define ROBOTOCONDENSED_REGULAR_16_ALL 1
#endif
#ifndef ROBOTOCONDENSED_REGULAR_24_ALL
#define ROBOTOCONDENSED_REGULAR_24_ALL 1
#endif
#ifndef ROBOTOCONDENSED_REGULAR_32_ALL
#define ROBOTOCONDENSED_REGULAR_32_ALL 1
#endif
#ifndef HASP_FONT_1
#define HASP_FONT_1 robotocondensed_regular_12_all
#endif
#ifndef HASP_FONT_2
#define HASP_FONT_2 robotocondensed_regular_16_all
#endif
#ifndef HASP_FONT_3
#define HASP_FONT_3 robotocondensed_regular_24_all
#endif
#ifndef HASP_FONT_4
#define HASP_FONT_4 robotocondensed_regular_32_all
#endif
#ifndef HASP_FONT_SIZE_1
#define HASP_FONT_SIZE_1 12
#endif
#ifndef HASP_FONT_SIZE_2
#define HASP_FONT_SIZE_2 16
#endif
#ifndef HASP_FONT_SIZE_3
#define HASP_FONT_SIZE_3 24
#endif
#ifndef HASP_FONT_SIZE_4
#define HASP_FONT_SIZE_4 32
#endif
/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
* The symbols are available via `LV_SYMBOL_...` defines
* More info about fonts: https://docs.lvgl.io/v7/en/html/overview/font.html
* To create a new font go to: https://lvgl.com/ttf-font-to-c-array
*/
/* Montserrat fonts with bpp = 4
* https://fonts.google.com/specimen/Montserrat */
#define LV_FONT_MONTSERRAT_8 0
#define LV_FONT_MONTSERRAT_10 0
#define LV_FONT_MONTSERRAT_12 0
#define LV_FONT_MONTSERRAT_14 0
#define LV_FONT_MONTSERRAT_16 0
#define LV_FONT_MONTSERRAT_18 0
#define LV_FONT_MONTSERRAT_20 0
#define LV_FONT_MONTSERRAT_22 0
#define LV_FONT_MONTSERRAT_24 0
#define LV_FONT_MONTSERRAT_26 0
#define LV_FONT_MONTSERRAT_28 0
#define LV_FONT_MONTSERRAT_30 0
#define LV_FONT_MONTSERRAT_32 0
#define LV_FONT_MONTSERRAT_34 0
#define LV_FONT_MONTSERRAT_36 0
#define LV_FONT_MONTSERRAT_38 0
#define LV_FONT_MONTSERRAT_40 0
#define LV_FONT_MONTSERRAT_42 0
#define LV_FONT_MONTSERRAT_44 0
#define LV_FONT_MONTSERRAT_46 0
#define LV_FONT_MONTSERRAT_48 0
/* Demonstrate special features */
#define LV_FONT_MONTSERRAT_12_SUBPX 0
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, PErisan letters and all their forms*/
#define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/
/*Pixel perfect monospace font
* http://pelulamu.net/unscii/ */
#define LV_FONT_UNSCII_8 0
#define LV_FONT_UNSCII_16 0
/*Custom font*/
#define UNSCII_8_ICON 1
/* Optionally declare your custom fonts here.
* You can use these fonts as default font too
* and they will be available globally. E.g.
* #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
* LV_FONT_DECLARE(my_font_2)
*/
/* Optionally declare your custom fonts here.
* You can use these fonts as default font too
* and they will be available globally. E.g.
* #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
* LV_FONT_DECLARE(my_font_2)
*/
//#define LV_FONT_CUSTOM_DECLARE
/* Enable it if you have fonts with a lot of characters.
* The limit depends on the font size, font face and bpp
* but with > 10,000 characters if you see issues probably you need to enable it.*/
#define LV_FONT_FMT_TXT_LARGE 1
/* Enable it if you have fonts with a lot of characters.
* The limit depends on the font size, font face and bpp
* but with > 10,000 characters if you see issues probably you need to enable it.*/
#define LV_FONT_FMT_TXT_LARGE 0
/* Set the pixel order of the display.
* Important only if "subpx fonts" are used.
* With "normal" font it doesn't matter.
*/
/* Enables/disables support for compressed fonts. If it's disabled, compressed
* glyphs cannot be processed by the library and won't be rendered.
*/
#define LV_USE_FONT_COMPRESSED 1
/* Enable subpixel rendering */
#define LV_USE_FONT_SUBPX 0
#if LV_USE_FONT_SUBPX
/* Set the pixel order of the display.
* Important only if "subpx fonts" are used.
* With "normal" font it doesn't matter.
*/
#define LV_FONT_SUBPX_BGR 0
#endif
/*Declare the type of the user data of fonts (can be e.g. `void *`, `int`, `struct`)*/
typedef void* lv_font_user_data_t;
// #define FONT_CONCAT2(a, b) a ## b
// #define FONT_CONCAT(a, b) FONT_CONCAT2(a, b)
// #define HASP_FONTNAME robotocondensed_regular_
// #define HASP_FONTNAME_BASE FONT_CONCAT(HASP_FONTNAME, _)
// #define HASP_CHARACTER_SET latin1
// /* Concatenate the fontname macros */
// #define HASP_FONT_1_size FONT_CONCAT(HASP_FONTNAME, 12)
// #define HASP_FONT_1_base FONT_CONCAT(HASP_FONT_1_size, _)
// #define HASP_FONT_1 FONT_CONCAT(HASP_FONT_1_base, HASP_CHARACTER_SET)
/*Always set a default font from the built-in fonts*/
#if LV_HIGH_RESOURCE_MCU>0
#if 0 && HASP_USE_FREETYPE<=0 // LV_HIGH_RESOURCE_MCU>0
// #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(lv_font_montserrat_16);
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(robotocondensed_regular_28_nokern) \
LV_FONT_DECLARE(robotocondensed_regular_22_nokern) \
LV_FONT_DECLARE(robotocondensed_regular_16_nokern) \
LV_FONT_DECLARE(robotocondensed_regular_12_nokern) \
#define LV_FONT_DEFAULT &robotocondensed_regular_16_nokern //&lv_font_montserrat_16
#else
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(unscii_8_icon);
#define LV_FONT_DEFAULT &unscii_8_icon //&lv_font_unscii_8
//#define LV_FONT_DEFAULT my_font
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(HASP_FONT_1) \
LV_FONT_DECLARE(HASP_FONT_2) \
LV_FONT_DECLARE(HASP_FONT_3) \
LV_FONT_DECLARE(HASP_FONT_4) \
LV_FONT_DECLARE(HASP_FONT_5) \
#ifndef LV_FONT_DEFAULT
#define LV_FONT_DEFAULT &HASP_FONT_2 //&lv_font_montserrat_16
#endif
#else
//#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(unscii_8_icon);
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(HASP_FONT_1) \
LV_FONT_DECLARE(HASP_FONT_2) \
LV_FONT_DECLARE(HASP_FONT_3) \
LV_FONT_DECLARE(HASP_FONT_4) \
#ifndef LV_FONT_DEFAULT
#if TFT_HEIGHT >= 480 && TFT_WIDTH >= 480
#define LV_FONT_DEFAULT &HASP_FONT_4
#define LV_THEME_DEFAULT_FONT_SMALL &HASP_FONT_3
#elif TFT_HEIGHT >= 320 && TFT_WIDTH >= 320
#define LV_FONT_DEFAULT &HASP_FONT_3
#define LV_THEME_DEFAULT_FONT_SMALL &HASP_FONT_2
#else // smaller than 320
#define LV_FONT_DEFAULT &HASP_FONT_2
#define LV_THEME_DEFAULT_FONT_SMALL &HASP_FONT_1
#endif
#endif // LV_FONT_DEFAULT
#ifndef LV_THEME_DEFAULT_FONT_SMALL
#define LV_THEME_DEFAULT_FONT_SMALL LV_FONT_DEFAULT
#endif
#define LV_THEME_DEFAULT_FONT_NORMAL LV_FONT_DEFAULT
#define LV_THEME_DEFAULT_FONT_SUBTITLE LV_FONT_DEFAULT
#define LV_THEME_DEFAULT_FONT_TITLE LV_FONT_DEFAULT
#endif // LV_HIGH_RESOURCE_MCU
/*================
* THEME USAGE
*================*/
@ -396,23 +779,24 @@ typedef void* lv_font_user_data_t;
/*Always enable at least on theme*/
#define LV_USE_THEME_MATERIAL 1 /*A fast and impressive theme*/
#define LV_THEME_DEFAULT_INIT lv_theme_hasp_init // We init the theme ourselves
#define LV_THEME_DEFAULT_INIT lv_theme_material_init // lv_theme_hasp_init // We init the theme ourselves
#define LV_THEME_DEFAULT_COLOR_PRIMARY LV_COLOR_RED
#define LV_THEME_DEFAULT_COLOR_SECONDARY LV_COLOR_BLUE
#define LV_THEME_DEFAULT_FLAG 0 //LV_THEME_MATERIAL_FLAG_NONE
#if LV_HIGH_RESOURCE_MCU
#define LV_THEME_DEFAULT_FONT_SMALL &robotocondensed_regular_12_nokern //&lv_font_montserrat_12
#define LV_THEME_DEFAULT_FONT_NORMAL &robotocondensed_regular_16_nokern //&lv_font_montserrat_16
#define LV_THEME_DEFAULT_FONT_SUBTITLE &robotocondensed_regular_22_nokern //&lv_font_montserrat_22
#define LV_THEME_DEFAULT_FONT_TITLE &robotocondensed_regular_28_nokern //&lv_font_montserrat_22 //&lv_font_montserrat_28_compressed
#else
#define LV_THEME_DEFAULT_FONT_SMALL LV_FONT_DEFAULT // &lv_font_montserrat_12
#define LV_THEME_DEFAULT_FONT_NORMAL LV_FONT_DEFAULT // &lv_font_montserrat_16
#define LV_THEME_DEFAULT_FONT_SUBTITLE LV_FONT_DEFAULT // &lv_font_montserrat_22
#define LV_THEME_DEFAULT_FONT_TITLE LV_FONT_DEFAULT // &lv_font_montserrat_28_compressed
#endif
#define LV_THEME_DEFAULT_FLAG 0 //LV_THEME_MATERIAL_FLAG_NONE
// #if HASP_USE_FREETYPE<=0 //LV_HIGH_RESOURCE_MCU
// #define LV_THEME_DEFAULT_FONT_SMALL &HASP_FONT_1 //&lv_font_montserrat_12
// #define LV_THEME_DEFAULT_FONT_NORMAL &HASP_FONT_2 //&lv_font_montserrat_16
// #define LV_THEME_DEFAULT_FONT_SUBTITLE &HASP_FONT_2 //&lv_font_montserrat_22
// #define LV_THEME_DEFAULT_FONT_TITLE &HASP_FONT_2 //&lv_font_montserrat_22 //&lv_font_montserrat_28_compressed
// #else
// #define LV_THEME_DEFAULT_FONT_SMALL LV_FONT_DEFAULT // &lv_font_montserrat_12
// #define LV_THEME_DEFAULT_FONT_NORMAL LV_FONT_DEFAULT // &lv_font_montserrat_16
// #define LV_THEME_DEFAULT_FONT_SUBTITLE LV_FONT_DEFAULT // &lv_font_montserrat_22
// #define LV_THEME_DEFAULT_FONT_TITLE LV_FONT_DEFAULT // &lv_font_montserrat_28_compressed
// #endif
#define LV_USE_THEME_EMPTY 1
#define LV_USE_THEME_EMPTY 0
#define LV_USE_THEME_MONO 1
#define LV_USE_THEME_TEMPLATE 0
#define LV_USE_THEME_HASP 1
@ -459,8 +843,8 @@ typedef void* lv_font_user_data_t;
#endif
/*Change the built in (v)snprintf functions*/
#define LV_SPRINTF_CUSTOM 0
#if LV_SPRINTF_CUSTOM
#define LV_SPRINTF_CUSTOM 1 // saves 1.4 KiB
#if LV_SPRINTF_CUSTOM
# define LV_SPRINTF_INCLUDE <stdio.h>
# define lv_snprintf snprintf
# define lv_vsnprintf vsnprintf
@ -473,9 +857,14 @@ typedef void* lv_font_user_data_t;
/*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
typedef struct {
uint8_t objid:8;
uint8_t groupid:8;
uint8_t id;
uint8_t id:8;
uint8_t objid:6;
//uint8_t transitionid:4;
//uint8_t actionid:4;
uint8_t groupid:4;
// uint8_t swipeid:4;
void* ext;
// char* action;
} lv_obj_user_data_t;
/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
@ -512,7 +901,7 @@ typedef struct {
#define LV_USE_BTNMATRIX 1
/*Calendar (dependencies: -)*/
#define LV_USE_CALENDAR (LV_HIGH_RESOURCE_MCU)
#define LV_USE_CALENDAR 0
/*Canvas (dependencies: lv_img)*/
#define LV_USE_CANVAS 1
@ -521,7 +910,7 @@ typedef struct {
#define LV_USE_CHECKBOX 1
/*Chart (dependencies: -)*/
#define LV_USE_CHART 1
#define LV_USE_CHART 0
#if LV_USE_CHART
# define LV_CHART_AXIS_TICK_LABEL_MAX_LEN 20
#endif
@ -539,6 +928,19 @@ typedef struct {
# define LV_DROPDOWN_DEF_ANIM_TIME 200
#endif
/*Linemeter (dependencies: -*/
#define LV_USE_LINEMETER 1
#if LV_USE_LINEMETER
/* Set how precisely should the lines of the line meter be calculated.
* Higher precision means slower rendering.
* 0: normal
* 1: extra precision in the inner ring
* 2. extra precision on the outer ring too
*/
# define LV_LINEMETER_PRECISE 2
#endif
/*Gauge (dependencies:lv_bar, lv_linemeter)*/
#define LV_USE_GAUGE 1
@ -549,7 +951,7 @@ typedef struct {
#define LV_USE_IMGBTN 1
#if LV_USE_IMGBTN
/*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
# define LV_IMGBTN_TILED 0
# define LV_IMGBTN_TILED 1
#endif
/*Keyboard (dependencies: lv_btnm)*/
@ -573,6 +975,7 @@ typedef struct {
/*LED (dependencies: -)*/
#define LV_USE_LED 1
#define LV_LED_BRIGHT_MIN 0
/*Line (dependencies: -*/
#define LV_USE_LINE 1
@ -588,7 +991,7 @@ typedef struct {
#define LV_USE_LMETER 1
/*Mask (dependencies: -)*/
#define LV_USE_OBJMASK 1
#define LV_USE_OBJMASK 0
/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
#define LV_USE_MSGBOX 1
@ -601,7 +1004,7 @@ typedef struct {
#endif
/*Preload (dependencies: lv_arc, lv_anim)*/
#define LV_USE_SPINNER 0
#define LV_USE_SPINNER 1
#if LV_USE_SPINNER != 0
# define LV_SPINNER_DEF_ARC_LENGTH 60 /*[deg]*/
# define LV_SPINNER_DEF_SPIN_TIME 1000 /*[ms]*/
@ -622,7 +1025,7 @@ typedef struct {
#define LV_USE_SLIDER 1
/*Spinbox (dependencies: lv_ta)*/
#define LV_USE_SPINBOX 1
#define LV_USE_SPINBOX 0
/*Switch (dependencies: lv_slider)*/
#define LV_USE_SWITCH 1
@ -635,7 +1038,7 @@ typedef struct {
#endif
/*Table (dependencies: lv_label)*/
#define LV_USE_TABLE 1 //(LV_HIGH_RESOURCE_MCU)
#define LV_USE_TABLE 0 //(LV_HIGH_RESOURCE_MCU)
#if LV_USE_TABLE
# define LV_TABLE_COL_MAX 12
#endif
@ -648,14 +1051,14 @@ typedef struct {
#endif
/*Tileview (dependencies: lv_page) */
#define LV_USE_TILEVIEW 1
#define LV_USE_TILEVIEW 0
#if LV_USE_TILEVIEW
/*Time of slide animation [ms] (0: no animation)*/
# define LV_TILEVIEW_DEF_ANIM_TIME 300
#endif
/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
#define LV_USE_WIN 1
#define LV_USE_WIN 0
/*==================
* Non-user section

View File

@ -86,8 +86,10 @@ typedef int16_t lv_coord_t;
/* LittelvGL's internal memory manager's settings.
* The graphical objects and other related data are stored here. */
#ifndef LV_MEM_CUSTOM
/* 1: use custom malloc/free, 0: use the built-in `lv_mem_alloc` and `lv_mem_free` */
#define LV_MEM_CUSTOM 0
#endif
#if LV_MEM_CUSTOM == 0
/* Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
//# define LV_MEM_SIZE (32U * 1024U)
@ -103,8 +105,8 @@ typedef int16_t lv_coord_t;
# define LV_MEM_AUTO_DEFRAG 1
#else /*LV_MEM_CUSTOM*/
# define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
# define LV_MEM_CUSTOM_ALLOC malloc /*Wrapper to malloc*/
# define LV_MEM_CUSTOM_FREE free /*Wrapper to free*/
# define LV_MEM_CUSTOM_ALLOC hasp_malloc /*Wrapper to malloc*/
# define LV_MEM_CUSTOM_FREE hasp_free /*Wrapper to free*/
#endif /*LV_MEM_CUSTOM*/
/* Use the standard memcpy and memset instead of LVGL's own functions.
@ -452,7 +454,7 @@ typedef void * lv_indev_drv_user_data_t; /*Type of user data in the i
#define LV_USE_FONT_COMPRESSED 1
/* Enable subpixel rendering */
#define LV_USE_FONT_SUBPX 1
#define LV_USE_FONT_SUBPX 0
#if LV_USE_FONT_SUBPX
/* Set the pixel order of the display.
* Important only if "subpx fonts" are used.
@ -556,7 +558,7 @@ typedef void * lv_font_user_data_t;
#define LV_USE_ARABIC_PERSIAN_CHARS 0
/*Change the built in (v)snprintf functions*/
#define LV_SPRINTF_CUSTOM 0
#define LV_SPRINTF_CUSTOM 1 // saves 1.4 KiB
#if LV_SPRINTF_CUSTOM
# define LV_SPRINTF_INCLUDE <stdio.h>
# define lv_snprintf snprintf
@ -582,9 +584,12 @@ typedef void * lv_font_user_data_t;
*==================*/
typedef struct {
uint8_t id:8;
uint8_t objid:8;
uint8_t groupid:8;
uint8_t id;
uint8_t transitionid:4;
uint8_t actionid:4;
uint8_t groupid:4;
uint8_t swipeid:4;
} lv_obj_user_data_t;
#if LV_USE_USER_DATA
@ -689,7 +694,7 @@ typedef struct {
* 1: extra precision in the inner ring
* 2. extra precision on the outer ring too
*/
# define LV_LINEMETER_PRECISE 1
# define LV_LINEMETER_PRECISE 2
#endif
/*Mask (dependencies: -)*/
#define LV_USE_OBJMASK 1

View File

@ -1,6 +1,10 @@
/**
* @file lv_drv_conf.h
*
* Configuration file for v7.9.1
*/
/*
* COPY THIS FILE AS lv_drv_conf.h
*/
#if 1 /*Set it to "1" to enable the content*/
@ -13,9 +17,15 @@
/*********************
* DELAY INTERFACE
*********************/
#ifdef ARDUINO
#define LV_DRV_DELAY_INCLUDE <Arduino.h> /*Dummy include by default*/
#define LV_DRV_DELAY_US(us) delayMicroseconds(ud) /*Delay the given number of microseconds*/
#define LV_DRV_DELAY_MS(ms) delay(ms) /*Delay the given number of milliseconds*/
#else
#define LV_DRV_DELAY_INCLUDE <stdint.h> /*Dummy include by default*/
#define LV_DRV_DELAY_US(us) /*delay_us(us)*/ /*Delay the given number of microseconds*/
#define LV_DRV_DELAY_MS(ms) /*delay_ms(ms)*/ /*Delay the given number of milliseconds*/
#endif
/*********************
* DISPLAY INTERFACE
@ -93,7 +103,9 @@
#define MONITOR_VER_RES LV_VER_RES
/* Scale window by this factor (useful when simulating small screens) */
#ifndef MONITOR_ZOOM
#define MONITOR_ZOOM 1
#endif
/* Used to test true double buffering with only address changing.
* Set LV_VDB_SIZE = (LV_HOR_RES * LV_VER_RES) and LV_VDB_DOUBLE = 1 and LV_COLOR_DEPTH = 32" */
@ -102,9 +114,6 @@
/*Eclipse: <SDL2/SDL.h> Visual Studio: <SDL.h>*/
#define MONITOR_SDL_INCLUDE_PATH <SDL2/SDL.h>
/*Different rendering might be used if running in a Virtual machine*/
#define MONITOR_VIRTUAL_MACHINE 0
/*Open two windows to test multi display support*/
#define MONITOR_DUAL 0
#endif
@ -116,12 +125,22 @@
#define USE_WINDOWS 0
#endif
#ifndef USE_WIN32DRV
#define USE_WINDOWS 0
#if USE_WINDOWS
#endif
#if USE_WINDOWS || USE_WIN32DRV
#define WINDOW_HOR_RES 480
#define WINDOW_VER_RES 320
#endif
/*----------------------------------------
* GTK drivers (monitor, mouse, keyboard
*---------------------------------------*/
#ifndef USE_GTK
#define USE_GTK 0
#endif
/*----------------
* SSD1963
*--------------*/
@ -181,6 +200,17 @@
/*No settings*/
#endif /*USE_ST7565*/
/*------------------------------
* GC9A01 (color, low res.)
*-----------------------------*/
#ifndef USE_GC9A01
#define USE_GC9A01 0
#endif
#if USE_GC9A01
/*No settings*/
#endif /*USE_GC9A01*/
/*------------------------------------------
* UC1610 (4 gray 160*[104|128])
* (EA DOGXL160 160x104 tested)
@ -218,6 +248,20 @@
b) /*((uint8_t) __REV(__RBIT(b)))*/ /*Architecture / compiler dependent byte bits order reverse*/
#endif /*USE_SHARP_MIP*/
/*-------------------------------------------------
* ILI9341 240X320 TFT LCD
*------------------------------------------------*/
#ifndef USE_ILI9341
#define USE_ILI9341 0
#endif
#if USE_ILI9341
#define ILI9341_HOR_RES LV_HOR_RES
#define ILI9341_VER_RES LV_VER_RES
#define ILI9341_GAMMA 1
#define ILI9341_TEARING 0
#endif /*USE_ILI9341*/
/*-----------------------------------------
* Linux frame buffer device (/dev/fbx)
*-----------------------------------------*/
@ -240,6 +284,18 @@
#define FBDEV_PATH "/dev/fb0"
#endif
/*-----------------------------------------
* DRM/KMS device (/dev/dri/cardX)
*-----------------------------------------*/
#ifndef USE_DRM
#define USE_DRM 0
#endif
#if USE_DRM
#define DRM_CARD "/dev/dri/card0"
#define DRM_CONNECTOR_ID -1 /* -1 for the first connected one */
#endif
/*********************
* INPUT DEVICES
*********************/
@ -330,25 +386,25 @@
#define USE_EVDEV 0
#endif
#if USE_EVDEV
#define EVDEV_NAME "/dev/input/event0" /*You can use the "evtest" Linux tool to get the list of devices and test \
them*/
#define EVDEV_SWAP_AXES 0 /*Swap the x and y axes of the touchscreen*/
#ifndef USE_BSD_EVDEV
#define USE_BSD_EVDEV 0
#endif
#define EVDEV_SCALE 0 /* Scale input, e.g. if touchscreen resolution does not match display resolution */
#if EVDEV_SCALE
#define EVDEV_SCALE_HOR_RES (4096) /* Horizontal resolution of touchscreen */
#define EVDEV_SCALE_VER_RES (4096) /* Vertical resolution of touchscreen */
#endif /*EVDEV_SCALE*/
#if USE_EVDEV || USE_BSD_EVDEV
#define EVDEV_NAME \
"/dev/input/event0" /*You can use the "evtest" Linux tool to get the list of devices and test \
them*/
#define EVDEV_SWAP_AXES 0 /*Swap the x and y axes of the touchscreen*/
#define EVDEV_CALIBRATE \
0 /*Scale and offset the touchscreen coordinates by using maximum and minimum values for each axis*/
#if EVDEV_CALIBRATE
#define EVDEV_HOR_MIN 3800 /*If EVDEV_XXX_MIN > EVDEV_XXX_MAX the XXX axis is automatically inverted*/
#define EVDEV_HOR_MAX 200
#define EVDEV_VER_MIN 200
#define EVDEV_VER_MAX 3800
#endif /*EVDEV_SCALE*/
#define EVDEV_HOR_MIN 0 /*to invert axis swap EVDEV_XXX_MIN by EVDEV_XXX_MAX*/
#define EVDEV_HOR_MAX 4096 /*"evtest" Linux tool can help to get the correct calibraion values>*/
#define EVDEV_VER_MIN 0
#define EVDEV_VER_MAX 4096
#endif /*EVDEV_CALIBRATE*/
#endif /*USE_EVDEV*/
/*-------------------------------

View File

@ -0,0 +1,43 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
#ifndef LV_SYMBOL_MDI_DEF_H
#define LV_SYMBOL_MDI_DEF_H
/* clang-format off */
#ifdef __cplusplus
extern "C" {
#endif
/*----------------------------------------
* Symbols from Material Design Icons font
*--------------------------------------*/
#define LV_SYMBOL_DOWN "\xEE\x85\x80" /* 0xE140, chevron-down */
#define LV_SYMBOL_LEFT "\xEE\x85\x81" /* 0xE141, chevron-left */
#define LV_SYMBOL_RIGHT "\xEE\x85\x82" /* 0xE142, chevron-right */
#define LV_SYMBOL_OK "\xEE\x84\xAC" /* 0xE12C, check */
#define LV_SYMBOL_EYE_OPEN "\xEE\xBF\x86" /* 0xEFC6, lock-open-variant */
#define LV_SYMBOL_EYE_CLOSE "\xEE\x8C\xBE" /* 0xE33E, lock*/
#define LV_SYMBOL_WIFI "\xEE\x96\xA9" /* 0xE5A9, wifi */
#define LV_SYMBOL_KEY "\xEE\x8C\x8B" /* 0xE30B, key-variant */
#define LV_SYMBOL_CLOSE "\xEE\x85\x96" /* 0xE156, close */
#define LV_SYMBOL_NEW_LINE "\xEE\x98\x8C" /* 0xE60C, subdirectory-arrow-left */
#define LV_SYMBOL_BACKSPACE "\xEE\x81\x8D" /* 0xE04D, arrow-left */
/** Invalid symbol at (U+F8FF). If written before a string then `lv_img` will show it as a label*/
#define LV_SYMBOL_DUMMY "\xEF\xA3\xBF"
/*-------------------------------
* Symbols from "normal" font
*-----------------------------*/
#define LV_SYMBOL_BULLET "\xE2\x80\xA2" /* 20042, 0x2022 */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_SYMBOL_MDI_DEF_H*/

View File

@ -1,3 +1,6 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
/* Include the normal default core configuration */
#include "stm32f4xx_hal_conf_default.h"

View File

@ -0,0 +1,161 @@
/* MIT License - Copyright (c) 2019-2024 Francis Van Roie
For full license information read the LICENSE file in the project folder */
/***************************************************
// This file contains the default settings that are
// burned into the compiled firmware.
//
// These default settings can be changed at runtime
//
// To use: Save a copy as user_config_override.h
***************************************************/
#ifndef HASP_USER_CONFIG_OVERRIDE_H
#define HASP_USER_CONFIG_OVERRIDE_H
#define SERIAL_SPEED 115200
/***************************************************
WiFi Settings
**************************************************/
#define WIFI_SSID ""
#define WIFI_PASSWORD ""
/***************************************************
Http Server Settings
**************************************************/
#define HTTP_USERNAME ""
#define HTTP_PASSWORD ""
/***************************************************
MQTT Client Settings
**************************************************/
#define MQTT_HOSTNAME ""
#define MQTT_PORT 1883
#define MQTT_USERNAME ""
#define MQTT_PASSWORD ""
#define MQTT_PREFIX "hasp"
#define MQTT_NODENAME "plate01"
#define MQTT_GROUPNAME "plates"
#define MQTT_TELEPERIOD 60000
#define MQTT_STATEPERIOD 300000
/***************************************************
* OTA Settings
**************************************************/
//#define HASP_USE_ARDUINOOTA 1 // Enable the Arduino OTA service
#define ARDUINOOTA_PORT 3232
#define ARDUINOOTA_PASSWORD ""
#define OTA_URL ""
/***************************************************
* Syslog Settings
**************************************************/
#define HASP_USE_SYSLOG 0
#define SYSLOG_SERVER ""
#define SYSLOG_PORT 514
#define APP_NAME "HASP"
/***************************************************
* Timezone Settings
**************************************************/
#define NTPSERVER1 "pool.ntp.org"
#define NTPSERVER2 "time.nist.gov"
#define NTPSERVER3 "time.google.com"
#define MYTZ \
"CET-1CEST,M3.5.0,M10.5.0/3" // A full list with possible timezones can be found here
// https://gist.github.com/alwynallan/24d96091655391107939
/***************************************************
* Interface Language Settings
**************************************************/
#define HASP_LANGUAGE en_US // English
// #define HASP_LANGUAGE es_ES // Spanish
// #define HASP_LANGUAGE fr_FR // French
// #define HASP_LANGUAGE hu_HU // Hungarian
// #define HASP_LANGUAGE nl_NL // Dutch
// #define HASP_LANGUAGE pt_BR // Brazilian Portuguese
// #define HASP_LANGUAGE pt_PT // Portuguese
// #define HASP_LANGUAGE ro_RO // Romanian
// #define HASP_LANGUAGE de_DE // German
/***************************************************
* Web interface coloring
**************************************************/
// Light theme (default)
#define D_HTTP_COLOR_TEXT "#000" // Global text color - Black
#define D_HTTP_COLOR_BACKGROUND "#fff" // Global background color - White
#define D_HTTP_COLOR_INPUT_TEXT "#000" // Input text color - Black
#define D_HTTP_COLOR_INPUT "#fff" // Input background color - White
#define D_HTTP_COLOR_INPUT_WARNING "#f00" // Input warning border color - Red
#define D_HTTP_COLOR_BUTTON_TEXT "#fff" // Button text color - White
#define D_HTTP_COLOR_BUTTON "#1fa3ec" // Button color - Vivid blue
#define D_HTTP_COLOR_BUTTON_HOVER "#0083cc" // Button color - Olympic blue
#define D_HTTP_COLOR_BUTTON_RESET "#f00" // Restart/Reset button color - red
#define D_HTTP_COLOR_BUTTON_RESET_HOVER "#b00" // Restart/Reset button color - Dark red
#define D_HTTP_COLOR_GROUP "#f3f3f3" // Group container background color
#define D_HTTP_COLOR_GROUP_TEXT "#000" // Group container text color - black
#define D_HTTP_COLOR_FOOTER_TEXT "#0083cc" // Footer text color - Olympic blue
/*
// Dark theme
#define D_HTTP_COLOR_TEXT "#eaeaea" // Global text color - Very light gray
#define D_HTTP_COLOR_BACKGROUND "#252525" // Global background color - Very dark gray (mostly black)
#define D_HTTP_COLOR_INPUT_TEXT "#000" // Input text color - Black
#define D_HTTP_COLOR_INPUT "#ddd" // Input background color - Very light gray
#define D_HTTP_COLOR_INPUT_WARNING "#ff5661" // Warning text color - Brick Red
#define D_HTTP_COLOR_BUTTON_TEXT "#faffff" // Button text color - Very pale (mostly white) cyan
#define D_HTTP_COLOR_BUTTON "#1fa3ec" // Button color - Vivid blue
#define D_HTTP_COLOR_BUTTON_HOVER "#0083cc" // Button color - Olympic Blue
#define D_HTTP_COLOR_BUTTON_RESET "#d43535" // Restart/Reset/Delete button color - Strong red
#define D_HTTP_COLOR_BUTTON_RESET_HOVER "#b00" // Restart/Reset button color - Dark red
#define D_HTTP_COLOR_GROUP "#444" // Group container background color - Dark gray
#define D_HTTP_COLOR_GROUP_TEXT "#fff" // Group container text color - white
#define D_HTTP_COLOR_FOOTER_TEXT "#1fa3ec" // Footer text color - Vivid blue
*/
/***************************************************
* Font Settings
**************************************************/
// #define HASP_FONT_1 robotocondensed_regular_16_latin1 // Use available fonts from src/fonts directory
// #define HASP_FONT_2 robotocondensed_regular_22_latin1
// #define HASP_FONT_3 robotocondensed_regular_40_latin1
// #define HASP_FONT_4 robotocondensed_regular_48_latin1
// #define HASP_FONT_5 robotocondensed_regular_12_latin1
// #define ROBOTOCONDENSED_REGULAR_16_LATIN1 1 // Enable the selected fonts
// #define ROBOTOCONDENSED_REGULAR_22_LATIN1 1
// #define ROBOTOCONDENSED_REGULAR_40_LATIN1 1
// #define ROBOTOCONDENSED_REGULAR_48_LATIN1 1
// #define ROBOTOCONDENSED_REGULAR_12_LATIN1 1
// #define HASP_FONT_SIZE_1 16 // Define used font sizes
// #define HASP_FONT_SIZE_2 22
// #define HASP_FONT_SIZE_3 40
// #define HASP_FONT_SIZE_4 48
// #define HASP_FONT_SIZE_5 12
// #define LV_FONT_DEFAULT &HASP_FONT_1
/***************************************************
* GPIO Settings
**************************************************/
//#define HASP_GPIO_TEMPLATE "[197658,263456,329249,655628,655886,656155,0,0]" // Lanbon L8 3-gang GPIO config
//#define HASP_GPIO_TEMPLATE "[3214348,197658,263456,329249,94699520,0,0,0]" // Lanbon L8 Dimmer GPIO config
/***************************************************
* Other Settings
**************************************************/
//#define HASP_USE_MDNS 0 // Disable MDNS
//#define HASP_USE_CUSTOM 1 // Enable compilation of custom code from /src/custom
//#define HASP_START_CONSOLE 0 // Disable starting of serial console at boot
//#define HASP_START_TELNET 0 // Disable starting of telnet service at boot
//#define HASP_START_HTTP 0 // Disable starting of web interface at boot
//#define HASP_START_FTP 0 // Disable starting of ftp server at boot
//#define LV_MEM_SIZE (64 * 1024U) // 64KiB of lvgl memory (default 48)
//#define LV_VDB_SIZE (32 * 1024U) // 32KiB of lvgl draw buffer (default 32)
//#define HASP_DEBUG_OBJ_TREE // Output all objects to the log on page changes
//#define HASP_LOG_LEVEL LOG_LEVEL_VERBOSE // LOG_LEVEL_* can be DEBUG, VERBOSE, TRACE, INFO, WARNING, ERROR, CRITICAL, ALERT, FATAL, SILENT
//#define HASP_LOG_TASKS // Also log the Taskname and watermark of ESP32 tasks
#endif // HASP_USER_CONFIG_OVERRIDE_H

View File

@ -1,602 +0,0 @@
#include "AXP192.h"
AXP192::AXP192()
{
}
void AXP192::begin(void)
{
Wire1.begin(21, 22);
Wire1.setClock(400000);
//AXP192 30H
Write1Byte(0x30, (Read8bit(0x30) & 0x04) | 0X02);
Serial.printf("axp: vbus limit off\n");
//AXP192 GPIO1:OD OUTPUT
Write1Byte(0x92, Read8bit(0x92) & 0xf8);
Serial.printf("axp: gpio1 init\n");
//AXP192 GPIO2:OD OUTPUT
Write1Byte(0x93, Read8bit(0x93) & 0xf8);
Serial.printf("axp: gpio2 init\n");
//AXP192 RTC CHG
Write1Byte(0x35, (Read8bit(0x35) & 0x1c) | 0xa2);
Serial.printf("axp: rtc battery charging enabled\n");
SetESPVoltage(3350);
Serial.printf("axp: esp32 power voltage was set to 3.35v\n");
SetLcdVoltage(2800);
Serial.printf("axp: lcd backlight voltage was set to 2.80v\n");
SetLDOVoltage(2, 3300); //Periph power voltage preset (LCD_logic, SD card)
Serial.printf("axp: lcd logic and sdcard voltage preset to 3.3v\n");
SetLDOVoltage(3, 2000); //Vibrator power voltage preset
Serial.printf("axp: vibrator voltage preset to 2v\n");
SetLDOEnable(2, true);
SetDCDC3(true); // LCD backlight
SetLed(true);
SetCHGCurrent(kCHG_100mA);
//SetAxpPriphPower(1);
//Serial.printf("axp: lcd_logic and sdcard power enabled\n\n");
//pinMode(39, INPUT_PULLUP);
//AXP192 GPIO4
Write1Byte(0X95, (Read8bit(0x95) & 0x72) | 0X84);
Write1Byte(0X36, 0X4C);
Write1Byte(0x82,0xff);
SetLCDRSet(0);
delay(100);
SetLCDRSet(1);
delay(100);
// I2C_WriteByteDataAt(0X15,0XFE,0XFF);
// bus power mode_output
SetBusPowerMode(0);
}
void AXP192::Write1Byte(uint8_t Addr, uint8_t Data)
{
Wire1.beginTransmission(0x34);
Wire1.write(Addr);
Wire1.write(Data);
Wire1.endTransmission();
}
uint8_t AXP192::Read8bit(uint8_t Addr)
{
Wire1.beginTransmission(0x34);
Wire1.write(Addr);
Wire1.endTransmission();
Wire1.requestFrom(0x34, 1);
return Wire1.read();
}
uint16_t AXP192::Read12Bit(uint8_t Addr)
{
uint16_t Data = 0;
uint8_t buf[2];
ReadBuff(Addr, 2, buf);
Data = ((buf[0] << 4) + buf[1]); //
return Data;
}
uint16_t AXP192::Read13Bit(uint8_t Addr)
{
uint16_t Data = 0;
uint8_t buf[2];
ReadBuff(Addr, 2, buf);
Data = ((buf[0] << 5) + buf[1]); //
return Data;
}
uint16_t AXP192::Read16bit(uint8_t Addr)
{
uint16_t ReData = 0;
Wire1.beginTransmission(0x34);
Wire1.write(Addr);
Wire1.endTransmission();
Wire1.requestFrom(0x34, 2);
for (int i = 0; i < 2; i++)
{
ReData <<= 8;
ReData |= Wire1.read();
}
return ReData;
}
uint32_t AXP192::Read24bit(uint8_t Addr)
{
uint32_t ReData = 0;
Wire1.beginTransmission(0x34);
Wire1.write(Addr);
Wire1.endTransmission();
Wire1.requestFrom(0x34, 3);
for (int i = 0; i < 3; i++)
{
ReData <<= 8;
ReData |= Wire1.read();
}
return ReData;
}
uint32_t AXP192::Read32bit(uint8_t Addr)
{
uint32_t ReData = 0;
Wire1.beginTransmission(0x34);
Wire1.write(Addr);
Wire1.endTransmission();
Wire1.requestFrom(0x34, 2);
for (int i = 0; i < 4; i++)
{
ReData <<= 8;
ReData |= Wire1.read();
}
return ReData;
}
void AXP192::ReadBuff(uint8_t Addr, uint8_t Size, uint8_t *Buff)
{
Wire1.beginTransmission(0x34);
Wire1.write(Addr);
Wire1.endTransmission();
Wire1.requestFrom(0x34, (int)Size);
for (int i = 0; i < Size; i++)
{
*(Buff + i) = Wire1.read();
}
}
void AXP192::ScreenBreath(uint8_t brightness)
{
if (brightness > 12)
{
brightness = 12;
}
uint8_t buf = Read8bit(0x28);
Write1Byte(0x28, ((buf & 0x0f) | (brightness << 4)));
}
bool AXP192::GetBatState()
{
if (Read8bit(0x01) | 0x20)
return true;
else
return false;
}
//---------coulombcounter_from_here---------
//enable: void EnableCoulombcounter(void);
//disable: void DisableCOulombcounter(void);
//stop: void StopCoulombcounter(void);
//clear: void ClearCoulombcounter(void);
//get charge data: uint32_t GetCoulombchargeData(void);
//get discharge data: uint32_t GetCoulombdischargeData(void);
//get coulomb val affter calculation: float GetCoulombData(void);
//------------------------------------------
void AXP192::EnableCoulombcounter(void)
{
Write1Byte(0xB8, 0x80);
}
void AXP192::DisableCoulombcounter(void)
{
Write1Byte(0xB8, 0x00);
}
void AXP192::StopCoulombcounter(void)
{
Write1Byte(0xB8, 0xC0);
}
void AXP192::ClearCoulombcounter(void)
{
Write1Byte(0xB8, 0xA0);
}
uint32_t AXP192::GetCoulombchargeData(void)
{
return Read32bit(0xB0);
}
uint32_t AXP192::GetCoulombdischargeData(void)
{
return Read32bit(0xB4);
}
float AXP192::GetCoulombData(void)
{
uint32_t coin = 0;
uint32_t coout = 0;
coin = GetCoulombchargeData();
coout = GetCoulombdischargeData();
//c = 65536 * current_LSB * (coin - coout) / 3600 / ADC rate
//Adc rate can be read from 84H ,change this variable if you change the ADC reate
float ccc = 65536 * 0.5 * (coin - coout) / 3600.0 / 25.0;
return ccc;
}
// Cut all power, except for LDO1 (RTC)
void AXP192::PowerOff(void)
{
Write1Byte(0x32, Read8bit(0x32) | 0b10000000);
}
void AXP192::SetAdcState(bool state)
{
// Enable / Disable all ADCs
Write1Byte(0x82, state ? 0xff : 0x00);
}
void AXP192::PrepareToSleep(void)
{
// Disable ADCs
SetAdcState(false);
// Turn LED off
SetLed(false);
// Turn LCD backlight off
SetDCDC3(false);
}
void AXP192::RestoreFromLightSleep(void)
{
// Turn LCD backlight on
SetDCDC3(true);
// Turn LED on
SetLed(true);
// Enable ADCs
SetAdcState(true);
}
uint8_t AXP192::GetWarningLeve(void)
{
Wire1.beginTransmission(0x34);
Wire1.write(0x47);
Wire1.endTransmission();
Wire1.requestFrom(0x34, 1);
uint8_t buf = Wire1.read();
return (buf & 0x01);
}
// -- sleep
void AXP192::DeepSleep(uint64_t time_in_us)
{
PrepareToSleep();
if (time_in_us > 0)
{
esp_sleep_enable_timer_wakeup(time_in_us);
}
else
{
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER);
}
(time_in_us == 0) ? esp_deep_sleep_start() : esp_deep_sleep(time_in_us);
// Never reached - after deep sleep ESP32 restarts
}
void AXP192::LightSleep(uint64_t time_in_us)
{
PrepareToSleep();
if (time_in_us > 0)
{
esp_sleep_enable_timer_wakeup(time_in_us);
}
else
{
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER);
}
esp_light_sleep_start();
RestoreFromLightSleep();
}
uint8_t AXP192::GetWarningLevel(void)
{
return Read8bit(0x47) & 0x01;
}
float AXP192::GetBatVoltage()
{
float ADCLSB = 1.1 / 1000.0;
uint16_t ReData = Read12Bit(0x78);
return ReData * ADCLSB;
}
float AXP192::GetBatCurrent()
{
float ADCLSB = 0.5;
uint16_t CurrentIn = Read13Bit(0x7A);
uint16_t CurrentOut = Read13Bit(0x7C);
return (CurrentIn - CurrentOut) * ADCLSB;
}
float AXP192::GetVinVoltage()
{
float ADCLSB = 1.7 / 1000.0;
uint16_t ReData = Read12Bit(0x56);
return ReData * ADCLSB;
}
float AXP192::GetVinCurrent()
{
float ADCLSB = 0.625;
uint16_t ReData = Read12Bit(0x58);
return ReData * ADCLSB;
}
float AXP192::GetVBusVoltage()
{
float ADCLSB = 1.7 / 1000.0;
uint16_t ReData = Read12Bit(0x5A);
return ReData * ADCLSB;
}
float AXP192::GetVBusCurrent()
{
float ADCLSB = 0.375;
uint16_t ReData = Read12Bit(0x5C);
return ReData * ADCLSB;
}
float AXP192::GetTempInAXP192()
{
float ADCLSB = 0.1;
const float OFFSET_DEG_C = -144.7;
uint16_t ReData = Read12Bit(0x5E);
return OFFSET_DEG_C + ReData * ADCLSB;
}
float AXP192::GetBatPower()
{
float VoltageLSB = 1.1;
float CurrentLCS = 0.5;
uint32_t ReData = Read24bit(0x70);
return VoltageLSB * CurrentLCS * ReData / 1000.0;
}
float AXP192::GetBatChargeCurrent()
{
float ADCLSB = 0.5;
uint16_t ReData = Read12Bit(0x7A);
return ReData * ADCLSB;
}
float AXP192::GetAPSVoltage()
{
float ADCLSB = 1.4 / 1000.0;
uint16_t ReData = Read12Bit(0x7E);
return ReData * ADCLSB;
}
float AXP192::GetBatCoulombInput()
{
uint32_t ReData = Read32bit(0xB0);
return ReData * 65536 * 0.5 / 3600 / 25.0;
}
float AXP192::GetBatCoulombOut()
{
uint32_t ReData = Read32bit(0xB4);
return ReData * 65536 * 0.5 / 3600 / 25.0;
}
void AXP192::SetCoulombClear()
{
Write1Byte(0xB8, 0x20);
}
void AXP192::SetLDO2(bool State)
{
uint8_t buf = Read8bit(0x12);
if (State == true)
buf = (1 << 2) | buf;
else
buf = ~(1 << 2) & buf;
Write1Byte(0x12, buf);
}
void AXP192::SetDCDC3(bool State)
{
uint8_t buf = Read8bit(0x12);
if (State == true)
buf = (1 << 1) | buf;
else
buf = ~(1 << 1) & buf;
Write1Byte(0x12, buf);
}
uint8_t AXP192::AXPInState()
{
return Read8bit(0x00);
}
bool AXP192::isACIN()
{
return ( Read8bit(0x00) & 0x80 ) ? true : false;
}
bool AXP192::isCharging()
{
return ( Read8bit(0x00) & 0x04 ) ? true : false;
}
bool AXP192::isVBUS()
{
return ( Read8bit(0x00) & 0x20 ) ? true : false;
}
void AXP192::SetLDOVoltage(uint8_t number, uint16_t voltage)
{
voltage = (voltage > 3300) ? 15 : (voltage / 100) - 18;
switch (number)
{
//uint8_t reg, data;
case 2:
Write1Byte(0x28, (Read8bit(0x28) & 0X0F) | (voltage << 4));
break;
case 3:
Write1Byte(0x28, (Read8bit(0x28) & 0XF0) | voltage);
break;
}
}
void AXP192::SetDCVoltage(uint8_t number, uint16_t voltage)
{
uint8_t addr;
if (number > 2)
return;
voltage = (voltage < 700) ? 0 : (voltage - 700) / 25;
switch (number)
{
case 0:
addr = 0x26;
break;
case 1:
addr = 0x25;
break;
case 2:
addr = 0x27;
break;
}
Write1Byte(addr, (Read8bit(addr) & 0X80) | (voltage & 0X7F));
}
void AXP192::SetESPVoltage(uint16_t voltage)
{
if (voltage >= 3000 && voltage <= 3400)
{
SetDCVoltage(0, voltage);
}
}
void AXP192::SetLcdVoltage(uint16_t voltage)
{
if (voltage >= 2500 && voltage <= 3300)
{
SetDCVoltage(2, voltage);
}
}
void AXP192::SetLDOEnable(uint8_t number, bool state)
{
uint8_t mark = 0x01;
if ((number < 2) || (number > 3))
return;
mark <<= number;
if (state)
{
Write1Byte(0x12, (Read8bit(0x12) | mark));
}
else
{
Write1Byte(0x12, (Read8bit(0x12) & (~mark)));
}
}
void AXP192::SetLCDRSet(bool state)
{
uint8_t reg_addr = 0x96;
uint8_t gpio_bit = 0x02;
uint8_t data;
data = Read8bit(reg_addr);
if (state)
{
data |= gpio_bit;
}
else
{
data &= ~gpio_bit;
}
Write1Byte(reg_addr, data);
}
void AXP192::SetBusPowerMode(uint8_t state)
{
uint8_t data;
if (state == 0)
{
data = Read8bit(0x91);
Write1Byte(0x91, (data & 0X0F) | 0XF0);
data = Read8bit(0x90);
Write1Byte(0x90, (data & 0XF8) | 0X02); //set GPIO0 to LDO OUTPUT , pullup N_VBUSEN to disable supply from BUS_5V
data = Read8bit(0x91);
data = Read8bit(0x12); //read reg 0x12
Write1Byte(0x12, data | 0x40); //set EXTEN to enable 5v boost
}
else
{
data = Read8bit(0x12); //read reg 0x10
Write1Byte(0x12, data & 0XBF); //set EXTEN to disable 5v boost
//delay(2000);
data = Read8bit(0x90);
Write1Byte(0x90, (data & 0xF8) | 0X01); //set GPIO0 to float , using enternal pulldown resistor to enable supply from BUS_5VS
}
}
void AXP192::SetLed(uint8_t state)
{
uint8_t reg_addr=0x94;
uint8_t data;
data=Read8bit(reg_addr);
if(state)
{
data=data&0XFD;
}
else
{
data|=0X02;
}
Write1Byte(reg_addr,data);
}
//set led state(GPIO high active,set 1 to enable amplifier)
void AXP192::SetSpkEnable(uint8_t state)
{
uint8_t reg_addr=0x94;
uint8_t gpio_bit=0x04;
uint8_t data;
data=Read8bit(reg_addr);
if(state)
{
data|=gpio_bit;
}
else
{
data&=~gpio_bit;
}
Write1Byte(reg_addr,data);
}
void AXP192::SetCHGCurrent(uint8_t state)
{
uint8_t data = Read8bit(0x33);
data &= 0xf0;
data = data | ( state & 0x0f );
Write1Byte(0x33,data);
}

View File

@ -1,106 +0,0 @@
#ifndef __AXP192_H__
#define __AXP192_H__
#include <Wire.h>
#include <Arduino.h>
#define SLEEP_MSEC(us) (((uint64_t)us) * 1000L)
#define SLEEP_SEC(us) (((uint64_t)us) * 1000000L)
#define SLEEP_MIN(us) (((uint64_t)us) * 60L * 1000000L)
#define SLEEP_HR(us) (((uint64_t)us) * 60L * 60L * 1000000L)
#define AXP_ADDR 0X34
#define PowerOff(x) SetSleep(x)
class AXP192 {
public:
enum CHGCurrent{
kCHG_100mA = 0,
kCHG_190mA,
kCHG_280mA,
kCHG_360mA,
kCHG_450mA,
kCHG_550mA,
kCHG_630mA,
kCHG_700mA,
kCHG_780mA,
kCHG_880mA,
kCHG_960mA,
kCHG_1000mA,
kCHG_1080mA,
kCHG_1160mA,
kCHG_1240mA,
kCHG_1320mA,
};
AXP192();
void begin(void);
void ScreenBreath(uint8_t brightness);
bool GetBatState();
void EnableCoulombcounter(void);
void DisableCoulombcounter(void);
void StopCoulombcounter(void);
void ClearCoulombcounter(void);
uint32_t GetCoulombchargeData(void);
uint32_t GetCoulombdischargeData(void);
float GetCoulombData(void);
void PowerOff(void);
void SetAdcState(bool state);
// -- sleep
void PrepareToSleep(void);
void RestoreFromLightSleep(void);
void DeepSleep(uint64_t time_in_us = 0);
void LightSleep(uint64_t time_in_us = 0);
uint8_t GetWarningLeve(void);
public:
// void SetChargeVoltage( uint8_t );
// void SetChargeCurrent( uint8_t );
float GetBatVoltage();
float GetBatCurrent();
float GetVinVoltage();
float GetVinCurrent();
float GetVBusVoltage();
float GetVBusCurrent();
float GetTempInAXP192();
float GetBatPower();
float GetBatChargeCurrent();
float GetAPSVoltage();
float GetBatCoulombInput();
float GetBatCoulombOut();
uint8_t GetWarningLevel(void);
void SetCoulombClear();
void SetLDO2( bool State );
void SetDCDC3( bool State );
uint8_t AXPInState();
bool isACIN();
bool isCharging();
bool isVBUS();
void SetLDOVoltage(uint8_t number , uint16_t voltage);
void SetDCVoltage(uint8_t number , uint16_t voltage);
void SetESPVoltage(uint16_t voltage);
void SetLcdVoltage(uint16_t voltage);
void SetLDOEnable( uint8_t number ,bool state );
void SetLCDRSet( bool state );
void SetBusPowerMode( uint8_t state );
void SetLed(uint8_t state);
void SetSpkEnable(uint8_t state);
void SetCHGCurrent(uint8_t state);
private:
void Write1Byte( uint8_t Addr , uint8_t Data );
uint8_t Read8bit( uint8_t Addr );
uint16_t Read12Bit( uint8_t Addr);
uint16_t Read13Bit( uint8_t Addr);
uint16_t Read16bit( uint8_t Addr );
uint32_t Read24bit( uint8_t Addr );
uint32_t Read32bit( uint8_t Addr );
void ReadBuff( uint8_t Addr , uint8_t Size , uint8_t *Buff );
};
#endif

View File

@ -29,85 +29,87 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "ArduinoLog.h"
#ifdef ARDUINO
#include "ArduinoLog.h"
void Logging::begin(int level, bool showLevel)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
setLevel(0, level);
setLevel(1, level);
setLevel(2, level);
setShowLevel(0, showLevel);
#endif
#endif
}
void Logging::registerOutput(uint8_t slot, Print * logOutput, int level, bool showLevel)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
if(slot >= 3) return;
setLevel(slot, level);
setShowLevel(slot, showLevel);
_logOutput[slot] = logOutput;
#endif
#endif
}
void Logging::unregisterOutput(uint8_t slot)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
if(slot >= 3) return;
_logOutput[slot] = NULL;
#endif
#endif
}
void Logging::setLevel(uint8_t slot, int level)
{
#ifndef DISABLE_LOGGING
_level[slot] = constrain(level, LOG_LEVEL_SILENT, LOG_LEVEL_VERBOSE);
#endif
#ifndef DISABLE_LOGGING
_level[slot] = constrain(level, LOG_LEVEL_SILENT, LOG_LEVEL_OUTPUT);
#endif
}
int Logging::getLevel(uint8_t slot) const
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
return _level[slot];
#else
#else
return 0;
#endif
#endif
}
void Logging::setShowLevel(uint8_t slot, bool showLevel)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
_showLevel[slot] = showLevel;
#endif
#endif
}
bool Logging::getShowLevel(uint8_t slot) const
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
return _showLevel[slot];
#else
#else
return false;
#endif
#endif
}
void Logging::setPrefix(printfunction f)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
_prefix = f;
#endif
#endif
}
void Logging::setSuffix(printfunction f)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
_suffix = f;
#endif
#endif
}
void Logging::print(Print * logOutput, const __FlashStringHelper * format, va_list args)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
PGM_P p = reinterpret_cast<PGM_P>(format);
char c = pgm_read_byte(p++);
for(; c != 0; c = pgm_read_byte(p++)) {
@ -118,12 +120,12 @@ void Logging::print(Print * logOutput, const __FlashStringHelper * format, va_li
logOutput->print(c);
}
}
#endif
#endif
}
void Logging::print(Print * logOutput, const char * format, va_list args)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
for(; *format != 0; ++format) {
if(*format == '%') {
++format;
@ -132,12 +134,12 @@ void Logging::print(Print * logOutput, const char * format, va_list args)
logOutput->print(*format);
}
}
#endif
#endif
}
void Logging::printFormat(Print * logOutput, const char format, va_list * args)
{
#ifndef DISABLE_LOGGING
#ifndef DISABLE_LOGGING
if(format == '%') {
logOutput->print(format);
} else if(format == 's') {
@ -179,7 +181,9 @@ void Logging::printFormat(Print * logOutput, const char format, va_list * args)
logOutput->print(F("false"));
}
}
#endif
#endif
}
Logging Log = Logging();
#endif // ARDUINO

View File

@ -17,12 +17,12 @@ Licensed under the MIT License <http://opensource.org/licenses/MIT>.
#include <inttypes.h>
#include <stdarg.h>
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#include <Arduino.h>
#else
#include "WProgram.h"
#endif
//#include "StringStream.h"
typedef void (*printfunction)(uint8_t tag, int level, Print *);
typedef void (*printfunction)(uint8_t tag, int level, Print*);
//#include <stdint.h>
//#include <stddef.h>
@ -39,10 +39,11 @@ typedef void (*printfunction)(uint8_t tag, int level, Print *);
#define LOG_LEVEL_ERROR 3
#define LOG_LEVEL_WARNING 4
#define LOG_LEVEL_NOTICE 5
#define LOG_LEVEL_INFO 6
#define LOG_LEVEL_INFO 5
#define LOG_LEVEL_TRACE 6
#define LOG_LEVEL_VERBOSE 7
#define LOG_LEVEL_DEBUG 7
#define LOG_LEVEL_DEBUG 8
#define LOG_LEVEL_OUTPUT 9
//#define CR "\n"
#define LOGGING_VERSION 1_0_3
@ -80,7 +81,8 @@ typedef void (*printfunction)(uint8_t tag, int level, Print *);
* 3 - LOG_LEVEL_WARNING errors and warnings
* 4 - LOG_LEVEL_NOTICE errors, warnings and notices
* 5 - LOG_LEVEL_TRACE errors, warnings, notices, traces
* 6 - LOG_LEVEL_VERBOSE all
* 6 - LOG_LEVEL_VERBOSE subprocesses and steps
* 7 - LOG_LEVEL_DEBUG all
*/
class Logging {
@ -114,7 +116,7 @@ class Logging {
* \return void
*
*/
void registerOutput(uint8_t slot, Print * logOutput, int level, bool showLevel);
void registerOutput(uint8_t slot, Print* logOutput, int level, bool showLevel);
/**
* Unregister the printer in a certain slot
@ -261,7 +263,7 @@ class Logging {
/**
* Output a verbose message. Output message contains
* V: followed by original message
* Debug messages are printed out at
* Verbose messages are printed out at
* loglevels >= LOG_LEVEL_VERBOSE
*
* \param msg format string to output
@ -275,12 +277,45 @@ class Logging {
#endif
}
/**
* Output a debug message. Output message contains
* V: followed by original message
* Debug messages are printed out at
* loglevels >= LOG_LEVEL_DEBUG
*
* \param msg format string to output
* \param ... any number of variables
* \return void
*/
template <class T, typename... Args> void debug(uint8_t tag, T msg, Args... args)
{
#ifndef DISABLE_LOGGING
printLevel(tag, LOG_LEVEL_DEBUG, msg, args...);
#endif
}
/**
* Output a normal message. Output message contains
* V: followed by original message
* Output messages are always printed out
*
* \param msg format string to output
* \param ... any number of variables
* \return void
*/
template <class T, typename... Args> void output(uint8_t tag, T msg, Args... args)
{
#ifndef DISABLE_LOGGING
printLevel(tag, LOG_LEVEL_OUTPUT, msg, args...);
#endif
}
private:
void print(Print * logOutput, const char * format, va_list args);
void print(Print* logOutput, const char* format, va_list args);
void print(Print * logOutput, const __FlashStringHelper * format, va_list args);
void print(Print* logOutput, const __FlashStringHelper* format, va_list args);
void printFormat(Print * logOutput, const char format, va_list * args);
void printFormat(Print* logOutput, const char format, va_list* args);
template <class T> void printLevel(uint8_t tag, int level, T msg, ...)
{
@ -308,7 +343,7 @@ class Logging {
#ifndef DISABLE_LOGGING
int _level[3];
bool _showLevel[3];
Print * _logOutput[3];
Print* _logOutput[3] = {NULL,NULL,NULL};
printfunction _prefix = NULL;
printfunction _suffix = NULL;

View File

@ -0,0 +1,125 @@
#include "Arduino_RGBPanel_mod.h"
#if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)
Arduino_RGBPanel_Mod::Arduino_RGBPanel_Mod(
int8_t de, int8_t vsync, int8_t hsync, int8_t pclk,
int8_t r0, int8_t r1, int8_t r2, int8_t r3, int8_t r4,
int8_t g0, int8_t g1, int8_t g2, int8_t g3, int8_t g4, int8_t g5,
int8_t b0, int8_t b1, int8_t b2, int8_t b3, int8_t b4,
uint16_t hsync_polarity, uint16_t hsync_front_porch, uint16_t hsync_pulse_width, uint16_t hsync_back_porch,
uint16_t vsync_polarity, uint16_t vsync_front_porch, uint16_t vsync_pulse_width, uint16_t vsync_back_porch,
uint16_t pclk_active_neg, int32_t prefer_speed, bool useBigEndian)
: _de(de), _vsync(vsync), _hsync(hsync), _pclk(pclk),
_r0(r0), _r1(r1), _r2(r2), _r3(r3), _r4(r4),
_g0(g0), _g1(g1), _g2(g2), _g3(g3), _g4(g4), _g5(g5),
_b0(b0), _b1(b1), _b2(b2), _b3(b3), _b4(b4),
_hsync_polarity(hsync_polarity), _hsync_front_porch(hsync_front_porch), _hsync_pulse_width(hsync_pulse_width), _hsync_back_porch(hsync_back_porch),
_vsync_polarity(vsync_polarity), _vsync_front_porch(vsync_front_porch), _vsync_pulse_width(vsync_pulse_width), _vsync_back_porch(vsync_back_porch),
_pclk_active_neg(pclk_active_neg), _prefer_speed(prefer_speed), _useBigEndian(useBigEndian)
{
}
void Arduino_RGBPanel_Mod::begin(int32_t speed)
{
if (speed == GFX_NOT_DEFINED)
{
#ifdef CONFIG_SPIRAM_MODE_QUAD
_speed = 6000000L;
#else
_speed = 12000000L;
#endif
}
else
{
_speed = speed;
}
}
uint16_t *Arduino_RGBPanel_Mod::getFrameBuffer(int16_t w, int16_t h)
{
esp_lcd_rgb_panel_config_t *_panel_config = (esp_lcd_rgb_panel_config_t *)heap_caps_calloc(1, sizeof(esp_lcd_rgb_panel_config_t), MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL);
_panel_config->clk_src = LCD_CLK_SRC_PLL160M;
_panel_config->timings.pclk_hz = (_prefer_speed == GFX_NOT_DEFINED) ? _speed : _prefer_speed;
_panel_config->timings.h_res = w;
_panel_config->timings.v_res = h;
// The following parameters should refer to LCD spec
_panel_config->timings.hsync_pulse_width = _hsync_pulse_width;
_panel_config->timings.hsync_back_porch = _hsync_back_porch;
_panel_config->timings.hsync_front_porch = _hsync_front_porch;
_panel_config->timings.vsync_pulse_width = _vsync_pulse_width;
_panel_config->timings.vsync_back_porch = _vsync_back_porch;
_panel_config->timings.vsync_front_porch = _vsync_front_porch;
_panel_config->timings.flags.hsync_idle_low = (_hsync_polarity == 0) ? 1 : 0;
_panel_config->timings.flags.vsync_idle_low = (_vsync_polarity == 0) ? 1 : 0;
_panel_config->timings.flags.de_idle_high = 0;
_panel_config->timings.flags.pclk_active_neg = _pclk_active_neg;
_panel_config->timings.flags.pclk_idle_high = 0;
_panel_config->data_width = 16; // RGB565 in parallel mode, thus 16bit in width
_panel_config->sram_trans_align = 8;
_panel_config->psram_trans_align = 64;
_panel_config->hsync_gpio_num = _hsync;
_panel_config->vsync_gpio_num = _vsync;
_panel_config->de_gpio_num = _de;
_panel_config->pclk_gpio_num = _pclk;
if (_useBigEndian)
{
_panel_config->data_gpio_nums[0] = _g3;
_panel_config->data_gpio_nums[1] = _g4;
_panel_config->data_gpio_nums[2] = _g5;
_panel_config->data_gpio_nums[3] = _r0;
_panel_config->data_gpio_nums[4] = _r1;
_panel_config->data_gpio_nums[5] = _r2;
_panel_config->data_gpio_nums[6] = _r3;
_panel_config->data_gpio_nums[7] = _r4;
_panel_config->data_gpio_nums[8] = _b0;
_panel_config->data_gpio_nums[9] = _b1;
_panel_config->data_gpio_nums[10] = _b2;
_panel_config->data_gpio_nums[11] = _b3;
_panel_config->data_gpio_nums[12] = _b4;
_panel_config->data_gpio_nums[13] = _g0;
_panel_config->data_gpio_nums[14] = _g1;
_panel_config->data_gpio_nums[15] = _g2;
}
else
{
_panel_config->data_gpio_nums[0] = _b0;
_panel_config->data_gpio_nums[1] = _b1;
_panel_config->data_gpio_nums[2] = _b2;
_panel_config->data_gpio_nums[3] = _b3;
_panel_config->data_gpio_nums[4] = _b4;
_panel_config->data_gpio_nums[5] = _g0;
_panel_config->data_gpio_nums[6] = _g1;
_panel_config->data_gpio_nums[7] = _g2;
_panel_config->data_gpio_nums[8] = _g3;
_panel_config->data_gpio_nums[9] = _g4;
_panel_config->data_gpio_nums[10] = _g5;
_panel_config->data_gpio_nums[11] = _r0;
_panel_config->data_gpio_nums[12] = _r1;
_panel_config->data_gpio_nums[13] = _r2;
_panel_config->data_gpio_nums[14] = _r3;
_panel_config->data_gpio_nums[15] = _r4;
}
_panel_config->disp_gpio_num = GPIO_NUM_NC;
_panel_config->flags.disp_active_low = 0;
_panel_config->flags.relax_on_idle = 0;
_panel_config->flags.fb_in_psram = 1; // allocate frame buffer in PSRAM
ESP_ERROR_CHECK(esp_lcd_new_rgb_panel(_panel_config, &_panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_reset(_panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_init(_panel_handle));
uint16_t color = random(0xffff);
ESP_ERROR_CHECK(_panel_handle->draw_bitmap(_panel_handle, 0, 0, 1, 1, &color));
_rgb_panel = __containerof(_panel_handle, esp_rgb_panel_t, base);
return (uint16_t *)_rgb_panel->fb;
}
#endif // #if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)

View File

@ -0,0 +1,102 @@
#ifdef HASP_USE_ARDUINOGFX
#include "Arduino.h"
#include "Arduino_DataBus.h"
#endif
#if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)
#include "databus/Arduino_ESP32RGBPanel.h" // struct esp_rgb_panel_t
#ifndef _ARDUINO_RGBPANEL_MOD_H_
#define _ARDUINO_RGBPANEL_MOD_H_
#include "esp_lcd_panel_io.h"
#include "esp_lcd_panel_rgb.h"
#include "esp_lcd_panel_vendor.h"
#include "esp_lcd_panel_ops.h"
#include "esp_lcd_panel_interface.h"
#include "esp_private/gdma.h"
#include "esp_pm.h"
#include "hal/dma_types.h"
#include "hal/lcd_hal.h"
#include "hal/lcd_ll.h"
#include "esp32s3/rom/cache.h"
// This function is located in ROM (also see esp_rom/${target}/ld/${target}.rom.ld)
extern int Cache_WriteBack_Addr(uint32_t addr, uint32_t size);
// extract from esp-idf esp_lcd_rgb_panel.c
/*struct esp_rgb_panel_t
{
esp_lcd_panel_t base; // Base class of generic lcd panel
int panel_id; // LCD panel ID
lcd_hal_context_t hal; // Hal layer object
size_t data_width; // Number of data lines (e.g. for RGB565, the data width is 16)
size_t sram_trans_align; // Alignment for framebuffer that allocated in SRAM
size_t psram_trans_align; // Alignment for framebuffer that allocated in PSRAM
int disp_gpio_num; // Display control GPIO, which is used to perform action like "disp_off"
intr_handle_t intr; // LCD peripheral interrupt handle
esp_pm_lock_handle_t pm_lock; // Power management lock
size_t num_dma_nodes; // Number of DMA descriptors that used to carry the frame buffer
uint8_t *fb; // Frame buffer
size_t fb_size; // Size of frame buffer
int data_gpio_nums[SOC_LCD_RGB_DATA_WIDTH]; // GPIOs used for data lines, we keep these GPIOs for action like "invert_color"
size_t resolution_hz; // Peripheral clock resolution
esp_lcd_rgb_timing_t timings; // RGB timing parameters (e.g. pclk, sync pulse, porch width)
gdma_channel_handle_t dma_chan; // DMA channel handle
esp_lcd_rgb_panel_frame_trans_done_cb_t on_frame_trans_done; // Callback, invoked after frame trans done
void *user_ctx; // Reserved user's data of callback functions
int x_gap; // Extra gap in x coordinate, it's used when calculate the flush window
int y_gap; // Extra gap in y coordinate, it's used when calculate the flush window
struct
{
unsigned int disp_en_level : 1; // The level which can turn on the screen by `disp_gpio_num`
unsigned int stream_mode : 1; // If set, the LCD transfers data continuously, otherwise, it stops refreshing the LCD when transaction done
unsigned int fb_in_psram : 1; // Whether the frame buffer is in PSRAM
} flags;
dma_descriptor_t dma_nodes[]; // DMA descriptor pool of size `num_dma_nodes`
};*/
class Arduino_RGBPanel_Mod
{
public:
Arduino_RGBPanel_Mod(
int8_t de, int8_t vsync, int8_t hsync, int8_t pclk,
int8_t r0, int8_t r1, int8_t r2, int8_t r3, int8_t r4,
int8_t g0, int8_t g1, int8_t g2, int8_t g3, int8_t g4, int8_t g5,
int8_t b0, int8_t b1, int8_t b2, int8_t b3, int8_t b4,
uint16_t hsync_polarity, uint16_t hsync_front_porch, uint16_t hsync_pulse_width, uint16_t hsync_back_porch,
uint16_t vsync_polarity, uint16_t vsync_front_porch, uint16_t vsync_pulse_width, uint16_t vsync_back_porch,
uint16_t pclk_active_neg = 0, int32_t prefer_speed = GFX_NOT_DEFINED, bool useBigEndian = false);
void begin(int32_t speed = GFX_NOT_DEFINED);
uint16_t *getFrameBuffer(int16_t w, int16_t h);
esp_lcd_panel_handle_t _panel_handle = NULL;
protected:
private:
int32_t _speed;
int8_t _de, _vsync, _hsync, _pclk;
int8_t _r0, _r1, _r2, _r3, _r4;
int8_t _g0, _g1, _g2, _g3, _g4, _g5;
int8_t _b0, _b1, _b2, _b3, _b4;
uint16_t _hsync_polarity;
uint16_t _hsync_front_porch;
uint16_t _hsync_pulse_width;
uint16_t _hsync_back_porch;
uint16_t _vsync_polarity;
uint16_t _vsync_front_porch;
uint16_t _vsync_pulse_width;
uint16_t _vsync_back_porch;
uint16_t _pclk_active_neg;
int32_t _prefer_speed;
bool _useBigEndian;
esp_rgb_panel_t *_rgb_panel;
};
#endif // _ARDUINO_ESP32RGBPANEL_H_
#endif // #if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)

View File

@ -0,0 +1,290 @@
#include "Arduino_RGB_Display_mod.h"
#if defined(ESP32) && defined(CONFIG_IDF_TARGET_ESP32S3) && defined(HASP_USE_ARDUINOGFX)
#include "Arduino_GFX.h"
#include "Arduino_DataBus.h"
#include "Arduino_RGB_Display_mod.h"
Arduino_RGB_Display_Mod::Arduino_RGB_Display_Mod(int16_t w, int16_t h, Arduino_RGBPanel_Mod* rgbpanel, uint8_t r,
bool auto_flush, Arduino_DataBus* bus, int8_t rst,
const uint8_t* init_operations, size_t init_operations_len)
: Arduino_GFX(w, h), _rgbpanel(rgbpanel), _auto_flush(auto_flush), _bus(bus), _rst(rst),
_init_operations(init_operations), _init_operations_len(init_operations_len)
{
_framebuffer_size = w * h * 2;
_rotation = r;
}
bool Arduino_RGB_Display_Mod::begin(int32_t speed)
{
_rgbpanel->begin(speed);
if(_bus) {
_bus->begin();
}
if(_rst != GFX_NOT_DEFINED) {
pinMode(_rst, OUTPUT);
digitalWrite(_rst, HIGH);
delay(100);
digitalWrite(_rst, LOW);
delay(120);
digitalWrite(_rst, HIGH);
delay(120);
} else {
if(_bus) {
// Software Rest
_bus->sendCommand(0x01);
delay(120);
}
}
if(_bus) {
if(_init_operations_len > 0) {
_bus->batchOperation((uint8_t*)_init_operations, _init_operations_len);
}
}
_framebuffer = _rgbpanel->getFrameBuffer(WIDTH, HEIGHT);
if(!_framebuffer) {
return false;
}
return true;
}
void Arduino_RGB_Display_Mod::writePixelPreclipped(int16_t x, int16_t y, uint16_t color)
{
uint16_t* fb = _framebuffer;
fb += (int32_t)y * _width;
fb += x;
*fb = color;
if(_auto_flush) {
Cache_WriteBack_Addr((uint32_t)fb, 2);
}
}
void Arduino_RGB_Display_Mod::writeFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
{
if(_ordered_in_range(x, 0, _max_x) && h) { // X on screen, nonzero height
if(h < 0) { // If negative height...
y += h + 1; // Move Y to top edge
h = -h; // Use positive height
}
if(y <= _max_y) { // Not off bottom
int16_t y2 = y + h - 1;
if(y2 >= 0) { // Not off top
// Line partly or fully overlaps screen
if(y < 0) {
y = 0;
h = y2 + 1;
} // Clip top
if(y2 > _max_y) {
h = _max_y - y + 1;
} // Clip bottom
uint16_t* fb = _framebuffer + ((int32_t)y * _width) + x;
if(_auto_flush) {
while(h--) {
*fb = color;
Cache_WriteBack_Addr((uint32_t)fb, 2);
fb += _width;
}
} else {
while(h--) {
*fb = color;
fb += _width;
}
}
}
}
}
}
void Arduino_RGB_Display_Mod::writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
{
if(_ordered_in_range(y, 0, _max_y) && w) { // Y on screen, nonzero width
if(w < 0) { // If negative width...
x += w + 1; // Move X to left edge
w = -w; // Use positive width
}
if(x <= _max_x) { // Not off right
int16_t x2 = x + w - 1;
if(x2 >= 0) { // Not off left
// Line partly or fully overlaps screen
if(x < 0) {
x = 0;
w = x2 + 1;
} // Clip left
if(x2 > _max_x) {
w = _max_x - x + 1;
} // Clip right
uint16_t* fb = _framebuffer + ((int32_t)y * _width) + x;
uint32_t cachePos = (uint32_t)fb;
int16_t writeSize = w * 2;
while(w--) {
*(fb++) = color;
}
if(_auto_flush) {
Cache_WriteBack_Addr(cachePos, writeSize);
}
}
}
}
}
void Arduino_RGB_Display_Mod::writeFillRectPreclipped(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
{
uint16_t* row = _framebuffer;
row += y * _width;
uint32_t cachePos = (uint32_t)row;
row += x;
for(int j = 0; j < h; j++) {
for(int i = 0; i < w; i++) {
row[i] = color;
}
row += _width;
}
if(_auto_flush) {
Cache_WriteBack_Addr(cachePos, _width * h * 2);
}
}
void Arduino_RGB_Display_Mod::setRotation(uint8_t r)
{
esp_err_t err = esp_lcd_panel_swap_xy(_rgbpanel->_panel_handle, r & 1);
err = esp_lcd_panel_mirror(_rgbpanel->_panel_handle, r & 4, r & 2);
}
void Arduino_RGB_Display_Mod::invertDisplay(bool i)
{
esp_err_t err = esp_lcd_panel_invert_color(_rgbpanel->_panel_handle, i);
}
void Arduino_RGB_Display_Mod::draw16bitRGBBitmap(int16_t x, int16_t y, uint16_t* bitmap, int16_t w, int16_t h)
{
esp_err_t err = esp_lcd_panel_draw_bitmap(_rgbpanel->_panel_handle, x, y, x + w, y + h, bitmap);
return;
if(((x + w - 1) < 0) || // Outside left
((y + h - 1) < 0) || // Outside top
(x > _max_x) || // Outside right
(y > _max_y) // Outside bottom
) {
return;
} else {
int16_t xskip = 0;
if((y + h - 1) > _max_y) {
h -= (y + h - 1) - _max_y;
}
if(y < 0) {
bitmap -= y * w;
h += y;
y = 0;
}
if((x + w - 1) > _max_x) {
xskip = (x + w - 1) - _max_x;
w -= xskip;
}
if(x < 0) {
bitmap -= x;
xskip -= x;
w += x;
x = 0;
}
uint16_t* row = _framebuffer;
row += y * _width;
uint32_t cachePos = (uint32_t)row;
row += x;
if(((_width & 1) == 0) && ((xskip & 1) == 0) && ((w & 1) == 0)) {
uint32_t* row2 = (uint32_t*)row;
uint32_t* bitmap2 = (uint32_t*)bitmap;
int16_t _width2 = _width >> 1;
int16_t xskip2 = xskip >> 1;
int16_t w2 = w >> 1;
for(int16_t j = 0; j < h; j++) {
for(int16_t i = 0; i < w2; i++) {
row2[i] = *bitmap2++;
}
bitmap2 += xskip2;
row2 += _width2;
}
} else {
for(int j = 0; j < h; j++) {
for(int i = 0; i < w; i++) {
row[i] = *bitmap++;
}
bitmap += xskip;
row += _width;
}
}
if(_auto_flush) {
Cache_WriteBack_Addr(cachePos, _width * h * 2);
}
}
}
void Arduino_RGB_Display_Mod::draw16bitBeRGBBitmap(int16_t x, int16_t y, uint16_t* bitmap, int16_t w, int16_t h)
{
if(((x + w - 1) < 0) || // Outside left
((y + h - 1) < 0) || // Outside top
(x > _max_x) || // Outside right
(y > _max_y) // Outside bottom
) {
return;
} else {
int16_t xskip = 0;
if((y + h - 1) > _max_y) {
h -= (y + h - 1) - _max_y;
}
if(y < 0) {
bitmap -= y * w;
h += y;
y = 0;
}
if((x + w - 1) > _max_x) {
xskip = (x + w - 1) - _max_x;
w -= xskip;
}
if(x < 0) {
bitmap -= x;
xskip -= x;
w += x;
x = 0;
}
uint16_t* row = _framebuffer;
row += y * _width;
uint32_t cachePos = (uint32_t)row;
row += x;
uint16_t color;
for(int j = 0; j < h; j++) {
for(int i = 0; i < w; i++) {
color = *bitmap++;
MSB_16_SET(row[i], color);
}
bitmap += xskip;
row += _width;
}
if(_auto_flush) {
Cache_WriteBack_Addr(cachePos, _width * h * 2);
}
}
}
void Arduino_RGB_Display_Mod::flush(void)
{
if(!_auto_flush) {
Cache_WriteBack_Addr((uint32_t)_framebuffer, _framebuffer_size);
}
}
uint16_t* Arduino_RGB_Display_Mod::getFramebuffer()
{
return _framebuffer;
}
#endif // #if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)

View File

@ -0,0 +1,434 @@
#ifdef HASP_USE_ARDUINOGFX
#include "Arduino.h"
#include "Arduino_DataBus.h"
#endif
#if defined(ESP32) && defined(CONFIG_IDF_TARGET_ESP32S3) && defined(HASP_USE_ARDUINOGFX)
#ifndef _ARDUINO_RGB_DISPLAY_MOD_H_
#define _ARDUINO_RGB_DISPLAY_MOD_H_
#include "Arduino_GFX.h"
#include "Arduino_RGBPanel_mod.h"
static const uint8_t st7701_4848S040_init_operations[] = {
BEGIN_WRITE,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x10,
WRITE_C8_D16, 0xC0, 0x3B, 0x00,
WRITE_C8_D16, 0xC1, 0x0D, 0x02,
WRITE_C8_D16, 0xC2, 0x31, 0x05,
WRITE_C8_D8, 0xCD, 0x00,//0x08
WRITE_COMMAND_8, 0xB0, // Positive Voltage Gamma Control
WRITE_BYTES, 16,
0x00, 0x11, 0x18, 0x0E,
0x11, 0x06, 0x07, 0x08,
0x07, 0x22, 0x04, 0x12,
0x0F, 0xAA, 0x31, 0x18,
WRITE_COMMAND_8, 0xB1, // Negative Voltage Gamma Control
WRITE_BYTES, 16,
0x00, 0x11, 0x19, 0x0E,
0x12, 0x07, 0x08, 0x08,
0x08, 0x22, 0x04, 0x11,
0x11, 0xA9, 0x32, 0x18,
// PAGE1
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x11,
WRITE_C8_D8, 0xB0, 0x60, // Vop=4.7375v
WRITE_C8_D8, 0xB1, 0x32, // VCOM=32
WRITE_C8_D8, 0xB2, 0x07, // VGH=15v
WRITE_C8_D8, 0xB3, 0x80,
WRITE_C8_D8, 0xB5, 0x49, // VGL=-10.17v
WRITE_C8_D8, 0xB7, 0x85,
WRITE_C8_D8, 0xB8, 0x21, // AVDD=6.6 & AVCL=-4.6
WRITE_C8_D8, 0xC1, 0x78,
WRITE_C8_D8, 0xC2, 0x78,
WRITE_COMMAND_8, 0xE0,
WRITE_BYTES, 3, 0x00, 0x1B, 0x02,
WRITE_COMMAND_8, 0xE1,
WRITE_BYTES, 11,
0x08, 0xA0, 0x00, 0x00,
0x07, 0xA0, 0x00, 0x00,
0x00, 0x44, 0x44,
WRITE_COMMAND_8, 0xE2,
WRITE_BYTES, 12,
0x11, 0x11, 0x44, 0x44,
0xED, 0xA0, 0x00, 0x00,
0xEC, 0xA0, 0x00, 0x00,
WRITE_COMMAND_8, 0xE3,
WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x11,
WRITE_C8_D16, 0xE4, 0x44, 0x44,
WRITE_COMMAND_8, 0xE5,
WRITE_BYTES, 16,
0x0A, 0xE9, 0xD8, 0xA0,
0x0C, 0xEB, 0xD8, 0xA0,
0x0E, 0xED, 0xD8, 0xA0,
0x10, 0xEF, 0xD8, 0xA0,
WRITE_COMMAND_8, 0xE6,
WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x11,
WRITE_C8_D16, 0xE7, 0x44, 0x44,
WRITE_COMMAND_8, 0xE8,
WRITE_BYTES, 16,
0x09, 0xE8, 0xD8, 0xA0,
0x0B, 0xEA, 0xD8, 0xA0,
0x0D, 0xEC, 0xD8, 0xA0,
0x0F, 0xEE, 0xD8, 0xA0,
WRITE_COMMAND_8, 0xEB,
WRITE_BYTES, 7,
0x02, 0x00, 0xE4, 0xE4,
0x88, 0x00, 0x40,
WRITE_C8_D16, 0xEC, 0x3C, 0x00,
WRITE_COMMAND_8, 0xED,
WRITE_BYTES, 16,
0xAB, 0x89, 0x76, 0x54,
0x02, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x20,
0x45, 0x67, 0x98, 0xBA,
//-----------VAP & VAN---------------
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,
WRITE_C8_D8, 0xE5, 0xE4,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x00,
WRITE_COMMAND_8, 0x21, // 0x20 normal, 0x21 IPS
WRITE_C8_D8, 0x3A, 0x60, // 0x70 RGB888, 0x60 RGB666, 0x50 RGB565
//WRITE_COMMAND_8, 0x21,0X00,
//END_WRITE,
WRITE_COMMAND_8, 0x11, // Sleep Out
END_WRITE,
DELAY, 120,
BEGIN_WRITE,
WRITE_COMMAND_8, 0x29, // Display On
END_WRITE,
BEGIN_WRITE,
WRITE_COMMAND_8, 0x20, // Invert display
END_WRITE
};
static const uint8_t st7701_sensecap_indicator_init_operations[] = {
BEGIN_WRITE,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x10,
WRITE_C8_D16, 0xC0, 0x3B, 0x00,
WRITE_C8_D16, 0xC1, 0x0D, 0x02,
WRITE_C8_D16, 0xC2, 0x31, 0x05,
WRITE_C8_D8, 0xC7, 0x04,
WRITE_C8_D8, 0xCD, 0x08,
WRITE_COMMAND_8, 0xB0, // Positive Voltage Gamma Control
WRITE_BYTES, 16,
0x00, 0x11, 0x18, 0x0E,
0x11, 0x06, 0x07, 0x08,
0x07, 0x22, 0x04, 0x12,
0x0F, 0xAA, 0x31, 0x18,
END_WRITE,
BEGIN_WRITE,
WRITE_COMMAND_8, 0xB1, // Negative Voltage Gamma Control
WRITE_BYTES, 16,
0x00, 0x11, 0x19, 0x0E,
0x12, 0x07, 0x08, 0x08,
0x08, 0x22, 0x04, 0x11,
0x11, 0xA9, 0x32, 0x18,
// PAGE1
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x11,
WRITE_C8_D8, 0xB0, 0x60, // Vop=4.7375v
WRITE_C8_D8, 0xB1, 0x32, // VCOM=32
WRITE_C8_D8, 0xB2, 0x07, // VGH=15v
WRITE_C8_D8, 0xB3, 0x80,
WRITE_C8_D8, 0xB5, 0x49, // VGL=-10.17v
WRITE_C8_D8, 0xB7, 0x85,
WRITE_C8_D8, 0xB8, 0x21, // AVDD=6.6 & AVCL=-4.6
WRITE_C8_D8, 0xC1, 0x78,
WRITE_C8_D8, 0xC2, 0x78,
END_WRITE,
DELAY, 20,
BEGIN_WRITE,
WRITE_COMMAND_8, 0xE0,
WRITE_BYTES, 3, 0x00, 0x1B, 0x02,
WRITE_COMMAND_8, 0xE1,
WRITE_BYTES, 11,
0x08, 0xA0, 0x00, 0x00,
0x07, 0xA0, 0x00, 0x00,
0x00, 0x44, 0x44,
WRITE_COMMAND_8, 0xE2,
WRITE_BYTES, 12,
0x11, 0x11, 0x44, 0x44,
0xED, 0xA0, 0x00, 0x00,
0xEC, 0xA0, 0x00, 0x00,
END_WRITE,
BEGIN_WRITE,
WRITE_COMMAND_8, 0xE3,
WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x11,
WRITE_C8_D16, 0xE4, 0x44, 0x44,
WRITE_COMMAND_8, 0xE5,
WRITE_BYTES, 16,
0x0A, 0xE9, 0xD8, 0xA0,
0x0C, 0xEB, 0xD8, 0xA0,
0x0E, 0xED, 0xD8, 0xA0,
0x10, 0xEF, 0xD8, 0xA0,
WRITE_COMMAND_8, 0xE6,
WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x11,
WRITE_C8_D16, 0xE7, 0x44, 0x44,
END_WRITE,
BEGIN_WRITE,
WRITE_COMMAND_8, 0xE8,
WRITE_BYTES, 16,
0x09, 0xE8, 0xD8, 0xA0,
0x0B, 0xEA, 0xD8, 0xA0,
0x0D, 0xEC, 0xD8, 0xA0,
0x0F, 0xEE, 0xD8, 0xA0,
WRITE_COMMAND_8, 0xEB,
WRITE_BYTES, 7,
0x02, 0x00, 0xE4, 0xE4,
0x88, 0x00, 0x40,
WRITE_C8_D16, 0xEC, 0x3C, 0x00,
WRITE_COMMAND_8, 0xED,
WRITE_BYTES, 16,
0xAB, 0x89, 0x76, 0x54,
0x02, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x20,
0x45, 0x67, 0x98, 0xBA,
WRITE_C8_D8, 0x36, 0x10,
END_WRITE,
BEGIN_WRITE,
//-----------VAP & VAN---------------
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,
WRITE_C8_D8, 0xE5, 0xE4,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x00,
WRITE_COMMAND_8, 0x21, // 0x20 normal, 0x21 IPS
WRITE_C8_D8, 0x3A, 0x60, // 0x70 RGB888, 0x60 RGB666, 0x50 RGB565
WRITE_COMMAND_8, 0x11, // Sleep Out
END_WRITE,
DELAY, 120,
BEGIN_WRITE,
WRITE_COMMAND_8, 0x29, // Display On
END_WRITE,
DELAY, 120,
};
static const uint8_t st7701_t_panel_init_operations[] = {
BEGIN_WRITE,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,
WRITE_C8_D8, 0xEF, 0x08,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x10,
WRITE_C8_D16, 0xC0, 0x3B, 0x00,
WRITE_C8_D16, 0xC1, 0x0B, 0x02,
WRITE_COMMAND_8, 0xC2,
WRITE_BYTES, 3, 0x30, 0x02, 0x37,
WRITE_C8_D8, 0xCC, 0x10,
WRITE_COMMAND_8, 0xB0, // Positive Voltage Gamma Control
WRITE_BYTES, 16,
0x00, 0x0F, 0x16, 0x0E,
0x11, 0x07, 0x09, 0x09,
0x08, 0x23, 0x05, 0x11,
0x0F, 0x28, 0x2D, 0x18,
WRITE_COMMAND_8, 0xB1, // Negative Voltage Gamma Control
WRITE_BYTES, 16,
0x00, 0x0F, 0x16, 0x0E,
0x11, 0x07, 0x09, 0x08,
0x09, 0x23, 0x05, 0x11,
0x0F, 0x28, 0x2D, 0x18,
WRITE_COMMAND_8, 0xFF,
WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x11,
WRITE_C8_D8, 0xB0, 0x4D,
WRITE_C8_D8, 0xB1, 0x33,
WRITE_C8_D8, 0xB2, 0x87,
WRITE_C8_D8, 0xB5, 0x4B,
WRITE_C8_D8, 0xB7, 0x8C,
WRITE_C8_D8, 0xB8, 0x20,
WRITE_C8_D8, 0xC1, 0x78,
WRITE_C8_D8, 0xC2, 0x78,
WRITE_C8_D8, 0xD0, 0x88,
WRITE_COMMAND_8, 0xE0,
WRITE_BYTES, 3, 0x00, 0x00, 0x02,
WRITE_COMMAND_8, 0xE1,
WRITE_BYTES, 11,
0x02, 0xF0, 0x00, 0x00,
0x03, 0xF0, 0x00, 0x00,
0x00, 0x44, 0x44,
WRITE_COMMAND_8, 0xE2,
WRITE_BYTES, 12,
0x10, 0x10, 0x40, 0x40,
0xF2, 0xF0, 0x00, 0x00,
0xF2, 0xF0, 0x00, 0x00,
WRITE_COMMAND_8, 0xE3,
WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x11,
WRITE_C8_D16, 0xE4, 0x44, 0x44,
WRITE_COMMAND_8, 0xE5,
WRITE_BYTES, 16,
0x07, 0xEF, 0xF0, 0xF0,
0x09, 0xF1, 0xF0, 0xF0,
0x03, 0xF3, 0xF0, 0xF0,
0x05, 0xED, 0xF0, 0xF0,
WRITE_COMMAND_8, 0xE6,
WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x11,
WRITE_C8_D16, 0xE7, 0x44, 0x44,
WRITE_COMMAND_8, 0xE8,
WRITE_BYTES, 16,
0x08, 0xF0, 0xF0, 0xF0,
0x0A, 0xF2, 0xF0, 0xF0,
0x04, 0xF4, 0xF0, 0xF0,
0x06, 0xEE, 0xF0, 0xF0,
WRITE_COMMAND_8, 0xEB,
WRITE_BYTES, 7,
0x00, 0x00, 0xE4, 0xE4,
0x44, 0x88, 0x40,
WRITE_C8_D16, 0xEC, 0x78, 0x00,
WRITE_COMMAND_8, 0xED,
WRITE_BYTES, 16,
0x20, 0xF9, 0x87, 0x76,
0x65, 0x54, 0x4F, 0xFF,
0xFF, 0xF4, 0x45, 0x56,
0x67, 0x78, 0x9F, 0x02,
WRITE_COMMAND_8, 0xEF,
WRITE_BYTES, 6,
0x10, 0x0D, 0x04, 0x08,
0x3F, 0x1F,
// WRITE_C8_D8, 0xCD, 0x05,//Test
WRITE_C8_D8, 0x3A, 0x55,
WRITE_C8_D8, 0x36, 0x08,
WRITE_COMMAND_8, 0x11,
// WRITE_COMMAND_8, 0xFF,//Test
// WRITE_BYTES, 5,
// 0x77, 0x01, 0x00, 0x00,
// 0x12,
// WRITE_C8_D8, 0xD1, 0x81,//Test
// WRITE_C8_D8, 0xD2, 0x08,//Test
WRITE_COMMAND_8, 0x29, // Display On
// WRITE_C8_D8, 0x35, 0x00,//Test
// WRITE_C8_D8, 0xCE, 0x04,//Test
// WRITE_COMMAND_8, 0xF2,//Test
// WRITE_BYTES, 4,
// 0xF0, 0xA3, 0xA3, 0x71,
END_WRITE};
class Arduino_RGB_Display_Mod : public Arduino_GFX{
public:
Arduino_RGB_Display_Mod(
int16_t w, int16_t h, Arduino_RGBPanel_Mod *rgbpanel, uint8_t r = 0, bool auto_flush = true,
Arduino_DataBus *bus = NULL, int8_t rst = GFX_NOT_DEFINED, const uint8_t *init_operations = NULL, size_t init_operations_len = GFX_NOT_DEFINED);
bool begin(int32_t speed = GFX_NOT_DEFINED) override;
void writePixelPreclipped(int16_t x, int16_t y, uint16_t color) override;
void writeFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color) override;
void writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color) override;
void writeFillRectPreclipped(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) override;
void draw16bitRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap, int16_t w, int16_t h) override;
void draw16bitBeRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap, int16_t w, int16_t h) override;
void flush(void) override;
void setRotation(uint8_t r);
void invertDisplay(bool i);
uint16_t *getFramebuffer();
Arduino_DataBus *_bus;
Arduino_RGBPanel_Mod *_rgbpanel;
protected:
uint16_t *_framebuffer;
size_t _framebuffer_size;
bool _auto_flush;
int8_t _rst;
const uint8_t *_init_operations;
size_t _init_operations_len;
private:
};
#endif // _ARDUINO_RGB_DISPLAY_H_
#endif // #if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3)

343
lib/ETHSPI/ETHSPI.cpp Normal file
View File

@ -0,0 +1,343 @@
/* MIT License - Copyright (c) 2022 Ben Suffolk, ben@vanilla.net
For full license information read the LICENSE file in the project folder */
#if defined(HASP_USE_ETHSPI)
#include "ETHSPI.h"
#include "esp_netif.h"
#include "esp_eth.h"
#include "esp_eth_mac.h"
#include "esp_event.h"
#include "esp_log.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
#include "lwip/err.h"
#include "lwip/dns.h"
extern void tcpipInit();
ETHSPIClass::ETHSPIClass()
:initialized(false)
,staticIP(false)
,eth_handle(NULL)
,eth_netif_spi(NULL)
{
}
ETHSPIClass::~ETHSPIClass()
{}
bool ETHSPIClass::begin(int mosi_io, int miso_io, int sclk_io, int cs_io, int int_io, spi_host_device_t spi_host)
{
if(initialized) {
return true;
}
tcpipInit();
// Create instance(s) of esp-netif for SPI Ethernet(s)
esp_netif_inherent_config_t esp_netif_config = ESP_NETIF_INHERENT_DEFAULT_ETH();
esp_netif_config.if_desc = "eth0";
esp_netif_config.route_prio = 30;
esp_netif_config_t cfg_spi = {
.base = &esp_netif_config,
.stack = ESP_NETIF_NETSTACK_DEFAULT_ETH
};
eth_netif_spi = esp_netif_new(&cfg_spi);
// Init MAC and PHY configs to default
eth_mac_config_t mac_config_spi = ETH_MAC_DEFAULT_CONFIG();
eth_phy_config_t phy_config_spi = ETH_PHY_DEFAULT_CONFIG();
// Install GPIO ISR handler to be able to service SPI Eth modlues interrupts
gpio_install_isr_service(0);
// Init SPI bus
spi_device_handle_t spi_handle = NULL;
spi_bus_config_t buscfg = {
.mosi_io_num = mosi_io,
.miso_io_num = miso_io,
.sclk_io_num = sclk_io,
.quadwp_io_num = -1,
.quadhd_io_num = -1,
};
if(spi_bus_initialize(ETHSPI_HOST, &buscfg, SPI_DMA_CH_AUTO) != ESP_OK) {
return false;
}
// Configure SPI interface and Ethernet driver for specific SPI module
esp_eth_mac_t *mac_spi;
esp_eth_phy_t *phy_spi;
spi_device_interface_config_t devcfg = {
.command_bits = 16, // Actually it's the address phase in W5500 SPI frame
.address_bits = 8, // Actually it's the control phase in W5500 SPI frame
.mode = 0,
.clock_speed_hz = ETHSPI_CLOCK_MHZ * 1000 * 1000,
.queue_size = 20
};
// Set SPI module Chip Select GPIO
devcfg.spics_io_num = cs_io;
if(spi_bus_add_device(spi_host, &devcfg, &spi_handle) != ESP_OK) {
return false;
}
// w5500 ethernet driver is based on spi driver
eth_w5500_config_t w5500_config = ETH_W5500_DEFAULT_CONFIG(spi_handle);
// Set remaining GPIO numbers and configuration used by the SPI module
w5500_config.int_gpio_num = int_io;
phy_config_spi.phy_addr = 1;
phy_config_spi.reset_gpio_num = -1;
mac_spi = esp_eth_mac_new_w5500(&w5500_config, &mac_config_spi);
phy_spi = esp_eth_phy_new_w5500(&phy_config_spi);
esp_eth_config_t eth_config_spi = ETH_DEFAULT_CONFIG(mac_spi, phy_spi);
if(esp_eth_driver_install(&eth_config_spi, &eth_handle) != ESP_OK) {
return false;
}
// W5500 Does not have a mac address on the module. So get the enternet mac address from ESP fuse
uint8_t mac[6];
esp_read_mac(mac, ESP_MAC_ETH);
if(esp_eth_ioctl(eth_handle, ETH_CMD_S_MAC_ADDR, mac) != ESP_OK) {
return false;
}
// attach Ethernet driver to TCP/IP stack
if(esp_netif_attach(eth_netif_spi, esp_eth_new_netif_glue(eth_handle)) != ESP_OK) {
return false;
}
if(esp_eth_start(eth_handle) != ESP_OK) {
return false;
}
initialized = true;
return initialized;
}
bool ETHSPIClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2)
{
esp_netif_ip_info_t ip_info;
if(local_ip != (uint32_t)0x00000000 && local_ip != INADDR_NONE) {
ip_info.ip.addr = static_cast<uint32_t>(local_ip);
ip_info.gw.addr = static_cast<uint32_t>(gateway);
ip_info.netmask.addr = static_cast<uint32_t>(subnet);
} else {
ip_info.ip.addr = 0;
ip_info.gw.addr = 0;
ip_info.netmask.addr = 0;
}
// Stop DHCP client
esp_netif_dhcp_status_t status;
if(esp_netif_dhcpc_get_status(eth_netif_spi, &status) != ESP_OK) {
log_e("could not get DHCP status");
return false;
}
if(status == ESP_NETIF_DHCP_STARTED && esp_netif_dhcpc_stop(eth_netif_spi) != ESP_OK) {
log_e("DHCP could not be stopped");
return false;
}
// Set IP Details
if(esp_netif_set_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
log_e("Unable to set IP address");
return false;
}
// Start DHCP client is required
if(ip_info.ip.addr){
staticIP = true;
} else {
if(esp_netif_dhcpc_start(eth_netif_spi) != ESP_OK) {
log_e("DHCP could not be started");
return false;
}
staticIP = false;
}
// Set primary DNS
if(dns1 != (uint32_t)0x00000000 && dns1 != INADDR_NONE) {
esp_netif_dns_info_t dns_info;
dns_info.ip.u_addr.ip4.addr = static_cast<uint32_t>(dns1);
if(esp_netif_set_dns_info(eth_netif_spi, ESP_NETIF_DNS_MAIN, &dns_info) != ESP_OK) {
log_e("Unable to set DNS");
return false;
}
}
// Set secondary DNS
if(dns2 != (uint32_t)0x00000000 && dns2 != INADDR_NONE) {
esp_netif_dns_info_t dns_info;
dns_info.ip.u_addr.ip4.addr = static_cast<uint32_t>(dns2);
if(esp_netif_set_dns_info(eth_netif_spi, ESP_NETIF_DNS_FALLBACK, &dns_info) != ESP_OK) {
log_e("Unable to set DNS");
return false;
}
}
return true;
}
IPAddress ETHSPIClass::localIP()
{
esp_netif_ip_info_t ip_info;
if(esp_netif_get_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
return IPAddress();
}
return IPAddress(ip_info.ip.addr);
}
IPAddress ETHSPIClass::subnetMask()
{
esp_netif_ip_info_t ip_info;
if(esp_netif_get_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
return IPAddress();
}
return IPAddress(ip_info.netmask.addr);
}
IPAddress ETHSPIClass::gatewayIP()
{
esp_netif_ip_info_t ip_info;
if(esp_netif_get_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
return IPAddress();
}
return IPAddress(ip_info.gw.addr);
}
IPAddress ETHSPIClass::dnsIP(esp_netif_dns_type_t dns_type)
{
esp_netif_dns_info_t dns_info;
if(esp_netif_get_dns_info(eth_netif_spi, dns_type, &dns_info) != ESP_OK) {
return IPAddress();
}
return IPAddress(dns_info.ip.u_addr.ip4.addr);
}
IPAddress ETHSPIClass::broadcastIP()
{
esp_netif_ip_info_t ip_info;
if(esp_netif_get_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
return IPAddress();
}
return WiFiGenericClass::calculateBroadcast(IPAddress(ip_info.gw.addr), IPAddress(ip_info.netmask.addr));
}
IPAddress ETHSPIClass::networkID()
{
esp_netif_ip_info_t ip_info;
if(esp_netif_get_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
return IPAddress();
}
return WiFiGenericClass::calculateNetworkID(IPAddress(ip_info.gw.addr), IPAddress(ip_info.netmask.addr));
}
uint8_t ETHSPIClass::subnetCIDR()
{
esp_netif_ip_info_t ip_info;
if(esp_netif_get_ip_info(eth_netif_spi, &ip_info) != ESP_OK) {
return IPAddress();
}
return WiFiGenericClass::calculateSubnetCIDR(IPAddress(ip_info.netmask.addr));
}
const char * ETHSPIClass::getHostname()
{
const char *hostname;
if(esp_netif_get_hostname(eth_netif_spi, &hostname) != ESP_OK) {
return NULL;
}
return hostname;
}
bool ETHSPIClass::setHostname(const char *hostname)
{
return(esp_netif_set_hostname(eth_netif_spi, hostname) == ESP_OK);
}
bool ETHSPIClass::fullDuplex()
{
eth_duplex_t duplex;
esp_eth_ioctl(eth_handle, ETH_CMD_G_DUPLEX_MODE, &duplex);
return (duplex == ETH_DUPLEX_FULL);
}
bool ETHSPIClass::linkUp()
{
return esp_netif_is_netif_up(eth_netif_spi);
}
uint8_t ETHSPIClass::linkSpeed()
{
eth_speed_t link_speed;
esp_eth_ioctl(eth_handle, ETH_CMD_G_SPEED, &link_speed);
return (link_speed == ETH_SPEED_10M)?10:100;
}
uint8_t * ETHSPIClass::macAddress(uint8_t* mac)
{
if(!mac) {
return NULL;
}
esp_eth_ioctl(eth_handle, ETH_CMD_G_MAC_ADDR, mac);
return mac;
}
String ETHSPIClass::macAddress(void)
{
uint8_t mac[6];
char macStr[18];
macAddress(mac);
sprintf(macStr, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return String(macStr);
}
ETHSPIClass ETHSPI;
#endif

80
lib/ETHSPI/ETHSPI.h Normal file
View File

@ -0,0 +1,80 @@
/* MIT License - Copyright (c) 2022 Ben Suffolk, ben@vanilla.net
For full license information read the LICENSE file in the project folder */
#ifndef _ETHSPI_H_
#define _ETHSPI_H_
#include "WiFi.h"
#include "esp_system.h"
#include "esp_eth.h"
#include "driver/spi_master.h"
#ifndef ETHSPI_HOST
#define ETHSPI_HOST SPI2_HOST
#endif
#ifndef ETHSPI_CLOCK_MHZ
#define ETHSPI_CLOCK_MHZ 12
#endif
#ifndef ETHSPI_INT_GPIO
#define ETHSPI_INT_GPIO 4
#endif
#ifndef ETHSPI_MOSI_GPIO
#define ETHSPI_MOSI_GPIO 13
#endif
#ifndef ETHSPI_MISO_GPIO
#define ETHSPI_MISO_GPIO 12
#endif
#ifndef ETHSPI_SCLK_GPIO
#define ETHSPI_SCLK_GPIO 14
#endif
#ifndef ETHSPI_CS_GPIO
#define ETHSPI_CS_GPIO 15
#endif
class ETHSPIClass {
private:
bool initialized;
bool staticIP;
esp_eth_handle_t eth_handle;
esp_netif_t *eth_netif_spi;
public:
ETHSPIClass();
~ETHSPIClass();
bool begin(int mosi_io = ETHSPI_MOSI_GPIO, int miso_io = ETHSPI_MISO_GPIO, int sclk_io = ETHSPI_SCLK_GPIO, int cs_io = ETHSPI_CS_GPIO, int int_io = ETHSPI_INT_GPIO, spi_host_device_t spi_host = ETHSPI_HOST);
bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000);
const char * getHostname();
bool setHostname(const char * hostname);
bool fullDuplex();
bool linkUp();
uint8_t linkSpeed();
IPAddress localIP();
IPAddress subnetMask();
IPAddress gatewayIP();
IPAddress dnsIP(esp_netif_dns_type_t dns_type = ESP_NETIF_DNS_MAIN);
IPAddress broadcastIP();
IPAddress networkID();
uint8_t subnetCIDR();
uint8_t * macAddress(uint8_t* mac);
String macAddress();
friend class WiFiClient;
friend class WiFiServer;
};
extern ETHSPIClass ETHSPI;
#endif /* _ETH_H_ */

View File

@ -0,0 +1,695 @@
// Copyright 2020 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#if defined(HASP_USE_ETHSPI)
#include <string.h>
#include <stdlib.h>
#include <sys/cdefs.h>
#include "driver/gpio.h"
#include "driver/spi_master.h"
#include "esp_attr.h"
#include "esp_log.h"
#include "esp_check.h"
#include "esp_eth.h"
#include "esp_system.h"
#include "esp_intr_alloc.h"
#include "esp_heap_caps.h"
#include "esp_rom_gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "hal/cpu_hal.h"
#include "w5500.h"
#include "sdkconfig.h"
static const char *TAG = "w5500.mac";
#define W5500_SPI_LOCK_TIMEOUT_MS (50)
#define W5500_TX_MEM_SIZE (0x4000)
#define W5500_RX_MEM_SIZE (0x4000)
typedef struct {
esp_eth_mac_t parent;
esp_eth_mediator_t *eth;
spi_device_handle_t spi_hdl;
SemaphoreHandle_t spi_lock;
TaskHandle_t rx_task_hdl;
uint32_t sw_reset_timeout_ms;
int int_gpio_num;
uint8_t addr[6];
bool packets_remain;
} emac_w5500_t;
static inline bool w5500_lock(emac_w5500_t *emac)
{
return xSemaphoreTake(emac->spi_lock, pdMS_TO_TICKS(W5500_SPI_LOCK_TIMEOUT_MS)) == pdTRUE;
}
static inline bool w5500_unlock(emac_w5500_t *emac)
{
return xSemaphoreGive(emac->spi_lock) == pdTRUE;
}
static esp_err_t w5500_write(emac_w5500_t *emac, uint32_t address, const void *value, uint32_t len)
{
esp_err_t ret = ESP_OK;
spi_transaction_t trans = {
.cmd = (address >> W5500_ADDR_OFFSET),
.addr = ((address & 0xFFFF) | (W5500_ACCESS_MODE_WRITE << W5500_RWB_OFFSET) | W5500_SPI_OP_MODE_VDM),
.length = 8 * len,
.tx_buffer = value
};
if (w5500_lock(emac)) {
if (spi_device_polling_transmit(emac->spi_hdl, &trans) != ESP_OK) {
ESP_LOGE(TAG, "%s(%d): spi transmit failed", __FUNCTION__, __LINE__);
ret = ESP_FAIL;
}
w5500_unlock(emac);
} else {
ret = ESP_ERR_TIMEOUT;
}
return ret;
}
static esp_err_t w5500_read(emac_w5500_t *emac, uint32_t address, void *value, uint32_t len)
{
esp_err_t ret = ESP_OK;
spi_transaction_t trans = {
.flags = len <= 4 ? SPI_TRANS_USE_RXDATA : 0, // use direct reads for registers to prevent overwrites by 4-byte boundary writes
.cmd = (address >> W5500_ADDR_OFFSET),
.addr = ((address & 0xFFFF) | (W5500_ACCESS_MODE_READ << W5500_RWB_OFFSET) | W5500_SPI_OP_MODE_VDM),
.length = 8 * len,
.rx_buffer = value
};
if (w5500_lock(emac)) {
if (spi_device_polling_transmit(emac->spi_hdl, &trans) != ESP_OK) {
ESP_LOGE(TAG, "%s(%d): spi transmit failed", __FUNCTION__, __LINE__);
ret = ESP_FAIL;
}
w5500_unlock(emac);
} else {
ret = ESP_ERR_TIMEOUT;
}
if ((trans.flags&SPI_TRANS_USE_RXDATA) && len <= 4) {
memcpy(value, trans.rx_data, len); // copy register values to output
}
return ret;
}
static esp_err_t w5500_send_command(emac_w5500_t *emac, uint8_t command, uint32_t timeout_ms)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_CR(0), &command, sizeof(command)), err, TAG, "write SCR failed");
// after W5500 accepts the command, the command register will be cleared automatically
uint32_t to = 0;
for (to = 0; to < timeout_ms / 10; to++) {
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_CR(0), &command, sizeof(command)), err, TAG, "read SCR failed");
if (!command) {
break;
}
vTaskDelay(pdMS_TO_TICKS(10));
}
ESP_GOTO_ON_FALSE(to < timeout_ms / 10, ESP_ERR_TIMEOUT, err, TAG, "send command timeout");
err:
return ret;
}
static esp_err_t w5500_get_tx_free_size(emac_w5500_t *emac, uint16_t *size)
{
esp_err_t ret = ESP_OK;
uint16_t free0, free1 = 0;
// read TX_FSR register more than once, until we get the same value
// this is a trick because we might be interrupted between reading the high/low part of the TX_FSR register (16 bits in length)
do {
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_TX_FSR(0), &free0, sizeof(free0)), err, TAG, "read TX FSR failed");
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_TX_FSR(0), &free1, sizeof(free1)), err, TAG, "read TX FSR failed");
} while (free0 != free1);
*size = __builtin_bswap16(free0);
err:
return ret;
}
static esp_err_t w5500_get_rx_received_size(emac_w5500_t *emac, uint16_t *size)
{
esp_err_t ret = ESP_OK;
uint16_t received0, received1 = 0;
do {
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_RX_RSR(0), &received0, sizeof(received0)), err, TAG, "read RX RSR failed");
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_RX_RSR(0), &received1, sizeof(received1)), err, TAG, "read RX RSR failed");
} while (received0 != received1);
*size = __builtin_bswap16(received0);
err:
return ret;
}
static esp_err_t w5500_write_buffer(emac_w5500_t *emac, const void *buffer, uint32_t len, uint16_t offset)
{
esp_err_t ret = ESP_OK;
uint32_t remain = len;
const uint8_t *buf = buffer;
offset %= W5500_TX_MEM_SIZE;
if (offset + len > W5500_TX_MEM_SIZE) {
remain = (offset + len) % W5500_TX_MEM_SIZE;
len = W5500_TX_MEM_SIZE - offset;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_MEM_SOCK_TX(0, offset), buf, len), err, TAG, "write TX buffer failed");
offset += len;
buf += len;
}
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_MEM_SOCK_TX(0, offset), buf, remain), err, TAG, "write TX buffer failed");
err:
return ret;
}
static esp_err_t w5500_read_buffer(emac_w5500_t *emac, void *buffer, uint32_t len, uint16_t offset)
{
esp_err_t ret = ESP_OK;
uint32_t remain = len;
uint8_t *buf = buffer;
offset %= W5500_RX_MEM_SIZE;
if (offset + len > W5500_RX_MEM_SIZE) {
remain = (offset + len) % W5500_RX_MEM_SIZE;
len = W5500_RX_MEM_SIZE - offset;
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_MEM_SOCK_RX(0, offset), buf, len), err, TAG, "read RX buffer failed");
offset += len;
buf += len;
}
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_MEM_SOCK_RX(0, offset), buf, remain), err, TAG, "read RX buffer failed");
err:
return ret;
}
static esp_err_t w5500_set_mac_addr(emac_w5500_t *emac)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_MAC, emac->addr, 6), err, TAG, "write MAC address register failed");
err:
return ret;
}
static esp_err_t w5500_reset(emac_w5500_t *emac)
{
esp_err_t ret = ESP_OK;
/* software reset */
uint8_t mr = W5500_MR_RST; // Set RST bit (auto clear)
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_MR, &mr, sizeof(mr)), err, TAG, "write MR failed");
uint32_t to = 0;
for (to = 0; to < emac->sw_reset_timeout_ms / 10; to++) {
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_MR, &mr, sizeof(mr)), err, TAG, "read MR failed");
if (!(mr & W5500_MR_RST)) {
break;
}
vTaskDelay(pdMS_TO_TICKS(10));
}
ESP_GOTO_ON_FALSE(to < emac->sw_reset_timeout_ms / 10, ESP_ERR_TIMEOUT, err, TAG, "reset timeout");
err:
return ret;
}
static esp_err_t w5500_verify_id(emac_w5500_t *emac)
{
esp_err_t ret = ESP_OK;
uint8_t version = 0;
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_VERSIONR, &version, sizeof(version)), err, TAG, "read VERSIONR failed");
// W5500 doesn't have chip ID, we just print the version number instead
ESP_LOGI(TAG, "version=%x", version);
err:
return ret;
}
static esp_err_t w5500_setup_default(emac_w5500_t *emac)
{
esp_err_t ret = ESP_OK;
uint8_t reg_value = 16;
// Only SOCK0 can be used as MAC RAW mode, so we give the whole buffer (16KB TX and 16KB RX) to SOCK0
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_RXBUF_SIZE(0), &reg_value, sizeof(reg_value)), err, TAG, "set rx buffer size failed");
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_TXBUF_SIZE(0), &reg_value, sizeof(reg_value)), err, TAG, "set tx buffer size failed");
reg_value = 0;
for (int i = 1; i < 8; i++) {
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_RXBUF_SIZE(i), &reg_value, sizeof(reg_value)), err, TAG, "set rx buffer size failed");
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_TXBUF_SIZE(i), &reg_value, sizeof(reg_value)), err, TAG, "set tx buffer size failed");
}
/* Enable ping block, disable PPPoE, WOL */
reg_value = W5500_MR_PB;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_MR, &reg_value, sizeof(reg_value)), err, TAG, "write MR failed");
/* Disable interrupt for all sockets by default */
reg_value = 0;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SIMR, &reg_value, sizeof(reg_value)), err, TAG, "write SIMR failed");
/* Enable MAC RAW mode for SOCK0, enable MAC filter, no blocking broadcast and multicast */
reg_value = W5500_SMR_MAC_RAW | W5500_SMR_MAC_FILTER;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_MR(0), &reg_value, sizeof(reg_value)), err, TAG, "write SMR failed");
/* Enable receive event for SOCK0 */
reg_value = W5500_SIR_RECV;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_IMR(0), &reg_value, sizeof(reg_value)), err, TAG, "write SOCK0 IMR failed");
/* Set the interrupt re-assert level to maximum (~1.5ms) to lower the chances of missing it */
uint16_t int_level = __builtin_bswap16(0xFFFF);
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_INTLEVEL, &int_level, sizeof(int_level)), err, TAG, "write INTLEVEL failed");
err:
return ret;
}
static esp_err_t emac_w5500_start(esp_eth_mac_t *mac)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
uint8_t reg_value = 0;
/* open SOCK0 */
ESP_GOTO_ON_ERROR(w5500_send_command(emac, W5500_SCR_OPEN, 100), err, TAG, "issue OPEN command failed");
/* enable interrupt for SOCK0 */
reg_value = W5500_SIMR_SOCK0;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SIMR, &reg_value, sizeof(reg_value)), err, TAG, "write SIMR failed");
err:
return ret;
}
static esp_err_t emac_w5500_stop(esp_eth_mac_t *mac)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
uint8_t reg_value = 0;
/* disable interrupt */
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SIMR, &reg_value, sizeof(reg_value)), err, TAG, "write SIMR failed");
/* close SOCK0 */
ESP_GOTO_ON_ERROR(w5500_send_command(emac, W5500_SCR_CLOSE, 100), err, TAG, "issue CLOSE command failed");
err:
return ret;
}
IRAM_ATTR static void w5500_isr_handler(void *arg)
{
emac_w5500_t *emac = (emac_w5500_t *)arg;
BaseType_t high_task_wakeup = pdFALSE;
/* notify w5500 task */
vTaskNotifyGiveFromISR(emac->rx_task_hdl, &high_task_wakeup);
if (high_task_wakeup != pdFALSE) {
portYIELD_FROM_ISR();
}
}
static void emac_w5500_task(void *arg)
{
emac_w5500_t *emac = (emac_w5500_t *)arg;
uint8_t status = 0;
uint8_t *buffer = NULL;
uint32_t length = 0;
while (1) {
// check if the task receives any notification
if (ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(1000)) == 0 && // if no notification ...
gpio_get_level(emac->int_gpio_num) != 0) { // ...and no interrupt asserted
continue; // -> just continue to check again
}
/* read interrupt status */
w5500_read(emac, W5500_REG_SOCK_IR(0), &status, sizeof(status));
/* packet received */
if (status & W5500_SIR_RECV) {
status = W5500_SIR_RECV;
// clear interrupt status
w5500_write(emac, W5500_REG_SOCK_IR(0), &status, sizeof(status));
do {
length = ETH_MAX_PACKET_SIZE;
buffer = heap_caps_malloc(length, MALLOC_CAP_DMA);
if (!buffer) {
ESP_LOGE(TAG, "no mem for receive buffer");
break;
} else if (emac->parent.receive(&emac->parent, buffer, &length) == ESP_OK) {
/* pass the buffer to stack (e.g. TCP/IP layer) */
if (length) {
emac->eth->stack_input(emac->eth, buffer, length);
} else {
free(buffer);
}
} else {
free(buffer);
}
} while (emac->packets_remain);
}
}
vTaskDelete(NULL);
}
static esp_err_t emac_w5500_set_mediator(esp_eth_mac_t *mac, esp_eth_mediator_t *eth)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_FALSE(eth, ESP_ERR_INVALID_ARG, err, TAG, "can't set mac's mediator to null");
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
emac->eth = eth;
return ESP_OK;
err:
return ret;
}
static esp_err_t emac_w5500_write_phy_reg(esp_eth_mac_t *mac, uint32_t phy_addr, uint32_t phy_reg, uint32_t reg_value)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
// PHY register and MAC registers are mixed together in W5500
// The only PHY register is PHYCFGR
ESP_GOTO_ON_FALSE(phy_reg == W5500_REG_PHYCFGR, ESP_FAIL, err, TAG, "wrong PHY register");
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_PHYCFGR, &reg_value, sizeof(uint8_t)), err, TAG, "write PHY register failed");
err:
return ret;
}
static esp_err_t emac_w5500_read_phy_reg(esp_eth_mac_t *mac, uint32_t phy_addr, uint32_t phy_reg, uint32_t *reg_value)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_FALSE(reg_value, ESP_ERR_INVALID_ARG, err, TAG, "can't set reg_value to null");
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
// PHY register and MAC registers are mixed together in W5500
// The only PHY register is PHYCFGR
ESP_GOTO_ON_FALSE(phy_reg == W5500_REG_PHYCFGR, ESP_FAIL, err, TAG, "wrong PHY register");
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_PHYCFGR, reg_value, sizeof(uint8_t)), err, TAG, "read PHY register failed");
err:
return ret;
}
static esp_err_t emac_w5500_set_addr(esp_eth_mac_t *mac, uint8_t *addr)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_FALSE(addr, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
memcpy(emac->addr, addr, 6);
ESP_GOTO_ON_ERROR(w5500_set_mac_addr(emac), err, TAG, "set mac address failed");
err:
return ret;
}
static esp_err_t emac_w5500_get_addr(esp_eth_mac_t *mac, uint8_t *addr)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_FALSE(addr, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
memcpy(addr, emac->addr, 6);
err:
return ret;
}
static esp_err_t emac_w5500_set_link(esp_eth_mac_t *mac, eth_link_t link)
{
esp_err_t ret = ESP_OK;
switch (link) {
case ETH_LINK_UP:
ESP_LOGD(TAG, "link is up");
ESP_GOTO_ON_ERROR(mac->start(mac), err, TAG, "w5500 start failed");
break;
case ETH_LINK_DOWN:
ESP_LOGD(TAG, "link is down");
ESP_GOTO_ON_ERROR(mac->stop(mac), err, TAG, "w5500 stop failed");
break;
default:
ESP_GOTO_ON_FALSE(false, ESP_ERR_INVALID_ARG, err, TAG, "unknown link status");
break;
}
err:
return ret;
}
static esp_err_t emac_w5500_set_speed(esp_eth_mac_t *mac, eth_speed_t speed)
{
esp_err_t ret = ESP_OK;
switch (speed) {
case ETH_SPEED_10M:
ESP_LOGD(TAG, "working in 10Mbps");
break;
case ETH_SPEED_100M:
ESP_LOGD(TAG, "working in 100Mbps");
break;
default:
ESP_GOTO_ON_FALSE(false, ESP_ERR_INVALID_ARG, err, TAG, "unknown speed");
break;
}
err:
return ret;
}
static esp_err_t emac_w5500_set_duplex(esp_eth_mac_t *mac, eth_duplex_t duplex)
{
esp_err_t ret = ESP_OK;
switch (duplex) {
case ETH_DUPLEX_HALF:
ESP_LOGD(TAG, "working in half duplex");
break;
case ETH_DUPLEX_FULL:
ESP_LOGD(TAG, "working in full duplex");
break;
default:
ESP_GOTO_ON_FALSE(false, ESP_ERR_INVALID_ARG, err, TAG, "unknown duplex");
break;
}
err:
return ret;
}
static esp_err_t emac_w5500_set_promiscuous(esp_eth_mac_t *mac, bool enable)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
uint8_t smr = 0;
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_MR(0), &smr, sizeof(smr)), err, TAG, "read SMR failed");
if (enable) {
smr &= ~W5500_SMR_MAC_FILTER;
} else {
smr |= W5500_SMR_MAC_FILTER;
}
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_MR(0), &smr, sizeof(smr)), err, TAG, "write SMR failed");
err:
return ret;
}
static esp_err_t emac_w5500_enable_flow_ctrl(esp_eth_mac_t *mac, bool enable)
{
/* w5500 doesn't support flow control function, so accept any value */
return ESP_ERR_NOT_SUPPORTED;
}
static esp_err_t emac_w5500_set_peer_pause_ability(esp_eth_mac_t *mac, uint32_t ability)
{
/* w5500 doesn't suppport PAUSE function, so accept any value */
return ESP_ERR_NOT_SUPPORTED;
}
static inline bool is_w5500_sane_for_rxtx(emac_w5500_t *emac)
{
uint8_t phycfg;
/* phy is ok for rx and tx operations if bits RST and LNK are set (no link down, no reset) */
if (w5500_read(emac, W5500_REG_PHYCFGR, &phycfg, 1) == ESP_OK && (phycfg & 0x8001)) {
return true;
}
return false;
}
static esp_err_t emac_w5500_transmit(esp_eth_mac_t *mac, uint8_t *buf, uint32_t length)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
uint16_t offset = 0;
// check if there're free memory to store this packet
uint16_t free_size = 0;
ESP_GOTO_ON_ERROR(w5500_get_tx_free_size(emac, &free_size), err, TAG, "get free size failed");
ESP_GOTO_ON_FALSE(length <= free_size, ESP_ERR_NO_MEM, err, TAG, "free size (%d) < send length (%d)", length, free_size);
// get current write pointer
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_TX_WR(0), &offset, sizeof(offset)), err, TAG, "read TX WR failed");
offset = __builtin_bswap16(offset);
// copy data to tx memory
ESP_GOTO_ON_ERROR(w5500_write_buffer(emac, buf, length, offset), err, TAG, "write frame failed");
// update write pointer
offset += length;
offset = __builtin_bswap16(offset);
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_TX_WR(0), &offset, sizeof(offset)), err, TAG, "write TX WR failed");
// issue SEND command
ESP_GOTO_ON_ERROR(w5500_send_command(emac, W5500_SCR_SEND, 100), err, TAG, "issue SEND command failed");
// pooling the TX done event
int retry = 0;
uint8_t status = 0;
while (!(status & W5500_SIR_SEND)) {
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_IR(0), &status, sizeof(status)), err, TAG, "read SOCK0 IR failed");
if ((retry++ > 3 && !is_w5500_sane_for_rxtx(emac)) || retry > 10) {
return ESP_FAIL;
}
}
// clear the event bit
status = W5500_SIR_SEND;
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_IR(0), &status, sizeof(status)), err, TAG, "write SOCK0 IR failed");
err:
return ret;
}
static esp_err_t emac_w5500_receive(esp_eth_mac_t *mac, uint8_t *buf, uint32_t *length)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
uint16_t offset = 0;
uint16_t rx_len = 0;
uint16_t remain_bytes = 0;
emac->packets_remain = false;
w5500_get_rx_received_size(emac, &remain_bytes);
if (remain_bytes) {
// get current read pointer
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_SOCK_RX_RD(0), &offset, sizeof(offset)), err, TAG, "read RX RD failed");
offset = __builtin_bswap16(offset);
// read head first
ESP_GOTO_ON_ERROR(w5500_read_buffer(emac, &rx_len, sizeof(rx_len), offset), err, TAG, "read frame header failed");
rx_len = __builtin_bswap16(rx_len) - 2; // data size includes 2 bytes of header
offset += 2;
// read the payload
ESP_GOTO_ON_ERROR(w5500_read_buffer(emac, buf, rx_len, offset), err, TAG, "read payload failed, len=%d, offset=%d", rx_len, offset);
offset += rx_len;
// update read pointer
offset = __builtin_bswap16(offset);
ESP_GOTO_ON_ERROR(w5500_write(emac, W5500_REG_SOCK_RX_RD(0), &offset, sizeof(offset)), err, TAG, "write RX RD failed");
/* issue RECV command */
ESP_GOTO_ON_ERROR(w5500_send_command(emac, W5500_SCR_RECV, 100), err, TAG, "issue RECV command failed");
// check if there're more data need to process
remain_bytes -= rx_len + 2;
emac->packets_remain = remain_bytes > 0;
}
*length = rx_len;
err:
return ret;
}
static esp_err_t emac_w5500_init(esp_eth_mac_t *mac)
{
esp_err_t ret = ESP_OK;
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
esp_eth_mediator_t *eth = emac->eth;
esp_rom_gpio_pad_select_gpio(emac->int_gpio_num);
gpio_set_direction(emac->int_gpio_num, GPIO_MODE_INPUT);
gpio_set_pull_mode(emac->int_gpio_num, GPIO_PULLUP_ONLY);
gpio_set_intr_type(emac->int_gpio_num, GPIO_INTR_NEGEDGE); // active low
gpio_intr_enable(emac->int_gpio_num);
gpio_isr_handler_add(emac->int_gpio_num, w5500_isr_handler, emac);
ESP_GOTO_ON_ERROR(eth->on_state_changed(eth, ETH_STATE_LLINIT, NULL), err, TAG, "lowlevel init failed");
/* reset w5500 */
ESP_GOTO_ON_ERROR(w5500_reset(emac), err, TAG, "reset w5500 failed");
/* verify chip id */
ESP_GOTO_ON_ERROR(w5500_verify_id(emac), err, TAG, "vefiry chip ID failed");
/* default setup of internal registers */
ESP_GOTO_ON_ERROR(w5500_setup_default(emac), err, TAG, "w5500 default setup failed");
return ESP_OK;
err:
gpio_isr_handler_remove(emac->int_gpio_num);
gpio_reset_pin(emac->int_gpio_num);
eth->on_state_changed(eth, ETH_STATE_DEINIT, NULL);
return ret;
}
static esp_err_t emac_w5500_deinit(esp_eth_mac_t *mac)
{
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
esp_eth_mediator_t *eth = emac->eth;
mac->stop(mac);
gpio_isr_handler_remove(emac->int_gpio_num);
gpio_reset_pin(emac->int_gpio_num);
eth->on_state_changed(eth, ETH_STATE_DEINIT, NULL);
return ESP_OK;
}
static esp_err_t emac_w5500_del(esp_eth_mac_t *mac)
{
emac_w5500_t *emac = __containerof(mac, emac_w5500_t, parent);
vTaskDelete(emac->rx_task_hdl);
vSemaphoreDelete(emac->spi_lock);
free(emac);
return ESP_OK;
}
esp_eth_mac_t *esp_eth_mac_new_w5500(const eth_w5500_config_t *w5500_config, const eth_mac_config_t *mac_config)
{
esp_eth_mac_t *ret = NULL;
emac_w5500_t *emac = NULL;
ESP_GOTO_ON_FALSE(w5500_config && mac_config, NULL, err, TAG, "invalid argument");
emac = calloc(1, sizeof(emac_w5500_t));
ESP_GOTO_ON_FALSE(emac, NULL, err, TAG, "no mem for MAC instance");
/* w5500 driver is interrupt driven */
ESP_GOTO_ON_FALSE(w5500_config->int_gpio_num >= 0, NULL, err, TAG, "invalid interrupt gpio number");
/* bind methods and attributes */
emac->sw_reset_timeout_ms = mac_config->sw_reset_timeout_ms;
emac->int_gpio_num = w5500_config->int_gpio_num;
emac->spi_hdl = w5500_config->spi_hdl;
emac->parent.set_mediator = emac_w5500_set_mediator;
emac->parent.init = emac_w5500_init;
emac->parent.deinit = emac_w5500_deinit;
emac->parent.start = emac_w5500_start;
emac->parent.stop = emac_w5500_stop;
emac->parent.del = emac_w5500_del;
emac->parent.write_phy_reg = emac_w5500_write_phy_reg;
emac->parent.read_phy_reg = emac_w5500_read_phy_reg;
emac->parent.set_addr = emac_w5500_set_addr;
emac->parent.get_addr = emac_w5500_get_addr;
emac->parent.set_speed = emac_w5500_set_speed;
emac->parent.set_duplex = emac_w5500_set_duplex;
emac->parent.set_link = emac_w5500_set_link;
emac->parent.set_promiscuous = emac_w5500_set_promiscuous;
emac->parent.set_peer_pause_ability = emac_w5500_set_peer_pause_ability;
emac->parent.enable_flow_ctrl = emac_w5500_enable_flow_ctrl;
emac->parent.transmit = emac_w5500_transmit;
emac->parent.receive = emac_w5500_receive;
/* create mutex */
emac->spi_lock = xSemaphoreCreateMutex();
ESP_GOTO_ON_FALSE(emac->spi_lock, NULL, err, TAG, "create lock failed");
/* create w5500 task */
BaseType_t core_num = tskNO_AFFINITY;
if (mac_config->flags & ETH_MAC_FLAG_PIN_TO_CORE) {
core_num = cpu_hal_get_core_id();
}
BaseType_t xReturned = xTaskCreatePinnedToCore(emac_w5500_task, "w5500_tsk", mac_config->rx_task_stack_size, emac,
mac_config->rx_task_prio, &emac->rx_task_hdl, core_num);
ESP_GOTO_ON_FALSE(xReturned == pdPASS, NULL, err, TAG, "create w5500 task failed");
return &(emac->parent);
err:
if (emac) {
if (emac->rx_task_hdl) {
vTaskDelete(emac->rx_task_hdl);
}
if (emac->spi_lock) {
vSemaphoreDelete(emac->spi_lock);
}
free(emac);
}
return ret;
}
#endif

View File

@ -0,0 +1,255 @@
// Copyright 2020 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <string.h>
#include <stdlib.h>
#include <sys/cdefs.h>
#include "esp_log.h"
#include "esp_check.h"
#include "esp_eth.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_rom_gpio.h"
#include "esp_rom_sys.h"
#include "w5500.h"
static const char *TAG = "w5500.phy";
/***************Vendor Specific Register***************/
/**
* @brief PHYCFGR(PHY Configuration Register)
*
*/
typedef union {
struct {
uint8_t link: 1; /*!< Link status */
uint8_t speed: 1; /*!< Speed status */
uint8_t duplex: 1; /*!< Duplex status */
uint8_t opmode: 3; /*!< Operation mode */
uint8_t opsel: 1; /*!< Operation select */
uint8_t reset: 1; /*!< Reset, when this bit is '0', PHY will get reset */
};
uint8_t val;
} phycfg_reg_t;
typedef struct {
esp_eth_phy_t parent;
esp_eth_mediator_t *eth;
int addr;
uint32_t reset_timeout_ms;
uint32_t autonego_timeout_ms;
eth_link_t link_status;
int reset_gpio_num;
} phy_w5500_t;
static esp_err_t w5500_update_link_duplex_speed(phy_w5500_t *w5500)
{
esp_err_t ret = ESP_OK;
esp_eth_mediator_t *eth = w5500->eth;
eth_speed_t speed = ETH_SPEED_10M;
eth_duplex_t duplex = ETH_DUPLEX_HALF;
phycfg_reg_t phycfg;
ESP_GOTO_ON_ERROR(eth->phy_reg_read(eth, w5500->addr, W5500_REG_PHYCFGR, (uint32_t *) & (phycfg.val)), err, TAG, "read PHYCFG failed");
eth_link_t link = phycfg.link ? ETH_LINK_UP : ETH_LINK_DOWN;
/* check if link status changed */
if (w5500->link_status != link) {
/* when link up, read negotiation result */
if (link == ETH_LINK_UP) {
if (phycfg.speed) {
speed = ETH_SPEED_100M;
} else {
speed = ETH_SPEED_10M;
}
if (phycfg.duplex) {
duplex = ETH_DUPLEX_FULL;
} else {
duplex = ETH_DUPLEX_HALF;
}
ESP_GOTO_ON_ERROR(eth->on_state_changed(eth, ETH_STATE_SPEED, (void *)speed), err, TAG, "change speed failed");
ESP_GOTO_ON_ERROR(eth->on_state_changed(eth, ETH_STATE_DUPLEX, (void *)duplex), err, TAG, "change duplex failed");
}
ESP_GOTO_ON_ERROR(eth->on_state_changed(eth, ETH_STATE_LINK, (void *)link), err, TAG, "change link failed");
w5500->link_status = link;
}
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_set_mediator(esp_eth_phy_t *phy, esp_eth_mediator_t *eth)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_FALSE(eth, ESP_ERR_INVALID_ARG, err, TAG, "can't set mediator to null");
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
w5500->eth = eth;
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_get_link(esp_eth_phy_t *phy)
{
esp_err_t ret = ESP_OK;
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
/* Updata information about link, speed, duplex */
ESP_GOTO_ON_ERROR(w5500_update_link_duplex_speed(w5500), err, TAG, "update link duplex speed failed");
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_reset(esp_eth_phy_t *phy)
{
esp_err_t ret = ESP_OK;
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
w5500->link_status = ETH_LINK_DOWN;
esp_eth_mediator_t *eth = w5500->eth;
phycfg_reg_t phycfg;
ESP_GOTO_ON_ERROR(eth->phy_reg_read(eth, w5500->addr, W5500_REG_PHYCFGR, (uint32_t *) & (phycfg.val)), err, TAG, "read PHYCFG failed");
phycfg.reset = 0; // set to '0' will reset internal PHY
ESP_GOTO_ON_ERROR(eth->phy_reg_write(eth, w5500->addr, W5500_REG_PHYCFGR, phycfg.val), err, TAG, "write PHYCFG failed");
vTaskDelay(pdMS_TO_TICKS(10));
phycfg.reset = 1; // set to '1' after reset
ESP_GOTO_ON_ERROR(eth->phy_reg_write(eth, w5500->addr, W5500_REG_PHYCFGR, phycfg.val), err, TAG, "write PHYCFG failed");
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_reset_hw(esp_eth_phy_t *phy)
{
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
// set reset_gpio_num to a negative value can skip hardware reset phy chip
if (w5500->reset_gpio_num >= 0) {
esp_rom_gpio_pad_select_gpio(w5500->reset_gpio_num);
gpio_set_direction(w5500->reset_gpio_num, GPIO_MODE_OUTPUT);
gpio_set_level(w5500->reset_gpio_num, 0);
esp_rom_delay_us(100); // insert min input assert time
gpio_set_level(w5500->reset_gpio_num, 1);
}
return ESP_OK;
}
static esp_err_t w5500_negotiate(esp_eth_phy_t *phy)
{
esp_err_t ret = ESP_OK;
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
esp_eth_mediator_t *eth = w5500->eth;
/* in case any link status has changed, let's assume we're in link down status */
w5500->link_status = ETH_LINK_DOWN;
phycfg_reg_t phycfg;
ESP_GOTO_ON_ERROR(eth->phy_reg_read(eth, w5500->addr, W5500_REG_PHYCFGR, (uint32_t *) & (phycfg.val)), err, TAG, "read PHYCFG failed");
phycfg.opsel = 1; // PHY working mode configured by register
phycfg.opmode = 7; // all capable, auto-negotiation enabled
ESP_GOTO_ON_ERROR(eth->phy_reg_write(eth, w5500->addr, W5500_REG_PHYCFGR, phycfg.val), err, TAG, "write PHYCFG failed");
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_pwrctl(esp_eth_phy_t *phy, bool enable)
{
// power control is not supported for W5500 internal PHY
return ESP_OK;
}
static esp_err_t w5500_set_addr(esp_eth_phy_t *phy, uint32_t addr)
{
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
w5500->addr = addr;
return ESP_OK;
}
static esp_err_t w5500_get_addr(esp_eth_phy_t *phy, uint32_t *addr)
{
esp_err_t ret = ESP_OK;
ESP_GOTO_ON_FALSE(addr, ESP_ERR_INVALID_ARG, err, TAG, "addr can't be null");
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
*addr = w5500->addr;
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_del(esp_eth_phy_t *phy)
{
phy_w5500_t *w5500 = __containerof(phy, phy_w5500_t, parent);
free(w5500);
return ESP_OK;
}
static esp_err_t w5500_advertise_pause_ability(esp_eth_phy_t *phy, uint32_t ability)
{
// pause ability advertisement is not supported for W5500 internal PHY
return ESP_OK;
}
static esp_err_t w5500_loopback(esp_eth_phy_t *phy, bool enable)
{
// Loopback is not supported for W5500 internal PHY
return ESP_ERR_NOT_SUPPORTED;
}
static esp_err_t w5500_init(esp_eth_phy_t *phy)
{
esp_err_t ret = ESP_OK;
/* Power on Ethernet PHY */
ESP_GOTO_ON_ERROR(w5500_pwrctl(phy, true), err, TAG, "power control failed");
/* Reset Ethernet PHY */
ESP_GOTO_ON_ERROR(w5500_reset(phy), err, TAG, "reset failed");
return ESP_OK;
err:
return ret;
}
static esp_err_t w5500_deinit(esp_eth_phy_t *phy)
{
esp_err_t ret = ESP_OK;
/* Power off Ethernet PHY */
ESP_GOTO_ON_ERROR(w5500_pwrctl(phy, false), err, TAG, "power control failed");
return ESP_OK;
err:
return ret;
}
esp_eth_phy_t *esp_eth_phy_new_w5500(const eth_phy_config_t *config)
{
esp_eth_phy_t *ret = NULL;
ESP_GOTO_ON_FALSE(config, NULL, err, TAG, "invalid arguments");
phy_w5500_t *w5500 = calloc(1, sizeof(phy_w5500_t));
ESP_GOTO_ON_FALSE(w5500, NULL, err, TAG, "no mem for PHY instance");
w5500->addr = config->phy_addr;
w5500->reset_timeout_ms = config->reset_timeout_ms;
w5500->reset_gpio_num = config->reset_gpio_num;
w5500->link_status = ETH_LINK_DOWN;
w5500->autonego_timeout_ms = config->autonego_timeout_ms;
w5500->parent.reset = w5500_reset;
w5500->parent.reset_hw = w5500_reset_hw;
w5500->parent.init = w5500_init;
w5500->parent.deinit = w5500_deinit;
w5500->parent.set_mediator = w5500_set_mediator;
w5500->parent.negotiate = w5500_negotiate;
w5500->parent.get_link = w5500_get_link;
w5500->parent.pwrctl = w5500_pwrctl;
w5500->parent.get_addr = w5500_get_addr;
w5500->parent.set_addr = w5500_set_addr;
w5500->parent.advertise_pause_ability = w5500_advertise_pause_ability;
w5500->parent.loopback = w5500_loopback;
w5500->parent.del = w5500_del;
return &(w5500->parent);
err:
return ret;
}

77
lib/ETHSPI/w5500.h Normal file
View File

@ -0,0 +1,77 @@
// Copyright 2020 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#define W5500_ADDR_OFFSET (16) // Address length
#define W5500_BSB_OFFSET (3) // Block Select Bits offset
#define W5500_RWB_OFFSET (2) // Read Write Bits offset
#define W5500_BSB_COM_REG (0x00) // Common Register
#define W5500_BSB_SOCK_REG(s) ((s)*4+1) // Socket Register
#define W5500_BSB_SOCK_TX_BUF(s) ((s)*4+2) // Socket TX Buffer
#define W5500_BSB_SOCK_RX_BUF(s) ((s)*4+3) // Socket RX Buffer
#define W5500_ACCESS_MODE_READ (0) // Read Mode
#define W5500_ACCESS_MODE_WRITE (1) // Write Mode
#define W5500_SPI_OP_MODE_VDM (0x00) // Variable Data Length Mode (SPI frame is controlled by CS line)
#define W5500_SPI_OP_MODE_FDM_1 (0x01) // Fixed Data Length Mode, 1 Byte Length
#define W5500_SPI_OP_MODE_FDM_2 (0x02) // Fixed Data Length Mode, 2 Bytes Length
#define W5500_SPI_OP_MODE_FDM_4 (0x03) // Fixed Data Length Mode, 4 Bytes Length
#define W5500_MAKE_MAP(offset, bsb) ((offset) << W5500_ADDR_OFFSET | (bsb) << W5500_BSB_OFFSET)
#define W5500_REG_MR W5500_MAKE_MAP(0x0000, W5500_BSB_COM_REG) // Mode
#define W5500_REG_MAC W5500_MAKE_MAP(0x0009, W5500_BSB_COM_REG) // MAC Address
#define W5500_REG_INTLEVEL W5500_MAKE_MAP(0x0013, W5500_BSB_COM_REG) // Interrupt Level Timeout
#define W5500_REG_IR W5500_MAKE_MAP(0x0015, W5500_BSB_COM_REG) // Interrupt
#define W5500_REG_IMR W5500_MAKE_MAP(0x0016, W5500_BSB_COM_REG) // Interrupt Mask
#define W5500_REG_SIR W5500_MAKE_MAP(0x0017, W5500_BSB_COM_REG) // Socket Interrupt
#define W5500_REG_SIMR W5500_MAKE_MAP(0x0018, W5500_BSB_COM_REG) // Socket Interrupt Mask
#define W5500_REG_RTR W5500_MAKE_MAP(0x0019, W5500_BSB_COM_REG) // Retry Time
#define W5500_REG_RCR W5500_MAKE_MAP(0x001B, W5500_BSB_COM_REG) // Retry Count
#define W5500_REG_PHYCFGR W5500_MAKE_MAP(0x002E, W5500_BSB_COM_REG) // PHY Configuration
#define W5500_REG_VERSIONR W5500_MAKE_MAP(0x0039, W5500_BSB_COM_REG) // Chip version
#define W5500_REG_SOCK_MR(s) W5500_MAKE_MAP(0x0000, W5500_BSB_SOCK_REG(s)) // Socket Mode
#define W5500_REG_SOCK_CR(s) W5500_MAKE_MAP(0x0001, W5500_BSB_SOCK_REG(s)) // Socket Command
#define W5500_REG_SOCK_IR(s) W5500_MAKE_MAP(0x0002, W5500_BSB_SOCK_REG(s)) // Socket Interrupt
#define W5500_REG_SOCK_SR(s) W5500_MAKE_MAP(0x0004, W5500_BSB_SOCK_REG(s)) // Socket Status
#define W5500_REG_SOCK_RXBUF_SIZE(s) W5500_MAKE_MAP(0x001E, W5500_BSB_SOCK_REG(s)) // Socket Receive Buffer Size
#define W5500_REG_SOCK_TXBUF_SIZE(s) W5500_MAKE_MAP(0x001F, W5500_BSB_SOCK_REG(s)) // Socket Transmit Buffer Size
#define W5500_REG_SOCK_TX_FSR(s) W5500_MAKE_MAP(0x0020, W5500_BSB_SOCK_REG(s)) // Socket TX Free Size
#define W5500_REG_SOCK_TX_RD(s) W5500_MAKE_MAP(0x0022, W5500_BSB_SOCK_REG(s)) // Socket TX Read Pointer
#define W5500_REG_SOCK_TX_WR(s) W5500_MAKE_MAP(0x0024, W5500_BSB_SOCK_REG(s)) // Socket TX Write Pointer
#define W5500_REG_SOCK_RX_RSR(s) W5500_MAKE_MAP(0x0026, W5500_BSB_SOCK_REG(s)) // Socket RX Received Size
#define W5500_REG_SOCK_RX_RD(s) W5500_MAKE_MAP(0x0028, W5500_BSB_SOCK_REG(s)) // Socket RX Read Pointer
#define W5500_REG_SOCK_RX_WR(s) W5500_MAKE_MAP(0x002A, W5500_BSB_SOCK_REG(s)) // Socket RX Write Pointer
#define W5500_REG_SOCK_IMR(s) W5500_MAKE_MAP(0x002C, W5500_BSB_SOCK_REG(s)) // Socket Interrupt Mask
#define W5500_MEM_SOCK_TX(s,addr) W5500_MAKE_MAP(addr, W5500_BSB_SOCK_TX_BUF(s)) // Socket TX buffer address
#define W5500_MEM_SOCK_RX(s,addr) W5500_MAKE_MAP(addr, W5500_BSB_SOCK_RX_BUF(s)) // Socket RX buffer address
#define W5500_MR_RST (1<<7) // Software reset
#define W5500_MR_PB (1<<4) // Ping block (block the response to a ping request)
#define W5500_SIMR_SOCK0 (1<<0) // Socket 0 interrupt
#define W5500_SMR_MAC_RAW (1<<2) // MAC RAW mode
#define W5500_SMR_MAC_FILTER (1<<7) // MAC filter
#define W5500_SCR_OPEN (0x01) // Open command
#define W5500_SCR_CLOSE (0x10) // Close command
#define W5500_SCR_SEND (0x20) // Send command
#define W5500_SCR_RECV (0x40) // Recv command
#define W5500_SIR_RECV (1<<2) // Receive done
#define W5500_SIR_SEND (1<<4) // Send done

View File

@ -1,2 +0,0 @@
FT5206 Library
=====================================

View File

@ -1,29 +0,0 @@
#######################################
# Syntax Coloring Map For FT5206 Library By lewis He
# github:https://github.com/lewisxhe
#######################################
#######################################
# Datatypes (KEYWORD1)
#######################################
TP_Point KEYWORD1
FT5206_Class KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
begin KEYWORD2
adjustTheshold KEYWORD2
getPoint KEYWORD2
enterSleepMode KEYWORD2
enterMonitorMode KEYWORD2
#######################################
# Instances (KEYWORD2)
#######################################
#######################################
# Constants (LITERAL1)
#######################################

View File

@ -1,10 +0,0 @@
name=FT5206_Library
version=1.0.0
author=Lewis He
maintainer=Lewis He <lewishe@outlook.com>
sentence=Arduino library for FT5206 chip.
paragraph=Arduino library for FT5206 chip. Tested with ESP32
category=Communication
url=https://github.com/lewisxhe/FT5206_Library
architectures=*
architectures=esp32

View File

@ -1,108 +0,0 @@
/////////////////////////////////////////////////////////////////
/*
MIT License
Copyright (c) 2019 lewis he
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
FT5206.cpp - Arduino library for FT5206 chip.
Created by Lewis on April 17, 2019.
github:https://github.com/lewisxhe/FT5206_Library
*/
/////////////////////////////////////////////////////////////////
#include "FT5206.h"
int FT5206_Class::begin(TwoWire &port, uint8_t addr)
{
_i2cPort = &port;
_address = addr;
uint8_t val;
_readByte(FT5206_VENDID_REG, 1, &val);
//Serial.printf("vend id %d\n",val );
if (val != FT5206_VENDID) {
// return false;
}
_readByte(FT5206_CHIPID_REG, 1, &val);
//Serial.printf("chip id %d\n",val );
if ((val != FT6206_CHIPID) && (val != FT6236_CHIPID) && (val != FT6236U_CHIPID) && (val != FT5206U_CHIPID) && (val != FT5316_CHIPID) ) {
return false;
}
_init = true;
return true;
}
// valid touching detect threshold.
void FT5206_Class::adjustTheshold(uint8_t thresh)
{
if (!_init)return;
_writeByte(FT5206_THRESHHOLD_REG, 1, &thresh);
}
TP_Point FT5206_Class::getPoint(uint8_t num)
{
if (!_init) return TP_Point(0, 0);
_readRegister();
if ((_touches == 0) || (num > 1)) {
return TP_Point(0, 0);
} else {
return TP_Point(_x[num], _y[num]);
}
}
uint8_t FT5206_Class::touched()
{
if (!_init)return 0;
uint8_t val = 0;
_readByte(FT5206_TOUCHES_REG,1,&val);
return val > 2 ? 0: val;
}
void FT5206_Class::enterSleepMode()
{
if (!_init)return;
uint8_t val = FT5206_SLEEP_IN;
_writeByte(FT5206_POWER_REG, 1, &val);
}
void FT5206_Class::enterMonitorMode()
{
if (!_init)return;
uint8_t val = FT5206_MONITOR;
_writeByte(FT5206_POWER_REG, 1, &val);
}
void FT5206_Class::_readRegister()
{
_readByte(DEVIDE_MODE, 16, _data);
_touches = _data[TD_STATUS];
if ((_touches > 2) || (_touches == 0)) {
_touches = 0;
return;
}
for (uint8_t i = 0; i < 2; i++) {
_x[i] = _data[TOUCH1_XH + i * 6] & 0x0F;
_x[i] <<= 8;
_x[i] |= _data[TOUCH1_XL + i * 6];
_y[i] = _data[TOUCH1_YH + i * 6] & 0x0F;
_y[i] <<= 8;
_y[i] |= _data[TOUCH1_YL + i * 6];
_id[i] = _data[TOUCH1_YH + i * 6] >> 4;
}
}

Some files were not shown because too many files have changed in this diff Show More