145 lines
5.5 KiB
Python
145 lines
5.5 KiB
Python
from ..core.SyslabUnit import SyslabUnit
|
|
|
|
|
|
class SwitchBoard(SyslabUnit):
|
|
"""
|
|
The SwitchBoard class represents a SwitchBoard in SYSLAB.
|
|
The SwitchBoard class is instantiated using a string with the unique name of the switchboard, ie. 'which'
|
|
|
|
A full list of available switchboards can be found by calling 'SwitchBoard.getAvailableSwitchBoards()'
|
|
|
|
Alternatively, the user may specify a host and port to connect to via the *host* and *port* arguments.
|
|
"""
|
|
|
|
__SWITCH_BOARDS = {
|
|
'319-2':('syslab-01.syslab.dk', '8080', '319-2'),
|
|
'319-3':('syslab-52.syslab.dk', '8080', '319-3'),
|
|
'117-2':('syslab-11.syslab.dk', '8080', '117-2'),
|
|
'117-4':('syslab-11.syslab.dk', '8080', '117-4'),
|
|
'117-5':('syslab-11.syslab.dk', '8080', '117-5'),
|
|
'117-6':('syslab-26.syslab.dk', '8080', '117-6'),
|
|
'715-2':('syslab-09.syslab.dk', '8080', '715-2'),
|
|
'716-2':('syslab-29.syslab.dk', '8080', '716-2'),
|
|
'simlab-00': ('192.168.0.1', '8080', '319-2'),
|
|
'simlab-10': ('192.168.0.2', '8080', '319-2'),
|
|
'simlab-20': ('192.168.0.3', '8080', '319-2'),
|
|
'vswitchboard': ('simlab-01', '8080', '319-2')
|
|
}
|
|
|
|
def __init__(self, which=None, host=None, port=None, unitname=None):
|
|
|
|
baseurl = 'http://{host}:{port}/typebased_WebService_Substation/StandardSubstationWebService/{unit_name}/'
|
|
super().__init__(
|
|
baseurl=baseurl,
|
|
which=which,
|
|
units=self.__SWITCH_BOARDS,
|
|
host=host,
|
|
port=port,
|
|
unit_name=unitname,
|
|
unit_type="SwitchBoard")
|
|
|
|
def getName(self):
|
|
return self._request_resource('getSwitchboardName')
|
|
|
|
def getActivePower(self, instrName):
|
|
return self._request_resource('getActivePower', instrName)
|
|
|
|
def getPhaseActivePower(self, instrName):
|
|
return self._request_resource('getPhaseActivePower', instrName)
|
|
|
|
def getReactivePower(self, instrName):
|
|
return self._request_resource('getReactivePower', instrName)
|
|
|
|
def getPhaseReactivePower(self, instrName):
|
|
return self._request_resource('getPhaseReactivePower', instrName)
|
|
|
|
def getApparentPower(self, instrName):
|
|
return self._request_resource('getApparentPower', instrName)
|
|
|
|
def getPhaseApparentPower(self, instrName):
|
|
return self._request_resource('getPhaseApparentPower', instrName)
|
|
|
|
def getPowerFactor(self, instrName):
|
|
return self._request_resource('getPowerFactor', instrName)
|
|
|
|
def getPhasePowerFactor(self, instrName):
|
|
return self._request_resource('getPhasePowerFactor', instrName)
|
|
|
|
def getActiveEnergyExport(self, instrName):
|
|
return self._request_resource('getActiveEnergyExport', instrName)
|
|
|
|
def getActiveEnergyImport(self, instrName):
|
|
return self._request_resource('getActiveEnergyImport', instrName)
|
|
|
|
def getReactiveEnergyExport(self, instrName):
|
|
return self._request_resource('getReactiveEnergyExport', instrName)
|
|
|
|
def getReactiveEnergyImport(self, instrName):
|
|
return self._request_resource('getReactiveEnergyImport', instrName)
|
|
|
|
def isAuthenticated(self):
|
|
return self._request_resource('isAuthenticated')
|
|
|
|
def getBreakerState(self, breakerName):
|
|
return self._request_resource('getBreakerState', breakerName)
|
|
|
|
def getFrequency(self, instrName):
|
|
return self._request_resource('getFrequency', instrName)
|
|
|
|
def getBayNames(self):
|
|
return self._request_resource('getBayNames')
|
|
|
|
def getBreakerName(self, busbarName, bayName):
|
|
return self._request_resource('getBreakerName', (busbarName, bayName))
|
|
|
|
def getInstrumentNames(self, bayName):
|
|
return self._request_resource('getInstrumentNamesPerBay', bayName)
|
|
|
|
def getBusbarNames(self):
|
|
return self._request_resource('getBusbarNames')
|
|
|
|
def getInterphaseVoltage(self, instrName):
|
|
return self._request_resource('getInterphaseVoltage', instrName)
|
|
|
|
def getInterphaseVoltages(self, instrName):
|
|
return self._request_resource('getInterphaseVoltages', instrName)
|
|
|
|
def getPhaseVoltage(self, instrName):
|
|
return self._request_resource('getPhaseVoltage', instrName)
|
|
|
|
def getPhaseVoltages(self, instrName):
|
|
return self._request_resource('getPhaseVoltages', instrName)
|
|
|
|
def getVoltageImbalance(self, instrName):
|
|
return self._request_resource('getVoltageImbalance', instrName)
|
|
|
|
def getPhaseCurrent(self, instrName):
|
|
return self._request_resource('getPhaseCurrent', instrName)
|
|
|
|
def getNeutralCurrent(self, instrName):
|
|
return self._request_resource('getNeutralCurrent', instrName)
|
|
|
|
def getPhaseCurrents(self, instrName):
|
|
return self._request_resource('getPhaseCurrents', instrName)
|
|
|
|
def getCurrentImbalance(self, instrName):
|
|
return self._request_resource('getCurrentImbalance', instrName)
|
|
|
|
def authenticate(self, user, password):
|
|
return self._request_resource('authenticate', (user, password), 'put')
|
|
|
|
def logout(self):
|
|
return self._request_resource('logout', (), 'put')
|
|
|
|
def closeBreaker(self, breakerName):
|
|
return self._request_resource('closeBreaker', breakerName, 'put')
|
|
|
|
def openBreaker(self, breakerName):
|
|
return self._request_resource('openBreaker', (breakerName), 'put')
|
|
|
|
@staticmethod
|
|
def getAvailableSwitchBoards():
|
|
return list(SwitchBoard.__SWITCH_BOARDS.keys())
|
|
|
|
|