Exemplo n.º 1
0
 def __init__(self):
     Pyro.core.ObjBase.__init__(self)
     self._connected = False
     self.addr = None
     self.source = {}
     corelog.info("Connecting to GavrtDB")
     self.gdb = GavrtDB(rw=True)
     rec = self.gdb.get("SELECT * FROM antenna_cmd ORDER BY ID DESC LIMIT 1")
     if rec:
         self.source = dict(name=rec['Name'][0],RA=rec['RA'][0],Dec=rec['Dec'][0],id=int(rec['SourceID'][0]))
         corelog.info("Got most recent source: %s" % (rec['Name'][0]))
     else:
         corelog.error("Could not find a most recent sournce in the antenna_cmd table.")    
Exemplo n.º 2
0
class XantInterface(Pyro.core.ObjBase):
    def __init__(self):
        Pyro.core.ObjBase.__init__(self)
        self._connected = False
        self.addr = None
        self.source = {}
        corelog.info("Connecting to GavrtDB")
        self.gdb = GavrtDB(rw=True)
        rec = self.gdb.get("SELECT * FROM antenna_cmd ORDER BY ID DESC LIMIT 1")
        if rec:
            self.source = dict(name=rec['Name'][0],RA=rec['RA'][0],Dec=rec['Dec'][0],id=int(rec['SourceID'][0]))
            corelog.info("Got most recent source: %s" % (rec['Name'][0]))
        else:
            corelog.error("Could not find a most recent sournce in the antenna_cmd table.")    
    def getAddr(self):
        return self.addr
    def connect(self):
        """ Connect to server running Xant, usually dss28-eac """
        self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.sock.bind(('',9013))
        for addr in XANT_ADDRS:
            tries = 0
            maxtries = 2
            corelog.debug("Trying to connect to xant at %s" % (str(addr)))
            while tries < maxtries:
                tries += 1
                try:
                    self.sock.connect(addr)
                    break
                except Exception, e:
                    corelog.debug("Failed on %d try\n%s" % (tries,str(e)))
            if tries < maxtries:
                corelog.info("Succeeded in connecting to Xant at %s after %d tries" % (str(addr),tries))
                self.sock.setblocking(False)
                self._connected = True
                self.addr = addr
                return addr
        corelog.warning("Failed to connect to Xant")
        self.addr = None
        return None