Boot

The boot == DeviceProxy("STAT/Boot/1") device is responsible for (re)starting and initialising the other devices. Devices which are not reachable, for example because their docker container is explicitly stopped, are skipped during initialisation. This device provides the following commands:

boot()

Stop and start the other devices in the correct order, set their default values, and command them to initialise their hardware. This procedure runs asynchronously, causing this command to return immediately. Initialisation is aborted if an error is encountered.

returns

None

resume()

Resume an earlier boot attempt: start initialising devices from the first one that failed to initialise, instead of from scratch.

returns

None

The initialisation process can subsequently be followed through monitoring the following attributes:

booting_R

Whether the initialisation procedure is still ongoing.

type

bool

progress_R

Percentage completeness of the initialisation procedure. Each succesfully configured device increments progress.

type

int

status_R

A description of what the device is currently trying to do. If an error occurs, this will hint towards the cause.

type

str

initialised_devices_R

Which devices were initialised succesfully.

type

str[]

uninitialised_devices_R

Which devices have not yet been initialised, or failed to initialiase.

type

str[]

A useful pattern is thus to call boot(), wait for booting_R == False, and then check whether the initalisation was succesful, if progress_R == 100. If a device fails to initialise, most likely the Logs will need to be consulted.