Go to file
Reinhold Gschweicher 068c5a823e main: Fix 'N' clear new notification flag documentation
The documentation for the 'N' key wrongly stated it clears all
notifications. But in the code we see that just the new notification
flag is reset.
2022-05-16 23:45:34 +07:00
.github/workflows Initial InfiniSim project 2022-02-17 22:57:08 +07:00
InfiniTime@443408312a Update submodule with fonts target fix 2022-05-16 19:27:37 +07:00
cmake Initial InfiniSim project 2022-02-17 22:57:08 +07:00
libpng@a37d483651 main: implement saveScreenshot() writing bmp/png from SDL window buffer 2022-03-08 21:39:16 +07:00
lv_drivers@8c96359f41 Initial InfiniSim project 2022-02-17 22:57:08 +07:00
sim SpiNorFlash: check Read/Write for out of bounds 2022-05-15 22:47:41 +07:00
.gitignore init 2022-02-16 21:19:37 +07:00
.gitmodules Use relative path for libpng submodule, don't force ssh/http 2022-03-08 21:48:55 +07:00
CMakeLists.txt Add support for SpiNorFlash and FS (#30) 2022-05-15 22:15:19 +07:00
LICENSE Initial InfiniSim project 2022-02-17 22:57:08 +07:00
README.md main: Fix 'N' clear new notification flag documentation 2022-05-16 23:45:34 +07:00
lv_drv_conf.h fix compile error by removing static_assert 2022-03-30 22:13:58 +07:00
main.cpp main: Fix 'N' clear new notification flag documentation 2022-05-16 23:45:34 +07:00

README.md

InfiniSim

Build InfiniSim LVGL Simulator

Simulator for InfiniTime project.

Experience the InfiniTime user interface directly on your PC, to shorten the time until you get your hands on a real PineTime smartwatch. Or use it to develop new Watchfaces, new Screens, or quickly iterate on the user interface.

For a history on how this simulator started and the challenges on its way visit the original PR.

Build dependencies

  • CMake
  • SDL2 (provides the simulator window, handles mouse and keyboard input)
  • Compiler (g++ or clang++)
  • lv_font_conv (for font.c generation since InfiniTime#1097)

On Ubuntu/Debian install the following packages:

sudo apt install -y cmake libsdl2-dev g++ npm

On Arch Linux the following packages are needed:

sudo pacman -S cmake sdl2 gcc npm

On Fedora the following packages are needed:

sudo dnf install cmake SDL2-devel gcc

Then install the lv_font_conv executable to the source directory (will be installed at node_modules/.bin/lv_font_conv)

npm install lv_font_conv@1.5.2

Get the Sources

Clone this repository and tell git to recursively download the submodules as well

git clone --recursive https://github.com/InfiniTimeOrg/InfiniSim.git

If you've already cloned the repository without the submodules (or you want to update them to the latest checked in version) run the following command:

git submodule update --init --recursive

Configure and Build

In the most basic configuration tell cmake to configure the project and build it with the following two commands:

cmake -S . -B build
cmake --build build -j4

The following configuration settings can be added to the first cmake -S . -B build call

  • -DInfiniTime_DIR=InfiniTime: a full path to an existing InfiniTime repository checked out. Inside that directory the src/libs/lvgl submodule must be checked out as well. The default value points to the InfiniTime submodule in this repository.
  • -DMONITOR_ZOOM=1: scale simulator window by this factor

Run Simulator

When the build was successful the simulator binary can be started with

./build/infinisim

Running Simulator

To hide the second simulator-status-window start the binary with the --hide-status option

./build/infinisim --hide-status
  • Left mouse button: simulates your finger, just click to tap, click and drag to swipe
  • Right mouse button: simulates the hardware button (for example turn the screen off or on again)

Using the keyboard the following events can be triggered:

  • r ... enable ringing
  • R ... disable ringing
  • m ... let motor run for 100 ms
  • M ... let motor run for 255 ms
  • n ... send notification
  • N ... clear new notification flag
  • b ... connect Bluetooth
  • B ... disconnect Bluetooth
  • v ... increase battery voltage and percentage
  • V ... decrease battery voltage and percentage
  • c ... charging,
  • C ... not charging
  • l ... increase brightness level
  • L ... lower brightness level
  • p ... enable print lvgl memory usage to terminal
  • P ... disable print memory usage
  • s ... increase step count by 500 steps
  • S ... decrease step count by 500 steps
  • h ... set heartrate running, and on further presses increase by 10 bpm
  • H ... stop heartrate
  • i ... take screenshot

Licenses

This project is released under the GNU General Public License version 3 or, at your option, any later version. The same license as InfiniTime.

The simulator is based on lv_sim_eclipse_sdl project under the MIT license.