Commit bbcb0118 authored by Sergio Poppi's avatar Sergio Poppi
Browse files

PyLO added command line and test command line

parent ce1d405c
Loading
Loading
Loading
Loading
+156 −0
Original line number Diff line number Diff line
import socket

FREQCMD="FREQ "
QUERYFREQ="FREQ? \n"
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 CommandLine:
   
    
   def __init__(self):
     
       try: 
          self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
       except socket.error , msg:
          print msg
          self.sock=None
       

   def __del__(self):
       pass
   
   def configure(self,ip,port):
     
   
      try:
         self.sock.connect((ip,port))
         msg ='OK'
         
         return msg
      except socket.error , msg:
         print msg
         print "connect error: " ,msg
         return msg
   
   def init(self,reply):
     
     pass
   
   def setPower(self,power):
       POWERCMD="POWER "

       cmd= POWERCMD + str(power) + POWERUNIT
 
       try:

           err=self.sendCmd(cmd)
           
           msg=self.query(QUERYERROR)
           
           return msg,err
           
       except socket.error , msg:
          print "connect error: " ,msg
          return msg,False
          self.sock=None
   
   def getPower(self):
       QUERYPOWER="POWER? \n"
       cmd=QUERYPOWER
       try:

           msg=self.query(cmd)
           val=int(msg.strip()) # unit is MHZ, 
           print msg,val
           return msg,val
       
   
       except socket.error , msg:
          print "connect error: " ,msg
          return msg,-1
          self.sock=None
   
     
   def setFrequency(self,freq):

       cmd= FREQCMD + str(freq) + FREQUNIT
 
       try:

           err=self.sendCmd(cmd)
           print "send freq"
           
           msg=self.query(QUERYERROR)
           print "query err"
           
           return msg,err
           
       except socket.error , msg:
          print "connect error: " ,msg
          return msg,False
          self.sock=None
   
   def getFrequency(self):
         
         
       cmd= QUERYFREQ
       try:

           msg=self.query(cmd)
           val=int(msg)/1e6 # unit is MHZ, 
           print msg,val
           return msg,val
       
   
       except socket.error , msg:
          print "connect error: " ,msg
          return msg,-1
          self.sock=None
         
    
   def rfOn(self):
     
       pass
   
   def rfOff(self):
      
      
      pass
   
   def sendCmd(self,msg):
     
       try:
           self.sock.sendall(msg)
           return True
       
       except socket.error , msg:
          print "connect error: " ,msg
          raise msg
          self.sock=None
          return False
   
   def close(self):
     
       self.sock.disconnect()

   def query(self,cmd):
       try:
           self.sock.sendall(cmd) 
           msg = self.sock.recv(1024) 
           print 'query:received:',msg
           return msg
       
       except socket.error , msg:
          print "connect error: " ,msg
          raise
          return msg
   
       
       
      
     
 No newline at end of file
+51 −0
Original line number Diff line number Diff line
import unittest2
import socket

from LocalOscillatorImpl import CommandLine
#ip,port  ='192.168.200.143',5025 #simulator
ip, port = "192.168.200.149", 5025 #real hw

class TestCommandLine(unittest2.TestCase):
  
  
      def setUp(self):
          self.cl=CommandLine.CommandLine()
          self.cl.configure(ip,port)

#      def test_configure(self):
          
#         self.assertRaises(socket.error,self.cl.configure,'localhost',5555)
      #def test_query(self):
          
          #msg=self.cl.query('*IDN?')
          #print 'aa:',msg
          #self.assertEqual('0,\"No error\"\n',msg)
          
      def test_sendCmd(self):
          
          msg=self.cl.sendCmd('FREQ 2188 MHZ\n')
          print 'aa:',msg
          self.assertEqual(True,msg)
         
          
      def test_sendFrequency(self):
         msg,err=self.cl.setFrequency(2000)
         self.assertEqual('0,\"No error\"\n',msg)
         
 
      def test_getFrequency(self):
         val=0.
         msg,val=self.cl.getFrequency()
         self.assertEqual(2000,val)
      def test_sendPower(self):
         msg,err=self.cl.setPower(13)
         self.assertEqual('0,\"No error\"\n',msg)
      def test_getPower(self):
         
         msg,val=self.cl.getPower()
         self.assertEqual(13,val)
            
        
if __name__ == '__main__':
    unittest2.main()
    
 No newline at end of file