Renamed wifi to udp and started using PprzTransport again

This commit is contained in:
Dino Hensen
2013-06-09 16:06:52 +02:00
committed by Felix Ruess
parent 0dc71e30ff
commit 87abc4475d
11 changed files with 74 additions and 156 deletions
+1 -1
View File
@@ -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>
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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
+3 -3
View File
@@ -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(); \
}
+1 -1
View File
@@ -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;
+50
View File
@@ -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 */
-132
View File
@@ -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 */