Commit graph

35 commits

Author SHA1 Message Date
MatthewColvin
29f58d406f use threads in wifi handler sim to simulate a bit of delay in the notifications like on hardware. 2023-10-18 19:09:09 -05:00
MatthewColvin
ae7bc0da54 added full ability to connect to wifi 2023-10-17 17:30:41 -05:00
MatthewColvin
efa2d4a137 Rework Mains so they are basically as identical as possible.
Create HardwareFactory which is responsible for providing the HardwareAbstract to any part of the program based on compiler defines
2023-10-15 08:24:29 -05:00
MatthewColvin
38ec26dce7 rework Notifications by adding handler class that can unregister when it falls out of scope.
rework wifi Interface around this new concept and patch up some old uses of notifications to follow new paradigm

compile out old UI code because notification refactor broke it.
2023-10-15 00:22:43 -05:00
Matthew Colvin
02b664b893 fix linux build breaks of sim build 2023-10-12 15:24:38 -05:00
MatthewColvin
ddbfc13e55 Update SDLDisplay so it finds the window based on events that way it works on windows and Ubuntu 2023-10-10 13:37:16 -05:00
MatthewColvin
94d75fa4d5 Make Key press sim use SDL event watcher for key event grabbing.
Create a mutex for UI that will help make it possible to run handlers that update UI elements on seprate threads.

