Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
xbee_dl.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2016 Gautier Hattenberger <gautier.hattenberger@enac.fr>
3
*
4
* This file is part of paparazzi.
5
*
6
* paparazzi is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2, or (at your option)
9
* any later version.
10
*
11
* paparazzi is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with paparazzi; see the file COPYING. If not, see
18
* <http://www.gnu.org/licenses/>.
19
*
20
*/
21
26
#include "
modules/datalink/xbee_dl.h
"
27
#include "
subsystems/datalink/datalink.h
"
28
#include "
mcu.h
"
29
#include "
mcu_periph/sys_time.h
"
30
#include "
mcu_periph/uart.h
"
31
#include "generated/airframe.h"
32
33
#define STR_(s) #s
34
#define STR(s) STR_(s)
35
36
#ifndef XBEE_TYPE
37
#define XBEE_TYPE XBEE_24
38
#endif
39
#ifndef XBEE_INIT
40
#define XBEE_INIT ""
41
#endif
42
43
#ifdef XBEE_CHANNEL
44
#define XBEE_CHANNEL_CONF "ATCH" STR(XBEE_CHANNEL) "\r"
45
INFO(
"XBEE channel configured : "
XBEE_CHANNEL_CONF
)
46
#else
47
#define XBEE_CHANNEL_CONF ""
48
#endif
49
50
#define CONCAT(a, b) a b
51
52
#ifndef XBEE_UPDATE_DL
53
#define XBEE_UPDATE_DL TRUE
54
#endif
55
56
struct
xbee_transport
xbee_tp
;
57
58
void
xbee_dl_init
(
void
)
59
{
60
#if USE_HARD_FAULT_RECOVERY
61
if
(recovering_from_hard_fault)
62
// in case of hardfault recovery, we want to skip xbee init which as an active wait
63
xbee_transport_init(&
xbee_tp
, &((XBEE_UART).device), AC_ID,
XBEE_TYPE
, XBEE_BAUD, NULL,
CONCAT
(
XBEE_INIT
,
XBEE_CHANNEL_CONF
));
64
else
65
#endif
66
xbee_transport_init(&
xbee_tp
, &((XBEE_UART).device), AC_ID,
XBEE_TYPE
, XBEE_BAUD,
sys_time_usleep
,
CONCAT
(
XBEE_INIT
,
XBEE_CHANNEL_CONF
));
67
}
68
69
void
xbee_dl_event
(
void
)
70
{
71
xbee_check_and_parse(&(XBEE_UART).device, &
xbee_tp
,
dl_buffer
, &
dl_msg_available
);
72
DlCheckAndParse
(&(XBEE_UART).device, &
xbee_tp
.trans_tx,
dl_buffer
, &
dl_msg_available
,
XBEE_UPDATE_DL
);
73
}
74
dl_buffer
uint8_t dl_buffer[MSG_SIZE]
Definition:
main_demo5.c:64
xbee_dl.h
Datalink using XBEE protocol.
sys_time_usleep
void sys_time_usleep(uint32_t us)
sys_time_usleep(uint32_t us)
Definition:
sys_time_arch.c:95
XBEE_TYPE
#define XBEE_TYPE
Definition:
xbee_dl.c:37
uart.h
arch independent UART (Universal Asynchronous Receiver/Transmitter) API
XBEE_UPDATE_DL
#define XBEE_UPDATE_DL
Definition:
xbee_dl.c:53
xbee_dl_init
void xbee_dl_init(void)
Init function.
Definition:
xbee_dl.c:58
mcu.h
Arch independent mcu ( Micro Controller Unit ) utilities.
XBEE_CHANNEL_CONF
#define XBEE_CHANNEL_CONF
Definition:
xbee_dl.c:47
sys_time.h
Architecture independent timing functions.
CONCAT
#define CONCAT(a, b)
Definition:
xbee_dl.c:50
dl_msg_available
bool dl_msg_available
Definition:
main_demo5.c:61
xbee_tp
struct xbee_transport xbee_tp
XBEE transport structure.
Definition:
xbee_dl.c:56
xbee_dl_event
void xbee_dl_event(void)
Datalink Event.
Definition:
xbee_dl.c:69
datalink.h
Handling of messages coming from ground and other A/Cs.
XBEE_INIT
#define XBEE_INIT
Definition:
xbee_dl.c:40
DlCheckAndParse
static void DlCheckAndParse(struct link_device *dev, struct transport_tx *trans, uint8_t *buf, bool *msg_available, bool update_dl)
Check for new message and parse.
Definition:
datalink.h:79
sw
airborne
modules
datalink
xbee_dl.c
Generated on Tue Feb 1 2022 13:51:15 for Paparazzi UAS by
1.8.17