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.")
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