From 12dfcabe61faf7af3686d42163e636ec0f32175d Mon Sep 17 00:00:00 2001 From: Tat-Chee Wan (USM) Date: Thu, 28 Jul 2011 09:08:16 +0800 Subject: cleanup exception handling to check for valid brick object Check for valid brick object before accessing it. --- Host/nxt-gdb-server.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'Host/nxt-gdb-server.py') diff --git a/Host/nxt-gdb-server.py b/Host/nxt-gdb-server.py index 8df8f3c..c1ca25a 100755 --- a/Host/nxt-gdb-server.py +++ b/Host/nxt-gdb-server.py @@ -53,6 +53,7 @@ class NXTGDBServer: self.nowait = nowait self.port = port self.in_buf = '' + self.brick = None def pack (self, data, segment_no): """Return packed data to send to NXT.""" @@ -164,8 +165,8 @@ class NXTGDBServer: if not self.nowait: dummy = raw_input('Waiting...Press when NXT GDB Stub is ready. ') # Open connection to the NXT brick. - server.brick = nxt.locator.find_one_brick () - server.brick.sock.debug = DEBUG + self.brick = nxt.locator.find_one_brick () + self.brick.sock.debug = DEBUG # Wait for a connection. print "Waiting for GDB connection on port %s..." % self.port client, addr = s.accept () @@ -194,7 +195,7 @@ class NXTGDBServer: data = '' for seg in segments: try: - server.brick.sock.send (seg) + self.brick.sock.send (seg) except usb.USBError as e: # Some pyusb are buggy, ignore some "errors". if e.args != ('No error', ): @@ -202,14 +203,14 @@ class NXTGDBServer: if segments != [] and LIBUSB_RECEIVE_BLOCKING: if DEBUG2: print "Accessing Blocking sock.recv()" - data = self.reassemble (server.brick.sock) + data = self.reassemble (self.brick.sock) else: client.close () client = None if not LIBUSB_RECEIVE_BLOCKING: if DEBUG2: print "Accessing Non-Blocking sock.recv()" - data = self.reassemble (server.brick.sock) + data = self.reassemble (self.brick.sock) # Is there something from NXT brick? if data: @@ -218,7 +219,7 @@ class NXTGDBServer: if client: client.send (data) data = '' - server.brick.sock.close() + self.brick.sock.close() print "Connection closed." if __name__ == '__main__': @@ -244,5 +245,6 @@ if __name__ == '__main__': server.run () except KeyboardInterrupt: print "\n\nException caught. Bye!" - server.brick.sock.close() + if server.brick is not None: + server.brick.sock.close() sys.exit() -- cgit v1.2.3