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óć ?
Protokół Mavlink
Moderatorzy: moderatorzy2014, moderatorzy
Re: Protokół Mavlink
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:
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
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)
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
Re: Protokół Mavlink
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: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.
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 pisze:a tak jak pisałem wysłanie MESSAGE_INTERVAL niczym nie skutkuje
Re: Protokół Mavlink
Okej tak właśnie myślalem, dzięki wielkie ! A jak na razie uzywam dronekit-sitl