Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
audio_telemetry.h
Go to the documentation of this file.
1
/*
2
* Paparazzi telemetry via audio channel modem functions
3
*
4
* Copyright (C) 2003 Pascal Brisset, Antoine Drouin
5
*
6
* This file is part of paparazzi.
7
*
8
* paparazzi is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2, or (at your option)
11
* any later version.
12
*
13
* paparazzi is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with paparazzi; see the file COPYING. If not, write to
20
* the Free Software Foundation, 59 Temple Place - Suite 330,
21
* Boston, MA 02111-1307, USA.
22
*
23
*/
24
25
#ifndef AUDIO_TELEMETRY_H
26
#define AUDIO_TELEMETRY_H
27
28
#include "
inttypes.h
"
29
30
extern
uint8_t
audio_telemetry_nb_ovrn
;
31
32
#include "generated/airframe.h"
33
#include "
audio_telemetry_hw.h
"
34
35
36
#define TX_BUF_SIZE 255
37
extern
uint8_t
tx_head
;
38
extern
volatile
uint8_t
tx_tail
;
39
extern
uint8_t
tx_buf
[
TX_BUF_SIZE
];
40
41
extern
uint8_t
tx_byte
;
42
extern
uint8_t
tx_byte_idx
;
43
44
45
#define AudioTelemetrySendMessage() AUDIO_TELEMETRY_CHECK_RUNNING()
46
47
#if TX_BUF_SIZE == 256
48
#define UPDATE_HEAD() { \
49
tx_head++; \
50
}
51
#else
52
#define UPDATE_HEAD() { \
53
tx_head++; \
54
if (tx_head >= TX_BUF_SIZE) tx_head = 0; \
55
}
56
#endif
57
58
#define AudioTelemetryCheckFreeSpace(_space) (tx_head>=tx_tail? _space < (TX_BUF_SIZE - (tx_head - tx_tail)) : _space < (tx_tail - tx_head))
59
60
#define AudioTelemetryPut1Byte(_byte) { \
61
tx_buf[tx_head] = _byte; \
62
UPDATE_HEAD(); \
63
}
64
65
#define AUDIO_TELEMETRY_LOAD_NEXT_BYTE() { \
66
tx_byte = tx_buf[tx_tail]; \
67
tx_byte_idx = 0; \
68
tx_tail++; \
69
if( tx_tail >= TX_BUF_SIZE ) \
70
tx_tail = 0; \
71
}
72
73
#define AudioTelemetryTransmit(_x) Audio_TelemetryPut1Byte(_x)
74
75
#endif
/* AUDIO_TELEMETRY_H */
tx_head
uint8_t tx_head
Definition:
audio_telemetry_hw.c:6
audio_telemetry_hw.h
tx_byte
uint8_t tx_byte
Definition:
audio_telemetry_hw.c:10
tx_byte_idx
uint8_t tx_byte_idx
TX_BUF_SIZE
#define TX_BUF_SIZE
Definition:
audio_telemetry.h:36
inttypes.h
tx_tail
volatile uint8_t tx_tail
Definition:
audio_telemetry_hw.c:7
uint8_t
unsigned char uint8_t
Definition:
types.h:14
tx_buf
uint8_t tx_buf[TX_BUF_SIZE]
Definition:
audio_telemetry_hw.c:8
audio_telemetry_nb_ovrn
uint8_t audio_telemetry_nb_ovrn
Definition:
audio_telemetry_hw.c:5
sw
airborne
subsystems
datalink
audio_telemetry.h
Generated on Tue Jun 21 2016 14:01:25 for Paparazzi UAS by
1.8.8