[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [4955] adding support for passing telemetry through
From: |
antoine drouin |
Subject: |
[paparazzi-commits] [4955] adding support for passing telemetry through SPI link |
Date: |
Mon, 14 Jun 2010 17:00:20 +0000 |
Revision: 4955
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4955
Author: poine
Date: 2010-06-14 17:00:18 +0000 (Mon, 14 Jun 2010)
Log Message:
-----------
adding support for passing telemetry through SPI link
Added Paths:
-----------
paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h
Added: paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h
(rev 0)
+++ paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h 2010-06-14 17:00:18 UTC
(rev 4955)
@@ -0,0 +1,86 @@
+#ifndef LISA_OVERO_LINK_H
+#define LISA_OVERO_LINK_H
+
+#include <inttypes.h>
+
+#include "fms/fms_autopilot_msg.h"
+
+enum LisaOveroLinkStatus {IDLE, BUSY, DATA_AVAILABLE, LOST};
+
+#define OVERO_LINK_TIMEOUT 10
+
+struct LisaOveroLink {
+ uint8_t status;
+ uint8_t msg_in[sizeof(union OVERO_LINK_MSG_UNION)];
+ uint8_t msg_out[sizeof(union OVERO_LINK_MSG_UNION)];
+ uint8_t timeout;
+};
+
+extern struct LisaOveroLink overo_link;
+
+extern void overo_link_init(void);
+extern void overo_link_periodic(void);
+
+/* implemented by underlying architecture code */
+extern void overo_link_arch_init(void);
+extern void overo_link_arch_prepare_next_transfert(void);
+
+
+#define OveroLinkEvent(_data_received_handler) { \
+ if (overo_link.status == DATA_AVAILABLE) { \
+ overo_link.timeout = 0; \
+ LED_TOGGLE(OVERO_LINK_LED_OK); \
+ LED_OFF(OVERO_LINK_LED_KO); \
+ _data_received_handler(); \
+ overo_link_arch_prepare_next_transfert(); \
+ overo_link.status = IDLE; \
+ } \
+ }
+
+#define OveroLinkPeriodic(_timeout_handler) { \
+ if (overo_link.timeout < OVERO_LINK_TIMEOUT) \
+ overo_link.timeout++; \
+ else { \
+ if (overo_link.status != LOST) { \
+ overo_link.status = LOST; \
+ LED_OFF(OVERO_LINK_LED_OK); \
+ LED_ON(OVERO_LINK_LED_KO); \
+ _timeout_handler(); \
+ } \
+ } \
+ }
+
+
+
+/*
+ *
+ * Passing telemetry through Overo Link
+ *
+ */
+
+#ifdef USE_OVERO_LINK_TELEMETRY
+
+#define OVERO_LINK_TELEMETRY_BUF_SIZE 16
+
+extern uint8_t overo_link_telemetry_insert_idx;
+extern uint8_t overo_link_telemetry_extract_idx;
+extern uint8_t overo_link_telemetry_buf[OVERO_LINK_TELEMETRY_BUF_SIZE];
+
+#define OveroLinkTelemetryCheckFreeSpace(_x) (TRUE)
+#define OveroLinkTelemetryTransmit(_x) { \
+ uint16_t temp = (overo_link_telemetry_insert_idx + 1) %
OVERO_LINK_TELEMETRY_BUF_SIZE; \
+ if (temp != overo_link_telemetry_extract_idx) { /* we have room */ \
+ overo_link_telemetry_buf[overo_link_telemetry_insert_idx] = _x; \
+ overo_link_telemetry_insert_idx = temp; \
+ } \
+ }
+#define OveroLinkTelemetrySendMessage() {}
+
+extern uint8_t overo_link_telemetry_get(char* buf, int len);
+
+#endif /* USE_OVERO_LINK_TELEMETRY */
+
+#endif /* LISA_OVERO_LINK_H */
+
+
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [4955] adding support for passing telemetry through SPI link,
antoine drouin <=