Go to file
2022-03-30 22:13:58 +02:00
.github/workflows Initial InfiniSim project 2022-02-17 22:57:08 +01:00
cmake Initial InfiniSim project 2022-02-17 22:57:08 +01:00
InfiniTime@8f436e1d74 Update InfiniTime submodule to current develop 2022-03-29 22:57:50 +02:00
libpng@a37d483651 main: implement saveScreenshot() writing bmp/png from SDL window buffer 2022-03-08 21:39:16 +01:00
lv_drivers@8c96359f41 Initial InfiniSim project 2022-02-17 22:57:08 +01:00
sim Cst816s: scale down SDL mouse coordinates according to MONITOR_ZOOM 2022-03-30 20:51:41 +02:00
.gitignore init 2022-02-16 21:19:37 +01:00
.gitmodules Use relative path for libpng submodule, don't force ssh/http 2022-03-08 21:48:55 +01:00
CMakeLists.txt Cst816s: scale down SDL mouse coordinates according to MONITOR_ZOOM 2022-03-30 20:51:41 +02:00
LICENSE Initial InfiniSim project 2022-02-17 22:57:08 +01:00
lv_drv_conf.h fix compile error by removing static_assert 2022-03-30 22:13:58 +02:00
main.cpp main: implement saveScreenshot() writing bmp/png from SDL window buffer 2022-03-08 21:39:16 +01:00
README.md Cst816s: scale down SDL mouse coordinates according to MONITOR_ZOOM 2022-03-30 20:51:41 +02:00

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++)

On Ubuntu/Debian install the following packages:

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

On Arch Linux the following packages are needed:

sudo pacman -S cmake sdl2 gcc

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 all notifications
  • 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.