Quantcast

paparazzi can't get the datalink while the internet connection is unavailable in OS X Sierra??

classic Classic list List threaded Threaded
2 messages Options
Tom
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

paparazzi can't get the datalink while the internet connection is unavailable in OS X Sierra??

Tom
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

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: paparazzi can't get the datalink while the internet connection is unavailable in OS X Sierra??

Yannick Jestin

> On 9 Apr 2017, at 18:38, Tom H <[hidden email]> 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.



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Loading...