X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=xbee_user.h;h=daedeee96c5578d64a7ed213dce8e60de984579a;hp=ced53630cc5429f38e2c4ce7ea6cb076ce26a72e;hb=608c07083a1bf61df3ef38415242dbf0f333b806;hpb=c17da94fafe8e0fa1a467f0c8fb7922fec8386e5 diff --git a/xbee_user.h b/xbee_user.h index ced5363..daedeee 100644 --- a/xbee_user.h +++ b/xbee_user.h @@ -29,6 +29,7 @@ #define _XBEE_USER_H_ #include +#include /* used for timeouts and xbee rx callback */ struct xbee_ctx { @@ -46,14 +47,28 @@ extern int xbee_raw; extern int xbee_hexdump; extern int xbee_debug; +/* we use a specific structure to send packets. It allows to prepend some + * data in the frame without doing a copy. */ +struct xbeeapp_pkt { + char *buf; + unsigned len; + unsigned headroom; + unsigned tailroom; +}; + +/* callback registered to xbee module, called when a xbee frame is received */ int8_t xbeeapp_rx(struct xbee_dev *dev, int channel, int type, - void *frame, unsigned len, void *opaque); -int xbeeapp_send_atcmd(const char *atcmd_str, - void *param, unsigned param_len, int foreground, - int (*func)(void *frame, unsigned len, void *arg), - void *arg); -int xbeeapp_send_msg(uint64_t addr, void *data, - unsigned data_len, int foreground); + void *frame, unsigned len, void *opaque); + +/* Send an AT command to the xbee device. The callback function for the answer + * is given as a parameter */ +int xbeeapp_send_atcmd(char *atcmd_str, void *param, + unsigned param_len, int foreground, + int (*func)(void *frame, unsigned len, void *arg), + void *arg); + +/* send a message to a peer */ +int xbeeapp_send_msg(uint64_t addr, struct xbee_msg *msg, int foreground); void xbee_stdin_enable(void); void xbee_stdin_disable(void);