diff --git a/sw/airborne/subsystems/datalink/datalink.h b/sw/airborne/subsystems/datalink/datalink.h index a2435b58f7..f6df7af25d 100644 --- a/sw/airborne/subsystems/datalink/datalink.h +++ b/sw/airborne/subsystems/datalink/datalink.h @@ -67,25 +67,26 @@ EXTERN void dl_parse_msg(void); } \ } -#if DATALINK == PPRZ +#if defined DATALINK && DATALINK == PPRZ #define DatalinkEvent() { \ - PprzCheckAndParse(PPRZ_UART, pprz_tp); \ - DlCheckAndParse(); \ -} + PprzCheckAndParse(PPRZ_UART, pprz_tp); \ + DlCheckAndParse(); \ + } -#elif DATALINK == XBEE +#elif defined DATALINK && DATALINK == XBEE #define DatalinkEvent() { \ - XBeeCheckAndParse(XBEE_UART, xbee_tp); \ - DlCheckAndParse(); \ -} + XBeeCheckAndParse(XBEE_UART, xbee_tp); \ + DlCheckAndParse(); \ + } -#elif DATALINK == W5100 -#define DatalinkEvent() { \ - W5100CheckAndParse(W5100, w5100_tp); \ - DlCheckAndParse(); \ -} +#elif defined DATALINK && DATALINK == W5100 + +#define DatalinkEvent() { \ + W5100CheckAndParse(W5100, w5100_tp); \ + DlCheckAndParse(); \ + } #else diff --git a/sw/airborne/subsystems/datalink/downlink.h b/sw/airborne/subsystems/datalink/downlink.h index 82a5db4df0..b76d245492 100644 --- a/sw/airborne/subsystems/datalink/downlink.h +++ b/sw/airborne/subsystems/datalink/downlink.h @@ -42,7 +42,6 @@ #include "sim_uart.h" #include "subsystems/datalink/pprz_transport.h" #include "subsystems/datalink/xbee.h" -#include "subsystems/datalink/w5100.h" #else /* SIM_UART */ /** Software In The Loop simulation uses IVY bus directly as the transport layer */ #include "ivy_transport.h" diff --git a/sw/airborne/subsystems/datalink/w5100.h b/sw/airborne/subsystems/datalink/w5100.h index e99455faf1..56f47b1db9 100644 --- a/sw/airborne/subsystems/datalink/w5100.h +++ b/sw/airborne/subsystems/datalink/w5100.h @@ -65,6 +65,7 @@ extern struct w5100_periph chip0; //extern uint8_t ck_a, ck_b; void w5100_init( void ); + void w5100_transmit( uint8_t data ); uint16_t w5100_receive( uint8_t *buf, uint16_t len ); void w5100_send( void ); @@ -87,43 +88,43 @@ bool_t w5100_ch_available( void ); #define W5100TransportPut1Byte(_dev, x) TransportLink(_dev, Transmit(x)) #define W5100TransportSendMessage(_dev) TransportLink(_dev, SendMessage()) -#define W5100TransportPutUint8(_dev, _byte) { \ -ck_a += _byte; \ -ck_b += ck_a; \ -W5100TransportPut1Byte(_dev, _byte); \ -} +#define W5100TransportPutUint8(_dev, _byte) { \ + ck_a += _byte; \ + ck_b += ck_a; \ + W5100TransportPut1Byte(_dev, _byte); \ + } #define W5100TransportPut1ByteByAddr(_dev, _byte) { \ -uint8_t _x = *(_byte); \ -W5100TransportPutUint8(_dev, _x); \ -} + uint8_t _x = *(_byte); \ + W5100TransportPutUint8(_dev, _x); \ + } -#define W5100TransportPut2Bytes(_dev, _x) { \ -uint16_t x16 = _x; \ -W5100TransportPut1Byte(_dev, x16>>8); \ -W5100TransportPut1Byte(_dev, x16 & 0xff); \ -} +#define W5100TransportPut2Bytes(_dev, _x) { \ + uint16_t x16 = _x; \ + W5100TransportPut1Byte(_dev, x16>>8); \ + W5100TransportPut1Byte(_dev, x16 & 0xff); \ + } -#define W5100TransportPut2ByteByAddr(_dev, _byte) { \ -W5100TransportPut1ByteByAddr(_dev, _byte); \ -W5100TransportPut1ByteByAddr(_dev, (const uint8_t*)_byte+1); \ -} +#define W5100TransportPut2ByteByAddr(_dev, _byte) { \ + W5100TransportPut1ByteByAddr(_dev, _byte); \ + W5100TransportPut1ByteByAddr(_dev, (const uint8_t*)_byte+1); \ + } -#define W5100TransportPut4ByteByAddr(_dev, _byte) { \ -W5100TransportPut2ByteByAddr(_dev, _byte); \ -W5100TransportPut2ByteByAddr(_dev, (const uint8_t*)_byte+2); \ -} +#define W5100TransportPut4ByteByAddr(_dev, _byte) { \ + W5100TransportPut2ByteByAddr(_dev, _byte); \ + W5100TransportPut2ByteByAddr(_dev, (const uint8_t*)_byte+2); \ + } #ifdef __IEEE_BIG_ENDIAN // From machine/ieeefp.h -#define W5100TransportPutDoubleByAddr(_dev, _byte) { \ -W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte+4); \ -W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte); \ -} +#define W5100TransportPutDoubleByAddr(_dev, _byte) { \ + W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte+4); \ + W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte); \ + } #else -#define W5100TransportPutDoubleByAddr(_dev, _byte) { \ -W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte); \ -W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte+4); \ -} +#define W5100TransportPutDoubleByAddr(_dev, _byte) { \ + W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte); \ + W5100TransportPut4ByteByAddr(_dev, (const uint8_t*)_byte+4); \ + } #endif @@ -249,15 +250,15 @@ static inline void w5100_read_buffer( struct w5100_transport *t ) { #define W5100Buffer(_dev) TransportLink(_dev,ChAvailable()) -#define W5100CheckAndParse(_dev,_trans) { \ -if (W5100Buffer(_dev)) { \ -w5100_read_buffer( &(_trans) ); \ -if (_trans.trans.msg_received) { \ -w5100_parse_payload(&(_trans)); \ -_trans.trans.msg_received = FALSE; \ -} \ -} \ -} +#define W5100CheckAndParse(_dev,_trans) { \ + if (W5100Buffer(_dev)) { \ + w5100_read_buffer( &(_trans) ); \ + if (_trans.trans.msg_received) { \ + w5100_parse_payload(&(_trans)); \ + _trans.trans.msg_received = FALSE; \ + } \ + } \ + } #endif /* W5100_TELEM_H */