X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=rc_proto.c;h=b04e18cc1e63814119c19c19b888472d7f69e1d8;hp=fe5c928bcc048ea45e2847e48b85a4d347a3b6c8;hb=9d53e5fccc7924c9ac24b8963376fb30c79b968e;hpb=c552a01853bea12a3cd44e35be8c0df49ed7d7d0 diff --git a/rc_proto.c b/rc_proto.c index fe5c928..b04e18c 100644 --- a/rc_proto.c +++ b/rc_proto.c @@ -25,6 +25,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include + #include #include @@ -76,6 +78,26 @@ void rc_proto_rx_power_probe(int power_level) xbeeapp_send_atcmd("DB", NULL, 0, 0, update_power_level, NULL); } +/* send a hello message */ +// XXX iovec for xbee ? +int8_t rc_proto_send_hello(uint64_t addr, void *data, uint8_t data_len) +{ + struct { + struct rc_proto_echo_req hdr; + char buf[XBEE_MAX_FRAME_LEN - sizeof(struct rc_proto_echo_req)]; + } frame; + + if (data_len > sizeof(frame.buf)) + return -1; + + frame.hdr.type = RC_PROTO_HELLO; + frame.hdr.datalen = data_len; + memcpy(frame.buf, data, data_len); + return xbeeapp_send_msg(addr, &frame, + data_len + sizeof(struct rc_proto_echo_req), 1); +} + + #if 0 #define N_SERVO 6 #define SERVO_NBITS 10