Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.
Tim Laverty edited this page Aug 17, 2017 · 13 revisions

This service allows management of a pool of simulated devices. The primarily objective is to allow testing the end-to-end flow of device-to-cloud (D2C) telemetry and invoking cloud-to-device (C2D) methods.

The microservice provides a RESTful endpoint to create a simulation (only one), start, and stop a simulation containing multiple devices. Each simulation is composed of a set of virtual devices of different types. The devices are registered with an IoTHub, send telemetry, and receive commands.

Features:

  1. Get list of device types that can be simulated
  2. Create a simulation for a set of customized device types
  3. Create a "seed" or "default" simulation with 2 devices per type
  4. Only one simulation per deployment can be created
  5. Simulations start immediately, unless specified differently
  6. Get details of the running simulation
  7. Stop existing simulation
  8. Start existing simulation
  9. Invoke methods on the devices
  10. Stateful devices, i.e. devices can simulate long-running flows, state machines, etc.

Components

  1. Web service: API for the UI to retrieve information and start/stop
  2. Storage: simulation details, and status of the simulation On/Off
  3. Simulation actors: background processes sending events

Dependencies

  1. IoT Hub Manager, used to manage devices a. Requires an Azure IotHub.
  2. Storage, used to store the simulation status a. Requires a DocDb instance.