From 479d6a8046a0a2175d0637f374d0e2e61c4e747c Mon Sep 17 00:00:00 2001 From: Freek van Tienen Date: Mon, 26 Sep 2016 14:24:43 +0200 Subject: [PATCH] Send over iridium --- sw/airborne/modules/sensors/kalamos_uart.c | 2 + .../modules/telemetry/telemetry_intermcu_ap.c | 17 +------ .../modules/telemetry/telemetry_intermcu_ap.h | 49 +++++++++++++++++++ 3 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 sw/airborne/modules/telemetry/telemetry_intermcu_ap.h diff --git a/sw/airborne/modules/sensors/kalamos_uart.c b/sw/airborne/modules/sensors/kalamos_uart.c index f6301ff12e9..75c78135b76 100644 --- a/sw/airborne/modules/sensors/kalamos_uart.c +++ b/sw/airborne/modules/sensors/kalamos_uart.c @@ -26,6 +26,7 @@ #include "modules/sensors/kalamos_uart.h" +#include "modules/telemetry/telemetry_intermcu_ap.h" #include "pprzlink/pprz_transport.h" #include "pprzlink/intermcu_msg.h" #include "mcu_periph/uart.h" @@ -131,6 +132,7 @@ static inline void kalamos_parse_msg(void) //////////////////////////////////// // Forward to FBW with IRRIDIUM + pprz_msg_send_PAYLOAD(&(telemetry_intermcu.trans.trans_tx), &telemetry_intermcu.dev, AC_ID, size, data); } break; diff --git a/sw/airborne/modules/telemetry/telemetry_intermcu_ap.c b/sw/airborne/modules/telemetry/telemetry_intermcu_ap.c index 5b374a12e5d..3094db55ea0 100644 --- a/sw/airborne/modules/telemetry/telemetry_intermcu_ap.c +++ b/sw/airborne/modules/telemetry/telemetry_intermcu_ap.c @@ -26,28 +26,15 @@ #define PERIODIC_C_INTERMCU #include "telemetry_intermcu.h" +#include "telemetry_intermcu_ap.h" #include "subsystems/intermcu.h" #include "pprzlink/intermcu_msg.h" -#include "pprzlink/short_transport.h" #include "generated/periodic_telemetry.h" #include "subsystems/datalink/telemetry.h" #include "subsystems/datalink/datalink.h" -/* Default maximum telemetry message size */ -#ifndef TELEMERTY_INTERMCU_MSG_SIZE -#define TELEMERTY_INTERMCU_MSG_SIZE 128 -#endif - -/* Structure for handling telemetry over InterMCU */ -struct telemetry_intermcu_t { - struct link_device dev; ///< Device structure for communication - struct short_transport trans; ///< Transport without any extra encoding - uint8_t buf[TELEMERTY_INTERMCU_MSG_SIZE]; ///< Buffer for the messages - uint8_t buf_idx; ///< Index of the buffer -}; - /* Telemetry InterMCU throughput */ -static struct telemetry_intermcu_t telemetry_intermcu; +struct telemetry_intermcu_t telemetry_intermcu; /* Static functions */ static bool telemetry_intermcu_check_free_space(struct telemetry_intermcu_t *p, long *fd __attribute__((unused)), uint16_t len); diff --git a/sw/airborne/modules/telemetry/telemetry_intermcu_ap.h b/sw/airborne/modules/telemetry/telemetry_intermcu_ap.h new file mode 100644 index 00000000000..3680ed6a86b --- /dev/null +++ b/sw/airborne/modules/telemetry/telemetry_intermcu_ap.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2016 Freek van Tienen + * + * This file is part of paparazzi. + * + * paparazzi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * paparazzi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +/** @file modules/telemetry/telemetry_intermcu_ap.h + * @brief Telemetry through InterMCU + */ + +#ifndef TELEMETRY_INTERMCU_AP_H +#define TELEMETRY_INTERMCU_AP_H + +#include "std.h" +#include "pprzlink/short_transport.h" + +/* Default maximum telemetry message size */ +#ifndef TELEMERTY_INTERMCU_MSG_SIZE +#define TELEMERTY_INTERMCU_MSG_SIZE 128 +#endif + +/* Structure for handling telemetry over InterMCU */ +struct telemetry_intermcu_t { + struct link_device dev; ///< Device structure for communication + struct short_transport trans; ///< Transport without any extra encoding + uint8_t buf[TELEMERTY_INTERMCU_MSG_SIZE]; ///< Buffer for the messages + uint8_t buf_idx; ///< Index of the buffer +}; + +/* Telemetry InterMCU throughput */ +extern struct telemetry_intermcu_t telemetry_intermcu; + +#endif /* TELEMETRY_INTERMCU_AP_H */