How does the Simulator work?

Hi guys, I would like to check how the simulator works. which source files should I read first to understand how its being called and updating the values on the xod-client. Im still a little clueless since the repository has a lot of different modules.

Hello! The simulator works as follows:

  • The program is transpiled to C++ (the xod-arduino package)
  • The resulting code is sent to the XOD cloud compiler service (xod-cloud-compile)
  • The service compiles it using Emscripten and sends WASM-binary back
  • The binary is being run in a sandbox (xod-client-electron)
  • The binary sends debug protocol lines as any physical Arduino would
  • XOD IDE parses the messages (xod-client) and reacts accordingly