# MultiDeviceCalibrationControl

The `MultiDeviceCalibrationControl` message is the control interface of the
[MultiDeviceCalibration](https://docs.luxonis.com/software-v3/depthai/depthai-components/host_nodes/multi_device_calibration.md)
node. The node is one-shot, so the message only carries lifecycle commands; the configuration (cameras, sample count, scale
constraints, initial guesses) belongs to the node and is set before the run starts.

| Command | Effect |
| --- | --- |
| `start()` | Begin a run. Ignored unless the node is idle. |
| `stop()` | Abort a run in progress. The node emits a result with `passed == False` and `info == "stopped"` and returns to idle.
|
| `reset()` | Clear a finished or aborted run and return to idle, so the configuration can change and `start()` can be sent again.
|

```python
controlQueue = calibration.inputControl.createInputQueue()
controlQueue.send(dai.beta.MultiDeviceCalibrationControl.start())
```

The static helpers wrap the equivalent constructor form, for example
`dai.beta.MultiDeviceCalibrationControl(dai.beta.MultiDeviceCalibrationControl.Commands.Start())`.

> **Beta API**
> Part of the [Beta](https://docs.luxonis.com/software-v3/depthai/examples/beta-features.md) multi-device calibration API added in DepthAI v3.11.0.

## Examples of functionality

 * [Multi-device calibration
   example](https://github.com/luxonis/depthai-core/blob/main/examples/python/MultiDeviceCalibration/multi_device_calibration.py)

## Reference

### dai::beta::MultiDeviceCalibrationControl

Kind: class

One-shot lifecycle commands for the MultiDeviceCalibration node.

Configuration belongs to the node and must be set before start. The control message intentionally contains no performance or
device-mutation commands.

#### dai::beta::MultiDeviceCalibrationControl::Commands

Kind: struct

##### dai::beta::MultiDeviceCalibrationControl::Commands::Reset

Kind: struct

##### dai::beta::MultiDeviceCalibrationControl::Commands::Start

Kind: struct

##### dai::beta::MultiDeviceCalibrationControl::Commands::Stop

Kind: struct

#### std::variant< std::monostate, Commands::Start , Commands::Stop , Commands::Reset > Command

Kind: typedef

#### Command command

Kind: variable

#### MultiDeviceCalibrationControl()

Kind: function

#### MultiDeviceCalibrationControl(Command command)

Kind: function

#### ~MultiDeviceCalibrationControl()

Kind: function

#### void serialize(std::vector< std::uint8_t > & metadata, DatatypeEnum & datatype)

Kind: function

#### DatatypeEnum getDatatype()

Kind: function

Get the datatype of this specific message.

return: DatatypeEnum

### Need assistance?

Head over to [Discussion Forum](https://discuss.luxonis.com/) for technical support or any other questions you might have.
