more errno fixes for MacOS

This commit is contained in:
Andrew Tridgell 2011-12-23 12:07:32 +11:00
parent d007ee996d
commit 30425063d8
3 changed files with 28 additions and 22 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
import socket, struct, time import socket, struct, time, errno
from math import * from math import *
class udp_out(object): class udp_out(object):
@ -19,7 +19,7 @@ class udp_out(object):
try: try:
data, self.last_address = self.port.recvfrom(300) data, self.last_address = self.port.recvfrom(300)
except socket.error as e: except socket.error as e:
if e.errno in [ 11, 35 ]: if e.errno in [ errno.EAGAIN, errno.EWOULDBLOCK ]:
return "" return ""
raise raise
return data return data

View File

@ -6,7 +6,7 @@ Copyright Andrew Tridgell 2011
Released under GNU GPL version 3 or later Released under GNU GPL version 3 or later
''' '''
import socket, math, struct, time, os, fnmatch, array, sys import socket, math, struct, time, os, fnmatch, array, sys, errno
from math import * from math import *
from mavextra import * from mavextra import *
@ -284,7 +284,7 @@ class mavudp(mavfile):
try: try:
data, self.last_address = self.port.recvfrom(300) data, self.last_address = self.port.recvfrom(300)
except socket.error as e: except socket.error as e:
if e.errno in [ 11, 35 ]: if e.errno in [ errno.EAGAIN, errno.EWOULDBLOCK ]:
return "" return ""
raise raise
return data return data
@ -305,10 +305,12 @@ class mavudp(mavfile):
s = self.recv() s = self.recv()
if len(s) == 0: if len(s) == 0:
return None return None
msg = self.mav.decode(s) msg = self.mav.parse_buffer(s)
if msg: if msg is not None:
self.post_message(msg) for m in msg:
return msg self.post_message(m)
return msg[0]
return None
class mavtcp(mavfile): class mavtcp(mavfile):
@ -334,7 +336,7 @@ class mavtcp(mavfile):
try: try:
data = self.port.recv(n) data = self.port.recv(n)
except socket.error as e: except socket.error as e:
if e.errno in [ 11, 35 ]: if e.errno in [ errno.EAGAIN, errno.EWOULDBLOCK ]:
return "" return ""
raise raise
return data return data
@ -451,7 +453,7 @@ def mavlink_connection(device, baud=115200, source_system=255,
return mavtcp(device[4:], source_system=source_system) return mavtcp(device[4:], source_system=source_system)
if device.startswith('udp:'): if device.startswith('udp:'):
return mavudp(device[4:], input=input, source_system=source_system) return mavudp(device[4:], input=input, source_system=source_system)
if device.find(':') != -1: if device.find(':') != -1 and not device.endswith('log'):
return mavudp(device, source_system=source_system, input=input) return mavudp(device, source_system=source_system, input=input)
if os.path.isfile(device): if os.path.isfile(device):
if device.endswith(".elf"): if device.endswith(".elf"):
@ -487,7 +489,11 @@ def is_printable(c):
global have_ascii global have_ascii
if have_ascii: if have_ascii:
return ascii.isprint(c) return ascii.isprint(c)
return ord(c) >= 32 and ord(c) <= 126 if isinstance(c, int):
ic = c
else:
ic = ord(c)
return ic >= 32 and ic <= 126
def all_printable(buf): def all_printable(buf):
'''see if a string is all printable''' '''see if a string is all printable'''

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
import socket, struct, time, math import socket, struct, time, math, errno
import fgFDM import fgFDM
class udp_socket(object): class udp_socket(object):
@ -24,7 +24,7 @@ class udp_socket(object):
try: try:
data, self.last_address = self.port.recvfrom(n) data, self.last_address = self.port.recvfrom(n)
except socket.error as e: except socket.error as e:
if e.errno in [ 11, 35 ]: if e.errno in [ errno.EAGAIN, errno.EWOULDBLOCK ]:
return "" return ""
raise raise
return data return data