paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] paparazzi can't get the datalink while the interne


From: Yannick Jestin
Subject: Re: [Paparazzi-devel] paparazzi can't get the datalink while the internet connection is unavailable in OS X Sierra??
Date: Sun, 09 Apr 2017 18:54:57 +0200

> On 9 Apr 2017, at 18:38, Tom H <address@hidden> wrote:
> 
> Hi,all!
>     I found that my paparazzi can't get the datalink via my xbees while the 
> connection of my laptop to the internet is unavailable.The GCS just keeps 
> waiting for the telemetry and do nothing althongh the xbee do receive the 
> data from the plane . But everything is OK when the internet connection 
> restores.It is odd since the datalink should not be affected by the internet 
> connection. It encounters the problem after that I upgraded my OS X from 
> Yosemite to Sierra(10.12.3).How can I fix it ?Thank you!
> 
> 
> And here is the message comes from the paparazzi center:
> 
> 
> RUN '/Users/tom/paparazzi/sw/ground_segment/tmtc/link  -d /dev/ttyUSB0 -s 
> 57600'
> RUN '/Users/tom/paparazzi/sw/ground_segment/tmtc/server '
> RUN '/Users/tom/paparazzi/sw/ground_segment/cockpit/gcs '
> setsockopt() Cannot join group: Can't assign requested address
> Does your kernel support IP multicast extensions ?
> *** send ***: Network is unreachable

  TL;DR: either use a wifi hotspot, or reconfigure lo0 to broadcast this stuff 
with $ sudo route -nv add -net 224.0.0.0 -interface lo0 
Bear in mind that this workaround won’t resist a reboot, and you’ll loose multi 
hosts connectivity (tracker, …) until you  $ sudo route -v delete -inet 
224.0.0.0


  Longer version: on OSX, the Ivy bus defaults to  224.255.255.255:2010 (cf 
./sw/lib/ocaml/defivybus.ml)

  With a network connexion, if I run two ivy python clients, when the second 
arrives, the first says :
$ ivyprobe.py -b 224.255.255.255:2010
Broadcasting on 224.255.255.255:2010
Go ahead! (type .help for help on commands)
Ivy application 192.168.0.11:57197 (pyivyprobe) has connected
Ivy applications currently on the bus: pyivyprobe

  If I remove the network connexion (not necessarily internet, but, wifi, 
e.g.), then, launching an ivyprobe:
rhovanion:paparazzi yj$ ivyprobe.py -b 224.255.255.255:2010
Broadcasting on 224.255.255.255:2010
Exception in thread Thread-2:
Traceback (most recent call last):
  File 
"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py",
 line 801, in __bootstrap_inner
    self.run()
  File 
"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py",
 line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/site-packages/ivy/ivy.py", line 693, in 
<lambda>
    l=lambda server=self: UDP_init_and_listen(broadcast, port, server)
  File "/usr/local/lib/python2.7/site-packages/ivy/ivy.py", line 151, in 
UDP_init_and_listen
    s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
  File 
"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py",
 line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 49] Can't assign requested address

Go ahead! (type .help for help on commands)

  Meaning the en0 interface being inactive, well, all interface except lo0 
being inactive … the rendez-vous packet is not sent.

  If I force this interface to broadcast multicast for 224, then …

rhovanion:paparazzi yj$ sudo route -nv add -net 224.0.0.0 -interface lo0
Password:
u: inet 224.0.0.0; u: link lo0; u: inet 255.0.0.0; RTM_ADD: Add Route: len 136, 
pid: 0, seq 1, errno 0, flags:<UP,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK>
 224.0.0.0 lo0 255.0.0.0
add net 224.0.0.0: gateway lo0
rhovanion:paparazzi yj$ ivyprobe.py -b 224.255.255.255:2010
Broadcasting on 224.255.255.255:2010
Go ahead! (type .help for help on commands)
Ivy application 127.0.0.1:57201 (pyivyprobe) has connected
Ivy applications currently on the bus: pyivyprobe

— 
  Y.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]