Loading Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py +1 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ class CommandLine: print msg self.sock=None def __del__(self): pass Loading Loading @@ -180,7 +179,7 @@ class CommandLine: def close(self): self.sock.disconnect() self.sock.close() def query(self,cmd): try: Loading Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py +30 −9 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ from Acspy.Common.TimeHelper import getTimeStamp from maciErrType import CannotGetComponentEx from ACSErrTypeCommonImpl import CORBAProblemExImpl from LocalOscillatorImpl.devios import amplitudeDevIO,frequencyDevIO,isLockedDevIO import Acspy.Util.ACSCorba import Receivers import ComponentErrorsImpl Loading @@ -69,7 +70,7 @@ import ComponentErrors from LocalOscillatorImpl import CommandLine from IRAPy import logger IP, PORT = "192.168.200.149", 5025 #real hw #IP, PORT = "192.168.201.149", 5025 #real hw class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, ContainerServices, ComponentLifecycle): Loading @@ -80,19 +81,32 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C self.cl=CommandLine.CommandLine() self.freq=0. self.power=0. # # ___oOo___ def cleanUp(self): pass self.cl.close() def initialize(self): self.cl.configure(IP,PORT) name= self.getName() dal = Acspy.Util.ACSCorba.cdb() dao=dal.get_DAO_Servant("alma/"+name) IP= dao.get_string("IP") PORT = int(dao.get_double("PORT")) msg = self.cl.configure(IP,PORT) if msg != 'OK' : reason = "cannot get Synthetizer IP %s component: %s" %(IP,msg) logger.logError(reason) exc = ComponentErrorsImpl.SocketErrorExImpl() exc.setData('reason',msg) raise exc.getComponentErrorsEx() addProperty(self, 'frequency', devio_ref=frequencyDevIO(self.cl)) addProperty(self, 'amplitude', devio_ref=amplitudeDevIO(self.cl)) addProperty(self, 'isLocked', devio_ref=isLockedDevIO(self.cl)) addProperty(self, 'isLocked', devio_ref=isLockedDevIO(self,self.cl)) self.cl.configure(IP,PORT) def set(self,rf_power,rf_freq): Loading @@ -101,9 +115,12 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C self.cl.setFrequency(rf_freq) self.freq=rf_freq self.power=rf_power logger.logNotice('SYNT FREQ set to %f ' %self.freq) logger.logNotice('SYNT POWER set to %f ' %self.power) except CommandLine.CommandLineError,ex : logger.logError(ex) logger.logError(ex,message) Loading @@ -128,3 +145,7 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C def rfoff(self): pass def getInternalFrequency(self): return self.freq No newline at end of file Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py +55 −6 Original line number Diff line number Diff line from ACSImpl.DevIO import DevIO from math import fabs from CommandLine import CommandLineError from IRAPy import logger SYNTH_TOLLERANCE = 1. class GenericDevIO(DevIO): def __init__(self, value=0): Loading @@ -22,21 +27,65 @@ class amplitudeDevIO(DevIO): self.value = value class frequencyDevIO(DevIO): ''' frequency read from the synth. ''' def __init__(self, cl,value=0): DevIO.__init__(self,value) self.cl=cl def read(self): value=self.cl.getFrequency() try: msg,value=self.cl.getFrequency() return value except CommandLineError, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 except Exception, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 def write(self, value): self.value = value class isLockedDevIO(DevIO): def __init__(self, cl,value=0): DevIO.__init__(self, value) ''' This checks if the Synthetizer is actually set to the set frequecy ''' def __init__(self, component,commandline,value=0): DevIO.__init__(self, value) self.cl=commandline self.impl=component def read(self): return self.value try: component_frequency=self.impl.getInternalFrequency() #read freq from component msg,synth_frequency=self.cl.getFrequency() #read freq from synth offset=fabs(component_frequency-synth_frequency) if offset <= SYNTH_TOLLERANCE: return 1 else: return 0 except CommandLineError, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 except Exception, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 def write(self, value): self.value = value Common/Servers/PyLocalOscillator/test/test_component.py 0 → 100644 +25 −0 Original line number Diff line number Diff line import time import unittest2 from ComponentErrors import ComponentErrorsEx, ComponentErrorsEx from Acspy.Clients.SimpleClient import PySimpleClient from LocalOscillatorImpl import CommandLine class TestCommandLine(unittest2.TestCase): def setUp(self): client = PySimpleClient() self.lo = client.getComponent('RECEIVERS/LO_LP') def test_get(self): self.lo.set(13,2000) power,freq=self.lo.get() self.assertEqual(2000,freq) if __name__ == '__main__': unittest2.main() Loading
Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py +1 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ class CommandLine: print msg self.sock=None def __del__(self): pass Loading Loading @@ -180,7 +179,7 @@ class CommandLine: def close(self): self.sock.disconnect() self.sock.close() def query(self,cmd): try: Loading
Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py +30 −9 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ from Acspy.Common.TimeHelper import getTimeStamp from maciErrType import CannotGetComponentEx from ACSErrTypeCommonImpl import CORBAProblemExImpl from LocalOscillatorImpl.devios import amplitudeDevIO,frequencyDevIO,isLockedDevIO import Acspy.Util.ACSCorba import Receivers import ComponentErrorsImpl Loading @@ -69,7 +70,7 @@ import ComponentErrors from LocalOscillatorImpl import CommandLine from IRAPy import logger IP, PORT = "192.168.200.149", 5025 #real hw #IP, PORT = "192.168.201.149", 5025 #real hw class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, ContainerServices, ComponentLifecycle): Loading @@ -80,19 +81,32 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C self.cl=CommandLine.CommandLine() self.freq=0. self.power=0. # # ___oOo___ def cleanUp(self): pass self.cl.close() def initialize(self): self.cl.configure(IP,PORT) name= self.getName() dal = Acspy.Util.ACSCorba.cdb() dao=dal.get_DAO_Servant("alma/"+name) IP= dao.get_string("IP") PORT = int(dao.get_double("PORT")) msg = self.cl.configure(IP,PORT) if msg != 'OK' : reason = "cannot get Synthetizer IP %s component: %s" %(IP,msg) logger.logError(reason) exc = ComponentErrorsImpl.SocketErrorExImpl() exc.setData('reason',msg) raise exc.getComponentErrorsEx() addProperty(self, 'frequency', devio_ref=frequencyDevIO(self.cl)) addProperty(self, 'amplitude', devio_ref=amplitudeDevIO(self.cl)) addProperty(self, 'isLocked', devio_ref=isLockedDevIO(self.cl)) addProperty(self, 'isLocked', devio_ref=isLockedDevIO(self,self.cl)) self.cl.configure(IP,PORT) def set(self,rf_power,rf_freq): Loading @@ -101,9 +115,12 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C self.cl.setFrequency(rf_freq) self.freq=rf_freq self.power=rf_power logger.logNotice('SYNT FREQ set to %f ' %self.freq) logger.logNotice('SYNT POWER set to %f ' %self.power) except CommandLine.CommandLineError,ex : logger.logError(ex) logger.logError(ex,message) Loading @@ -128,3 +145,7 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C def rfoff(self): pass def getInternalFrequency(self): return self.freq No newline at end of file
Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py +55 −6 Original line number Diff line number Diff line from ACSImpl.DevIO import DevIO from math import fabs from CommandLine import CommandLineError from IRAPy import logger SYNTH_TOLLERANCE = 1. class GenericDevIO(DevIO): def __init__(self, value=0): Loading @@ -22,21 +27,65 @@ class amplitudeDevIO(DevIO): self.value = value class frequencyDevIO(DevIO): ''' frequency read from the synth. ''' def __init__(self, cl,value=0): DevIO.__init__(self,value) self.cl=cl def read(self): value=self.cl.getFrequency() try: msg,value=self.cl.getFrequency() return value except CommandLineError, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 except Exception, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 def write(self, value): self.value = value class isLockedDevIO(DevIO): def __init__(self, cl,value=0): DevIO.__init__(self, value) ''' This checks if the Synthetizer is actually set to the set frequecy ''' def __init__(self, component,commandline,value=0): DevIO.__init__(self, value) self.cl=commandline self.impl=component def read(self): return self.value try: component_frequency=self.impl.getInternalFrequency() #read freq from component msg,synth_frequency=self.cl.getFrequency() #read freq from synth offset=fabs(component_frequency-synth_frequency) if offset <= SYNTH_TOLLERANCE: return 1 else: return 0 except CommandLineError, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 except Exception, ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 def write(self, value): self.value = value
Common/Servers/PyLocalOscillator/test/test_component.py 0 → 100644 +25 −0 Original line number Diff line number Diff line import time import unittest2 from ComponentErrors import ComponentErrorsEx, ComponentErrorsEx from Acspy.Clients.SimpleClient import PySimpleClient from LocalOscillatorImpl import CommandLine class TestCommandLine(unittest2.TestCase): def setUp(self): client = PySimpleClient() self.lo = client.getComponent('RECEIVERS/LO_LP') def test_get(self): self.lo.set(13,2000) power,freq=self.lo.get() self.assertEqual(2000,freq) if __name__ == '__main__': unittest2.main()