Consistent communication config
Hi @all,
Today, each controller in bliss defines its own way to specify identical static config communication channel. Examples:
TCP channel
Icepap uses host key:
class: IcepPAP
host: icebcu2
Wago uses controller_ip key:
plugin: wago
controller_ip: 160.103.51.20
Serial line
Oxford cryostream uses SLdevice key:
class: oxford700
SLdevice: "rfc2217://lid30b2:28003"
PI_C663 uses serial_line key:
class: PI_C663
serial_line: /dev/tty
MUSST uses serial_url key:
class: musst
serial_url: /dev/tty
GPIB channel
MUSST uses gpib_ key(s):
class: musst
gpib_url: enet://gpibid155.esrf.fr
gpib_pad: 12
gpib_timeout: 3.
ls335 uses gpib_controller_host and gpib_address keys:
class: ls335
gpib_controller_host: prologix1.esrf.fr
gpib_address: 15
Proposal
I would like to propose a solution to make configuration more consistent. Benefits:
- Easy to remember channel configuration
- Easier to write config UI (a sort of template can be used by each plugin to define UI for communication channel)
- Ability to share the same communication channel between different controllers (useful for devices with limited connections: Wago or PI)
TCP
# host[:port] port could be optional/ignored if the controller has a default/static value
tcp:
url: icebcu2:5000
serial
serial:
url: /dev/tty
# following could be optional/ignored if the controller has a default/static value
baudrate: 9600
bytesize: 7
timeout: 1
stopbits: 0
eol: "\n"
GPIB
gpib:
url: enet://gpibid31eh
pad: 12
# following could be optional/ignored if the controller has a default/static value
sad: 0
tmo: 13
timeout: 1.0
eot: 1
eos: "\n"
Reference variation
This will allow different controllers to share the same connection. Specially useful for Wago or PI which have limited amount of simultaneous connections
channels:
- tcp:
name: wago1ch
url: 160.103.51.20
controllers:
- class: Transfocator
tcp: $wago1ch
- class: BPM
tcp: $wago1ch
I really appreciate your feedback. This will introduce an incompatibility but if we think it is interesting I think it should be done soon to minimize damage.