646 Commits

Author SHA1 Message Date
98b32847ec Bobbyssl 2021-12-20 11:54:38 +01:00
4104cafb59 Merge pull request #170 from bobbycar-graz/display_in_taskmanager
Moved display's update and redraw into task manager
2021-12-20 11:27:31 +01:00
1830df26fd Moved display's update and redraw into task manager 2021-12-20 10:52:02 +01:00
2a56f59d86 Removed no longer needed code 2021-12-20 10:45:36 +01:00
8074f63578 Fixed initScreen for lockscreen (digits missing) 2021-12-20 00:32:58 +01:00
78a1734133 Merge pull request #155 from bobbycar-graz/new_idf
Update to newest idf
2021-12-20 00:04:56 +01:00
01841f11a1 Updated to newest idf 2021-12-19 23:54:29 +01:00
5f26d607eb Merge pull request #168 from bobbycar-graz/more_tasks_in_taskmanager
Move tasks into task manager
2021-12-19 23:53:57 +01:00
95ae227a97 Moved handle_dns_announce and dnsannounce into task manager 2021-12-19 23:40:41 +01:00
0adb55c668 Removed modeUpdateRate config parameter 2021-12-19 23:30:54 +01:00
f8a14414e2 Moved driving mode into own task 2021-12-19 23:25:52 +01:00
c7420afd9c Moved bms into task manager 2021-12-19 22:50:50 +01:00
05af290420 Merge pull request #167 from bobbycar-graz/taskmanager_menu
Add taskmanager menu
2021-12-19 20:44:36 +01:00
ba694f0fcf CPU freq to 240MHz for feedc0de config 2021-12-19 20:42:01 +01:00
ab7052b52c Disable esp-now for feedc0de config 2021-12-19 20:41:36 +01:00
eb55b20511 Taskmanager menu show elapsed times 2021-12-19 20:32:37 +01:00
cad8ce5d3c Added taskmanager menu 2021-12-19 19:54:31 +01:00
17540b7a1e Merge pull request #165 from bobbycar-graz/reduce_statusdisplay_fps
Reduce StatusDisplay FPS to increase performance
2021-12-19 18:26:44 +01:00
25f0494ab7 Reduce StatusDisplay FPS to increase performance 2021-12-19 18:13:42 +01:00
2110624880 Merge pull request #166 from bobbycar-graz/disable_failing_rsync
Remove failing rsync build step
2021-12-19 18:07:37 +01:00
d44fb8ec9a Remove failing rsync build step 2021-12-19 17:54:36 +01:00
b084839ba8 Merge pull request #164 from bobbycar-graz/more_tasks_in_taskmanager
Add more tasks to task manager
2021-12-19 17:35:06 +01:00
e0f3ceee7c cloud and udpcloud splitup and into taskmanager migrated 2021-12-19 17:20:55 +01:00
058745abd5 Moved espnow into task manager 2021-12-19 16:48:42 +01:00
b3299c8325 Add ledstrip to task manager 2021-12-19 16:42:45 +01:00
872a7e45fa Enable log with filename/function name for all configs 2021-12-19 16:40:55 +01:00
868b9dd6d4 Merge pull request #163 from bobbycar-graz/more_tasks_in_taskmanager
More more tasks into task manager
2021-12-19 05:09:36 +01:00
b55b649b10 Moved webserver into taskmanager 2021-12-19 04:56:24 +01:00
be53c39ebf moved ble to taskmanager 2021-12-19 04:48:12 +01:00
04515eecb5 Moved ota to taskmanager 2021-12-19 04:42:01 +01:00
a1946e2e02 Moved serial controller comm to taskmanager 2021-12-19 04:35:37 +01:00
3ae6721402 debuginput task in taskmanager 2021-12-19 04:23:47 +01:00
8210c57dff Moved can into task manager 2021-12-19 04:02:12 +01:00
514f993b9c Merge pull request #162 from bobbycar-graz/temporary-disable-artifact-upload
Temporary disable artifact upload
2021-12-19 03:52:07 +01:00
a86f27748f Temporary disable artifact upload 2021-12-19 03:40:14 +01:00
b721341210 Merge pull request #161 from bobbycar-graz/enable-sonar-cache
Enable sonar cache
2021-12-19 03:19:13 +01:00
53aaa9dc43 Enable sonar cache 2021-12-19 03:06:08 +01:00
562b5d25ac Merge pull request #160 from bobbycar-graz/more_tasks_in_taskmanager
More tasks in task manager
2021-12-19 03:01:31 +01:00
2ec19d2def bluetooth to taskmanager migrated 2021-12-19 02:49:50 +01:00
304ce9925f More tasks in task manager 2021-12-19 02:49:50 +01:00
09431cc305 Merge pull request #158 from bobbycar-graz/feature-nvs-store-qr 2021-12-19 02:26:21 +01:00
599965f0bd Added delete function 2021-12-19 02:12:34 +01:00
f6c3e95f9d Add delete methods 2021-12-19 02:03:07 +01:00
13cef1a32d Added nvs saving 2021-12-19 01:55:43 +01:00
d6198d5320 Activated logging 2021-12-19 01:55:30 +01:00
6c9581bb78 implemented qr code setter 2021-12-18 23:09:48 +01:00
db19e574c0 Implemented getter for qr codes 2021-12-18 23:06:06 +01:00
155f56863e Added new function 2021-12-18 22:24:23 +01:00
a9798713ed Added qr import display 2021-12-18 22:24:23 +01:00
80d141a109 Merge pull request #159 from bobbycar-graz/shallow-clone-for-sonar
Do shallow clones for sonar
2021-12-18 20:46:52 +01:00
9c80aa4250 Do shallow clones for sonar 2021-12-18 20:33:50 +01:00
49bda3f88d Add Sonar badges 2021-12-18 20:26:42 +01:00
40d85d81cd Merge pull request #157 from bobbycar-graz/more_tasks_in_taskmanager
more tasks in task manager
2021-12-18 20:23:28 +01:00
b5c6823a80 more tasks in task manager 2021-12-18 20:08:40 +01:00
444df158e9 Merge pull request #152 from bobbycar-graz/menudisplaywithtime_refactoring
Remove m_ from method name
2021-12-18 19:01:05 +01:00
2c28cf9107 Merge branch 'master' into menudisplaywithtime_refactoring 2021-12-18 18:51:15 +01:00
7611613ca7 Merge pull request #154 from bobbycar-graz/sonar-multithreaded
Sonar use multithreads
2021-12-18 18:50:37 +01:00
a7d7448c52 Sonar use multithreads 2021-12-18 18:37:10 +01:00
03932c5683 Merge pull request #153 from bobbycar-graz/sonar-analyze
Enable sonar analyze
2021-12-18 18:17:20 +01:00
217e45de6a Add sonar build step 2021-12-18 18:04:20 +01:00
abb76a29b9 Changed 2021-12-18 16:45:58 +01:00
023986b827 Added sourced-indicator 2021-12-18 12:55:29 +01:00
81d5a3bc95 Merge pull request #150 from bobbycar-graz/fix-qr 2021-12-18 02:55:51 +01:00
d3e2323c74 Fixed submodules 2021-12-18 02:30:06 +01:00
56b3e8cdd1 Fixed qr code 2021-12-18 02:17:30 +01:00
55d9f432d7 WEG DAMIIIIIIITTTTT 2021-12-18 01:03:25 +01:00
e6d4133d2e Removed old library 2021-12-18 00:59:23 +01:00
8780ab8c7c wifi task 2021-12-18 00:59:22 +01:00
cce5dc38da Merge pull request #148 from bobbycar-graz/cpp-refactor
Refactoring and many new features!
2021-12-18 00:46:51 +01:00
df6e0e55f5 Merge branch 'master' into cpp-refactor 2021-12-18 00:39:57 +01:00
13fe185ac1 Merge pull request #137 from bobbycar-graz/taskmanager
Taskmanager
2021-12-18 00:39:30 +01:00
f47bf772ef Dodln 2021-12-18 00:24:56 +01:00
93556a00fe Scheiß 2021-12-18 00:10:58 +01:00
cef961c174 Move into anonymous namespace 2021-12-17 23:30:58 +01:00
a4d80c640d Added error helping 2021-12-17 23:28:48 +01:00
9ddf246805 Change 2021-12-17 23:13:07 +01:00
b48648f3e2 advanced lock 2021-12-17 22:40:08 +01:00
bcfbb98362 Moved log 2021-12-17 22:39:36 +01:00
6492531183 Fixed compiling issues because of includes 2021-12-16 21:56:18 +01:00
8bd5b21436 Merge branch 'taskmanager' into cpp-refactor 2021-12-16 21:41:13 +01:00
d91b6cb6e1 Merge branch 'master' into taskmanager 2021-12-16 21:40:06 +01:00
180e3fbaa8 Fixed if else 2021-12-16 21:10:11 +01:00
16ebdfc795 Added deinit() for esp now 2021-12-16 20:48:11 +01:00
5903fc21b1 MenuDisplayWithTime now supports font size 2021-12-16 20:48:06 +01:00
b59d9dff9f Fixed includes and changed to new MenuDisplayWithTime 2021-12-16 20:48:00 +01:00
92f41a0ce1 Changed some menus to show how new displaywithtime class works 2021-12-16 20:47:54 +01:00
4f109d4d08 Moved time to special menudisplay 2021-12-16 20:47:47 +01:00
4a2254df0b Fixed compiling for non-espnow-users 2021-12-16 20:47:38 +01:00
6adca753aa Back button now does something and lockscreen can OPTIONALLY be set to stay over reboot (Implemented #146) 2021-12-16 20:47:29 +01:00
595a508d93 Added esp-now timesync 2021-12-16 20:47:23 +01:00
647f86906b Changed back action to a menu that makes more sense 2021-12-16 20:47:17 +01:00
42067b1a3b Added esp now menu and timesync between bobbycars 2021-12-16 20:47:12 +01:00
66e40248fe Do not accept update if time is already set by ntp 2021-12-16 20:47:01 +01:00
5d424a4377 Fixed chrono literals 2021-12-16 20:46:45 +01:00
24607b3a0c Fixed compiling issues 2021-12-16 20:46:37 +01:00
aabae8b8b6 Refactored settingsutils 2021-12-16 20:46:29 +01:00
02999bcde1 Refactored ledstripanimationactions, ledstripactions, bmsdisplay, accesspointwifisettingsmenu, feedbackdebugmenu, ledstripmenu, ledstripselectblinkmenu, ledstripselectotamode, mosfetsmenu 2021-12-16 20:46:19 +01:00
27019b7d75 Added vscode ignore 2021-12-16 20:46:14 +01:00
0e3053a45b Added esp now garage opener 2021-12-16 20:45:06 +01:00
e07cb9d373 Added time sync via esp now 2021-12-16 20:44:59 +01:00
f9bc8b341d Forgot to set error timeout 2021-12-16 20:44:52 +01:00
c50787ba84 Fixed esp_now_init(), added message queue to not block the callback function 2021-12-16 20:44:45 +01:00
24e8543ff3 Removed coredump from my config 2021-12-16 20:44:39 +01:00
4357f1c7a5 Updated 2021-12-16 20:43:02 +01:00
c6f2392289 Non-working commit 2021-12-16 20:42:47 +01:00
c1a4058a22 Added useful qr code 2021-12-16 20:40:29 +01:00
9f18bd980c Added qr code debug menu 2021-12-16 20:40:23 +01:00
2616af5a30 Updated QR library 2021-12-16 20:40:08 +01:00
d4955349a8 Added QR code library 2021-12-16 20:39:43 +01:00
60a960429e Added better logging 2021-12-11 22:28:19 +01:00
02aae7120c introduced a lot of new tasks in the taskmanager 2021-12-11 20:10:44 +01:00
13d35d50a1 wifi task 2021-12-11 20:10:44 +01:00
bb06fe6ba6 taskmanager 2021-12-11 20:10:44 +01:00
31210150cf Added ignore 2021-12-11 19:59:32 +01:00
e4b171c90f Fixed wrong direction for other users 2021-12-11 05:53:05 +01:00
508c90800a Added battery doubleprogressbar 2021-12-11 05:05:46 +01:00
70382088a0 Fixed #142 2021-12-11 03:43:24 +01:00
bd9fdeac7b Added check for required redraw 2021-12-11 01:28:57 +01:00
169d5434da Fixed directions 2021-12-11 01:28:24 +01:00
0c33f3668a Fixed ota page 2021-12-10 21:22:35 +01:00
47d4492925 Added headers 2021-12-10 20:29:49 +01:00
2a41155f77 Updated esp-gui-lib 2021-12-10 12:21:35 +01:00
5ca42235ba Removed pragma once 2021-12-10 12:14:38 +01:00
50c251d679 Merge branch 'better-website' 2021-12-10 12:10:02 +01:00
1f9a53dd7e Added color and fixed json 2021-12-10 10:01:49 +01:00
f2e5478106 Added icon names corresponding to their .png filename 2021-12-10 07:29:34 +01:00
c6bfc4b77a Fixed a few bugs in json view 2021-12-10 07:25:16 +01:00
24db6a7ce5 Updated gui lib 2021-12-09 22:43:31 +01:00
7761f415a5 Added security to json backend 2021-12-09 14:56:06 +01:00
64ac74ea5d Fixed non-feature-ota compiling 2021-12-09 08:06:38 +01:00
38470629b8 Update README.md 2021-12-09 07:42:41 +01:00
b8172e7b63 Added ledstrip length 2021-12-09 07:40:39 +01:00
583bd4992f Weg damit 2021-12-09 07:39:20 +01:00
57fe5b14b7 Added ledstrip 2021-12-09 07:35:24 +01:00
a611ad3db4 Added ledstrip 2021-12-09 07:33:17 +01:00
f1053cd3b5 Weg damit 2021-12-09 07:22:57 +01:00
8caf8789dd Added json versions of websites 2021-12-09 00:33:40 +01:00
98641cfc04 Added plugin and fixed compiling 2021-12-09 00:21:27 +01:00
e4b3a594f4 Added plugin and fixed compiling 2021-12-09 00:19:52 +01:00
cc0a23802f Added new parameter and fixed ifdef 2021-12-08 22:50:30 +01:00
b899b0a503 Require OTA_USERNAME 2021-12-08 22:49:25 +01:00
f99562f9bc Lets not speak about that... 2021-12-08 22:29:01 +01:00
24224079bd Merge pull request #139 from bobbycar-graz/cpp-refactor
Fixed Handbremse
2021-12-08 20:57:07 +01:00
0837333731 Fixed handbremse (deleted old code and wrote new code :D) 2021-12-08 02:24:44 +01:00
bc9c7c22a8 Fixed ota animation 2021-12-08 02:24:24 +01:00
f548a14b5d Fixed webserver 2021-12-08 02:03:41 +01:00
cf498db01e Decreased values 2021-12-07 23:11:55 +01:00
7051bd756f More symlinks 2021-12-07 16:12:56 +01:00
3db575f9f7 Merge pull request #138 from bobbycar-graz/cpp-refactor
More Cpp refactoring
2021-12-07 16:11:35 +01:00
36265be595 Removed debug print 2021-12-07 16:02:53 +01:00
b831d282d9 Added branch select 2021-12-07 15:54:56 +01:00
14d74a5846 Added namespace 2021-12-07 15:54:34 +01:00
5dff47f437 Refactored blesettingsmenu, ledstripselectanimationmenu, profilesmenu 2021-12-07 02:54:14 +01:00
ddf0d27137 Refactored Ledstrip (Fixed types and removed Macros) 2021-12-07 02:53:43 +01:00
c291752b46 Remove IGNORE_KEY 2021-12-06 12:17:40 +01:00
2101077f42 Fixed speed 0 mode 'quickstart' 2021-12-06 00:36:24 +01:00
0df45e74f2 Fixed visualize 2021-12-05 23:38:05 +01:00
d32b46ed3f Added handbremse variable (statusdisplay.cpp) 2021-12-05 23:18:56 +01:00
0ab293ee07 Fixed apply checks and Mosfets off mode 2021-12-05 23:08:56 +01:00
c5b9a0ab51 Cpp refactor (#136)
* Inital added file

* Sorted CMakeLists.txt

* Refactored buildserver.h into h/cpp

* Converted crashmenu, enablemenu, invertmenu, selectotabuildmenu

* Added namespace for bluetoothtexthelpers

* Converted bmsmenu, presetsmenu, timersmenu

* Moved into seperate namespace

* Converted wifiscanmenu

* Refactored texts

* Fixed commit select not working

* 240MHz

* Added handbremse

* Better spacing of buttons

* Removed unneeded file

* Added ignore

* Fixed main.yml

* Update main.yml

* Fixed path

* Fixed shitty path

Co-authored-by: CommanderRedYT <ccommanderred@gmail.com>
2021-12-05 01:22:24 +01:00
8bf7b7e39e Better spacing of buttons 2021-12-04 20:39:18 +01:00
b52d6c61d7 Fixed wrong direction 2021-12-04 03:05:34 +01:00
51e38fb6df AP password now configurable 2021-12-02 15:04:56 +01:00
c2d8042182 Added example buttons 2021-12-02 11:16:15 +01:00
704109f0d0 Fixed mv command 2021-12-01 18:41:24 +01:00
09c098f54a Fixed folder 2021-12-01 18:28:18 +01:00
574017ef0c Update main.yml 2021-12-01 18:16:42 +01:00
6a29776bd4 Removed badge as it is no longer needed 2021-12-01 18:15:48 +01:00
aee7a35362 Fiyed source 2021-12-01 17:53:29 +01:00
244a955c4b Fixed invalid path 2021-12-01 17:45:35 +01:00
46fa8cba05 Fixed tmp folder 2021-12-01 17:36:29 +01:00
546d3041bc Fixed symlink 2021-12-01 17:27:04 +01:00
e67dc15b70 Updated file names 2021-12-01 17:19:27 +01:00
06530beab0 Should be last fix 2021-12-01 16:20:31 +01:00
01a31e445e Create symlink 2021-12-01 16:10:17 +01:00
97d06c3b20 Added debug statements 2021-12-01 15:56:46 +01:00
22ae359534 Fixed paths again 2021-12-01 15:47:53 +01:00
dea02804bd Fixed paths 2021-12-01 15:35:30 +01:00
9a879ec842 Updated paths 2021-12-01 15:26:12 +01:00
4411a82348 GitHub variables are complicated 2021-12-01 15:14:03 +01:00
eb7f5a0523 Fixed github sha (hopefully) 2021-12-01 15:03:56 +01:00
99811324e2 Upload should be fixed now 2021-12-01 14:54:41 +01:00
fb3fe7b3c0 Fixed upload path 2021-12-01 14:40:18 +01:00
562fc167bc Simplified files 2021-12-01 14:38:07 +01:00
d4325f2983 Forgot user 2021-12-01 14:27:43 +01:00
740ca4680a Added debug output 2021-12-01 14:22:07 +01:00
54166bb693 Update main.yml 2021-12-01 14:10:31 +01:00
6cdccb285e Wrong use of GITHUB_SHA 2021-12-01 14:02:58 +01:00
341ef11536 Update main.yml 2021-12-01 14:01:32 +01:00
9c4ffb3482 Wrong version 2021-12-01 13:55:49 +01:00
3c45cc1742 Added rsync 2021-12-01 13:54:40 +01:00
b1c1cfa7ec Removed debug output 2021-12-01 13:22:23 +01:00
f91e722a36 Forgot env variable 2021-12-01 13:19:13 +01:00
1982a4551a Fixed type-o 2021-12-01 13:14:32 +01:00
16820b09e8 Added default workflow 2021-12-01 13:13:22 +01:00
d3000ed5f7 Added access script 2021-12-01 13:10:56 +01:00
34feb842c1 Update main.yml 2021-12-01 13:08:10 +01:00
d4a20d70a6 Added env 2021-12-01 12:12:25 +01:00
4e1f1f1c98 Forgot other backlight options 2021-12-01 11:23:43 +01:00
517d4f7fb3 Readded backlight 2021-12-01 11:22:35 +01:00
9ffaea39bc New ledstrip 2021-12-01 11:17:07 +01:00
242bc6c255 Update README.md 2021-12-01 10:06:14 +01:00
bb7c0bf019 Fixed cmake error ._. 2021-12-01 09:04:30 +01:00
98949cd411 alert flow text 2021-11-30 20:47:20 +01:00
3d13cd9946 Removed goto 2021-11-30 19:27:18 +01:00
4302b8bf5e Fixed compiling 2021-11-29 13:13:15 +01:00
7af77dd452 Fixed softlock in game of life 2021-11-29 12:58:12 +01:00
cd1f503bc7 Added motortest mode 2021-11-27 00:13:55 +01:00
5208f7382e Remove codacy badge 2021-11-26 23:46:09 +01:00
e7a6a2d506 Added first example popup 2021-11-26 23:31:17 +01:00
79bbd16371 Increased display bus speeds 2021-11-26 23:30:41 +01:00
9173ab272d Added std::string option for udp cloud 2021-11-26 18:27:44 +01:00
c94a3af910 Merge pull request #127 from bobbycar-graz/cloud
Cloud
2021-11-26 12:29:11 +01:00
5a642593c8 Update sdkconfig_comred 2021-11-26 12:23:32 +01:00
6baa17d584 Update README.md 2021-11-26 12:16:06 +01:00
e49eae2322 Fixed bootloop when coredump is activated 2021-11-26 00:55:14 +01:00
a92b2bed2c Removed required 2021-11-26 00:55:14 +01:00
0c693544ac Readded file 2021-11-26 00:55:14 +01:00
bd1307e156 Removed required 2021-11-26 00:55:14 +01:00
6076f2a57d Readded file 2021-11-26 00:55:14 +01:00
71be39556d Downgraded esp-idf 2021-11-26 00:55:11 +01:00
55674ef079 Downgraded esp-idf 2021-11-26 00:03:16 +01:00
74a3723ea7 Added more files to artifacts 2021-11-25 20:35:01 +01:00
c64e6abd01 Fixed compiling for non-cloud-users 2021-11-25 20:27:57 +01:00
63acd0c3ab Merge pull request #128 from bobbycar-graz/master
Update cloud
2021-11-25 20:11:24 +01:00
e2bf4c579f Updated Flash Size 2021-11-25 15:26:41 +01:00
2eaedb00fb Changed partition table 2021-11-25 12:52:58 +01:00
b39ad41380 Added flag to enable blinking square 2021-11-24 17:38:18 +01:00
1a4dbc5907 Fixed bootloop when coredump is activated 2021-11-24 17:37:59 +01:00
c32007bc3b Removed required 2021-11-24 16:51:38 +01:00
6ffa4580d8 Removed required 2021-11-24 16:45:33 +01:00
24cc9c9f25 Readded file 2021-11-24 16:45:33 +01:00
5e7f286d84 Update main.yml 2021-11-24 16:45:33 +01:00
6a3372b2d4 Update main.yml 2021-11-24 16:44:38 +01:00
6a529e5dca Fixed compiling without can 2021-11-24 16:43:17 +01:00
52564a74ff Removed everything that could crash 2021-11-24 16:30:44 +01:00
7bc486bc3f fixed compilation after rebase 2021-11-21 23:26:25 +01:00
ebcbdeb18c Reduced brightness 2021-11-21 23:25:12 +01:00
ffbb710429 Added udp indicator 2021-11-21 23:25:08 +01:00
ead878ffd9 Added udp cloud options and ledstrip fixes 2021-11-21 23:25:04 +01:00
19b79fe441 Fixed inverted 2021-11-21 23:25:01 +01:00
89c3de03d3 Fixed building 2021-11-21 23:24:57 +01:00
1b3c17c55d Added udp cloud 2021-11-21 23:24:52 +01:00
a43bca4bab Removed required 2021-11-21 23:24:38 +01:00
b7bf6d22a9 Fixed inverted motors 2021-11-21 23:24:07 +01:00
c335822cb9 Readded file 2021-11-21 23:23:55 +01:00
61a8b00231 Load new settings on boot 2021-11-21 23:08:32 +01:00
6e1c2d2aea Introduced the first settings parameters in newsettings 2021-11-21 20:57:23 +01:00
8565f3ba20 Remove mick build config 2021-11-21 20:57:06 +01:00
b922c5779e Updated esp-idf again 2021-11-21 19:57:58 +01:00
f0b7db5667 Feedc0de back to 240MHz 2021-11-21 19:23:51 +01:00
befb51d499 Updated esp-idf again 2021-11-21 19:23:42 +01:00
467962efeb Updated esp-idf to newest version 2021-11-21 18:01:20 +01:00
4db09fda31 fixed mick compiling too 2021-11-21 14:43:53 +01:00
33d273bbad fixed irgendwas with timezones 2021-11-21 03:55:37 +01:00
f9083d44b4 milliseconds in smaller font 2021-11-21 03:11:55 +01:00
8b0b0760e2 Fixed strange linker error 2021-11-21 03:11:39 +01:00
711896d20b driving statics menu improvements 2021-11-21 02:16:37 +01:00
b8acf12fd1 Fixed drivingstatistics ms rounding errors 2021-11-21 01:51:01 +01:00
ed51591489 driving statistics fixes 2021-11-21 01:36:44 +01:00
28a4933928 Updated esp-gui-lib 2021-11-21 01:09:35 +01:00
646e7ef51c feedc0de now with 240MHz instead of 160MHz 2021-11-21 00:58:59 +01:00
e8b1269621 Disable DNS_NS for feedc0de 2021-11-21 00:58:39 +01:00
d2487d9c7d fixes webserver 2021-11-21 00:56:28 +01:00
4e2022212c fixed graph statistics 2021-11-20 21:00:50 +01:00
652788a89e Updated submodules 2021-11-20 18:26:15 +01:00
297e5f4626 restored destroyed open_ide.sh 2021-11-20 18:19:41 +01:00
ab6aa16e0b Merge pull request #124 from bobbycar-graz/cloud
Updated master from cloud
2021-11-18 22:37:51 +01:00
7667128d71 error handling with buildserver list 2021-11-18 22:24:14 +01:00
0daba8d4eb Changed config 2021-11-18 21:06:26 +01:00
f928b38541 Changed config 2021-11-18 21:01:49 +01:00
0338e3b123 Fixed compilation for non-ledstrip-users 2021-11-18 15:27:51 +01:00
a18854659d Moved menu entry 2021-11-18 15:22:13 +01:00
5ea2423bd3 Added ota update animation 2021-11-18 15:16:11 +01:00
ce1cd04497 Updated Badges 2021-11-18 12:33:09 +01:00
819ab57306 Fixed compiling issues 2021-11-18 01:33:52 +01:00
386a8aacce Fixed type-o 2021-11-18 01:17:04 +01:00
63baa21a28 Added new variables to struct 2021-11-18 01:15:37 +01:00
2e2db854e6 Moved dns and driving stats to seperate files 2021-11-18 01:15:17 +01:00
ef02ce40fb Show energy-efficiency in statusdisplay 2021-11-18 01:14:43 +01:00
eb663a8fd6 Added new texts 2021-11-18 01:14:12 +01:00
a6651c1cd1 Added new Battery Percentage String 2021-11-18 01:13:16 +01:00
cd669c03aa Added new files 2021-11-18 01:11:39 +01:00
e2c3699eb9 Moved into seperate functions 2021-11-18 01:11:20 +01:00
1c18aa2dd7 Increased maximum header size (So webserver doesnt crash on long urls) 2021-11-17 19:50:29 +01:00
64fb51aba7 Changed announce message 2021-11-17 18:13:03 +01:00
46f30911bd Save when staying still and ip check 2021-11-17 00:15:03 +01:00
76e8adcce3 Added icons and changed texts 2021-11-15 23:11:46 +01:00
be05e42303 Added blink animation (Resolves #106) 2021-11-15 20:38:54 +01:00
be41e8018e Removed debug log 2021-11-15 20:37:08 +01:00
b9e1509a87 Added driving statistics 2021-11-15 01:53:35 +01:00
1b4498b2ca Moved Wh stats and debug texts into own menu 2021-11-15 01:50:15 +01:00
88d7697b10 Added texts 2021-11-15 01:50:01 +01:00
bcb8b9809a Added new icon 2021-11-15 01:48:55 +01:00
c79313fe11 Fixed 'Binary-Editor cannot open empty files' 2021-11-15 01:48:22 +01:00
7a62df1615 Added files 2021-11-15 01:47:35 +01:00
b311f1f377 Added more types 2021-11-14 20:42:01 +01:00
249ab13d73 Changed html to json export 2021-11-14 18:05:20 +01:00
b81afae5be Fixed compiling 2021-11-14 14:40:38 +01:00
bce722eec0 Added better autocomplete and alias 2021-11-14 14:40:13 +01:00
2afff40f87 Forgot to add BAK to battery select menu 2021-11-14 04:11:17 +01:00
afc7af9ffb Added flag for dns 2021-11-14 03:35:04 +01:00
ebb1141863 Added nvs dump and dns magic 2021-11-14 03:20:21 +01:00
34135f01b1 Added debug information for current calibration (will be moved in the future) 2021-11-13 15:42:46 +01:00
b739244320 Added alias 2021-11-13 15:42:08 +01:00
6643fd7bc4 Added nvs dump (needs some help for profile dumping; 'std::string html;' probably gets to large, otherwise works) 2021-11-13 12:46:24 +01:00
d1b4c72ce6 Moved statusdisplay text so you can read it better 2021-11-13 12:45:25 +01:00
7e9559fde3 Moved helper scripts into tools/ 2021-11-13 12:42:41 +01:00
627c11326b Added old nvs flag for nvs export 2021-11-13 12:40:44 +01:00
cd7f08c147 Readded BAK / 25R cells 2021-11-12 20:04:31 +01:00
faf4083806 Roll out "fixed buttons not working" to cloud 2021-11-12 19:26:54 +01:00
2b0329bcfc fixed buttons not working 2021-11-07 13:04:19 +01:00
9aa407cac9 Merge branch 'cloud' into cloud-branch-rewrite 2021-11-05 20:31:21 +01:00
a9ae7b964e Fixed pluginsystem 2021-11-05 20:12:18 +01:00
362e7e9316 Added BAK/25R battery type 2021-11-03 18:47:34 +01:00
0446a40e62 Merge pull request #119 from bobbycar-graz/rewrite
Move lots of implementations into separate .cpp files
2021-11-02 23:35:22 +01:00
e5b513297b Add mick cloud builds 2021-11-02 23:27:06 +01:00
0428a126f2 fix mick compile 2021-11-02 23:26:28 +01:00
08e97debe7 Fixed compiling 2021-11-02 23:17:10 +01:00
fc1e277423 Refactorings again more 2021-11-02 23:13:43 +01:00
d70a3aa73f Again refactorings more 2021-11-02 22:47:46 +01:00
86a7ef66ee More refactorings again 2021-11-02 18:33:55 +01:00
8dcc898244 Even more refactorings 2021-11-02 16:11:57 +01:00
55fe233ee7 Again more refactorings 2021-11-02 14:18:28 +01:00
316f74ada8 More rewrite 2021-11-02 11:39:36 +01:00
1de44c630b Rewrite 2021-11-02 01:43:58 +01:00
8c2ce911ba country AT 2021-11-01 23:38:12 +01:00
521a8278bf IPv6 achievment unlocked 2021-11-01 23:13:13 +01:00
eba04b7d4d Enable/Disable AP 2021-11-01 22:45:45 +01:00
7a11708d57 Cleanups 2021-11-01 22:22:41 +01:00
5e5a256157 Reverted fix 2021-11-01 21:44:16 +01:00
5bbe3fec89 Merge pull request #118 from bobbycar-graz/multiple_compile_units
Moved sources into separate .cpp files
2021-11-01 20:50:42 +01:00
a3970514b8 Moved sources into separate .cpp files 2021-11-01 20:44:57 +01:00
7e5994812b Removed redownload / cache 2021-11-01 20:17:13 +01:00
d75f226583 Fixed stvo front light for non-centered led strips 2021-11-01 20:02:51 +01:00
fd87c82580 Merge pull request #117 from bobbycar-graz/cloud
Please merge Commanders Changes
2021-11-01 19:12:19 +01:00
345d8e2007 Fix for non-ledstrip users 2021-11-01 18:59:47 +01:00
5c3ad4f891 Color now changeable for 8 sides (#104) 2021-11-01 18:59:47 +01:00
82d63616f1 Added correction for wrong side ledstrip 2021-11-01 18:59:47 +01:00
c3fd0d4d21 Preparations for ledstrip color select menu 2021-11-01 18:59:47 +01:00
88a32fc2ba Added new ledstrip menu and icon 2021-11-01 18:59:47 +01:00
4ae7390d45 Added hybrid mode 2021-11-01 18:59:47 +01:00
1448ed088a If server-url ends with .bin, otaUrl will be set directly to server-url 2021-11-01 18:59:47 +01:00
887c43da27 Added hybrid driving mode options 2021-11-01 18:59:47 +01:00
50e9e13e86 Added blink commands (z&u) 2021-11-01 18:59:47 +01:00
2010b0e2c3 Added colors 2021-11-01 18:59:47 +01:00
f59aea0474 Adjusted spacing 2021-11-01 18:59:46 +01:00
e9d78d8180 Empty variables 2021-11-01 18:59:46 +01:00
be98bf0965 Increased buildserver limit to 5 2021-11-01 18:59:46 +01:00
119ff94a36 Increased main task stack size to avoid crashes until the new config system is implemented 2021-11-01 18:59:46 +01:00
503b109c4d Redownload commit list after server change 2021-11-01 18:59:46 +01:00
6ba8b897db Dont make request every time menu is visited 2021-11-01 18:59:46 +01:00
d7e76c5a0e Fixed url 2021-11-01 18:59:46 +01:00
ea98b02d92 Buildserver is now selectable 2021-11-01 18:59:46 +01:00
bc2b194acb Simplified 2021-11-01 18:59:46 +01:00
4ea080e7f7 Implemented menu 2021-11-01 18:59:46 +01:00
aa9e5b2807 Display current commit hash if ota is enabled 2021-11-01 18:59:46 +01:00
cde4c4601b feedc0de config fix 2021-11-01 18:59:08 +01:00
9c8ccf53cf Update feedc0de config 2021-11-01 18:35:56 +01:00
1200287780 Updated esp-idf 2021-11-01 18:35:47 +01:00
46bbfbbd01 Merge pull request #114 from bobbycar-graz/mick-fix
Fixed compilation for non-ota-users
2021-10-18 18:09:21 +02:00
d2e3b1647d Updated espcpputils 2021-10-18 16:54:59 +02:00
c23fafcc21 Fixed compilation for non-ota-users 2021-10-18 15:52:29 +02:00
ac80e3579d Merge pull request #113 from bobbycar-graz/bug-fixes
Improved performance and usablity
2021-10-18 14:56:29 +02:00
40af304083 rebase fix 2021-10-18 14:50:53 +02:00
7433b3fd7c Kinda implemented build server selection (does not work) 2021-10-18 14:49:13 +02:00
b2b9f97dce Kinda implemented build server selection (does not work) 2021-10-18 14:49:13 +02:00
5c657c20af CAUSING A STACKOVERFLOW 2021-10-18 14:49:11 +02:00
595d0434cf Replaced with template 2021-10-18 14:48:37 +02:00
b07d599dc2 Preparations for build server select 2021-10-18 14:48:37 +02:00
dcdf27118c Coredump 2021-10-18 14:48:37 +02:00
f5bdae6841 It finally crashes! 2021-10-18 14:48:36 +02:00
734486c822 Added coredump for peter 2021-10-18 14:47:00 +02:00
876fc5d173 Added coredump 2021-10-18 14:47:00 +02:00
1674ae47f0 Improved performance and usablity 2021-10-18 14:46:58 +02:00
506e350179 Moved icons into .cpp files 2021-10-18 14:30:21 +02:00
2011d0b802 ifdef typo fix 2021-10-18 14:09:34 +02:00
75377252a4 Updated submodules 2021-10-18 13:56:38 +02:00
b9fa94e45c Add .cpp files 2021-10-18 13:47:43 +02:00
e460f4ff27 Merge pull request #112 from bobbycar-graz/battery-status
Battery status
2021-10-14 22:11:09 +02:00
e7055a8508 fix percent 2021-10-14 21:55:30 +02:00
fa01d2bcbd implement curves 2021-10-14 21:44:28 +02:00
3b270bda3d Added labels 2021-10-14 21:00:01 +02:00
7e7727e180 First steps for discharge curves, calibration can be deactivated now 2021-10-14 20:32:52 +02:00
5dc794b903 Converted int16_t to float 2021-10-14 18:27:08 +02:00
8414769397 dont return 0 in calibrated voltage 2021-10-13 13:46:19 +02:00
2cc1ca6ab7 fix compiling 2021-10-13 12:04:07 +02:00
acb56100d6 Cleanups 2021-10-13 10:13:40 +02:00
63c6322792 Moved calibration in controller object (#111) 2021-10-13 09:50:17 +02:00
abf92f439e Fixed batVoltage value 2021-10-13 09:50:17 +02:00
49138c64f1 Added option to apply calibration, preparations for calibration implementation 2021-10-13 09:50:17 +02:00
9cc69afd5d Voltage Calibration Screen, new battery icon 2021-10-13 09:50:17 +02:00
b3eff31261 Added Wh/km, voltage calibration display and stvo front light switch 2021-10-13 09:50:17 +02:00
f49a8c0a09 Preparation of battery menu 2021-10-13 09:50:17 +02:00
26d91437ae Added new files 2021-10-13 09:50:17 +02:00
a4eed77f33 Added battery icon 2021-10-13 09:50:17 +02:00
d59359ad1a seems like a needed config change for comred (as i found it in several branches already) 2021-10-13 09:50:00 +02:00
83e7c662fa Merge pull request #108 from bobbycar-graz/stvo
Street light update and added a few new animations
2021-10-10 00:43:36 +02:00
8dc5665d5d Forgot merge thingy 2021-10-10 00:30:06 +02:00
2c77b55275 Added led brightness and animation speed 2021-10-10 00:12:41 +02:00
68b2b73434 Merge pull request #105 from bobbycar-graz/simplified
Added simplified mode
2021-10-09 23:50:06 +02:00
ec326e9679 street lightning 2021-10-09 16:19:24 +02:00
0b758da0f0 simplified mode 2021-10-09 15:57:43 +02:00
2e21cc5889 Merge pull request #103 from bobbycar-graz/Led-icon
Added led icon
2021-10-06 21:21:38 +02:00
e6e1e7a747 Added led icon 2021-10-03 22:04:47 +02:00
763ca84ec2 Merge pull request #101 from bobbycar-graz/feature_led_speedsync
add speed sync for led animation
2021-10-01 18:50:02 +02:00
b3849e3059 Merge branch 'master' into feature_led_speedsync 2021-10-01 18:17:21 +02:00
3bff2226c8 change config for comr and feedcode 2021-10-01 18:14:29 +02:00
9b41663096 add speed sync for led animation 2021-10-01 18:01:32 +02:00
ddf5b46603 Merge pull request #98 from bobbycar-graz/blink-styles
Added beep-blink, 6Wire and more
2021-10-01 17:04:14 +02:00
fbb2ba1905 Should fix bug that beeper won't turn off if turning the feature off in ledstrip menu 2021-10-01 15:58:59 +02:00
7c8e416d66 Added beep-blink, 6Wire and more 2021-10-01 14:33:28 +02:00
6bb319155d Merge pull request #96 from bobbycar-graz/momentary-blink-switch
Added 6 Wire and FEATURE_GSCHISSENE_DIODE
2021-09-30 23:23:19 +02:00
f756d48232 Added 6 Wire and FEATURE_GSCHISSENE_DIODE 2021-09-30 23:17:42 +02:00
8bbe39aae7 Merge pull request #94 from bobbycar-graz/blink-beep
Blink beep
2021-09-30 22:37:45 +02:00
d02bb1adff Merge branch 'master' into blink-beep 2021-09-30 22:33:12 +02:00
57bbade3c8 Merge pull request #95 from bobbycar-graz/more-animations
More animations
2021-09-30 22:30:26 +02:00
d20b79d158 improve formatting of config_peter.cmake 2021-09-30 22:29:59 +02:00
99796ab6ac impove led animation switch 2021-09-30 21:56:45 +02:00
53edd82fef Removed dev-define 2021-09-30 21:18:42 +02:00
dfcf841db4 Added optional beep when blinking 2021-09-30 21:03:13 +02:00
21ba6b4d97 separate led blink and animation type 2021-09-30 21:03:06 +02:00
8aacd3d4f8 New animation 2021-09-30 16:45:25 +02:00
684ecc7cdd Standard LED Animation configurable in cmake 2021-09-30 16:45:13 +02:00
65a64e4e2a Preparations for new ledstrip animations 2021-09-30 16:20:09 +02:00
a03f0ffdb9 Merge pull request #90 from bobbycar-graz/feature_ledstrip_brightness_blinker
Feature ledstrip brightness + blinker
2021-09-30 14:41:43 +02:00
069382632e reverse led strip with defines, github action for peters bobbycar 2021-09-30 14:35:46 +02:00
4f9d422d50 merge led defines 2021-09-30 14:29:51 +02:00
4613dc7259 peters config 2021-09-30 14:23:57 +02:00
48f8a2a422 Merge pull request #91 from bobbycar-graz/ledstrip-menu-improvement
Ledstrip menu improvement
2021-09-30 14:23:20 +02:00
0b0e49cf93 Fixed / revert 'Switched left and right' 2021-09-30 14:22:44 +02:00
99f4d916d3 Switched left and right 2021-09-30 14:17:46 +02:00
86ddacaaa2 change blink wrong direction directly to ledstrip.h 2021-09-30 14:12:17 +02:00
fb120aa7f8 Added defines for code quality 2021-09-30 14:09:05 +02:00
0529c85151 Improved animation selection 2021-09-30 14:08:38 +02:00
f7c0b18cc4 bmsdisplay removed string concats 2021-09-30 13:48:49 +02:00
eb82f9d993 feedc0de config updated 2021-09-30 13:48:16 +02:00
3c38348cf2 implement LED strip brightness and blinker 2021-09-30 12:38:21 +02:00
4f185fcd11 peters config 2021-09-30 00:24:43 +02:00
5e355feea9 Merge pull request #83 from bobbycar-graz/smoothfw
Smoothfw
2021-09-23 21:51:45 +02:00
2acac79173 Code style 2021-09-23 21:44:22 +02:00
6fa2286da5 Fixed submodule 2021-09-23 21:34:29 +02:00
e4b3d4cc40 Merge pull request #86 from bobbycar-graz/HEAP_LARGEST
Added optional fix for heaplargesttext
2021-09-23 21:30:03 +02:00
c2e7d8edbf Fixed indents and rename 2021-09-23 21:18:12 +02:00
313db2ad68 fixed crash with invalid format in webserver settings 2021-09-23 21:10:21 +02:00
958194bd2a Added optional fix for heaplargesttext 2021-09-23 21:03:43 +02:00
cd6713ac92 pin type in webserver 2021-09-23 20:42:40 +02:00
49fe597502 Merge pull request #84 from bobbycar-graz/advanced_ble
Control ledstrip animation via ble
2021-09-23 19:55:32 +02:00
f968612a60 change build order 2021-09-23 19:49:24 +02:00
4567eedf0d Merge pull request #85 from bobbycar-graz/restart_reason_is_no_in_the_debug_menu
Restart reason now visible in the debug menu
2021-09-23 19:39:44 +02:00
c29edfb717 Restart reason now visible in the debug menu 2021-09-23 02:47:17 +02:00
0faa86cddd higher cloud data rate 2021-09-21 21:45:20 +02:00
b766bb57db cloud update 2021-09-21 16:49:59 +02:00
9a056f5b64 Control ledstrip animation via ble 2021-09-21 14:50:55 +02:00
91b819a517 fixed inverted currents 2021-09-20 15:54:28 +02:00
6856848112 Fixed naming error 2021-09-20 14:16:37 +02:00
525061f5bc Activated cloud feature 2021-09-20 14:16:25 +02:00
692f3b1f38 cloud protocol updated 2021-09-19 06:32:33 +02:00
d6217492c7 lots of stability improvements 2021-09-19 02:51:16 +02:00
2992cbb613 Lots of improvements of actions 2021-09-19 01:09:05 +02:00
f19e6b8a9e typo in CMakeLists.txt 2021-09-18 21:54:58 +02:00
daaf4365af CI improvements 2021-09-18 21:32:50 +02:00
161abf5ddd Implemented webserver settings and stringSettings 2021-09-18 20:15:06 +02:00
5844af246e implemented webserver settings set 2021-09-18 18:22:32 +02:00
22cb16d3d2 Removed esp_websocket_client.h 2021-09-18 18:20:08 +02:00
c60fa5b7c0 Webserver improvements 2021-09-18 18:02:57 +02:00
cb0c02bc8f Lock screen pin now configurable 2021-09-18 16:17:27 +02:00
444366c00c Update Build Status badge in README.md 2021-09-18 15:20:41 +02:00
08961271a4 Deduplicate using action matrix 2021-09-18 15:08:58 +02:00
df4957db76 fixed wrong number on led animation index text 2021-09-18 04:31:31 +02:00
15a6fc97cd GitHub Actions CI 2021-09-18 04:18:59 +02:00
b3b68e8c7a Added greyhash config 2021-09-17 17:09:13 +02:00
022ac06f44 Removed ledstrip brightness define 2021-09-17 05:12:19 +02:00
defa10c76e add 5wire_2out dpad, peters config 2021-09-17 02:46:00 +02:00
204a45aaa4 comr: switched to 16M chip 2021-09-17 01:12:10 +02:00
71675f68b3 BIG ledstrip update 2021-09-10 21:13:34 +02:00
d3ed93ef5f added menus for ledstrip 2021-09-04 22:44:21 +02:00
872945d089 Fixed nullptr crash 2021-08-26 22:43:55 +02:00
26740ccf86 Merge pull request #81 from bobbycar-graz/comr_wireless_config
Comr wireless config
2021-08-26 22:43:39 +02:00
f0192c27e8 Forgot ifdef 2021-08-26 22:33:41 +02:00
b6f3c4c069 Added helper scripts 2021-08-26 22:33:41 +02:00
fe81facbdb Added script for opening serial monitor 2021-08-26 22:33:41 +02:00
77b6f2f013 Removed IP, adjusted size of jsondocument 2021-08-26 22:33:41 +02:00
25b9716e1f Added wifi list to ble capabilities 2021-08-26 22:33:41 +02:00
43c32d56d5 Removed defines, removed code from handler 2021-08-26 22:33:41 +02:00
ddee574129 Added files to ignore list 2021-08-26 22:33:41 +02:00
e68d8389a2 Updated to meet requirements 2021-08-26 22:33:41 +02:00
63ef389aaa Updated to meet requirements 2021-08-26 22:33:41 +02:00
e46e2b7e01 Added newline for @0xFEEDC0DE64 2021-08-26 22:33:41 +02:00
a1a99bd4cf Cleanup 2021-08-26 22:33:41 +02:00
290531562d Added saveSettings()
Forgot to push settings from RAM to NVS
2021-08-26 22:33:41 +02:00
db3be639df Removed password from debug log 2021-08-26 22:33:41 +02:00
817c144bc2 Added WiFi configuration via BLE 2021-08-26 22:33:41 +02:00
32708cd428 Add mick config 2021-08-25 06:02:36 +02:00
78292a1518 remove source checks, they don't work 2021-08-25 06:00:00 +02:00
d350eddad8 smaller updates 2021-08-21 19:32:44 +02:00
e9d75b973b refactored all the gui code into library 2021-08-20 13:20:02 +02:00
879f4d5767 Moved icon.h into esp-gui-lib 2021-08-18 16:53:32 +02:00
1d2c5d3b67 Implemented basic ledstrip 2021-08-17 22:06:13 +02:00
3570fc03a3 fixed 5wire dpad buttons stuck 2021-08-17 15:27:20 +02:00
d199edade3 improvements 2021-08-17 15:11:13 +02:00
5ceabd378f Implemented NTP 2021-08-12 00:23:41 +02:00
162f95ab13 Implemented time settings 2021-08-11 22:41:37 +02:00
518c4d075d menu overflow implemented and other improvements 2021-08-11 19:58:48 +02:00
4a562d4e48 Feature Garage 2021-08-11 19:26:48 +02:00
12a81c3b5d webserver ota and settings 2021-08-10 22:48:07 +02:00
ca337ce99e OTA implemented 2021-08-10 15:51:26 +02:00
b1f3a59828 Added flag for wireless config 2021-08-10 15:09:02 +02:00
a4b76623ae feature cloud working again 2021-08-10 05:03:50 +02:00
8e3c0b4204 BLE settings added to enable/disable BLE 2021-08-10 04:10:35 +02:00
e559fa8b82 wifi configs in NVS, wifi settings menu texts implemented, lots of other fixes 2021-08-10 03:37:14 +02:00
e88fbfd4a7 wifi scan fixes, new config parameters 2021-08-09 23:15:26 +02:00
1504fc779a lots of smaller fixes 2021-08-09 20:59:58 +02:00
d75db8e18c Added my config 2021-08-09 19:35:04 +02:00
8f47ce7b63 multiple firmware configs at the same time 2021-08-09 14:43:33 +02:00
673f68d2c1 OTA preperations 2021-08-09 12:57:40 +02:00
c52a72f485 Implemented BLE remote control 2021-07-20 23:47:40 +02:00
1bd3979241 BLE remote control preperations and faster livedata 2021-07-20 21:45:00 +02:00
5318554786 tempomat improvements 2021-07-20 20:44:14 +02:00
455f98a4a0 DefaultMode tempomat preperations 2021-07-20 15:58:38 +02:00
589f188b15 Implemented missing features from webserver 2021-07-20 14:52:38 +02:00
c11454ae11 Reconstructing parts of the webserver again 2021-07-20 14:10:26 +02:00
8607ec28c2 lots of new BLE characteristics 2021-07-20 01:40:46 +02:00
5ddbc21969 Implemented BLE for app 2021-07-17 05:10:16 +02:00
5832b18775 Merge pull request #80 from bobbycar-graz/esp-idf-refactoring
Remove platformio and switch to esp-idf
2021-07-16 19:29:48 +02:00
fcf729383e removed .travis.yml 2021-07-16 19:28:36 +02:00
5d75f266bb removed uneeded debug parameters and preparations for tempomat 2021-07-16 19:28:14 +02:00
7bbe705331 StatusDisplay shows wifi status and ip again 2021-06-29 11:10:42 +02:00
4b9ef50d06 Implemented wifi stack with AP 2021-06-29 10:59:44 +02:00
f146deca05 Fixed mac address detection for bobbycar unique identifier 2021-06-28 22:25:50 +02:00
9bdd512057 Switched build system to esp-idf 2021-06-28 21:43:20 +02:00
8d152083aa Added esp-idf submodule 2021-06-28 14:50:40 +02:00
f830579b55 Merge pull request #79 from bobbycar-graz/feature_can
Feature can (and std::string)
2021-06-28 14:40:26 +02:00
27ae2aba21 Fixed compiling of other configurations 2021-06-28 14:38:03 +02:00
56ebbe8055 ADC and button input via can 2021-06-28 14:22:05 +02:00
67ad568de1 FEATURE_CAN vs FEATURE_SERIAL 2021-06-28 10:57:39 +02:00
f93076c97b New protocol namespace 2021-06-28 10:55:50 +02:00
7805059bdf Replaced Arduino Strings with std::string 2021-06-28 09:59:32 +02:00
b0e96933ec Added powersupply menu for huawei 2021-06-28 09:18:02 +02:00
ea3c803c4f Limits menu now shows live values in menu items 2021-06-28 09:17:39 +02:00
db024a298f more types of current 2021-06-26 03:27:49 +02:00
db10a294de feedc0de fixes 2021-05-29 00:00:33 +02:00
ddb4859a3f Updated (merged) protocol 2021-05-23 17:56:29 +02:00
d8945c9726 Update can 2021-05-23 00:44:56 +02:00
1d9995c90f feedc0de config fix 2021-05-22 04:54:54 +02:00
cdaebf06a6 Updated can submodule 2021-05-21 01:05:41 +02:00
4eef349810 CAN finishing work 2021-05-20 21:29:07 +02:00
60a2f2bcaa More implementations 2021-05-16 22:47:35 +02:00
97c68b8779 can implementations 2021-05-16 22:16:33 +02:00
e5871d339e CAN implementation started 2021-05-16 21:51:31 +02:00
873f076f93 Implemented cloud upload of life stat values 2021-02-15 00:25:54 +01:00
799fb1709e New feedc0de defaults 2021-01-31 19:16:14 +01:00
36079863e1 Fixed missing settings 2021-01-31 19:16:03 +01:00
353b9202ea Improved 5wirepad debug 2021-01-31 19:14:40 +01:00
008f973829 Fixed travis build 2021-01-10 03:15:34 +01:00
9a9d9d6d64 Added platformio define for wheel diameter 2021-01-10 02:59:13 +01:00
ebbbe11980 Introduced new gernot config 2021-01-03 15:37:25 +01:00
31aedecfe2 Merge pull request #78 from bobbycar-graz/reduce-code-size
Reduce code size
2021-01-03 03:59:50 +01:00
eb73d564fa Fixed compiling for other configs again 2021-01-03 03:55:58 +01:00
b87a3c5fbc More program space savings by removing menu item interface abstraction 2021-01-03 03:44:15 +01:00
5ae0e6314e Added script to decode exception backtraces 2021-01-03 01:00:15 +01:00
894644001b Reduced memory allocations by wifiscanmenu by reusing removed menu entries from a pool 2021-01-03 00:57:22 +01:00
67bb5554e4 Refactored all menus to use the new ContainerMenuDefinition 2021-01-02 23:52:18 +01:00
4d641974d4 Reducing code size by removing template parameters and falling back to heap usage and vtables 2021-01-02 23:01:00 +01:00
8add1a991a ESPAsyncWebserver library now optional dependency 2021-01-02 22:34:54 +01:00
4109f58fd5 Updated partition tables so that 4M with OTA is possible 2021-01-02 21:39:50 +01:00
fba4b20c62 Merge pull request #77 from bobbycar-graz/esp-async-webserver
Switched to me-no-dev's ESPAsyncWebserver
2021-01-02 20:51:10 +01:00
4453cf5d4c Switched to me-no-dev's ESPAsyncWebserver 2021-01-02 20:43:46 +01:00
19f2d43cf6 Added espcpputils module 2021-01-02 19:48:30 +01:00
a4217a66ea Merge pull request #76 from bobbycar-graz/make-bluetooth-optional
Made bluetooth related features optional to save some storage
2020-11-19 09:27:39 +01:00
19cc525d04 Made bluetooth related features optional to save some storage 2020-11-07 16:57:45 +01:00
0392517c53 Now using gcc hosted on GitHub instead of brunner.ninja 2020-10-29 17:11:52 +01:00
72c57d28d5 Fixed partition table for non ota configurations 2020-10-27 12:11:18 +01:00
38e1137e5e Updated to GCC 8.4.0 and C++17 2020-10-27 10:21:06 +01:00
aad7f96adc Improved BMS display 2020-10-12 23:44:34 +02:00
3768015762 Fixed other configs than feedc0de again 2020-09-23 21:31:00 +02:00
f833496ddf Update platformio.ini 2020-09-22 16:11:30 +02:00
3c609d12ca Merge pull request #75 from bobbycar-graz/74-multiple-profiles
Merge "#74 Implement multiple config profiles"
2020-09-20 05:00:47 +02:00
1f801e5c86 Implemented dpad5wire 2020-09-20 04:53:05 +02:00
cdc154528a Implemented profiles menu 2020-09-19 23:56:24 +02:00
6d20b29c38 Motor inverted presets are now part of platformio.ini 2020-09-19 22:46:49 +02:00
753c55443a Basic multi profile implementation 2020-09-19 21:25:58 +02:00
bcb8b8c601 Updated feedc0de's settings 2020-09-19 20:45:55 +02:00
c5a3a21a9b Merge pull request #73 from bobbycar-graz/make-ota-optional
Make ota optional for some configs
2020-08-09 05:00:39 +02:00
eb85dfc349 Make ota optional for some configs 2020-08-09 04:55:43 +02:00
2cd7b6e448 Correct display driver 2020-08-09 01:40:24 +02:00
9fb12587be Merge pull request #72 from bobbycar-graz/minor-improvements
Minor improvements
2020-06-28 04:45:38 +02:00
83229cd5c1 Added settings toggles to enable / disable gas brems squaring 2020-06-28 04:42:01 +02:00
d21d36585a Refactored code to shrink program size 2020-06-28 04:28:54 +02:00
470eea0dbe Improved menu interfaces for better performance 2020-06-27 20:37:19 +02:00
06d3df0aea Improved presets menu 2020-06-27 20:37:06 +02:00
b3cc352155 Fixed build 2020-06-27 19:13:22 +02:00
0ec141ae3a Minor improvements 2020-06-22 20:20:39 +02:00
3526523d9e Merge pull request #71 from bobbycar-graz/graphs-improvements
Improve graphs
2020-06-14 03:50:47 +02:00
c9ec6fc537 Improved graphs 2020-06-14 03:45:53 +02:00
799604874d Merge pull request #70 from bobbycar-graz/tesla-like-performance-bar
Implement a tesla like performance bar
2020-06-13 04:10:35 +02:00
1a04c71b5e Implemented a tesla like performance bar 2020-06-13 04:06:55 +02:00
69a01f7822 Merge pull request #69 from bobbycar-graz/meters-improvements
Meters refactorings
2020-06-13 01:05:07 +02:00
c3f298bab5 MetersDisplay now shows real values instead of sinus 2020-06-13 01:01:51 +02:00
c899e5922b Refactored vu meter into own widget class 2020-06-12 22:22:52 +02:00
a306cf81ca Refactored vertical meter into own widget class 2020-06-12 20:38:01 +02:00
2abddbe97b Merge pull request #67 from bobbycar-graz/2-calibrate-wizard
Refactored calibrate screen layout
2020-06-11 17:05:12 +02:00
d5ff963143 Implemented security measures 2020-06-11 15:51:44 +02:00
1fc970d4d5 Added change screens for timers settings 2020-06-11 15:09:33 +02:00
ad06ef506f Added timers menu 2020-06-11 14:57:10 +02:00
db4b746743 Introduced settings for time intervals 2020-06-11 14:47:13 +02:00
0af50b64b2 Implemented basic wizard 2020-06-11 03:25:36 +02:00
e34f3d01c1 Refactored calibrate screen layout 2020-06-11 02:46:15 +02:00
24b514e3f3 Merge pull request #43 from bobbycar-graz/gametrak
Gametrak self driving
2020-06-10 11:30:11 +02:00
0198b2a2b0 Merge pull request #66 from bobbycar-graz/controllers-cleanup
Cleanup of controllers
2020-06-08 14:57:08 +02:00
885183c7c8 Cleanup of controllers 2020-06-08 14:51:52 +02:00
2309e6c1a1 Merge pull request #64 from bobbycar-graz/bluetooth-wifi-improvements
Added persistent settings for bluetooth and wifi
2020-06-07 21:49:27 +02:00
8249409339 Implemented settings in WifiSettingsMenu 2020-06-07 19:39:55 +02:00
86da64d500 Added persistent settings for bluetooth and wifi 2020-06-07 19:02:15 +02:00
3a3831b367 Add travis badge 2020-06-07 17:44:17 +02:00
7828b1dff5 Merge pull request #63 from codacy-badger/codacy-badge
Add a Codacy badge to README.md
2020-06-07 17:42:57 +02:00
9fd611817c Add Codacy badge 2020-06-07 15:40:51 +00:00
bb289f6e73 Implemented better control with gametrak 2020-06-07 01:25:19 +02:00
8f96a32b57 Implemented basic self driving behaviour with gametrak 2020-06-07 01:25:19 +02:00
f4ab8c3fbd Merge pull request #62 from bobbycar-graz/48-fullRedraw-fix
Fixed fullRedraw for StatusDisplay and MenuDisplay
2020-06-07 01:22:44 +02:00
1f26fcd3a8 Fixed fullRedraw for StatusDisplay and MenuDisplay 2020-06-07 01:19:21 +02:00
b3b0a8ac72 Merge pull request #61 from bobbycar-graz/softap-improvements
softAp improvements
2020-06-07 01:02:11 +02:00
f07a27b32a AP password is now configured from .ini 2020-06-07 00:59:11 +02:00
89ed8411e4 Added actions to start and stop softAp 2020-06-07 00:38:26 +02:00
815e3367e7 Merge pull request #60 from bobbycar-graz/dpad-debounce-fix
Made debounce respect the configured setting
2020-06-07 00:14:34 +02:00
18e6c49f52 Made debounce respect the configured setting 2020-06-07 00:11:25 +02:00
b38ac72308 Merge pull request #59 from bobbycar-graz/58-configurable-debounce-time
Make debounce time configurable
2020-06-07 00:02:14 +02:00
556185b121 Fixed compiling 2020-06-06 23:59:14 +02:00
afa872fff0 Made debounce time configurable 2020-06-06 23:54:38 +02:00
fb2cafb898 Merge pull request #55 from bobbycar-graz/greyhash-conf
Added @Greyhash-dev ini changes
2020-06-06 23:34:55 +02:00
294c313dd6 Merge pull request #57 from bobbycar-graz/39-debounce-buttons
Debounce dpad buttons
2020-06-06 23:33:57 +02:00
3ec01aad89 Fixed compiling 2020-06-06 23:29:45 +02:00
07d1da1f91 Reduced warnings and reduced debounce time 2020-06-06 23:28:45 +02:00
33692fa054 Implemented basic debounce 2020-06-06 23:20:40 +02:00
8a61f2a803 Introduced types.h and millis_t 2020-06-06 23:09:22 +02:00
6fd97d2ff1 More refactoring 2020-06-06 23:02:44 +02:00
713a714e8b Refactored button code 2020-06-06 21:19:50 +02:00
bd42cb3e9e I added my init 2020-06-06 17:11:24 +02:00
b40ee72e40 Merge pull request #53 from bobbycar-graz/51-unified-model-mode
Add unified model mode
2020-06-05 23:40:46 +02:00
4d0efb7bd9 Implemented new unified model mode 2020-06-05 23:35:24 +02:00
85a3e88876 better wiring docs 2020-06-05 14:15:05 +02:00
c727d2a350 Added docs about switch input wiring 2020-06-05 14:03:23 +02:00
9ed99f6c50 Added unified model mode 2020-06-03 23:26:54 +02:00
dfba798bd7 Merge pull request #52 from bobbycar-graz/50-mode-presets
Added presets for driving modes
2020-06-03 23:15:54 +02:00
7922452f30 Added presets for the remaining driving modes 2020-06-03 23:09:53 +02:00
9444187fb8 Added presets for defaultMode driving mode 2020-06-03 23:03:05 +02:00
614 changed files with 34105 additions and 9671 deletions

106
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,106 @@
name: Build
on:
push:
release:
types:
- created
# pull_request:
# types: [opened, synchronize, reopened]
jobs:
build:
name: "config_name"
runs-on: ubuntu-latest
env:
SONAR_SCANNER_VERSION: 4.4.0.2170
SONAR_SERVER_URL: "https://sonarcloud.io"
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
SONAR_CACHE_DIR: sonar_cache
environment: deploy
strategy:
fail-fast: false
matrix:
node: [feedc0de, comred, peter, mick]
steps:
- name: Checkout (without submodules)
uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 11 (for Sonar)
uses: actions/setup-java@v1
with:
java-version: 11
- name: Download and set up sonar-scanner
env:
SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip
run: |
mkdir -p $HOME/.sonar
curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }}
unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH
- name: Download and set up build-wrapper (for Sonar)
env:
BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_SERVER_URL }}/static/cpp/build-wrapper-linux-x86.zip
run: |
curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }}
unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/
echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH
- name: Checkout and install esp-idf
uses: 0xFEEDC0DE64/checkout_install_esp_idf@main
- name: Fast Submodule Checkout components/arduino-esp32
uses: 0xFEEDC0DE64/fast_submodule_checkout@main
with:
submodule: components/arduino-esp32
- name: Checkout remaining submodules
run: git submodule update --init --recursive $(git submodule | awk '{ if ($2 != "esp-idf" && $2 != "components/arduino-esp32") print $2 }')
- name: Setup ccache
uses: 0xFEEDC0DE64/setup_ccache@main
with:
key: ${{ runner.os }}-ccache-${{ matrix.node }}
- name: Build firmware
run: |
export CCACHE_MAXSIZE=400M CCACHE_BASEDIR="$(pwd)"
. export.sh
./switchconf.sh ${{ matrix.node }}
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} idf.py --ccache build
ccache -s
- name: Cache sonar
uses: 0xFEEDC0DE64/cache-with-update@update-cache-on-cachehit
with:
path: ${{ env.SONAR_SERVER_URL }}
key: ${{ runner.os }}-sonar-${{ matrix.node }}
- name: Run sonar-scanner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" --define sonar.cfamily.cache.path="${{ env.SONAR_CACHE_DIR }}"
- name: Set outputs
id: vars
run: |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- name: Upload Build Artifact
uses: actions/upload-artifact@v2.2.4
with:
name: bobbyquad_${{ matrix.node }}
path: |
build_${{ matrix.node }}/bobbyquad_${{ matrix.node }}.bin
build_${{ matrix.node }}/bobbyquad_${{ matrix.node }}.elf
build_${{ matrix.node }}/bootloader/bootloader.bin
build_${{ matrix.node }}/bootloader/bootloader.elf
build_${{ matrix.node }}/partition_table/partition-table.bin

