diff options
author | px4dev <px4@purgatory.org> | 2014-06-07 14:46:46 -0700 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2014-06-07 14:46:46 -0700 |
commit | e8906619005a09d98fe68b04f2867c537f0895a8 (patch) | |
tree | f741b94b694af35f709f149c725e68b24755afb1 /src/modules/mavlink/mavlink_ftp.h | |
parent | 99dfef357b2f9228df54f0f26481c37204afa591 (diff) | |
download | px4-firmware-e8906619005a09d98fe68b04f2867c537f0895a8.tar.gz px4-firmware-e8906619005a09d98fe68b04f2867c537f0895a8.tar.bz2 px4-firmware-e8906619005a09d98fe68b04f2867c537f0895a8.zip |
Don't queue empty work items.
Diffstat (limited to 'src/modules/mavlink/mavlink_ftp.h')
-rw-r--r-- | src/modules/mavlink/mavlink_ftp.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/modules/mavlink/mavlink_ftp.h b/src/modules/mavlink/mavlink_ftp.h index 6a2414613..f68dab98d 100644 --- a/src/modules/mavlink/mavlink_ftp.h +++ b/src/modules/mavlink/mavlink_ftp.h @@ -144,19 +144,18 @@ private: dq_entry_t entry; work_s work; }; - mavlink_channel_t channel; - - void decode(mavlink_channel_t fromChannel, mavlink_message_t *fromMessage) { - switch (fromMessage->msgid) { - - case MAVLINK_MSG_ID_ENCAPSULATED_DATA: - channel = fromChannel; - mavlink_msg_encapsulated_data_decode(fromMessage, &_message); - warnx("got enc data"); - break; - default: - warnx("unknown msg"); + + bool decode(mavlink_message_t *fromMessage, mavlink_channel_t fromChannel) { + if (fromMessage->msgid == MAVLINK_MSG_ID_ENCAPSULATED_DATA) { + _channel = fromChannel; + mavlink_msg_encapsulated_data_decode(fromMessage, &_message); + return true; } + return false; + } + + void reply() { + mavlink_msg_encapsulated_data_send(_channel, sequence(), rawData()); } uint8_t *rawData() { return &_message.data[0]; } @@ -164,10 +163,12 @@ private: uint8_t *requestData() { return &(header()->data[0]); } unsigned dataSize() { return header()->size + sizeof(RequestHeader); } uint16_t sequence() const { return _message.seqnr; } + mavlink_channel_t &channel() { return _channel; } char *dataAsCString(); private: + mavlink_channel_t _channel; mavlink_encapsulated_data_t _message; }; |