mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-04 22:17:01 +08:00
Renamed wifi to udp and started using PprzTransport again
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
<configure name="AHRS_PROPAGATE_FREQUENCY" value="200" />
|
||||
<define name="AHRS_PROPAGATE_FREQUENCY" value="200" />
|
||||
<define name="USE_BAROMETER" />
|
||||
<subsystem name="telemetry" type="wifi" />
|
||||
<subsystem name="telemetry" type="udp" />
|
||||
<subsystem name="radio_control" type="datalink" />
|
||||
</target>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</target>
|
||||
|
||||
<subsystem name="radio_control" type="datalink" />
|
||||
<subsystem name="telemetry" type="wifi" />
|
||||
<subsystem name="telemetry" type="udp" />
|
||||
<subsystem name="gps" type="sirf" />
|
||||
<subsystem name="ahrs" type="ardrone2" />
|
||||
<subsystem name="ins" type="ardrone2" />
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
# Udp telemetry
|
||||
|
||||
ap.CFLAGS += -DDOWNLINK -DDOWNLINK_DEVICE=Udp
|
||||
ap.CFLAGS += -DDOWNLINK_TRANSPORT=PprzTransport -DDATALINK=UDP
|
||||
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/udp.c subsystems/datalink/pprz_transport.c
|
||||
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/telemetry.c
|
||||
ap.srcs += fms/fms_network.c
|
||||
@@ -1,8 +0,0 @@
|
||||
|
||||
# Wifi telemetry
|
||||
|
||||
ap.CFLAGS += -DDOWNLINK -DDOWNLINK_DEVICE=Wifi
|
||||
ap.CFLAGS += -DDOWNLINK_TRANSPORT=WifiTransport -DDATALINK=WIFI
|
||||
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/wifi.c
|
||||
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/telemetry.c
|
||||
ap.srcs += fms/fms_network.c
|
||||
@@ -38,8 +38,8 @@
|
||||
#include "subsystems/datalink/datalink.h"
|
||||
#include "subsystems/settings.h"
|
||||
#include "subsystems/datalink/xbee.h"
|
||||
#if DATALINK == WIFI
|
||||
#include "subsystems/datalink/wifi.h"
|
||||
#if DATALINK == UDP
|
||||
#include "subsystems/datalink/udp.h"
|
||||
#endif
|
||||
|
||||
#include "subsystems/commands.h"
|
||||
@@ -163,8 +163,8 @@ STATIC_INLINE void main_init( void ) {
|
||||
xbee_init();
|
||||
#endif
|
||||
|
||||
#if DATALINK == WIFI
|
||||
wifi_init();
|
||||
#if DATALINK == UDP
|
||||
udp_init();
|
||||
#endif
|
||||
|
||||
// register the timers for the periodic functions
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
/** Datalink kinds */
|
||||
#define PPRZ 1
|
||||
#define XBEE 2
|
||||
#define WIFI 3
|
||||
#define UDP 3
|
||||
|
||||
EXTERN bool_t dl_msg_available;
|
||||
/** Flag provided to control calls to ::dl_parse_msg. NOT used in this module*/
|
||||
@@ -87,10 +87,10 @@ EXTERN void dl_parse_msg(void);
|
||||
DlCheckAndParse(); \
|
||||
}
|
||||
|
||||
#elif defined DATALINK && DATALINK == WIFI
|
||||
#elif defined DATALINK && DATALINK == UDP
|
||||
|
||||
#define DatalinkEvent() { \
|
||||
WifiCheckAndParse(); \
|
||||
UdpCheckAndParse(); \
|
||||
DlCheckAndParse(); \
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
#endif
|
||||
|
||||
#else /** SITL */
|
||||
#include "subsystems/datalink/wifi.h"
|
||||
#include "subsystems/datalink/udp.h"
|
||||
#include "subsystems/datalink/pprz_transport.h"
|
||||
#include "subsystems/datalink/xbee.h"
|
||||
#include "subsystems/datalink/w5100.h"
|
||||
|
||||
@@ -65,7 +65,7 @@ extern uint8_t ck_a, ck_b;
|
||||
#define PprzTransportTrailer(_dev) { \
|
||||
PprzTransportPut1Byte(_dev, ck_a); \
|
||||
PprzTransportPut1Byte(_dev, ck_b); \
|
||||
PprzTransportSendMessage(_dev) \
|
||||
PprzTransportSendMessage(_dev); \
|
||||
}
|
||||
|
||||
#define PprzTransportPutUint8(_dev, _byte) { \
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "subsystems/datalink/wifi.h"
|
||||
#include "subsystems/datalink/udp.h"
|
||||
#include "fms/fms_network.h"
|
||||
#include <string.h>
|
||||
|
||||
@@ -45,22 +45,22 @@ uint16_t udp_buffer_id;
|
||||
uint8_t ck_a, ck_b;
|
||||
struct FmsNetwork* network;
|
||||
|
||||
void wifi_init( void ) {
|
||||
void udp_init( void ) {
|
||||
network = network_new(LINK_HOST, LINK_PORT, DATALINK_PORT, FMS_NETWORK_BROADCAST);
|
||||
udp_buffer_id = 0;
|
||||
}
|
||||
|
||||
void wifi_transmit( uint8_t data ) {
|
||||
void udp_transmit( uint8_t data ) {
|
||||
udp_buffer[udp_buffer_id] = data;
|
||||
udp_buffer_id++;
|
||||
}
|
||||
|
||||
void wifi_send( void ) {
|
||||
void udp_send( void ) {
|
||||
network_write(network, udp_buffer, udp_buffer_id);
|
||||
udp_buffer_id =0;
|
||||
}
|
||||
|
||||
void wifi_receive( void ) {
|
||||
void udp_receive( void ) {
|
||||
//First check if it isn't already having a message
|
||||
if(dl_msg_available == TRUE) {
|
||||
return;
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2013 Freek van Tienen and Dino Hensen
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Udp ethernet connection over UDP */
|
||||
|
||||
#ifndef UDP_TELEM_H
|
||||
#define UDP_TELEM_H
|
||||
|
||||
#include "subsystems/datalink/datalink.h"
|
||||
#include "generated/airframe.h"
|
||||
|
||||
//#include "subsystems/datalink/transport.h"
|
||||
#include "subsystems/datalink/pprz_transport.h"
|
||||
|
||||
#define STX 0x99
|
||||
|
||||
void udp_init( void );
|
||||
void udp_transmit( uint8_t data );
|
||||
void udp_send( void );
|
||||
void udp_receive( void );
|
||||
|
||||
#define UdpInit() udp_init()
|
||||
#define UdpCheckFreeSpace(_x) (TRUE)
|
||||
#define UdpTransmit(_x) udp_transmit(_x)
|
||||
#define UdpSendMessage() udp_send()
|
||||
|
||||
#define UdpCheckAndParse() { \
|
||||
udp_receive(); \
|
||||
}
|
||||
|
||||
#endif /* UDP_TELEM_H */
|
||||
@@ -1,132 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2013 Freek van Tienen and Dino Hensen
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Wifi ethernet connection over UDP */
|
||||
|
||||
#ifndef WIFI_TELEM_H
|
||||
#define WIFI_TELEM_H
|
||||
|
||||
#include "subsystems/datalink/datalink.h"
|
||||
#include "generated/airframe.h"
|
||||
|
||||
#include "subsystems/datalink/transport.h"
|
||||
|
||||
#define STX 0x99
|
||||
|
||||
void wifi_init( void );
|
||||
void wifi_transmit( uint8_t data );
|
||||
void wifi_send( void );
|
||||
void wifi_receive( void );
|
||||
|
||||
#define WifiInit() wifi_init()
|
||||
#define WifiCheckFreeSpace(_x) (TRUE)
|
||||
#define WifiTransmit(_x) wifi_transmit(_x)
|
||||
#define WifiSendMessage() wifi_send()
|
||||
|
||||
#define WifiTransportSizeOf(_dev, _x) (_x+4)
|
||||
#define WifiTransportCheckFreeSpace(_dev, x) TransportLink(_dev, CheckFreeSpace(x))
|
||||
#define WifiTransportPut1Byte(_dev, x) TransportLink(_dev, Transmit(x))
|
||||
#define WifiTransportSendMessage(_dev) TransportLink(_dev, SendMessage())
|
||||
|
||||
#define WifiTransportPutUint8(_dev, _byte) { \
|
||||
ck_a += _byte; \
|
||||
ck_b += ck_a; \
|
||||
WifiTransportPut1Byte(_dev, _byte); \
|
||||
}
|
||||
|
||||
#define WifiTransportPut1ByteByAddr(_dev, _byte) { \
|
||||
uint8_t _x = *(_byte); \
|
||||
WifiTransportPutUint8(_dev, _x); \
|
||||
}
|
||||
|
||||
#define WifiTransportPut2Bytes(_dev, _x) { \
|
||||
uint16_t x16 = _x; \
|
||||
WifiTransportPut1Byte(_dev, x16>>8); \
|
||||
WifiTransportPut1Byte(_dev, x16 & 0xff); \
|
||||
}
|
||||
|
||||
#define WifiTransportPut2ByteByAddr(_dev, _byte) { \
|
||||
WifiTransportPut1ByteByAddr(_dev, _byte); \
|
||||
WifiTransportPut1ByteByAddr(_dev, (const uint8_t*)_byte+1); \
|
||||
}
|
||||
|
||||
#define WifiTransportPut4ByteByAddr(_dev, _byte) { \
|
||||
WifiTransportPut2ByteByAddr(_dev, _byte); \
|
||||
WifiTransportPut2ByteByAddr(_dev, (const uint8_t*)_byte+2); \
|
||||
}
|
||||
|
||||
#ifdef __IEEE_BIG_ENDIAN // From machine/ieeefp.h
|
||||
#define WifiTransportPutDoubleByAddr(_dev, _byte) { \
|
||||
WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_byte+4); \
|
||||
WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_byte); \
|
||||
}
|
||||
#else
|
||||
#define WifiTransportPutDoubleByAddr(_dev, _byte) { \
|
||||
WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_byte); \
|
||||
WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_byte+4); \
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#define WifiTransportPutInt8ByAddr(_dev, _x) WifiTransportPut1ByteByAddr(_dev, _x)
|
||||
#define WifiTransportPutUint8ByAddr(_dev, _x) WifiTransportPut1ByteByAddr(_dev, (const uint8_t*)_x)
|
||||
#define WifiTransportPutInt16ByAddr(_dev, _x) WifiTransportPut2ByteByAddr(_dev, (const uint8_t*)_x)
|
||||
#define WifiTransportPutUint16ByAddr(_dev, _x) WifiTransportPut2ByteByAddr(_dev, (const uint8_t*)_x)
|
||||
#define WifiTransportPutInt32ByAddr(_dev, _x) WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_x)
|
||||
#define WifiTransportPutUint32ByAddr(_dev, _x) WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_x)
|
||||
#define WifiTransportPutFloatByAddr(_dev, _x) WifiTransportPut4ByteByAddr(_dev, (const uint8_t*)_x)
|
||||
#define WifiTransportPutNamedUint8(_dev, _name, _byte) WifiTransportPutUint8(_dev, _byte)
|
||||
|
||||
#define WifiTransportPutArray(_dev, _put, _n, _x) { \
|
||||
uint8_t _i; \
|
||||
WifiTransportPutUint8(_dev, _n); \
|
||||
for(_i = 0; _i < _n; _i++) { \
|
||||
_put(_dev, &_x[_i]); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define WifiTransportPutInt16Array(_dev, _n, _x) WifiTransportPutArray(_dev, WifiTransportPutInt16ByAddr, _n, _x)
|
||||
|
||||
#define WifiTransportPutUint16Array(_dev, _n, _x) WifiTransportPutArray(_dev, WifiTransportPutUint16ByAddr, _n, _x)
|
||||
#define WifiTransportPutUint8Array(_dev, _n, _x) WifiTransportPutArray(_dev, WifiTransportPutUint8ByAddr, _n, _x)
|
||||
#define WifiTransportPutFloatArray(_dev, _n, _x) WifiTransportPutArray(_dev, WifiTransportPutFloatByAddr, _n, _x)
|
||||
#define WifiTransportPutDoubleArray(_dev, _n, _x) WifiTransportPutArray(_dev, WifiTransportPutDoubleByAddr, _n, _x)
|
||||
|
||||
|
||||
#define WifiTransportHeader(_dev, payload_len) { \
|
||||
WifiTransportPut1Byte(_dev, STX); \
|
||||
uint8_t msg_len = WifiTransportSizeOf(_dev, payload_len); \
|
||||
WifiTransportPut1Byte(_dev, msg_len); \
|
||||
ck_a = msg_len; ck_b = msg_len; \
|
||||
}
|
||||
|
||||
#define WifiTransportTrailer(_dev) { \
|
||||
WifiTransportPut1Byte(_dev, ck_a); \
|
||||
WifiTransportPut1Byte(_dev, ck_b); \
|
||||
WifiTransportSendMessage(_dev); \
|
||||
}
|
||||
|
||||
#define WifiCheckAndParse() { \
|
||||
wifi_receive(); \
|
||||
}
|
||||
|
||||
#endif /* WIFI_TELEM_H */
|
||||
Reference in New Issue
Block a user