more errno fixes for MacOS
This commit is contained in:
parent
d007ee996d
commit
30425063d8
@ -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
|
||||||
|
@ -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'''
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user