Remove the custom MotorController class and use the upstream
MotorController instead.
To enable this move add custom code in nrf_gpio to handle the Motor pin
instead of the custom motor_is_running member variable.
Also implement the repeating app_timer type used in the upstream
MotorController.
The external SPI flash is implemented as a 4MB on the local filesystem.
This allows the FS (littleFS) and settings to work properly.
Remove the simulated `FS.h` and `FS.cpp`, because we can now use
the files from InfiniTime directly as the heavy lifting is done in the simulated
`SpiNorFlash.h` and cpp files.
`SpiNorFlash.h` provides read and write functions with `uint8_t` buffer, but
`fs::fstream` expects `char` buffer. Use `reinterpret_cast` and check if by
any chance the `char` type on a platform is implemented with more
than one byte. Then the `reinterpret_cast<char *>(buffer)` would change the
meaning of the `size` parameter, which could lead to garbage data.
Co-authored-by: Reinhold Gschweicher <pyro4hell@gmail.com>
https://github.com/InfiniTimeOrg/InfiniTime/pull/1136 adds a new folder `widgets`
for source files.If it gets merged, this folder needs to be added to the build.
Add the source files to InfiniSim if the new folder exists
Since https://github.com/InfiniTimeOrg/InfiniTime/pull/1097 the fonts
are generated. Support this new way of using fonts.
When InfiniTime isn't a subdirectory of InfiniSim we need to provide
the binary dir when using `add_subdirectory()`. Use `fonts`.
Update README with instructions to install `lv_font_conv`.
The lv_drivers provided monitor driver supports a `MONITOR_ZOOM`-factor
which scales the window by the set factor. This is 'useful when
simulating small screens'.
The zoom can be set as cmake configuration setting `-DMONITOR_ZOOM=1`.
Probably even more usefull for high-dpi screens where 240 pixels is
really tiny.
To make the simulator work without modification for more PRs use the
original `lv_conf.h` file and modify the needed parts for the simulator.
Furthermore use globbing expressions to add all available fonts and
icons in case a PR adds new fonts or icons.
When pressing `i` create a screenshot of the current InfiniTime screen
by dumping it to a timestamped png or bmp file like
`InfiniSim_2022-03-08_203421.png`.
Add a new configure option `WITH_PNG` with default `ON`. When switched
to `OFF` the screenshots will be created in `bmp` format.
Fixes: https://github.com/InfiniTimeOrg/InfiniSim/issues/5
With the old default of just "InfiniTime" you have to have the working
directory in the `InfiniSim` directory. The new default makes the
default independent of the current working directory.