Protokół Mavlink

Moderatorzy: moderatorzy2014, moderatorzy

pater
Posty: 179
Rejestracja: środa 10 gru 2014, 14:44
Lokalizacja: Warszawa

Protokół Mavlink

Post autor: pater »

Cześć,

Aktualnie jestem w trakcie pisania biblioteki Mavlink w .net (https://github.com/pmikulicz/Mavlink/tree/development). Po podłączeniu do fc jestem już w stanie odbierać komunikaty (odbieram cyklicznie HEARTBEAT) i również jestem w stanie odpytać się o listę parametrów wysyłając PARAM_REQUEST_LIST i odbierając PARAM_VALUE. Natomiast mavlink posiada sporo więcej komunikatów np SYS_STATUS i tu jest pytanie jak mam zapytać się konkretną wiadomość ? Przeglądając dronekit widziałem, że tam wysyłany jest komunikat MAV_DATA_STREAM który jest oznaczony jako deprecated i podane jest, aby wysyłać MESSAGE_INTERVAL - natomiast wysłanie wiadomości MESSAGE_INTERVAL z id wiadomości, którą chce się otrzymać nic nie daje. Ktoś jest w stanie mi pomóć ?
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: Protokół Mavlink

Post autor: pawelsky »

pater
Posty: 179
Rejestracja: środa 10 gru 2014, 14:44
Lokalizacja: Warszawa

Re: Protokół Mavlink

Post autor: pater »

Okej ale PARAM_REQUEST_READ to jest zapytanie się o pojedynczy parametr. A mi bardziej chodzi o to, aby poprosić fc o przesłanie wiadomości np SYS_STATUS lub GPS_RAW_INT

W dronekit realizowane jest tak:

Kod: Zaznacz cały

 
   # Initialize data stream.
        if rate != None:
            self._master.mav.request_data_stream_send(0, 0, mavutil.mavlink.MAV_DATA_STREAM_ALL,
                                                      rate, 1)
natomiast jak sprawdzimy te wyliczenie w dokumentacji napisane jest:

THIS INTERFACE IS DEPRECATED AS OF JULY 2015. Please use MESSAGE_INTERVAL instead. A data stream is not a fixed set of messages, but rather a recommendation to the autopilot software. Individual autopilots may or may not obey the recommended messages.

a tak jak pisałem wysłanie MESSAGE_INTERVAL niczym nie skutkuje
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: Protokół Mavlink

Post autor: pawelsky »

pater pisze:THIS INTERFACE IS DEPRECATED AS OF JULY 2015. Please use MESSAGE_INTERVAL instead. A data stream is not a fixed set of messages, but rather a recommendation to the autopilot software. Individual autopilots may or may not obey the recommended messages.
To tylko zalecenie, wszystko zalezy od tego z jakim tergetem (jak starym) rozmawiasz i czy potrafi obsluzyc MESSAGE_INTERVAL, czy tylko REQUEST_DATA_STREAM. Musisz odpowiednio dobrac metode.
pater pisze:a tak jak pisałem wysłanie MESSAGE_INTERVAL niczym nie skutkuje
Wyslanie MESSAGE_INTERVAL nic nie da. Musisz wyslac MAV_CMD z ID MAV_CMD_SET_MESSAGE_INTERVAL dla kazdego komunikatu ktory chcesz okresowo otrzymywac.
pater
Posty: 179
Rejestracja: środa 10 gru 2014, 14:44
Lokalizacja: Warszawa

Re: Protokół Mavlink

Post autor: pater »

Okej tak właśnie myślalem, dzięki wielkie ! A jak na razie uzywam dronekit-sitl
ODPOWIEDZ