16
.gitignore vendored
View File

@ -1,2 +1,14 @@
.pio
platformio.pro*
desktop.ini
/build
/build_*
/CMakeLists.txt.user*
/cmake-build-debug
/platformio.pro*
/config.cmake
/sdkconfig
/sdkconfig.old*
/ignore
/.idea
/.ccache
/main/certs/*
/.vscode/*

66
.gitmodules vendored
View File

@ -1,3 +1,63 @@
[submodule "src/bobbycar-protocol"]
path = src/bobbycar-protocol
url = git@github.com:bobbycar-graz/bobbycar-protocol.git
[submodule "components/espcpputils"]
path = components/espcpputils
url = ../../0xFEEDC0DE64/espcpputils.git
[submodule "esp-idf"]
path = esp-idf
url = ../../0xFEEDC0DE64/esp-idf.git
[submodule "components/cpputils"]
path = components/cpputils
url = ../../0xFEEDC0DE64/cpputils.git
[submodule "components/cxx-ring-buffer"]
path = components/cxx-ring-buffer
url = ../../0xFEEDC0DE64/cxx-ring-buffer.git
[submodule "components/date"]
path = components/date
url = ../../0xFEEDC0DE64/date.git
[submodule "components/espchrono"]
path = components/espchrono
url = ../../0xFEEDC0DE64/espchrono.git
[submodule "components/ArduinoJson"]
path = components/ArduinoJson
url = ../../0xFEEDC0DE64/ArduinoJson.git
[submodule "components/TFT_eSPI"]
path = components/TFT_eSPI
url = ../../0xFEEDC0DE64/TFT_eSPI.git
[submodule "components/arduino-esp32"]
path = components/arduino-esp32
url = ../../0xFEEDC0DE64/arduino-esp32.git
[submodule "components/expected"]
path = components/expected
url = ../../0xFEEDC0DE64/expected.git
[submodule "components/bobbycar-protocol"]
path = components/bobbycar-protocol
url = ../../bobbycar-graz/bobbycar-protocol.git
[submodule "components/fmt"]
path = components/fmt
url = ../../0xFEEDC0DE64/fmt.git
[submodule "components/espwifistack"]
path = components/espwifistack
url = ../../0xFEEDC0DE64/espwifistack.git
[submodule "components/esp-nimble-cpp"]
path = components/esp-nimble-cpp
url = ../../0xFEEDC0DE64/esp-nimble-cpp.git
[submodule "components/espasyncota"]
path = components/espasyncota
url = ../../0xFEEDC0DE64/espasyncota.git
[submodule "components/esphttpdutils"]
path = components/esphttpdutils
url = ../../0xFEEDC0DE64/esphttpdutils.git
[submodule "components/espasynchttpreq"]
path = components/espasynchttpreq
url = ../../0xFEEDC0DE64/espasynchttpreq.git
[submodule "components/FastLED-idf"]
path = components/FastLED-idf
url = ../../0xFEEDC0DE64/FastLED-idf.git
[submodule "components/esp-gui-lib"]
path = components/esp-gui-lib
url = ../../0xFEEDC0DE64/esp-gui-lib.git
[submodule "components/espconfiglib"]
path = components/espconfiglib
url = ../../0xFEEDC0DE64/espconfiglib.git
[submodule "components/QRCode-esp32"]
path = components/QRCode-esp32
url = ../QRCode-esp32.git

View File

@ -1,28 +0,0 @@
language: python
python:
- "2.7"
cache:
directories:
- "~/.platformio"
git:
submodules: false
before_install:
- sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules
- git submodule update --init --recursive
install:
- pip install -U platformio
- platformio update
env:
- BUILD_CONFIG=feedc0de_usb
- BUILD_CONFIG=greyhash_usb
- BUILD_CONFIG=aveexy_usb
- BUILD_CONFIG=testbench_usb
- BUILD_CONFIG=mickdermack_usb
- BUILD_CONFIG=peter_usb
script:
- platformio run -e $BUILD_CONFIG

39
CMakeLists.txt Normal file
View File

@ -0,0 +1,39 @@
cmake_minimum_required(VERSION 3.16.3)
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sdkconfig)
message(FATAL_ERROR "sdkconfig not found (please run ./switchconf.sh)")
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/config.cmake)
message(FATAL_ERROR "config.cmake not found (please run ./switchconf.sh)")
endif()
file(READ_SYMLINK ${CMAKE_CURRENT_SOURCE_DIR}/sdkconfig result)
if (result STREQUAL "")
message(FATAL_ERROR "sdkconfig is not a symlink (please run ./switchconf.sh)")
endif()
file(READ_SYMLINK ${CMAKE_CURRENT_SOURCE_DIR}/config.cmake result)
if (result STREQUAL "")
message(FATAL_ERROR "config.cmake is not a symlink (please run ./switchconf.sh)")
endif()
include(config.cmake)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
project(${BOBBY_APP_NAME})
set(expected_build_folder "${CMAKE_CURRENT_SOURCE_DIR}/build")
file(READ_SYMLINK "${expected_build_folder}" expected_build_folder_resolved)
if(NOT IS_ABSOLUTE "${expected_build_folder_resolved}")
get_filename_component(dir "${expected_build_folder}" DIRECTORY)
set(expected_build_folder_resolved "${dir}/${expected_build_folder_resolved}")
endif()
if (NOT PROJECT_BINARY_DIR STREQUAL "${expected_build_folder}" AND NOT PROJECT_BINARY_DIR STREQUAL "${expected_build_folder_resolved}")
message(FATAL_ERROR "building in ${PROJECT_BINARY_DIR} is not supported, you have to build in ${expected_build_folder} or ${expected_build_folder_resolved} (please run ./switchconf.sh)")
endif()

View File

@ -1,13 +1,58 @@
# bobbycar-boardcomputer-firmware
## How to clone and compile?
## Build status
```
| Service | Status |
| :--- | ---: |
| Actions | ![Build Status](https://github.com/bobbycar-graz/bobbycar-boardcomputer-firmware/actions/workflows/main.yml/badge.svg) |
| Sonar | [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=bugs)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware)<br />[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=bobbycar-graz_bobbycar-boardcomputer-firmware&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=bobbycar-graz_bobbycar-boardcomputer-firmware) |
## How to clone ? (READ THIS OR YOU WILL FAIL)
```bash
git clone --recursive git@github.com:bobbycar-graz/bobbycar-boardcomputer-firmware.git
cd bobbycar-boardcomputer-firmware/
platformio run --environment bobbycar_usb --target upload
./esp-idf/install.sh
./switchconf.sh feedc0de
```
## How to compile
Also do the initialization if you use an IDE, otherwise build will fail.
```bash
# before you try to build anything, always do this first:
. export.sh
# if needed, switch to the right configuration for your hardware (run with --list to list available configurations)
./switchconf.sh feedc0de
# flash bootloader, partition table and app (only do once)
idf.py -p /dev/ttyUSB0 -b 921600 flash monitor
# flash only app (do this for development as it is much faster)
idf.py -p /dev/ttyUSB0 -b 921600 app-flash monitor
# alternative commands (After '. export.sh')
bobby-build # Builds the firmware
bobby-flash # Flashes the firmware
bobby-app-flash # Just flashes the app partition
bobby-monitor # Opens the serial monitor
bobby-coredump # Opens the coredump-utility
open-ide # Opens qtcreator
```
If you are inside monitor, hit Ctrl+T then Ctrl+X to exit.
Hit Ctrl+T then Ctrl+A to reflash the app and return to monitor (very handy during development)
## How to wire all connections?
![Wiring diagram](/wiring.png)
![Wiring diagram](/img/wiring.png)
### -DFEATURE_DPAD
![dpad switches with 5 wires](/img/dpadsw.png)
### -DFEATURE_DPAD_3WIRESW
![3 wire switches](/img/3wiresw.png)
### -DFEATURE_ROTARY
![rotary encoder](/img/rotary.png)

View File

@ -1,6 +0,0 @@
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x250000,
app1, app, ota_1, 0x260000, 0x250000,
spiffs, data, spiffs, 0x520000, 0x250000,
1 # Name Type SubType Offset Size Flags
2 nvs data nvs 0x9000 0x5000
3 otadata data ota 0xe000 0x2000
4 app0 app ota_0 0x10000 0x250000
5 app1 app ota_1 0x260000 0x250000
6 spiffs data spiffs 0x520000 0x250000

View File

@ -1,5 +0,0 @@
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x250000,
spiffs, data, spiffs, 0x260000, 0x1a0000,
1 # Name Type SubType Offset Size Flags
2 nvs data nvs 0x9000 0x5000
3 otadata data ota 0xe000 0x2000
4 app0 app ota_0 0x10000 0x250000
5 spiffs data spiffs 0x260000 0x1a0000

1
components/TFT_eSPI Submodule

Submodule components/TFT_eSPI added at aa7279cb29

1
components/cpputils Submodule

Submodule components/cpputils added at 3ae9aab977

1
components/date Submodule

Submodule components/date added at b1a75847d5

1
components/espchrono Submodule

Submodule components/espchrono added at 4d02e16f4c

1
components/expected Submodule

Submodule components/expected added at 30ee4ea505

1
components/fmt Submodule

Submodule components/fmt added at d3c349f69d

130
config_comred.cmake Normal file
View File

@ -0,0 +1,130 @@
set(BOBBY_APP_NAME bobbyquad_comred)
add_definitions(
-DUSER_SETUP_LOADED=1
-DLOAD_GLCD=1
-DLOAD_FONT2=1
-DLOAD_FONT4=1
-DLOAD_FONT7=1
-DILI9341_DRIVER=1
-DTFT_MOSI=13
-DTFT_SCLK=15
-DTFT_CS=14
-DTFT_DC=12
-DTFT_RST=2
-DSPI_FREQUENCY=40000000
)
set(BOBBYCAR_BUILDFLAGS
-DFEATURE_ADC_IN
-DPINS_GAS=34
-DPINS_BREMS=35
-DDEFAULT_SWAPSCREENBYTES=false
-DFEATURE_CAN
# -DFEATURE_SERIAL
# -DPINS_RX1=4
# -DPINS_TX1=5
# -DPINS_RX2=22
# -DPINS_TX2=23
-DDEFAULT_INVERTFRONTLEFT=false
-DDEFAULT_INVERTFRONTRIGHT=true
-DDEFAULT_INVERTBACKLEFT=false
-DDEFAULT_INVERTBACKRIGHT=true
-DDEFAULT_WHEELDIAMETER=200
# -DFEATURE_MOSFETS
# -DPINS_MOSFET0=18
# -DPINS_MOSFET1=19
# -DPINS_MOSFET2=21
-DDEFAULT_IMOTMAX=28
-DDEFAULT_IDCMAX=30
-DDEFAULT_NMOTMAX=2000
-DDEFAULT_FIELDWEAKMAX=7
-DDEFAULT_FIELDADVMAX=40
-DDEVICE_PREFIX=comr_bobbyquad
-DAP_PASSWORD=Passwort_123
-DFEATURE_WEBSERVER
-DFEATURE_OTA
-DOTA_USERNAME="comred"
# -DFEATURE_DPAD_5WIRESW
# -DPINS_DPAD_5WIRESW_OUT=4
# -DPINS_DPAD_5WIRESW_IN1=5
# -DPINS_DPAD_5WIRESW_IN2=27
# -DPINS_DPAD_5WIRESW_IN3=18
# -DPINS_DPAD_5WIRESW_IN4=19
# -DPINS_DPAD_EXTRASW_IN5=25
-DFEATURE_DPAD_6WIRESW
-DPINS_DPAD_6WIRESW_OUT=4
-DPINS_DPAD_6WIRESW_IN1=5
-DPINS_DPAD_6WIRESW_IN2=27
-DPINS_DPAD_6WIRESW_IN3=18
-DPINS_DPAD_6WIRESW_IN4=19
-DPINS_DPAD_6WIRESW_IN5=26
# -DDPAD_5WIRESW_UP=1
# -DDPAD_5WIRESW_DOWN=5
# -DDPAD_5WIRESW_CONFIRM=2
# -DDPAD_5WIRESW_BACK=6
# -DDPAD_5WIRESW_PROFILE0=4
# -DDPAD_5WIRESW_PROFILE1=0
# -DDPAD_5WIRESW_PROFILE2=7
# -DDPAD_5WIRESW_PROFILE3=3
# -DDPAD_5WIRESW_DEBUG
-DDPAD_6WIRESW_UP=1
-DDPAD_6WIRESW_DOWN=5
-DDPAD_6WIRESW_CONFIRM=2
-DDPAD_6WIRESW_BACK=6
-DDPAD_6WIRESW_PROFILE0=4
-DDPAD_6WIRESW_PROFILE1=0
-DDPAD_6WIRESW_PROFILE2=7
-DDPAD_6WIRESW_PROFILE3=3
-DDPAD_6WIRESW_BLINK_LEFT=8
-DDPAD_6WIRESW_BLINK_RIGHT=9
# -DDPAD_6WIRESW_DEBUG
-DFEATURE_GSCHISSENE_DIODE
-DDEFAULT_GASMIN=842
-DDEFAULT_GASMAX=2480
-DDEFAULT_BREMSMIN=826
-DDEFAULT_BREMSMAX=2502
-DFEATURE_BLE
# -DFEATURE_BLUETOOTH
# -DFEATURE_BMS
# -DFEATURE_GAMETRAK
# -DPINS_GAMETRAKX=34
# -DPINS_GAMETRAKY=39
# -DPINS_GAMETRAKDIST=36
# -DDEFAULT_GAMETRAKXMIN=0
# -DDEFAULT_GAMETRAKXMAX=4095
# -DDEFAULT_GAMETRAKYMIN=0
# -DDEFAULT_GAMETRAKYMAX=4095
# -DDEFAULT_GAMETRAKDISTMIN=0
# -DDEFAULT_GAMETRAKDISTMAX=4095
# -DFEATURE_POWERSUPPLY
# -DFEATURE_CLOUD
-DFEATURE_UDPCLOUD
-DFEATURE_LEDBACKLIGHT
-DPINS_LEDBACKLIGHT=23
-DLEDBACKLIGHT_INVERTED
-DFEATURE_GARAGE
# -DFEATURE_NTP
-DFEATURE_WIRELESS_CONFIG
-DFEATURE_LEDSTRIP
-DPINS_LEDSTRIP=33
-DLEDSTRIP_LENGTH=288
-DHEAP_LRGST_CRASH_TEXT_FIX
# -DLEDSTRIP_WRONG_DIRECTION
-DLEDSTRIP_ANIMATION_DEFAULT=1
-DLEDS_PER_METER=144
-DOLD_NVS
-DFEATURE_DNS_NS
-DSWITCH_BLINK
# -DFEATURE_IS_MIR_EGAL_OB_DER_WEBSERVER_FUNKTIONIERT
-DFEATURE_ESPNOW
-DFEATURE_SSL
)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
message(WARNING "Including lockscreen_plugin")
endif()

106
config_feedc0de.cmake Normal file
View File

@ -0,0 +1,106 @@
set(BOBBY_APP_NAME bobbyquad_feedc0de)
add_definitions(
-DUSER_SETUP_LOADED=1
-DLOAD_GLCD=1
-DLOAD_FONT2=1
-DLOAD_FONT4=1
-DLOAD_FONT7=1
-DILI9341_DRIVER=1
-DTFT_MOSI=13
-DTFT_SCLK=15
-DTFT_CS=14
-DTFT_DC=12
-DTFT_RST=2
-DSPI_FREQUENCY=40000000
)
set(BOBBYCAR_BUILDFLAGS
-DFEATURE_ADC_IN
-DPINS_GAS=34
-DPINS_BREMS=35
-DDEFAULT_SWAPSCREENBYTES=false
-DFEATURE_CAN
# -DFEATURE_SERIAL
# -DPINS_RX1=4
# -DPINS_TX1=5
# -DPINS_RX2=22
# -DPINS_TX2=23
-DDEFAULT_INVERTFRONTLEFT=false
-DDEFAULT_INVERTFRONTRIGHT=true
-DDEFAULT_INVERTBACKLEFT=false
-DDEFAULT_INVERTBACKRIGHT=true
-DDEFAULT_WHEELDIAMETER=255
-DFEATURE_MOSFETS
-DPINS_MOSFET0=4
-DPINS_MOSFET1=5
-DPINS_MOSFET2=25
-DDEFAULT_IMOTMAX=40
-DDEFAULT_IDCMAX=42
-DDEFAULT_NMOTMAX=2000
-DDEFAULT_FIELDWEAKMAX=17
-DDEFAULT_FIELDADVMAX=40
-DDEVICE_PREFIX=bobbyquad
-DAP_PASSWORD=Passwort_123
-DFEATURE_WEBSERVER
-DFEATURE_OTA
-DOTA_USERNAME="feedc0de"
-DFEATURE_DPAD_5WIRESW_2OUT
-DPINS_DPAD_5WIRESW_OUT1=18
-DPINS_DPAD_5WIRESW_OUT2=19
-DPINS_DPAD_5WIRESW_IN1=27
-DPINS_DPAD_5WIRESW_IN2=32
-DPINS_DPAD_5WIRESW_IN3=33
-DDPAD_5WIRESW_UP=2
-DDPAD_5WIRESW_DOWN=11
-DDPAD_5WIRESW_CONFIRM=5
-DDPAD_5WIRESW_BACK=8
-DDPAD_5WIRESW_PROFILE0=4
-DDPAD_5WIRESW_PROFILE1=1
-DDPAD_5WIRESW_PROFILE2=10
-DDPAD_5WIRESW_PROFILE3=7
-DDPAD_5WIRESW_BLINK_LEFT=9
-DDPAD_5WIRESW_BLINK_RIGHT=0
-DDPAD_5WIRESW_QUICKACTION_DOWN=3
-DDPAD_5WIRESW_QUICKACTION_UP=6
# -DDPAD_5WIRESW_DEBUG
-DDEFAULT_GASMIN=200
-DDEFAULT_GASMAX=1070
-DDEFAULT_BREMSMIN=270
-DDEFAULT_BREMSMAX=1800
-DFEATURE_BLE
# -DFEATURE_BLUETOOTH
# -DFEATURE_BMS
# -DFEATURE_GAMETRAK
# -DPINS_GAMETRAKX=34
# -DPINS_GAMETRAKY=39
# -DPINS_GAMETRAKDIST=36
# -DDEFAULT_GAMETRAKXMIN=0
# -DDEFAULT_GAMETRAKXMAX=4095
# -DDEFAULT_GAMETRAKYMIN=0
# -DDEFAULT_GAMETRAKYMAX=4095
# -DDEFAULT_GAMETRAKDISTMIN=0
# -DDEFAULT_GAMETRAKDISTMAX=4095
-DFEATURE_POWERSUPPLY
-DFEATURE_CLOUD
# -DFEATURE_UDPCLOUD
-DFEATURE_LEDBACKLIGHT
-DPINS_LEDBACKLIGHT=23
-DLEDBACKLIGHT_INVERTED
-DFEATURE_GARAGE
-DFEATURE_NTP
-DFEATURE_WIRELESS_CONFIG
-DFEATURE_LEDSTRIP
-DPINS_LEDSTRIP=26
-DLEDSTRIP_LENGTH=200
# -DHEAP_LRGST_CRASH_TEXT_FIX
# -DLEDSTRIP_WRONG_DIRECTION
-DLEDSTRIP_ANIMATION_DEFAULT=0
-DLEDS_PER_METER=144
-DOLD_NVS
# -DFEATURE_DNS_NS
# -DSWITCH_BLINK
-DFEATURE_IS_MIR_EGAL_OB_DER_WEBSERVER_FUNKTIONIERT
# -DFEATURE_ESPNOW
# -DFEATURE_SSL
)

98
config_greyhash.cmake Normal file
View File

@ -0,0 +1,98 @@
set(BOBBY_APP_NAME bobbyquad_greyhash)
add_definitions(
-DUSER_SETUP_LOADED=1
-DLOAD_GLCD=1
-DLOAD_FONT2=1
-DLOAD_FONT4=1
-DLOAD_FONT7=1
-DILI9341_DRIVER=1
-DTFT_MOSI=13
-DTFT_SCLK=15
-DTFT_CS=14
-DTFT_DC=12
-DTFT_RST=2
-DSPI_FREQUENCY=27000000
)
set(BOBBYCAR_BUILDFLAGS
-DFEATURE_ADC_IN
-DPINS_GAS=34
-DPINS_BREMS=35
-DDEFAULT_SWAPSCREENBYTES=false
# -DFEATURE_CAN
# -DFEATURE_SERIAL
# -DPINS_RX1=4
# -DPINS_TX1=5
# -DPINS_RX2=22
# -DPINS_TX2=23
-DDEFAULT_INVERTFRONTLEFT=false
-DDEFAULT_INVERTFRONTRIGHT=true
-DDEFAULT_INVERTBACKLEFT=false
-DDEFAULT_INVERTBACKRIGHT=true
-DDEFAULT_WHEELDIAMETER=200
# -DFEATURE_MOSFETS
# -DPINS_MOSFET0=18
# -DPINS_MOSFET1=19
# -DPINS_MOSFET2=21
-DDEFAULT_IMOTMAX=28
-DDEFAULT_IDCMAX=30
-DDEFAULT_NMOTMAX=2000
-DDEFAULT_FIELDWEAKMAX=7
-DDEFAULT_FIELDADVMAX=40
-DDEVICE_PREFIX=bobbyquad
# -DAP_PASSWORD=Passwort_123
# -DFEATURE_WEBSERVER
# -DFEATURE_OTA
# -DOTA_USERNAME="greyhash"
-DFEATURE_DPAD_5WIRESW
-DPINS_DPAD_5WIRESW_OUT=4
-DPINS_DPAD_5WIRESW_IN1=5
-DPINS_DPAD_5WIRESW_IN2=27
-DPINS_DPAD_5WIRESW_IN3=18
-DPINS_DPAD_5WIRESW_IN4=19
-DDPAD_5WIRESW_UP=1
-DDPAD_5WIRESW_DOWN=5
-DDPAD_5WIRESW_CONFIRM=2
-DDPAD_5WIRESW_BACK=6
-DDPAD_5WIRESW_PROFILE0=4
-DDPAD_5WIRESW_PROFILE1=0
-DDPAD_5WIRESW_PROFILE2=7
-DDPAD_5WIRESW_PROFILE3=3
# -DDPAD_5WIRESW_DEBUG
-DDEFAULT_GASMIN=842
-DDEFAULT_GASMAX=2480
-DDEFAULT_BREMSMIN=826
-DDEFAULT_BREMSMAX=2502
# -DFEATURE_BLE
# -DFEATURE_BLUETOOTH
# -DFEATURE_BMS
# -DFEATURE_GAMETRAK
# -DPINS_GAMETRAKX=34
# -DPINS_GAMETRAKY=39
# -DPINS_GAMETRAKDIST=36
# -DDEFAULT_GAMETRAKXMIN=0
# -DDEFAULT_GAMETRAKXMAX=4095
# -DDEFAULT_GAMETRAKYMIN=0
# -DDEFAULT_GAMETRAKYMAX=4095
# -DDEFAULT_GAMETRAKDISTMIN=0
# -DDEFAULT_GAMETRAKDISTMAX=4095
# -DFEATURE_POWERSUPPLY
# -DFEATURE_CLOUD
# -DFEATURE_UDPCLOUD
# -DFEATURE_LEDBACKLIGHT
# -DPINS_LEDBACKLIGHT=23
# -DLEDBACKLIGHT_INVERTED
# -DFEATURE_GARAGE
# -DFEATURE_NTP
# -DFEATURE_WIRELESS_CONFIG
# -DFEATURE_LEDSTRIP
# -DPINS_LEDSTRIP=33
# -DLEDSTRIP_LENGTH=121
# -DLEDSTRIP_DEFAULT_BRIGHTNESS=100
# -DLEDSTRIP_WRONG_DIRECTION
# -DLEDSTRIP_ANIMATION_DEFAULT=0
-DOLD_NVS
# -DFEATURE_DNS_NS
# -DFEATURE_SSL
)

102
config_mick.cmake Normal file
View File

@ -0,0 +1,102 @@
set(BOBBY_APP_NAME bobbyquad_mick)
add_definitions(
-DUSER_SETUP_LOADED=1
-DLOAD_GLCD=1
-DLOAD_FONT2=1
-DLOAD_FONT4=1
-DLOAD_FONT7=1
-DILI9341_DRIVER=1
-DTFT_MOSI=13
-DTFT_SCLK=15
-DTFT_CS=14
-DTFT_DC=12
-DTFT_RST=2
-DSPI_FREQUENCY=27000000
)
set(BOBBYCAR_BUILDFLAGS
-DFEATURE_ADC_IN
-DPINS_GAS=34
-DPINS_BREMS=35
-DDEFAULT_SWAPSCREENBYTES=false
-DFEATURE_CAN
# -DFEATURE_SERIAL
# -DPINS_RX1=4
# -DPINS_TX1=5
# -DPINS_RX2=22
# -DPINS_TX2=23
-DDEFAULT_INVERTFRONTLEFT=false
-DDEFAULT_INVERTFRONTRIGHT=true
-DDEFAULT_INVERTBACKLEFT=false
-DDEFAULT_INVERTBACKRIGHT=true
-DDEFAULT_WHEELDIAMETER=200
# -DFEATURE_MOSFETS
# -DPINS_MOSFET0=18
# -DPINS_MOSFET1=19
# -DPINS_MOSFET2=21
-DDEFAULT_IMOTMAX=28
-DDEFAULT_IDCMAX=30
-DDEFAULT_NMOTMAX=2000
-DDEFAULT_FIELDWEAKMAX=7
-DDEFAULT_FIELDADVMAX=40
-DDEVICE_PREFIX=bobbyquad
-DAP_PASSWORD=Passwort_123
-DFEATURE_WEBSERVER
# -DFEATURE_OTA
-DOTA_USERNAME="mick"
# -DFEATURE_DPAD_5WIRESW
# -DPINS_DPAD_5WIRESW_OUT=4
# -DPINS_DPAD_5WIRESW_IN1=5
# -DPINS_DPAD_5WIRESW_IN2=27
# -DPINS_DPAD_5WIRESW_IN3=18
# -DPINS_DPAD_5WIRESW_IN4=19
# -DDPAD_5WIRESW_UP=1
# -DDPAD_5WIRESW_DOWN=5
# -DDPAD_5WIRESW_CONFIRM=2
# -DDPAD_5WIRESW_BACK=6
# -DDPAD_5WIRESW_PROFILE0=4
# -DDPAD_5WIRESW_PROFILE1=0
# -DDPAD_5WIRESW_PROFILE2=7
# -DDPAD_5WIRESW_PROFILE3=3
# -DDPAD_5WIRESW_DEBUG
-DDEFAULT_GASMIN=184
-DDEFAULT_GASMAX=1329
-DDEFAULT_BREMSMIN=28
-DDEFAULT_BREMSMAX=500
-DFEATURE_BLE
# -DFEATURE_BLUETOOTH
# -DFEATURE_BMS
# -DFEATURE_GAMETRAK
# -DPINS_GAMETRAKX=34
# -DPINS_GAMETRAKY=39
# -DPINS_GAMETRAKDIST=36
# -DDEFAULT_GAMETRAKXMIN=0
# -DDEFAULT_GAMETRAKXMAX=4095
# -DDEFAULT_GAMETRAKYMIN=0
# -DDEFAULT_GAMETRAKYMAX=4095
# -DDEFAULT_GAMETRAKDISTMIN=0
# -DDEFAULT_GAMETRAKDISTMAX=4095
# -DFEATURE_POWERSUPPLY
# -DFEATURE_CLOUD
-DFEATURE_UDPCLOUD
-DFEATURE_LEDBACKLIGHT
-DPINS_LEDBACKLIGHT=23
-DLEDBACKLIGHT_INVERTED
# -DFEATURE_GARAGE
# -DFEATURE_NTP
-DFEATURE_WIRELESS_CONFIG
-DFEATURE_LEDSTRIP
-DLEDSTRIP_LENGTH=288
-DPINS_LEDSTRIP=33
# -DLEDSTRIP_WRONG_DIRECTION
-DLEDSTRIP_ANIMATION_DEFAULT=0
-DOLD_NVS
-DFEATURE_DNS_NS
# -DFEATURE_SSL
)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
message(WARNING "Including lockscreen_plugin")
endif()

107
config_peter.cmake Normal file
View File

@ -0,0 +1,107 @@
set(BOBBY_APP_NAME bobbyquad_peter)
add_definitions(
-DUSER_SETUP_LOADED=1
-DLOAD_GLCD=1
-DLOAD_FONT2=1
-DLOAD_FONT4=1
-DLOAD_FONT7=1
-DILI9341_DRIVER=1
-DTFT_MOSI=13
-DTFT_SCLK=15
-DTFT_CS=14
-DTFT_DC=12
-DTFT_RST=2
-DSPI_FREQUENCY=40000000
)
set(BOBBYCAR_BUILDFLAGS
-DFEATURE_ADC_IN
-DPINS_GAS=34
-DPINS_BREMS=35
-DDEFAULT_SWAPSCREENBYTES=false
-DFEATURE_CAN
# -DFEATURE_SERIAL
# -DPINS_RX1=4
# -DPINS_TX1=5
# -DPINS_RX2=22
# -DPINS_TX2=23
-DDEFAULT_INVERTFRONTLEFT=false
-DDEFAULT_INVERTFRONTRIGHT=true
-DDEFAULT_INVERTBACKLEFT=false
-DDEFAULT_INVERTBACKRIGHT=true
-DDEFAULT_WHEELDIAMETER=200
# -DFEATURE_MOSFETS
# -DPINS_MOSFET0=18
# -DPINS_MOSFET1=19
# -DPINS_MOSFET2=21
-DDEFAULT_IMOTMAX=28
-DDEFAULT_IDCMAX=30
-DDEFAULT_NMOTMAX=2000
-DDEFAULT_FIELDWEAKMAX=7
-DDEFAULT_FIELDADVMAX=40
-DDEVICE_PREFIX=peter_bobbyquad
-DAP_PASSWORD=Passwort_123
-DFEATURE_WEBSERVER
-DFEATURE_OTA
-DOTA_USERNAME="peter"
-DFEATURE_DPAD_5WIRESW_2OUT
-DPINS_DPAD_5WIRESW_OUT1=18
-DPINS_DPAD_5WIRESW_OUT2=19
-DPINS_DPAD_5WIRESW_IN1=4
-DPINS_DPAD_5WIRESW_IN2=5
-DPINS_DPAD_5WIRESW_IN3=27
-DDPAD_5WIRESW_UP=4
-DDPAD_5WIRESW_DOWN=7
-DDPAD_5WIRESW_CONFIRM=1
-DDPAD_5WIRESW_BACK=10
-DDPAD_5WIRESW_PROFILE0=11
-DDPAD_5WIRESW_PROFILE1=8
-DDPAD_5WIRESW_PROFILE2=5
-DDPAD_5WIRESW_PROFILE3=2
-DDPAD_5WIRESW_BLINK_LEFT=9
-DDPAD_5WIRESW_BLINK_RIGHT=0
-DDPAD_5WIRESW_QUICKACTION_DOWN=3
-DDPAD_5WIRESW_QUICKACTION_UP=6
# -DDPAD_5WIRESW_DEBUG
-DDEFAULT_GASMIN=842
-DDEFAULT_GASMAX=2480
-DDEFAULT_BREMSMIN=826
-DDEFAULT_BREMSMAX=2502
-DFEATURE_BLE
# -DFEATURE_BLUETOOTH
# -DFEATURE_BMS
# -DFEATURE_GAMETRAK
# -DPINS_GAMETRAKX=34
# -DPINS_GAMETRAKY=39
# -DPINS_GAMETRAKDIST=36
# -DDEFAULT_GAMETRAKXMIN=0
# -DDEFAULT_GAMETRAKXMAX=4095
# -DDEFAULT_GAMETRAKYMIN=0
# -DDEFAULT_GAMETRAKYMAX=4095
# -DDEFAULT_GAMETRAKDISTMIN=0
# -DDEFAULT_GAMETRAKDISTMAX=4095
# -DFEATURE_POWERSUPPLY
# -DFEATURE_CLOUD
-DFEATURE_UDPCLOUD
-DFEATURE_LEDBACKLIGHT
-DPINS_LEDBACKLIGHT=23
-DLEDBACKLIGHT_INVERTED
-DFEATURE_GARAGE
-DFEATURE_NTP
-DFEATURE_WIRELESS_CONFIG
-DFEATURE_LEDSTRIP
-DPINS_LEDSTRIP=33
-DLEDSTRIP_LENGTH=288
# -DLEDSTRIP_WRONG_DIRECTION
-DLEDSTRIP_ANIMATION_DEFAULT=2
-DLEDS_PER_METER=144
-DOLD_NVS
-DFEATURE_DNS_NS
-DFEATURE_SSL
)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
message(WARNING "Including lockscreen_plugin")
endif()

1
esp-idf Submodule

Submodule esp-idf added at 44475ab503

56
export.sh Normal file
View File

@ -0,0 +1,56 @@
BOBBY_ROOT="$(dirname "$BASH_SOURCE")"
export PS1="\033[1;32m(bobby-sourced)\033[;0m$PS1"
if [[ ! -f "${BOBBY_ROOT}/esp-idf/export.sh" ]]
then
echo "esp-idf is missing, please check out all needed submodules!"
echo "git submodule update --init --recursive"
return
fi
. ${BOBBY_ROOT}/esp-idf/export.sh
complete -W "$(./switchconf.sh --list)" ./switchconf.sh
complete -W "$(./switchconf.sh --list)" switchconf
BOBBY_INIT_FAILED=
if [[ -e "build" ]] && [[ ! -L "build" ]]
then
echo "ERROR: build folder exists but isnt a symlink!"
BOBBY_INIT_FAILED=1
fi
if [[ -e "sdkconfig" ]]
then
if [[ ! -L "sdkconfig" ]]
then
echo "ERROR: sdkconfig exists but isnt a symlink!"
BOBBY_INIT_FAILED=1
fi
else
echo "ERROR: sdkconfig does not exist"
BOBBY_INIT_FAILED=1
fi
if [[ -e "config.cmake" ]]
then
if [[ ! -L "config.cmake" ]]
then
echo "ERROR: config.cmake exists but isnt a symlink!"
BOBBY_INIT_FAILED=1
fi
else
echo "ERROR: config.cmake does not exist"
BOBBY_INIT_FAILED=1
fi
if [[ ! -z "$BOBBY_INIT_FAILED" ]]
then
echo "run ./switchconf.sh to fix all listed issues"
return
fi
export PATH=$PATH:$(pwd)/tools
alias open-ide=open_ide
alias switchconf=./switchconf.sh
alias bobby-build="idf.py build"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

BIN
icons/battery.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

BIN
icons/bobbycar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

BIN
icons/greenpass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

BIN
icons/neopixel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

BIN
icons/time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

BIN
icons/update.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
img/3wiresw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
img/dpadsw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
img/rotary.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
img/wiring.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

View File

@ -1,39 +0,0 @@
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

470
main/CMakeLists.txt Normal file
View File

@ -0,0 +1,470 @@
set(headers
accessors/globalaccessors.h
accessors/settingsaccessors.h
accessors/wifiaccessors.h
actions/assertaction.h
actions/bluetoothbeginaction.h
actions/bluetoothbeginmasteraction.h
actions/bluetoothconnectbmsaction.h
actions/bluetoothdisconnectaction.h
actions/bluetoothendaction.h
actions/bluetoothflushaction.h
actions/bmsturnoffchargeaction.h
actions/bmsturnoffdischargeaction.h
actions/bmsturnonchargeaction.h
actions/bmsturnondischargeaction.h
actions/dividebyzeroaction.h
actions/erasenvsaction.h
actions/ledstripanimationactions.h
actions/ledstripblinkactions.h
actions/loadsettingsaction.h
actions/modesettingsaction.h
actions/multiaction.h
actions/qraction.h
actions/rebootaction.h
actions/savesettingsaction.h
actions/switchprofileaction.h
actions/tempomatmodeapplycurrentpeedaction.h
actions/updateswapfrontbackaction.h
actions/wifiscanaction.h
battery.h
ble_bobby.h
bletexthelpers.h
bluetooth_bobby.h
bluetoothmode.h
bluetoothtexthelpers.h
bmsutils.h
buildserver.h
buttons.h
can.h
changevaluedisplay_bluetoothmode.h
changevaluedisplay_controlmode.h
changevaluedisplay_controltype.h
changevaluedisplay_handbremsmode.h
changevaluedisplay_larsmmode_mode.h
changevaluedisplay_unifiedmodelmode.h
changevaluedisplay_wifi_mode_t.h
changevaluedisplay_wifi_power_t.h
cloud.h
cloudtexthelpers.h
controller.h
debugcolorhelpers.h
debuginputhandler.h
debugtexthelpers.h
displays/bmsdisplay.h
displays/calibratedisplay.h
displays/calibratevoltagedisplay.h
displays/qrdisplay.h
displays/dpad5wire2outdebugdisplay.h
displays/dpad5wiredebugdisplay.h
displays/dpad6wiredebugdisplay.h
displays/gameoflifedisplay.h
displays/gametrakcalibratedisplay.h
displays/garagedisplay.h
displays/ledstripcolorsdisplay.h
displays/lockscreen.h
displays/menus/aboutmenu.h
displays/menus/accesspointwifisettingsmenu.h
displays/menus/batterydebugmenu.h
displays/menus/batterymenu.h
displays/menus/blesettingsmenu.h
displays/menus/bluetoothsettingsmenu.h
displays/menus/bmsmenu.h
displays/menus/boardcomputerhardwaresettingsmenu.h
displays/menus/buzzermenu.h
displays/menus/cloudsettingsmenu.h
displays/menus/commanddebugmenu.h
displays/menus/controllerhardwaresettingsmenu.h
displays/menus/crashmenu.h
displays/menus/debugmenu.h
displays/menus/defaultmodesettingsmenu.h
displays/menus/demosmenu.h
displays/menus/dynamicdebugmenu.h
displays/menus/enablemenu.h
displays/menus/espnowmenu.h
displays/menus/espnowsettingsmenu.h
displays/menus/feedbackdebugmenu.h
displays/menus/gametrakmodesettingsmenu.h
displays/menus/genericwifisettingsmenu.h
displays/menus/graphsmenu.h
displays/menus/greenpassmenu.h
displays/menus/handbremssettingsmenu.h
displays/menus/invertmenu.h
displays/menus/larsmmodesettingsmenu.h
displays/menus/ledstripmenu.h
displays/menus/ledstripselectanimationmenu.h
displays/menus/ledstripselectblinkmenu.h
displays/menus/ledstripselectotamode.h
displays/menus/limitssettingsmenu.h
displays/menus/lockscreensettingsmenu.h
displays/menus/mainmenu.h
displays/menus/modessettingsmenu.h
displays/menus/mosfetsmenu.h
displays/menus/motorfeedbackdebugmenu.h
displays/menus/motorstatedebugmenu.h
displays/menus/motortestmodesettingsmenu.h
displays/menus/otamenu.h
displays/menus/presetsmenu.h
displays/menus/profilesmenu.h
displays/menus/selectbatterytypemenu.h
displays/menus/selectbuildserverbranch.h
displays/menus/selectbuildservermenu.h
displays/menus/selectmodemenu.h
displays/menus/selectotabuildmenu.h
displays/menus/settingsmenu.h
displays/menus/stationwifisettingsmenu.h
displays/menus/statisticsmenu.h
displays/menus/taskmanagermenu.h
displays/menus/tempomatmodesettingsmenu.h
displays/menus/timersmenu.h
displays/menus/timesettingsmenu.h
displays/menus/udpcloudsettingsmenu.h
displays/menus/wifiscanmenu.h
displays/menus/wifisettingsmenu.h
displays/metersdisplay.h
displays/pingpongdisplay.h
displays/popups/alertdisplay.h
displays/poweroffdisplay.h
displays/powersupplydisplay.h
displays/qrcodedebug.h
displays/qrimportdisplay.h
displays/spirodisplay.h
displays/starfielddisplay.h
displays/statusdisplay.h
displays/updatedisplay.h
dnsannounce.h
dpad.h
dpad3wire.h
dpad5wire.h
dpad5wire_2out.h
dpad6wire.h
drivingstatistics.h
esptexthelpers.h
espnowfunctions.h
feedbackparser.h
globals.h
handbremse.h
icons/alert.h
icons/battery.h
icons/bluetooth.h
icons/bms.h
icons/bobbycar.h
icons/buzzer.h
icons/close.h
icons/demos.h
icons/graph.h
icons/greenpass.h
icons/hardware.h
icons/info.h
icons/lock.h
icons/logo.h
icons/modes.h
icons/neopixel.h
icons/poweroff.h
icons/presets.h
icons/reboot.h
icons/scan.h
icons/settings.h
icons/statistics.h
icons/time.h
icons/update.h
icons/wifi.h
ledstrip.h
ledstripdefines.h
macros_bobbycar.h
modeinterface.h
modes.h
modes/defaultmode.h
modes/gametrakmode.h
modes/ignoreinputmode.h
modes/larsmmode.h
modes/motortestmode.h
modes/remotecontrolmode.h
modes/tempomatmode.h
mosfets.h
newsettings.h
ota.h
potis.h
presets.h
qrimport.h
rotary.h
screens.h
serial_bobby.h
settings.h
settingspersister.h
settingsutils.h
sslcert.h
statistics.h
statustexthelper.h
stringsettings.h
taskmanager.h
texts.h
time_bobbycar.h
types.h
udpcloud.h
unifiedmodelmode.h
utils.h
webserver.h
webserver_displaycontrol.h
webserver_dumpnvs.h
webserver_lock.h
webserver_ota.h
webserver_settings.h
webserver_stringsettings.h
widgets/doubleprogressbar.h
widgets/menudisplaywithtime.h
wifi_bobbycar.h
wifitexthelpers.h
)
set(sources
accessors/globalaccessors.cpp
accessors/settingsaccessors.cpp
accessors/wifiaccessors.cpp
actions/assertaction.cpp
actions/bluetoothbeginaction.cpp
actions/bluetoothbeginmasteraction.cpp
actions/bluetoothconnectbmsaction.cpp
actions/bluetoothdisconnectaction.cpp
actions/bluetoothendaction.cpp
actions/bluetoothflushaction.cpp
actions/bmsturnoffchargeaction.cpp
actions/bmsturnoffdischargeaction.cpp
actions/bmsturnonchargeaction.cpp
actions/bmsturnondischargeaction.cpp
actions/dividebyzeroaction.cpp
actions/erasenvsaction.cpp
actions/ledstripanimationactions.cpp
actions/ledstripblinkactions.cpp
actions/loadsettingsaction.cpp
actions/modesettingsaction.cpp
actions/multiaction.cpp
actions/qraction.cpp
actions/rebootaction.cpp
actions/savesettingsaction.cpp
actions/switchprofileaction.cpp
actions/tempomatmodeapplycurrentpeedaction.cpp
actions/updateswapfrontbackaction.cpp
actions/wifiscanaction.cpp
battery.cpp
ble_bobby.cpp
bletexthelpers.cpp
bluetooth_bobby.cpp
bluetoothmode.cpp
bluetoothtexthelpers.cpp
bmsutils.cpp
buildserver.cpp
buttons.cpp
can.cpp
changevaluedisplay_bluetoothmode.cpp
changevaluedisplay_controlmode.cpp
changevaluedisplay_controltype.cpp
changevaluedisplay_handbremsmode.cpp
changevaluedisplay_larsmmode_mode.cpp
changevaluedisplay_unifiedmodelmode.cpp
changevaluedisplay_wifi_mode_t.cpp
changevaluedisplay_wifi_power_t.cpp
cloud.cpp
cloudtexthelpers.cpp
controller.cpp
debugcolorhelpers.cpp
debuginputhandler.cpp
debugtexthelpers.cpp
displays/bmsdisplay.cpp
displays/calibratedisplay.cpp
displays/calibratevoltagedisplay.cpp
displays/qrdisplay.cpp
displays/dpad5wire2outdebugdisplay.cpp
displays/dpad5wiredebugdisplay.cpp
displays/dpad6wiredebugdisplay.cpp
displays/gameoflifedisplay.cpp
displays/gametrakcalibratedisplay.cpp
displays/garagedisplay.cpp
displays/ledstripcolorsdisplay.cpp
displays/lockscreen.cpp
displays/menus/aboutmenu.cpp
displays/menus/accesspointwifisettingsmenu.cpp
displays/menus/batterydebugmenu.cpp
displays/menus/batterymenu.cpp
displays/menus/blesettingsmenu.cpp
displays/menus/bluetoothsettingsmenu.cpp
displays/menus/bmsmenu.cpp
displays/menus/boardcomputerhardwaresettingsmenu.cpp
displays/menus/buzzermenu.cpp
displays/menus/cloudsettingsmenu.cpp
displays/menus/commanddebugmenu.cpp
displays/menus/controllerhardwaresettingsmenu.cpp
displays/menus/crashmenu.cpp
displays/menus/debugmenu.cpp
displays/menus/defaultmodesettingsmenu.cpp
displays/menus/demosmenu.cpp
displays/menus/dynamicdebugmenu.cpp
displays/menus/enablemenu.cpp
displays/menus/espnowmenu.cpp
displays/menus/espnowsettingsmenu.cpp
displays/menus/feedbackdebugmenu.cpp
displays/menus/gametrakmodesettingsmenu.cpp
displays/menus/genericwifisettingsmenu.cpp
displays/menus/graphsmenu.cpp
displays/menus/greenpassmenu.cpp
displays/menus/handbremssettingsmenu.cpp
displays/menus/invertmenu.cpp
displays/menus/larsmmodesettingsmenu.cpp
displays/menus/ledstripmenu.cpp
displays/menus/ledstripselectanimationmenu.cpp
displays/menus/ledstripselectblinkmenu.cpp
displays/menus/ledstripselectotamode.cpp
displays/menus/limitssettingsmenu.cpp
displays/menus/lockscreensettingsmenu.cpp
displays/menus/mainmenu.cpp
displays/menus/modessettingsmenu.cpp
displays/menus/mosfetsmenu.cpp
displays/menus/motorfeedbackdebugmenu.cpp
displays/menus/motorstatedebugmenu.cpp
displays/menus/motortestmodesettingsmenu.cpp
displays/menus/otamenu.cpp
displays/menus/presetsmenu.cpp
displays/menus/profilesmenu.cpp
displays/menus/selectbatterytypemenu.cpp
displays/menus/selectbuildserverbranch.cpp
displays/menus/selectbuildservermenu.cpp
displays/menus/selectmodemenu.cpp
displays/menus/selectotabuildmenu.cpp
displays/menus/settingsmenu.cpp
displays/menus/stationwifisettingsmenu.cpp
displays/menus/statisticsmenu.cpp
displays/menus/taskmanagermenu.cpp
displays/menus/tempomatmodesettingsmenu.cpp
displays/menus/timersmenu.cpp
displays/menus/timesettingsmenu.cpp
displays/menus/udpcloudsettingsmenu.cpp
displays/menus/wifiscanmenu.cpp
displays/menus/wifisettingsmenu.cpp
displays/metersdisplay.cpp
displays/pingpongdisplay.cpp
displays/popups/alertdisplay.cpp
displays/poweroffdisplay.cpp
displays/powersupplydisplay.cpp
displays/qrcodedebug.cpp
displays/qrimportdisplay.cpp
displays/spirodisplay.cpp
displays/starfielddisplay.cpp
displays/statusdisplay.cpp
displays/updatedisplay.cpp
dnsannounce.cpp
dpad.cpp
dpad3wire.cpp
dpad5wire.cpp
dpad5wire_2out.cpp
dpad6wire.cpp
drivingstatistics.cpp
esptexthelpers.cpp
espnowfunctions.cpp
feedbackparser.cpp
globals.cpp
handbremse.cpp
icons/alert.cpp
icons/battery.cpp
icons/bluetooth.cpp
icons/bms.cpp
icons/bobbycar.cpp
icons/buzzer.cpp
icons/close.cpp
icons/demos.cpp
icons/graph.cpp
icons/greenpass.cpp
icons/hardware.cpp
icons/info.cpp
icons/lock.cpp
icons/logo.cpp
icons/modes.cpp
icons/neopixel.cpp
icons/poweroff.cpp
icons/presets.cpp
icons/reboot.cpp
icons/scan.cpp
icons/settings.cpp
icons/statistics.cpp
icons/time.cpp
icons/update.cpp
icons/wifi.cpp
ledstrip.cpp
ledstripdefines.cpp
macros_bobbycar.cpp
main.cpp
modeinterface.cpp
modes.cpp
modes/defaultmode.cpp
modes/gametrakmode.cpp
modes/ignoreinputmode.cpp
modes/larsmmode.cpp
modes/motortestmode.cpp
modes/remotecontrolmode.cpp
modes/tempomatmode.cpp
mosfets.cpp
newsettings.cpp
ota.cpp
potis.cpp
presets.cpp
qrimport.cpp
rotary.cpp
screens.cpp
serial_bobby.cpp
settings.cpp
settingspersister.cpp
settingsutils.cpp
sslcert.cpp
statistics.cpp
statustexthelper.cpp
stringsettings.cpp
taskmanager.cpp
texts.cpp
time_bobbycar.cpp
types.cpp
udpcloud.cpp
unifiedmodelmode.cpp
utils.cpp
webserver.cpp
webserver_displaycontrol.cpp
webserver_dumpnvs.cpp
webserver_lock.cpp
webserver_ota.cpp
webserver_settings.cpp
webserver_stringsettings.cpp
widgets/doubleprogressbar.cpp
widgets/menudisplaywithtime.cpp
wifi_bobbycar.cpp
wifitexthelpers.cpp
)
set(dependencies
freertos nvs_flash esp_http_server esp_https_server esp_https_ota mdns app_update esp_system esp_websocket_client driver
arduino-esp32 ArduinoJson esp-nimble-cpp FastLED-idf TFT_eSPI QRCode-esp32
bobbycar-protocol cpputils cxx-ring-buffer date
espasynchttpreq espasyncota espchrono espcpputils espconfiglib esp-gui-lib esphttpdutils espwifistack expected fmt
)
idf_component_register(
SRCS
${headers}
${sources}
INCLUDE_DIRS
.
REQUIRES
${dependencies}
EMBED_TXTFILES
certs/cert.pem
certs/key.pem
)
target_compile_options(${COMPONENT_TARGET}
PRIVATE
-fstack-reuse=all
-fstack-protector-all
-fdiagnostics-color=always
-Wno-unused-function
-Wno-deprecated-declarations
-Wno-missing-field-initializers
-Wno-parentheses
${BOBBYCAR_BUILDFLAGS}
)

View File

@ -0,0 +1 @@
#include "globalaccessors.h"

View File

@ -0,0 +1,12 @@
#pragma once
// local includes
#include "accessorinterface.h"
#include "globals.h"
#include "modes/tempomatmode.h"
struct AvgSpeedAccessor : public espgui::RefAccessor<float> { float &getRef() const override { return avgSpeed; } };
struct AvgSpeedKmhAccessor : public espgui::RefAccessor<float> { float &getRef() const override { return avgSpeedKmh; } };
struct SumCurrentAccessor : public espgui::RefAccessor<float> { float &getRef() const override { return sumCurrent; } };
struct TempomatModeCruiseMotTgtAccessor : public espgui::RefAccessor<int16_t> { int16_t &getRef() const override { return modes::tempomatMode.nCruiseMotTgt; } };

View File

@ -0,0 +1 @@
#include "settingsaccessors.h"

View File

@ -0,0 +1,227 @@
#pragma once
// 3rdparty lib includes
#include <accessorinterface.h>
// local includes
#include "globals.h"
#include "utils.h"
//! Special type of RefAccessor that also saves settings after setValue()
template<typename T>
struct RefAccessorSaveSettings : public virtual espgui::RefAccessor<T>
{
void setValue(T value) override { espgui::RefAccessor<T>::setValue(value); saveSettings(); };
};
// Bms
#ifdef FEATURE_BMS
struct AutoConnectBmsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.autoConnectBms; } };
#endif
// Buzzer
struct ReverseBeepAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.buzzer.reverseBeep; } };
struct ReverseBeepFreq0Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.buzzer.reverseBeepFreq0; } };
struct ReverseBeepFreq1Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.buzzer.reverseBeepFreq1; } };
struct ReverseBeepDuration0Accessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.buzzer.reverseBeepDuration0; } };
struct ReverseBeepDuration1Accessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.buzzer.reverseBeepDuration1; } };
// Limits
struct IMotMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.iMotMax; } };
struct IDcMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.iDcMax; } };
struct NMotMaxKmhAccessor : public virtual espgui::AccessorInterface<int16_t>
{
int16_t getValue() const override { return convertToKmh(settings.limits.nMotMax); }
void setValue(int16_t value) override { settings.limits.nMotMax = convertFromKmh(value); saveSettings(); }
};
struct NMotMaxRpmAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.nMotMax; } };
struct FieldWeakMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.fieldWeakMax; } };
struct PhaseAdvMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.phaseAdvMax; } };
// WiFi
struct WifiStaEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.wifiSettings.wifiStaEnabled; } };
struct WifiApEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.wifiSettings.wifiApEnabled; } };
// Bluetooth
#ifdef FEATURE_BLUETOOTH
struct AutoBluetoothModeAccessor : public RefAccessorSaveSettings<BluetoothMode> { BluetoothMode &getRef() const override { return settings.bluetoothSettings.autoBluetoothMode; } };
#endif
// Bluetooth Low Energy
#ifdef FEATURE_BLE
struct BleEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.bleSettings.bleEnabled; } };
#endif
// Cloud
#ifdef FEATURE_CLOUD
struct CloudEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.cloudSettings.cloudEnabled; } };
struct CloudTransmitTimeoutAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.cloudSettings.cloudTransmitTimeout; } };
#endif
// Time
struct TimezoneOffsetAccessor : public virtual espgui::AccessorInterface<int32_t>
{
int32_t getValue() const override { return settings.timeSettings.timezoneOffset.count(); }
void setValue(int32_t value) override { settings.timeSettings.timezoneOffset = espchrono::minutes32{value}; saveSettings(); }
};
struct DaylightSavingModeAccessor : public RefAccessorSaveSettings<espchrono::DayLightSavingMode> { espchrono::DayLightSavingMode &getRef() const override { return settings.timeSettings.daylightSavingMode; } };
#ifdef FEATURE_NTP
struct TimeServerEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.timeSettings.timeServerEnabled; } };
struct TimeSyncModeAccessor : public RefAccessorSaveSettings<sntp_sync_mode_t> { sntp_sync_mode_t &getRef() const override { return settings.timeSettings.timeSyncMode; } };
struct TimeSyncIntervalAccessor : public virtual espgui::AccessorInterface<int32_t>
{
int32_t getValue() const override { return settings.timeSettings.timeSyncInterval.count(); }
void setValue(int32_t value) override { settings.timeSettings.timeSyncInterval = espchrono::milliseconds32{value}; saveSettings(); }
};
#endif
// Controller Hardware
struct FrontLeftEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableFrontLeft; } };
struct FrontRightEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableFrontRight; } };
struct BackLeftEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableBackLeft; } };
struct BackRightEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableBackRight; } };
struct FrontLeftInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertFrontLeft; } };
struct FrontRightInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertFrontRight; } };
struct BackLeftInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertBackLeft; } };
struct BackRightInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertBackRight; } };
struct WheelDiameterMmAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.controllerHardware.wheelDiameter; } };
struct WheelDiameterInchAccessor : public virtual espgui::AccessorInterface<float>
{
float getValue() const override { return convertToInch(settings.controllerHardware.wheelDiameter); }
void setValue(float value) override { settings.controllerHardware.wheelDiameter = convertFromInch(value); saveSettings(); }
};
struct NumMagnetPolesAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.controllerHardware.numMagnetPoles; } };
struct SwapFrontBackAccessor : public RefAccessorSaveSettings<bool> {
bool &getRef() const override { return settings.controllerHardware.swapFrontBack; }
#ifdef FEATURE_SERIAL
void setValue(bool value) override { RefAccessorSaveSettings<bool>::setValue(value); updateSwapFrontBack(); };
#endif
};
// CAN
#ifdef FEATURE_CAN
struct SendFrontCanCmdAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.sendFrontCanCmd; } };
struct SendBackCanCmdAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.sendBackCanCmd; } };
struct CanTransmitTimeoutAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.controllerHardware.canTransmitTimeout; } };
struct CanReceiveTimeoutAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.controllerHardware.canReceiveTimeout; } };
#endif
// Input devices
struct SampleCountAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.sampleCount; } };
struct GasMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gasMin; } };
struct GasMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gasMax; } };
struct BremsMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMin; } };
struct BremsMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMax; } };
#if defined(FEATURE_DPAD) || defined(FEATURE_DPAD_3WIRESW) || defined(FEATURE_DPAD_5WIRESW) || defined(FEATURE_DPAD_5WIRESW_2OUT) || defined (FEATURE_DPAD_6WIRESW)
struct DPadDebounceAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.boardcomputerHardware.dpadDebounce; } };
#endif
#ifdef FEATURE_GAMETRAK
struct GametrakXMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakXMin; } };
struct GametrakXMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakXMax; } };
struct GametrakYMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakYMin; } };
struct GametrakYMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakYMax; } };
struct GametrakDistMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMin; } };
struct GametrakDistMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMax; } };
#endif
struct StatsUpdateRateAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.statsUpdateRate; } };
// Cloud
#ifdef FEATURE_CLOUD
struct CloudCollectRateAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.cloudCollectRate; } };
struct CloudSendRateAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.cloudSendRate; } };
#endif
#ifdef FEATURE_UDPCLOUD
struct UdpCloudSendIntervalAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.udpSendRateMs; } };
struct UdpCloudEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.udpCloudSettings.udpCloudEnabled; } };
struct CloudDebugEnableAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.udpCloudSettings.enableCloudDebug; } };
struct UdpUseStdStringAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.udpCloudSettings.udpUseStdString; } };
#endif
// DefaultMode
struct DefaultModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.defaultMode.modelMode; } };
struct DefaultModeHybridModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.hybrid.hybridMode; } };
struct DefaultModeSquareGasAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.squareGas; } };
struct DefaultModeSquareBremsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.squareBrems; } };
struct DefaultModeEnableSmoothingUpAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableSmoothingUp; } };
struct DefaultModeEnableSmoothingDownAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableSmoothingDown; } };
struct DefaultModeEnableFieldWeakSmoothingUpAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableFieldWeakSmoothingUp; } };
struct DefaultModeEnableFieldWeakSmoothingDownAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableFieldWeakSmoothingDown; } };
struct DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.fwSmoothLowerLimit; } };
struct DefaultModeSmoothingAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.smoothing; } };
struct DefaultModeFrontPercentageAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.frontPercentage; } };
struct DefaultModeBackPercentageAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.backPercentage; } };
struct DefaultModeAddSchwelleAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.add_schwelle; } };
struct DefaultModeGas1WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.gas1_wert; } };
struct DefaultModeGas2WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.gas2_wert; } };
struct DefaultModeBrems1WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.brems1_wert; } };
struct DefaultModeBrems2WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.brems2_wert; } };
struct DefaultModeEnableHybridAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hybrid.enable; } };
struct DefaultModeHybridActivationLimitAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hybrid.activationLimit; } };
struct DefaultModeHybridDeactivationLimitAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hybrid.deactivationLimit; } };
// TempomatMode
struct TempomatModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.tempomatMode.modelMode; } };
// LarsmMode
struct LarsmModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.larsmMode.modelMode; } };
struct LarsmModeModeAccessor : public RefAccessorSaveSettings<LarsmModeMode> { LarsmModeMode &getRef() const override { return settings.larsmMode.mode; } };
struct LarsmModeIterationsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.larsmMode.iterations; } };
// MotortestMode
struct MotortestModeMultiplikatorAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.motortestMode.multiplikator; } };
struct MotortestMaxPwmAccessor : public RefAccessorSaveSettings<uint16_t> { uint16_t &getRef() const override { return settings.motortestMode.maxPwm; } };
// Ledstrip
#ifdef FEATURE_LEDSTRIP
struct EnableLedAnimationAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.enableLedAnimation; } };
struct EnableBrakeLightsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.enableBrakeLights; } };
struct LedsCountAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.ledsCount; } };
struct CenterOffsetAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.centerOffset; } };
struct SmallOffsetAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.smallOffset; } };
struct BigOffsetAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.bigOffset; } };
struct DeziampereAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.deziampere; } };
struct EnableBeepWhenBlinkAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.enableBeepWhenBlink; } };
struct EnableFullBlinkAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.enableFullBlink; } };
struct EnableLedstripStVOAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.enableStVO; } };
struct LedsStVOFrontOffsetAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.stvoFrontOffset; } };
struct LedsStVOFrontLengthAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.stvoFrontLength; } };
struct EnableLedstripStVOFrontlight : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.stvoFrontEnable; } };
struct AnimationMultiplierAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.ledstrip.animationMultiplier; } };
struct LedstripBrightnessAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.ledstrip.brightness; } };
struct LedstripEnableBlinkAnimationAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.ledstrip.enableAnimBlink; } };
#ifdef FEATURE_OTA
struct LedstripOtaAnimationAccessor : public RefAccessorSaveSettings<OtaAnimationModes> { OtaAnimationModes &getRef() const override { return settings.ledstrip.otaMode; } };
#endif
#endif
// Battery
struct BatterySeriesCellsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.battery.cellsSeries; } };
struct BatteryParallelCellsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.battery.cellsParallel; } };
struct BatteryWHperKMAccessor : public RefAccessorSaveSettings<uint16_t> { uint16_t &getRef() const override { return settings.battery.watthoursPerKilometer; } };
struct BatteryApplyCalibrationAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.battery.applyCalibration; } };
// Lockscreen
struct LockscreenAllowPresetSwitchAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.lockscreen.allowPresetSwitch; } };
template<uint8_t index>
struct LockscreenPinDigitAccessor : public RefAccessorSaveSettings<int8_t> { int8_t &getRef() const override { return settings.lockscreen.pin[index]; } };
struct LockscreenKeepLockedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.lockscreen.keepLockedAfterReboot; } };
// Handbremse
struct HandbremsEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.handbremse.enable; } };
struct HandbremsModeAccessor : public RefAccessorSaveSettings<HandbremseMode> { HandbremseMode &getRef() const override { return settings.handbremse.mode; } };
struct HandbremsTimeoutAccessor : public RefAccessorSaveSettings<uint16_t> { uint16_t &getRef() const override { return settings.handbremse.triggerTimeout; } };
struct HandbremsAutomaticAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.handbremse.automatic; } };
struct HandbremsVisualizeAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.handbremse.visualize; } };
// ESP Now
#ifdef FEATURE_ESPNOW
struct ESPNowSyncTimeEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.espnow.syncTime; } };
struct ESPNowSyncTimeWithOthersEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.espnow.syncTimeWithOthers; } };
struct ESPNowSyncBlinkEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.espnow.syncBlink; } };
#endif

View File

@ -0,0 +1 @@
#include "wifiaccessors.h"

View File

@ -0,0 +1,4 @@
#pragma once
// local includes
#include "accessorinterface.h"

View File

@ -0,0 +1,9 @@
#include "assertaction.h"
// system includes
#include <cassert>
void AssertAction::triggered()
{
assert(0);
}

View File

@ -0,0 +1,10 @@
#pragma once
// 3rdparty lib includes
#include "actioninterface.h"
class AssertAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};

View File

@ -0,0 +1,15 @@
#include "bluetoothbeginaction.h"
// local includes
#include "globals.h"
#ifdef FEATURE_BLUETOOTH
void BluetoothBeginAction::triggered()
{
if (!bluetoothSerial.begin(deviceName))
{
//Serial.println("Could not begin bluetooth");
// TODO: better error handling
}
}
#endif

View File

@ -0,0 +1,12 @@
#pragma once
// 3rdparty lib includes
#include <actioninterface.h>
#ifdef FEATURE_BLUETOOTH
class BluetoothBeginAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};
#endif

View File

@ -1,11 +1,12 @@
#pragma once
#include <HardwareSerial.h>
#include "actioninterface.h"
#include "globals.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BLUETOOTH
class BluetoothBeginMasterAction : public virtual ActionInterface
{
public:
@ -13,9 +14,10 @@ public:
{
if (!bluetoothSerial.begin(deviceName, true))
{
Serial.println("Could not begin bluetooth master");
//Serial.println("Could not begin bluetooth master");
// TODO: better error handling
}
}
};
#endif
}

View File

@ -1,12 +1,12 @@
#pragma once
#include <HardwareSerial.h>
#include "actioninterface.h"
#include "globals.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BMS
#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS)
class BluetoothConnectBmsAction : public virtual ActionInterface
{
public:
@ -15,7 +15,7 @@ public:
uint8_t remoteAddress[ESP_BD_ADDR_LEN] = {0xAA, 0xBB, 0xCC, 0xA1, 0x23, 0x45};
if (!bluetoothSerial.connect(remoteAddress))
{
Serial.println("Could not connect bluetooth to bms");
//Serial.println("Could not connect bluetooth to bms");
// TODO: better error handling
}
}

View File

@ -1,11 +1,12 @@
#pragma once
#include <HardwareSerial.h>
#include "actioninterface.h"
#include "globals.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BLUETOOTH
class BluetoothDisconnectAction : public virtual ActionInterface
{
public:
@ -13,9 +14,10 @@ public:
{
if (!bluetoothSerial.disconnect())
{
Serial.println("Could not disconnect bluetooth");
//Serial.println("Could not disconnect bluetooth");
// TODO: better error handling
}
}
};
#endif
}

View File

View File

@ -3,7 +3,10 @@
#include "actioninterface.h"
#include "globals.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BLUETOOTH
class BluetoothEndAction : public virtual ActionInterface
{
public:
@ -12,4 +15,5 @@ public:
bluetoothSerial.end();
}
};
#endif
}

View File

View File

@ -3,7 +3,10 @@
#include "actioninterface.h"
#include "globals.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BLUETOOTH
class BluetoothFlushAction : public virtual ActionInterface
{
public:
@ -12,4 +15,5 @@ public:
bluetoothSerial.flush();
}
};
#endif
}

View File

View File

@ -3,6 +3,8 @@
#include "actioninterface.h"
#include "bmsutils.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BMS
class BmsTurnOffChargeAction : public virtual ActionInterface
@ -12,7 +14,7 @@ public:
{
if (!bms::send6Bit(42405, 250, 0))
{
Serial.println("Could not turn off charge mosfet");
//Serial.println("Could not turn off charge mosfet");
// TODO: better error handling
}
}

View File

@ -3,6 +3,8 @@
#include "actioninterface.h"
#include "bmsutils.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BMS
class BmsTurnOffDischargeAction : public virtual ActionInterface
@ -12,7 +14,7 @@ public:
{
if (!bms::send6Bit(42405, 249, 0))
{
Serial.println("Could not turn off discharge mosfet");
//Serial.println("Could not turn off discharge mosfet");
// TODO: better error handling
}
}

View File

View File

@ -3,6 +3,8 @@
#include "actioninterface.h"
#include "bmsutils.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BMS
class BmsTurnOnChargeAction : public virtual ActionInterface
@ -12,7 +14,7 @@ public:
{
if (!bms::send6Bit(42405, 250, 1))
{
Serial.println("Could not turn on charge mosfet");
//Serial.println("Could not turn on charge mosfet");
// TODO: better error handling
}
}

View File

@ -3,6 +3,8 @@
#include "actioninterface.h"
#include "bmsutils.h"
using namespace espgui;
namespace {
#ifdef FEATURE_BMS
class BmsTurnOnDischargeAction : public virtual ActionInterface
@ -12,7 +14,7 @@ public:
{
if (!bms::send6Bit(42405, 249, 1))
{
Serial.println("Could not turn on discharge mosfet");
//Serial.println("Could not turn on discharge mosfet");
// TODO: better error handling
}
}

View File

@ -0,0 +1,12 @@
#include "dividebyzeroaction.h"
// esp-idf includes
#include <esp_log.h>
void DivideByZeroAction::triggered()
{
int i = 1;
i--;
int goodbye = 42 / i;
ESP_LOGW("BOBBY", "divide by zero %i", goodbye);
}

View File

@ -0,0 +1,10 @@
#pragma once
// 3rdparty lib includes
#include "actioninterface.h"
class DivideByZeroAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};

View File

View File

@ -0,0 +1,58 @@
#pragma once
// esp-idf includes
#include <esp_log.h>
// local includes
#include "actioninterface.h"
#include "globals.h"
#include "presets.h"
using namespace espgui;
namespace {
class EraseNvsAction : public virtual ActionInterface
{
public:
void triggered() override
{
const auto profile = settingsPersister.currentlyOpenProfileIndex();
if (!settingsPersister.erase())
{
ESP_LOGE("BOBBY", "erase() failed");
//return;
}
settings = presets::defaultSettings;
stringSettings = presets::makeDefaultStringSettings();
if (!settingsPersister.openCommon())
{
ESP_LOGE("BOBBY", "openCommon() failed");
//return;
}
if (profile)
{
if (!settingsPersister.openProfile(*profile))
{
ESP_LOGE("BOBBY", "openProfile(%hhu) failed", *profile);
//return;
}
}
if (!settingsPersister.load(settings))
{
ESP_LOGE("BOBBY", "load() for settings failed");
//return;
}
if (!settingsPersister.load(stringSettings))
{
ESP_LOGE("BOBBY", "load() for stringSettings failed");
//return;
}
}
};
}

View File

@ -0,0 +1,14 @@
#pragma once
#include "actioninterface.h"
#include "ledstrip.h"
// #include "ledstripdefines.h"
#ifdef FEATURE_LEDSTRIP
template<uint16_t type>
class LedStripSetAnimationAction : public virtual espgui::ActionInterface
{
public:
void triggered() override { animation_type = type; }
};
#endif

View File

@ -0,0 +1,42 @@
#include "ledstripblinkactions.h"
#ifdef FEATURE_LEDSTRIP
#include "ledstrip.h"
#include "ledstripdefines.h"
using namespace espgui;
void LedstripAnimationBlinkNoneAction::triggered()
{
blinkAnimation = LEDSTRIP_OVERWRITE_NONE;
}
#ifndef LEDSTRIP_WRONG_DIRECTION
void LedstripAnimationBlinkLeftAction::triggered()
{
blinkAnimation = LEDSTRIP_OVERWRITE_BLINKLEFT;
}
#else
void LedstripAnimationBlinkLeftAction::triggered()
{
blinkAnimation = LEDSTRIP_OVERWRITE_BLINKRIGHT;
}
#endif
#ifndef LEDSTRIP_WRONG_DIRECTION
void LedstripAnimationBlinkRightAction::triggered()
{
blinkAnimation = LEDSTRIP_OVERWRITE_BLINKRIGHT;
}
#else
void LedstripAnimationBlinkRightAction::triggered()
{
blinkAnimation = LEDSTRIP_OVERWRITE_BLINKLEFT;
}
#endif
void LedstripAnimationBlinkBothAction::triggered()
{
blinkAnimation = LEDSTRIP_OVERWRITE_BLINKBOTH;
}
#endif

View File

@ -0,0 +1,37 @@
#pragma once
#ifdef FEATURE_LEDSTRIP
#include "actioninterface.h"
class LedstripAnimationBlinkNoneAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};
class LedstripAnimationBlinkLeftAction : public virtual espgui::ActionInterface
{
public:
#ifndef LEDSTRIP_WRONG_DIRECTION
void triggered() override;
#else
void triggered() override;
#endif
};
class LedstripAnimationBlinkRightAction : public virtual espgui::ActionInterface
{
public:
#ifndef LEDSTRIP_WRONG_DIRECTION
void triggered() override;
#else
void triggered() override;
#endif
};
class LedstripAnimationBlinkBothAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};
#endif

View File

View File

@ -3,6 +3,8 @@
#include "actioninterface.h"
#include "utils.h"
using namespace espgui;
namespace {
class LoadSettingsAction : public virtual ActionInterface
{

View File

View File

@ -0,0 +1,45 @@
#pragma once
#include "actioninterface.h"
#include "globals.h"
#include "modes/defaultmode.h"
#include "modes/tempomatmode.h"
#include "modes/larsmmode.h"
#include "modes/gametrakmode.h"
#include "modes/motortestmode.h"
#include "displays/menus/defaultmodesettingsmenu.h"
#include "displays/menus/tempomatmodesettingsmenu.h"
#include "displays/menus/larsmmodesettingsmenu.h"
#include "displays/menus/gametrakmodesettingsmenu.h"
#include "displays/menus/motortestmodesettingsmenu.h"
#include "screenmanager.h"
using namespace espgui;
namespace {
class ModeSettingsAction : public virtual ActionInterface
{
public:
void triggered() override;
};
void ModeSettingsAction::triggered()
{
if (currentMode == &modes::defaultMode)
switchScreen<DefaultModeSettingsMenu>();
else if (currentMode == &modes::tempomatMode)
switchScreen<TempomatModeSettingsMenu>();
else if (currentMode == &modes::larsmMode)
switchScreen<LarsmModeSettingsMenu>();
else if (currentMode == &modes::motortestMode)
switchScreen<MotortestModeSettingsMenu>();
#ifdef FEATURE_GAMETRAK
else if (currentMode == &modes::gametrakMode)
switchScreen<GametrakModeSettingsMenu>();
#endif
else
{
//Serial.println("Unknown mode, cannot open settings for it");
}
}
}

View File

View File

@ -2,6 +2,8 @@
#include "actioninterface.h"
using namespace espgui;
namespace {
template<typename ...T>
class MultiAction;
@ -12,11 +14,8 @@ class MultiAction<T> : public virtual ActionInterface
public:
void triggered() override
{
m_action.triggered();
T{}.triggered();
}
private:
T m_action;
};
template<typename T, typename ...Tmore>
@ -25,11 +24,8 @@ class MultiAction<T, Tmore...> : public virtual MultiAction<Tmore...>
public:
void triggered() override
{
m_action.triggered();
T{}.triggered();
MultiAction<Tmore...>::triggered();
}
private:
T m_action;
};
}

23
main/actions/qraction.cpp Normal file
View File

@ -0,0 +1,23 @@
#include "qraction.h"
#include <actioninterface.h>
#include <string>
#include <screenmanager.h>
#include "displays/qrdisplay.h"
#include "displays/qrimportdisplay.h"
using namespace espgui;
SwitchQrDisplayAction::SwitchQrDisplayAction(qraction::QrMenu qrmenu) : m_msg{qrmenu.message}, m_ver{qrmenu.ver} {}
void SwitchQrDisplayAction::triggered()
{
switchScreen<QrDisplay>(m_msg, m_ver);
}
SwitchQrImportDisplayAction::SwitchQrImportDisplayAction(std::string nvskey) : m_nvskey{nvskey} {}
void SwitchQrImportDisplayAction::triggered()
{
switchScreen<QrImportDisplay>(m_nvskey);
}

35
main/actions/qraction.h Normal file
View File

@ -0,0 +1,35 @@
#pragma once
#include <actioninterface.h>
#include <string>
#include "actions/qraction.h"
namespace qraction {
struct QrMenu {
std::string message;
std::string text;
uint8_t ver;
};
} // namespace
class SwitchQrDisplayAction : public virtual espgui::ActionInterface
{
public:
SwitchQrDisplayAction(qraction::QrMenu qrmenu);
void triggered() override;
private:
std::string m_msg;
uint8_t m_ver;
};
class SwitchQrImportDisplayAction : public virtual espgui::ActionInterface
{
public:
SwitchQrImportDisplayAction(std::string nvskey);
void triggered() override;
private:
std::string m_nvskey;
};

View File

@ -0,0 +1,26 @@
#include "rebootaction.h"
// esp-idf includes
#include <esp_system.h>
// 3rdparty lib includes
#include <tftinstance.h>
// local includes
#include "globals.h"
#include "texts.h"
void RebootAction::triggered()
{
espgui::tft.fillScreen(TFT_BLACK);
espgui::tft.setTextColor(TFT_YELLOW);
espgui::tft.drawString(TEXT_REBOOT, 5, 5, 4);
espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE);
espgui::tft.setTextColor(TFT_WHITE);
espgui::tft.drawString("Rebooting now...", 0, 50, 4);
esp_restart();
}

View File

@ -0,0 +1,12 @@
#pragma once
// 3rdparty lib includes
#include "actioninterface.h"
using namespace espgui;
class RebootAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};

View File

View File

@ -3,6 +3,8 @@
#include "actioninterface.h"
#include "utils.h"
using namespace espgui;
namespace {
class SaveSettingsAction : public virtual ActionInterface
{

View File

View File

@ -0,0 +1,18 @@
#pragma once
#include "actioninterface.h"
#include "settingsutils.h"
using namespace espgui;
namespace {
template<uint8_t index>
class SwitchProfileAction : public virtual ActionInterface
{
public:
void triggered() override
{
settingsutils::switchProfile(index);
}
};
}

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