Skip to content
Snippets Groups Projects
startup.py 1.42 KiB
Newer Older
#! /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))
Taya Snijder's avatar
Taya Snijder committed
        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))
Taya Snijder's avatar
Taya Snijder committed
    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))
Taya Snijder's avatar
Taya Snijder committed
    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