#! /usr/bin/env python3 def startup(device: str, force_restart: bool): ''' Start a LOFAR Tango device: pcc = startup(device = 'LTS/PCC/1', force_restart = False) ''' import tango proxy = tango.DeviceProxy(device) state = proxy.state() if force_restart is True: print("Forcing device {} restart.".format(device)) proxy.off() state = proxy.state() if state is not tango._tango.DevState.OFF: print("Device {} cannot perform off although restart has been enforced, state = {}. Please investigate.".format(device, state)) return proxy if state is not tango._tango.DevState.OFF: print("Device {} is not in OFF state, cannot start it. state = {}".format(device, state)) return proxy print("Device {} is in OFF, performing initialisation.".format(device)) proxy.initialise() state = proxy.state() if state is not tango._tango.DevState.STANDBY: print("Device {} cannot perform initialise, state = {}. Please investigate.".format(device, state)) return proxy print("Device {} is in STANDBY, performing on.".format(device)) proxy.on() state = proxy.state() if state is not tango._tango.DevState.ON: print("Device {} cannot perform on, state = {}. Please investigate.".format(device, state)) else: print("Device {} has successfully reached ON state.".format(device)) return proxy