Loading Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py +79 −38 Original line number Diff line number Diff line import socket import time QUERYERROR="SYST:ERR? \n" FREQCMD="FREQ " QUERYFREQ="FREQ? \n" QUERYFREQ="FREQ?;"+QUERYERROR QUERYPOWER="POW?\n" RFONCMD="OUTP:STAT ON" RFOFFCMD="OUTP:STAT OFF" QUERYRF="OUTP:STAT?" FREQUNIT=" MHZ\n" POWERUNIT=" dBM\n" QUERYERROR="SYST:ERR?\n" class CommandLineError(Exception): def __init__(self, value): self.value = value def __str__(self): return repr(self.value) class CommandLine: Loading @@ -25,12 +37,17 @@ class CommandLine: pass def configure(self,ip,port): ''' Connect to the HW Clear query error ''' try: self.sock.connect((ip,port)) msg ='OK' self.sendCmd('*CLS\n') return msg except socket.error , msg: print msg Loading @@ -43,37 +60,41 @@ class CommandLine: def setPower(self,power): POWERCMD="POWER " cmd= POWERCMD + str(power) + POWERUNIT try: err=self.sendCmd(cmd) msg=self.query(QUERYERROR) return msg,err status_send=self.sendCmd(cmd) if error_msg != '0,\"No error\"\n': print "exception",error_msg raise CommandLineError(error_msg) return statusSend except socket.error , msg: print "connect error: " ,msg return msg,False self.sock=None def getPower(self): QUERYPOWER="POWER? \n" QUERYPOWER="POWER?;SYST:ERR?\n" cmd=QUERYPOWER try: msg=self.query(cmd) val=int(msg.strip()) # unit is MHZ, print msg,val return msg,val commands=msg.split(';') val=int(commands[0])# unit is MHZ, err_msg=commands[1] print "query err",msg if err_msg != '0,\"No error\"\n': print "exception",err_msg raise CommandLineError(err_msg) return err_msg,val except socket.error , msg: print "connect error: " ,msg return msg,-1 self.sock=None except CommandLineError,msg: raise except ValueError,msg: raise CommandLineError(msg) def setFrequency(self,freq): Loading @@ -83,10 +104,8 @@ class CommandLine: try: err=self.sendCmd(cmd) print "send freq" msg=self.query(QUERYERROR) print "query err" return msg,err Loading @@ -97,21 +116,43 @@ class CommandLine: def getFrequency(self): cmd= QUERYFREQ try: msg=self.query(cmd) val=int(msg)/1e6 # unit is MHZ, print msg,val return msg,val commands=msg.split(';') val=int(commands[0])/1e6 # unit is MHZ, err_msg=commands[1] print "query err",msg if err_msg != '0,\"No error\"\n': print "exception",err_msg raise CommandLineError(err_msg) return err_msg,val except socket.error , msg: print "connect error: " ,msg return msg,-1 self.sock=None except CommandLineError,msg: raise except ValueError,msg: raise CommandLineError(msg) def readStatus(self): ''' Query the error code of the synt. ''' try: msg=self.query(QUERYERROR) print "query err",msg if msg != '0,\"No error\"\n': print "exception",msg raise CommandLineError(msg) return msg except socket.error , msg: print "connect error: " ,msg return msg def rfOn(self): Loading Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py +4 −1 Original line number Diff line number Diff line Loading @@ -95,6 +95,9 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C def set(self,rf_power,rf_freq): self.cl.setPower(rf_power) self.cl.setFrequency(rf_freq) return 1 Loading Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py +4 −3 Original line number Diff line number Diff line Loading @@ -22,10 +22,11 @@ class amplitudeDevIO(DevIO): self.value = value class frequencyDevIO(DevIO): def __init__(self, value=0): DevIO.__init__(self, value) def __init__(self, cl): DevIO.__init__(self, cl) self.cl=cl def read(self): self.cl.getFrequency() return self.value def write(self, value): Loading Common/Servers/PyLocalOscillator/test/test_commandline.py +34 −8 Original line number Diff line number Diff line Loading @@ -21,29 +21,55 @@ class TestCommandLine(unittest2.TestCase): #print 'aa:',msg #self.assertEqual('0,\"No error\"\n',msg) def test_sendCmd(self): def test_1_sendCmd(self): msg=self.cl.sendCmd('FREQ 2188 MHZ\n') print 'aa:',msg self.assertEqual(True,msg) def test_sendFrequency(self): def test_2_sendFrequency(self): msg,err=self.cl.setFrequency(2000) self.assertEqual('0,\"No error\"\n',msg) def test_getFrequency(self): # def test_3_getFrequency(self): val=0. msg,val=self.cl.getFrequency() self.assertEqual(2000,val) def test_sendPower(self): @unittest2.skip("demonstrating skipping") def test_3_getFrequency_err(self): self.assertRaises(CommandLine.CommandLineError, self.cl.getFrequency) def test_4_sendPower(self): msg,err=self.cl.setPower(13) self.assertEqual('0,\"No error\"\n',msg) def test_getPower(self): @unittest2.skip("demonstrating skipping") def test_4_sendPower(self): msg,err=self.cl.setPower(13) self.assertEqual('0,\"No error\"\n',msg) def test_5_getPower(self): msg,val=self.cl.getPower() self.assertEqual(13,val) def test_5_getPower(self): msg,val=self.cl.getPower() self.assertEqual(13,val) self.assertEqual('0,\"No error\"\n',msg) def test_6_readStatus(self): msg=self.cl.readStatus() self.assertEqual('0,\"No error\"\n',msg) @unittest2.skip("demonstrating skipping") def test_7_sendWrongCMD(self): # try: self.cl.sendCmd('WOWOW \n') #wrong msg # except Commandline.CommandLineError ,msg: self.assertRaises(CommandLine.CommandLineError, self.cl.readStatus) if __name__ == '__main__': Loading Loading
Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py +79 −38 Original line number Diff line number Diff line import socket import time QUERYERROR="SYST:ERR? \n" FREQCMD="FREQ " QUERYFREQ="FREQ? \n" QUERYFREQ="FREQ?;"+QUERYERROR QUERYPOWER="POW?\n" RFONCMD="OUTP:STAT ON" RFOFFCMD="OUTP:STAT OFF" QUERYRF="OUTP:STAT?" FREQUNIT=" MHZ\n" POWERUNIT=" dBM\n" QUERYERROR="SYST:ERR?\n" class CommandLineError(Exception): def __init__(self, value): self.value = value def __str__(self): return repr(self.value) class CommandLine: Loading @@ -25,12 +37,17 @@ class CommandLine: pass def configure(self,ip,port): ''' Connect to the HW Clear query error ''' try: self.sock.connect((ip,port)) msg ='OK' self.sendCmd('*CLS\n') return msg except socket.error , msg: print msg Loading @@ -43,37 +60,41 @@ class CommandLine: def setPower(self,power): POWERCMD="POWER " cmd= POWERCMD + str(power) + POWERUNIT try: err=self.sendCmd(cmd) msg=self.query(QUERYERROR) return msg,err status_send=self.sendCmd(cmd) if error_msg != '0,\"No error\"\n': print "exception",error_msg raise CommandLineError(error_msg) return statusSend except socket.error , msg: print "connect error: " ,msg return msg,False self.sock=None def getPower(self): QUERYPOWER="POWER? \n" QUERYPOWER="POWER?;SYST:ERR?\n" cmd=QUERYPOWER try: msg=self.query(cmd) val=int(msg.strip()) # unit is MHZ, print msg,val return msg,val commands=msg.split(';') val=int(commands[0])# unit is MHZ, err_msg=commands[1] print "query err",msg if err_msg != '0,\"No error\"\n': print "exception",err_msg raise CommandLineError(err_msg) return err_msg,val except socket.error , msg: print "connect error: " ,msg return msg,-1 self.sock=None except CommandLineError,msg: raise except ValueError,msg: raise CommandLineError(msg) def setFrequency(self,freq): Loading @@ -83,10 +104,8 @@ class CommandLine: try: err=self.sendCmd(cmd) print "send freq" msg=self.query(QUERYERROR) print "query err" return msg,err Loading @@ -97,21 +116,43 @@ class CommandLine: def getFrequency(self): cmd= QUERYFREQ try: msg=self.query(cmd) val=int(msg)/1e6 # unit is MHZ, print msg,val return msg,val commands=msg.split(';') val=int(commands[0])/1e6 # unit is MHZ, err_msg=commands[1] print "query err",msg if err_msg != '0,\"No error\"\n': print "exception",err_msg raise CommandLineError(err_msg) return err_msg,val except socket.error , msg: print "connect error: " ,msg return msg,-1 self.sock=None except CommandLineError,msg: raise except ValueError,msg: raise CommandLineError(msg) def readStatus(self): ''' Query the error code of the synt. ''' try: msg=self.query(QUERYERROR) print "query err",msg if msg != '0,\"No error\"\n': print "exception",msg raise CommandLineError(msg) return msg except socket.error , msg: print "connect error: " ,msg return msg def rfOn(self): Loading
Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py +4 −1 Original line number Diff line number Diff line Loading @@ -95,6 +95,9 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C def set(self,rf_power,rf_freq): self.cl.setPower(rf_power) self.cl.setFrequency(rf_freq) return 1 Loading
Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py +4 −3 Original line number Diff line number Diff line Loading @@ -22,10 +22,11 @@ class amplitudeDevIO(DevIO): self.value = value class frequencyDevIO(DevIO): def __init__(self, value=0): DevIO.__init__(self, value) def __init__(self, cl): DevIO.__init__(self, cl) self.cl=cl def read(self): self.cl.getFrequency() return self.value def write(self, value): Loading
Common/Servers/PyLocalOscillator/test/test_commandline.py +34 −8 Original line number Diff line number Diff line Loading @@ -21,29 +21,55 @@ class TestCommandLine(unittest2.TestCase): #print 'aa:',msg #self.assertEqual('0,\"No error\"\n',msg) def test_sendCmd(self): def test_1_sendCmd(self): msg=self.cl.sendCmd('FREQ 2188 MHZ\n') print 'aa:',msg self.assertEqual(True,msg) def test_sendFrequency(self): def test_2_sendFrequency(self): msg,err=self.cl.setFrequency(2000) self.assertEqual('0,\"No error\"\n',msg) def test_getFrequency(self): # def test_3_getFrequency(self): val=0. msg,val=self.cl.getFrequency() self.assertEqual(2000,val) def test_sendPower(self): @unittest2.skip("demonstrating skipping") def test_3_getFrequency_err(self): self.assertRaises(CommandLine.CommandLineError, self.cl.getFrequency) def test_4_sendPower(self): msg,err=self.cl.setPower(13) self.assertEqual('0,\"No error\"\n',msg) def test_getPower(self): @unittest2.skip("demonstrating skipping") def test_4_sendPower(self): msg,err=self.cl.setPower(13) self.assertEqual('0,\"No error\"\n',msg) def test_5_getPower(self): msg,val=self.cl.getPower() self.assertEqual(13,val) def test_5_getPower(self): msg,val=self.cl.getPower() self.assertEqual(13,val) self.assertEqual('0,\"No error\"\n',msg) def test_6_readStatus(self): msg=self.cl.readStatus() self.assertEqual('0,\"No error\"\n',msg) @unittest2.skip("demonstrating skipping") def test_7_sendWrongCMD(self): # try: self.cl.sendCmd('WOWOW \n') #wrong msg # except Commandline.CommandLineError ,msg: self.assertRaises(CommandLine.CommandLineError, self.cl.readStatus) if __name__ == '__main__': Loading