X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=xbee_user.c;h=a4cb84f54499d859567f758b681c492f58f39892;hp=fca39b65cd96c406b3a4c71daa40bd46a946f848;hb=0373c0e13f4a81426ee5084c0c1ee148bc6b935a;hpb=8e219fe02de38683879295e5bd42b67ce9d5b849 diff --git a/xbee_user.c b/xbee_user.c index fca39b6..a4cb84f 100644 --- a/xbee_user.c +++ b/xbee_user.c @@ -235,64 +235,6 @@ static int parse_atcmd(struct xbee_ctx *ctx, struct xbee_atresp_hdr *frame, } -int xbee_recv_data(struct xbee_recv_hdr *recvframe, unsigned len) -{ - unsigned int datalen; - struct rc_proto_hdr *rch = (struct rc_proto_hdr *) &recvframe->data; - - if (len < sizeof(*recvframe)) - return -1; - - datalen = len - sizeof(*recvframe); - if (datalen < sizeof(struct rc_proto_hdr)) - return -1; - - switch (rch->type) { -#if 0 - case RC_PROTO_TYPE_CHANNEL: { - struct rc_proto_channel *rcc = - (struct rc_proto_channel *) recvframe->data; - int16_t val; - if (datalen != sizeof(struct rc_proto_channel)) - return -1; - val = ntohs(rcc->axis[0]); - val >>= 6; - val += 512; - spi_servo_set(0, val); - break; - } -#endif - case RC_PROTO_POWER_PROBE: { - struct rc_proto_power_probe *rcpb = - (struct rc_proto_power_probe *) recvframe->data; - - if (datalen != sizeof(*rcpb)) - return -1; - - if (rcpb->power_level >= MAX_POWER_LEVEL) - return -1; - - //rc_proto_rx_range(rcpb->power_level); - - break; - } - - case RC_PROTO_HELLO: { - struct rc_proto_hello *rch = - (struct rc_proto_hello *) recvframe->data; - - NOTICE(E_USER_XBEE, "recv hello len=%d", - rch->datalen); - /* XXX stats */ - break; - } - default: - return -1; - } - - return 0; -} - /* main rx entry point for application */ int8_t xbeeapp_rx(struct xbee_dev *dev, int channel, int type, void *frame, unsigned len, void *opaque) @@ -358,7 +300,7 @@ int8_t xbeeapp_rx(struct xbee_dev *dev, int channel, int type, } case XBEE_TYPE_RECV: { - if (xbee_recv_data(frame, len) < 0) + if (rc_proto_rx(frame, len) < 0) ret = XBEE_USER_RETCODE_BAD_FRAME; break;