counting rate and msg, bug fixed in CheckFreeSpace for XBee

This commit is contained in:
Pascal Brisset
2007-08-03 09:53:51 +00:00
parent 0ee905a7af
commit 80afdd1734
3 changed files with 17 additions and 7 deletions
+10 -3
View File
@@ -61,6 +61,9 @@ extern uint8_t telemetry_mode_Fbw;
/** Counter of messages not sent because of unavailibity of the output buffer*/
extern uint8_t downlink_nb_ovrn;
extern uint16_t downlink_nb_bytes;
extern uint16_t downlink_nb_msgs;
#define __Transport(dev, _x) dev##_x
#define _Transport(dev, _x) __Transport(dev, _x)
@@ -68,7 +71,9 @@ extern uint8_t downlink_nb_ovrn;
/** Set of macros for generated code (messages.h) from messages.xml */
#define DownlinkSizeOf(_x) Transport(SizeOf(_x))
/** 2 = ac_id + msg_id */
#define DownlinkIDsSize(_x) (_x+2)
#define DownlinkSizeOf(_x) Transport(SizeOf(DownlinkIDsSize(_x)))
#define DownlinkCheckFreeSpace(_x) Transport(CheckFreeSpace((uint8_t)(_x)))
@@ -87,10 +92,12 @@ extern uint8_t downlink_nb_ovrn;
#define DownlinkPutUint16Array(_n, _x) Transport(PutUint16Array(_n, _x))
#define DownlinkPutUint8Array(_n, _x) Transport(PutUint8Array(_n, _x))
#define DonwlinkOverrun() downlink_nb_ovrn++;
#define DownlinkOverrun() downlink_nb_ovrn++;
#define DownlinkCountBytes(_n) downlink_nb_bytes += _n;
#define DownlinkStartMessage(_name, msg_id, payload_len) { \
Transport(Header(payload_len)); \
downlink_nb_msgs++; \
Transport(Header(DownlinkIDsSize(payload_len))); \
Transport(PutUint8(AC_ID)); \
Transport(PutNamedUint8(_name, msg_id)); \
}
+2 -2
View File
@@ -33,8 +33,8 @@ extern uint8_t ck_a, ck_b;
#define STX 0x99
/** 6 = STX + len + ac_id + msg_id + ck_a + ck_b */
#define PprzTransportSizeOf(_payload) (_payload+6)
/** 4 = STX + len + ck_a + ck_b */
#define PprzTransportSizeOf(_payload) (_payload+4)
#define __Link(dev, _x) dev##_x
#define _Link(dev, _x) __Link(dev, _x)
+5 -2
View File
@@ -57,7 +57,10 @@ void xbee_init( void );
#define XBeePrintHex16(x) XBeeLink(PrintHex16(x))
#define XBeeTransportPut1Byte(x) XBeeLink(Transmit(x))
#define XBeeTransportCheckFreeSpace(x) XBeeLink(CheckFreeSpace(x))
#define XBeeTransportSizeOf(_x) (_x+5)
/* 5 = Start + len_msb + len_lsb + API_id + checksum */
#define XBeeAPISizeOf(_x) (_x+5)
/* 4 = frame_id + addr_msb + addr_lsb + options */
#define XBeeTransportSizeOf(_x) XBeeAPISizeOf(_x+4)
#define XBeeTransportSendMessage() XBeeLink(SendMessage())
#define XBeeTransportPutUint8(_x) { \
@@ -129,7 +132,7 @@ void xbee_init( void );
#define XBeeTransportHeader(_len) { \
XBeeTransportPut1Byte(XBEE_START); \
uint8_t payload_len = XBeeTransportSizeOf(_len + 2); \
uint8_t payload_len = XBeeAPISizeOf(_len); \
XBeeTransportPut2Bytes(payload_len); \
xbee_cs = 0; \
XBeeTransportPutTX16Header(); \