iblrig.net
Network communication between rigs.
An example of a remote_rigs.yaml file:
`yaml
neuropixel: '12.134.270.1'
'cameras:left': 'tcp://0.123.456.7:9998'
'cameras:right': 'tcp://0.123.456.6:9998'
tasks: 'udp://123.654.8.8'
`
Examples
Send a standard message (e.g. start) to all rigs and await their responses:
>>> responses = await services.start(exp_ref)
Send a standard message to all rigs without awaiting responses:
>>> for service in services.values():
... await service.init()
Send exp info message to all rigs and await their responses:
>>> responses = await self.services._signal(ExpMessage.EXPINFO, 'confirmed_send', [ExpMessage.EXPINFO, ...])
Send exp info message to all rigs without awaiting responses:
>>> for service in services.values():
... await service.confirmed_send([ExpMessage.EXPINFO, ...])
Request status from a single service (await echo):
>>> await services['cameras'].confirmed_send([ExpMessage.EXPSTATUS])
Send message to a single service without awaiting echo: NB: use with causion: can cause infinite loops if both not correctly configured
>>> services['cameras'].send([ExpMessage.EXPSTATUS])
Functions
Log warning if URI in remote devices is wrong. |
|
Return map of device name to network URI. |
|
Return the location of the remote devices YAML file. |
|
Save Alyx token sent from remote device. |
|
Asynchronously reads lines from standard input. |
|
Callback to update instance with Alyx token. |
Classes
A standard experiment information structure. |