its far from perfect but should hold up for now.
2023-10-02 20:41:42 -05:00
MatthewColvin
160114f54c move from constructing keypress abstract with handler into setting the handler so that it can be set by the UI. 2023-09-29 15:27:54 -05:00
MatthewColvin
414f711373 Add KeyPress Abstract and a KeyPress Simulator
as beginning stages for forwarding key events to the UI.
2023-09-29 11:52:48 -05:00
MatthewColvin
f5b7b7bc5f Merge remote-tracking branch 'upstream/abstraction' into UIRefactor 2023-09-17 19:45:03 -05:00
Paul Hortiatis
59897369ec
Fixing settings in the abstraction branch (#39)
* Fixing settings

* updating the simulator
2023-09-17 12:14:39 +02:00
Matthew Colvin
6a78c4cfa1
Refine and implement hardware interface (#37) 2023-09-14 06:34:04 +02:00
MatthewColvin
11d4e8d7e5 Merge remote-tracking branch 'upstream/abstraction' into RefineAndImplementHardwareInterface 2023-09-09 22:38:48 -04:00
Matthew Colvin
4a1eb8abfa Added ability for sim to simulate brightness and battery along with displaying it via the title. 2023-09-09 21:47:36 -04:00
Matthew Colvin
b45de68ebb Add get brightness to the displayAbstract to allow
removal of backlight brightness stored in OmoteUI class
"implement" new getter function in sim and esp32.
2023-09-09 21:47:36 -04:00
Matthew Colvin
23fedd8052 move construction of Hardware sim components
to member init list
2023-09-09 21:47:36 -04:00
Matthew Colvin
65162049b3 convert notification driven battery to lvgl timer based polling
using new poller class to simplify the battery interface and
downstream usages of battery.

tweaked poller destructor and remove the default constructor
in preference of using a unique pointer

convert simulator to use a std::thread for lvgl Tick api because
the SDL thread sleep was not true to time. (and is simplified the code...)
2023-09-09 21:47:36 -04:00
Thomas Bittner
47ccc214a0 Added new queues for inter task communication 2023-09-09 21:47:36 -04:00
Matthew Colvin
628ae37b9d add fake battery Drain to simulator
Fake drain of a period of 3 minuets
2023-09-09 21:47:04 -04:00
Matthew Colvin
92c559df5e rework battery Interface and downstream usages of battery 2023-09-09 21:47:04 -04:00
Thomas Bittner
43a930d7a8 Updated simulator to support new wifi selection UI 2023-09-09 21:47:04 -04:00
Thomas Bittner
53fa7b7c87 Added wifi UI and change debug print function
* HardwareAbstract debug print function now uses VA_LIST
* Added wifi handling UI
* Notification items currently part of hardware abstract
2023-09-09 21:47:04 -04:00
Matthew Colvin
7a9dc1d93d Implement Simulator Display Abstract without public function support. 2023-09-09 21:47:04 -04:00
Matthew Colvin
b182f0b75d move display abstract to first parameter of hardware
abstract and no longer provide a default for it.
2023-09-09 21:47:04 -04:00
Matthew Colvin
5731148bf6 Turn Display Interface into a singleton Abstract class that can do the registration of callbacks to LVGL and allow implementers of the abstract to support LVGL. 2023-09-09 21:47:04 -04:00
Matthew Colvin
a4e35a2219 remove IR and
mqtt functions from hardwareAbstraction
2023-09-09 21:44:47 -04:00
Matthew Colvin
a771c64c71 rename interface folder to HardwareInterfaces
rename HardwareInterface file to hardware
abstract.

update ini to reflect new file structure
2023-09-09 21:44:47 -04:00
Matthew Colvin
44b5d8cf14 rename HardwareInterface to HardwareAbstract in file 2023-09-09 21:44:47 -04:00
Matthew Colvin
85343d9bd4 Further update battery Interface and downstream code 2023-09-09 21:44:47 -04:00
Matthew Colvin
cd603a2a83 Update Battery Interface by adding it to hardwareInterface
Remove Display out of some classes and leave comments to replace for callbacks
I dont know about the function of this code but it compiles :)
2023-09-09 21:44:47 -04:00
Matthew Colvin
c4547917c8 Move Battery Status Struct to Battery Interface
Fix small compiler errors in new interfaces
2023-09-09 21:44:47 -04:00
Matthew Colvin
d2051daf8b ensure all targets build
remove unused assets.c
add new github actions that reflect new simulator
2023-09-09 21:44:46 -04:00
Matthew Colvin
4185ff3bb6 put init code into HardwareSimulator Class 2023-09-09 21:44:46 -04:00
Matthew Colvin
5b1228b167 Re work directory structure to support new architecture
Still need to get the Sim building
2023-09-09 21:44:46 -04:00
Matthew Colvin
7a9ee138db
Add platform io sim (#31)
* Lower default SPI Clock

Lowered the default SPI clock as some displays might show glitches with the SPI frequency set above 40MHz.

* Added missing library components

Added the missing library symbols, footprints and 3D-models. These are all in a project-specific library called "omoteLib" (#19)

* Implement MQTT publish in HardwareRevX

Change-Id: I7b6955a662716f83dd8daf34128a353efa26bf80

* add batteryStatus info and allow access to it through the interface.

Change-Id: Ieb748b1478d532f52ffff9edc783de3cbcf9f303

* rename hardwareAbstractionInterface

Change-Id: I39a9bcd7fc4d92b271a40a869faae7870d6d88a1

* rename HardwareAbstractionInterface files

Change-Id: Ifb6a96c38da61cb80aabc6c929e392a2fc91cf29

* fixed a typo

* Re work directory structure to support new architecture

Still need to get the Sim building

* lvgl simulator working.

* put init code into HardwareSimulator Class

* ensure all targets build
remove unused assets.c
add new github actions that reflect new simulator

* clean up build defines by using platform.ini to override default lv_config.
remove unneeded include directory.

Change-Id: Id63baa80dae89977d239a539b5db9ff67266e1d6

* Fix ESP32 Windows build after battling escape characters.
Add esp32 Windows target to Actions.

* Fixed screen height

- corrected the SCREEN_HEIGHT
- small graphical changes in OmoteUI to make it look like in the main branch

---------

Co-authored-by: Max <Max-MKA@web.de>
Co-authored-by: Matthew Colvin <Matthew.Colvin@garmin.com>
Co-authored-by: Matthew Colvin <35540398+Mc067415@users.noreply.github.com>
2023-08-12 00:16:48 +02:00