from ..core.SyslabUnit import SyslabUnit class DieselGenerator(SyslabUnit): """The DieselGenerator class represents a photovoltaic panel array in SYSLAB. The DieselGenerator class is instantiated using a string with the unique name of the dumpload, ie. 'which' A full list of available panel arrays can be found by calling 'DieselGenerator.getAvailableDieselGenerator()' Alternatively, the user may specify a host and port to connect to via the *host* and *port* arguments. """ __UNITS = { 'diesel319': ('syslab-02.syslab.dk', '8080', 'genset1'), } def __init__(self, which=None, host=None, port=None, unitname=None): baseurl = 'http://{host}:{port}/typebased_WebService_Diesel/DEIFDieselGensetWebService/{unit_name}/' super().__init__( baseurl=baseurl, which=which, units=self.__UNITS, host=host, port=port, unit_name=unitname, unit_type="DieselGenerator") def getRatedP(self): return self._request_resource('getRatedP') def getRatedQ(self): return self._request_resource('getRatedQ') def getRatedS(self): return self._request_resource('getRatedS') def getRatedU(self): return self._request_resource('getRatedU') def getRatedf(self): return self._request_resource('getRatedf') def isGeneratorBreakerClosed(self): return self._request_resource('isGeneratorBreakerClosed') def isGensetRunning(self): return self._request_resource('isGensetRunning') def isGensetSynchronized(self): return self._request_resource('isGensetSynchronized') def isSynchronising(self): return self._request_resource('isSynchronising') def closeGB(self): return self._request_resource('closeGB', method='put') def openGB(self): return self._request_resource('openGB', method='put') def startGenset(self): return self._request_resource('startGenset', method='put') def stopGenset(self): return self._request_resource('stopGenset', method='put') def setTargetActivePower(self, setpoint): return self._request_resource('setTargetActivePower', setpoint, 'put') def setTargetReactivePower(self, setpoint): return self._request_resource('setTargetReactivePower', setpoint, 'put') def getActivePower(self): return self._request_resource('getActivePower') def getReactivePower(self): return self._request_resource('getReactivePower') #TODO: Implement def getCurrentGensetMode(self): pass #TODO: Implement def getCurrentRunningMode(self): pass #TODO: Implement def setGensetMode(self, mode): pass #TODO: Implement def setRunningMode(self, mode): pass @staticmethod def getAvailableDieselGenerators(): return list(DieselGenerator.__UNITS.keys())