CommandLineDevice

The command to execute is provided as the Tango device property Template, in the format of a Python template string. That is, $ marks variables. e.g.

./lfaa_sim -h $header_file -d $data_file -a $dest_ip -p $dest_port -r $repeats

Variables will be exposed as Tango attributes for clients to control.

Tango devices servers can be used without a Tango database, if desired, by providing configuration in a text file (an example emulator.txt is provided).

To launch without a Tango database, use a command like the below. Note that port number 8765 is only an example, an unused port number must be provided.

python3 CommandLineDevice.py emulator -file=emulator.txt -ORBendPoint giop:tcp::8765

A Python Tango client can then control the command-line program, e.g.:

import tango
emulator = tango.DeviceProxy("tango://localhost:8765/low-cbf/test/emulator#dbase=no")
print(emulator.args)
emulator.header_file = "./header.raw"
emulator.data_file = "./data.raw"
emulator.dest_ip = "10.11.12.13"
emulator.dest_port = "1234"
emulator.repeats = "1"
emulator.execute()

Execution is performed as a background task. Active PIDs are available via the pids attribute.