| .. _target-host-device-simulator: |
| |
| ===================== |
| Host Device Simulator |
| ===================== |
| This Pigweed target simulates the behavior of an embedded device, spawning |
| threads for facilities like RPC and logging. Executables build by this target |
| will perpetually run until they crash or are explicitly terminated. All |
| communications with the process are over the RPC server hosted on a local |
| socket rather than by directly interacting with the terminal via standard I/O. |
| |
| ----- |
| Setup |
| ----- |
| To use this target, Pigweed must be set up to use nanopb. The required source |
| repository can be downloaded via ``pw package``, and then the build must be |
| manually configured to point to the location the repository was downloaded to. |
| |
| .. code:: sh |
| |
| pw package install nanopb |
| |
| gn args out |
| # Add this line, replacing ${PW_ROOT} with the path to the location that |
| # Pigweed is checked out at. |
| dir_pw_third_party_nanopb = "${PW_ROOT}/.environment/packages/nanopb" |
| |
| ----------------------------- |
| Building and running the demo |
| ----------------------------- |
| This target has an associated demo application that can be built and then |
| run with the following commands: |
| |
| .. code:: sh |
| |
| ninja -C out pw_system_demo |
| |
| ./out/host_device_simulator.speed_optimized/obj/pw_system/bin/system_example |
| |
| To communicate with the launched process, use |
| ``pw-system-console -s localhost:33000 --proto-globs pw_rpc/echo.proto``. |