Environment

In Renode, an Environment is an abstract medium that represents a space with physical properties. It allows you to group and manage sensors that should observe the same environmental conditions.

Creating an environment

To create an environment called env, execute:

(monitor) emulation CreateEnvironment "env"

You can create multiple environments as needed. Currently, environments support two parameters: temperature and pressure.

You can set the temperature in the environment, by calling:

(monitor) env Temperature 36.6

To check the current setting:

(monitor) env Temperature
36.6

Adding sensors to an environment

There are two ways of adding sensors to an environment:

  • add a single sensor from a machine,
  • add a machine to an environment.

You have to be in a machine context to be able to execute the following commands.

Add a single sensor

To add the temperatureSensor peripheral, connected via the i2c bus, run:

(machine-0) sysbus.i2c.temperatureSensor SetEnvironment env

Only the specified sensor will be added to the env environment and will observe the temperature value of that environment.

Add a machine

To add the current machine to the environment, run:

(machine-0) machine SetEnvironment env

This command will connect the machine and all of its sensors to the environment env. They will have the same temperature value as the environment.

Note

When connecting a machine to an environment, all its sensors that were previously connected to other environments will be reconnected as well.

Sensors added to an environment will be updated every time the environment changes, however you can still set your own value on a specific sensor, and it will not be propagated to other sensors (until a change in the environment overrides this).

Accessing the readings of a sensor

To check the reading of a sensor, execute:

(machine-0) sysbus.i2c.temperatureSensor Temperature
36.60

To change the reading of a sensor, execute:

(machine-0) sysbus.i2c.temperatureSensor Temperature 37