/*Changed--------------------------------------------------------------------*/ static void tcpip_handler(void) { uint8_t *appdata; rimeaddr_t sender; uint8_t instance_id; uint8_t seqno; uint8_t hops; uint16_t len; if(uip_newdata()) { /*Handle receive message*/ appdata = (uint8_t *)uip_appdata; /* Get sender address */ sender.u8[0] = UIP_IP_BUF->srcipaddr.u8[15]; sender.u8[1] = UIP_IP_BUF->srcipaddr.u8[14]; instance_id = *appdata; // Read instance id seqno = *(appdata + 2); // Read sequence no hops = uip_ds6_if.cur_hop_limit - UIP_IP_BUF->ttl + 1; // Calculate hop count len = uip_datalen(); /*Show info message*/ printf("DATA recv, %d, %d, %d, %d, %d\n", UIP_IP_BUF->srcipaddr.u8[sizeof(UIP_IP_BUF->srcipaddr.u8) - 1], instance_id, seqno, hops ,len); collect_common_recv(&sender, seqno, hops, appdata + 4, uip_datalen() - 4); } }
/*---------------------------------------------------------------------------*/ static void tcpip_handler(void) { uint8_t *appdata; linkaddr_t sender; uint8_t seqno; uint8_t hops; if(uip_newdata()) { appdata = (uint8_t *)uip_appdata; sender.u8[0] = UIP_IP_BUF->srcipaddr.u8[15]; sender.u8[1] = UIP_IP_BUF->srcipaddr.u8[14]; seqno = *appdata; hops = uip_ds6_if.cur_hop_limit - UIP_IP_BUF->ttl + 1; collect_common_recv(&sender, seqno, hops, appdata + 2, uip_datalen() - 2); } }
/*---------------------------------------------------------------------------*/ static void tcpip_handler(void) { uint8_t *appdata; rimeaddr_t sender; uint8_t seqno; uint8_t hops; if(uip_newdata()) { appdata = (uint8_t *)uip_appdata; sender.u8[0] = UIP_IP_BUF->srcipaddr.u8[15]; sender.u8[1] = UIP_IP_BUF->srcipaddr.u8[14]; seqno = *appdata; hops = uip_ds6_if.cur_hop_limit - UIP_IP_BUF->ttl + 1; printf("sender:%u.%u ",sender.u8[0] ,sender.u8[1]); printf("last_rssi=%d\n",cc2420_last_rssi-45); collect_common_recv(&sender, seqno, hops, appdata + 2, uip_datalen() - 2); /* Ignore incoming data */ } }