mirror of
https://github.com/oliverschmidt/contiki.git
synced 2025-01-18 03:30:31 +00:00
Added name to mac structure. Do not turn radio on when sending a broadcast packet. Changed default off time to half a second.
This commit is contained in:
parent
247de015b5
commit
1093a8fe28
@ -28,7 +28,7 @@
|
|||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: xmac.c,v 1.18 2008/02/25 02:14:35 adamdunkels Exp $
|
* $Id: xmac.c,v 1.19 2008/06/30 08:10:02 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -76,7 +76,7 @@ struct xmac_hdr {
|
|||||||
#ifdef XMAC_CONF_OFF_TIME
|
#ifdef XMAC_CONF_OFF_TIME
|
||||||
#define DEFAULT_OFF_TIME (XMAC_CONF_OFF_TIME)
|
#define DEFAULT_OFF_TIME (XMAC_CONF_OFF_TIME)
|
||||||
#else
|
#else
|
||||||
#define DEFAULT_OFF_TIME (RTIMER_ARCH_SECOND / 8 - DEFAULT_ON_TIME)
|
#define DEFAULT_OFF_TIME (RTIMER_ARCH_SECOND / 2 - DEFAULT_ON_TIME)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_STROBE_WAIT_TIME (7 * DEFAULT_ON_TIME / 8)
|
#define DEFAULT_STROBE_WAIT_TIME (7 * DEFAULT_ON_TIME / 8)
|
||||||
@ -260,6 +260,7 @@ send_packet(void)
|
|||||||
int got_ack = 0;
|
int got_ack = 0;
|
||||||
struct xmac_hdr msg;
|
struct xmac_hdr msg;
|
||||||
int len;
|
int len;
|
||||||
|
int is_broadcast = 0;
|
||||||
|
|
||||||
#if WITH_TIMETABLE
|
#if WITH_TIMETABLE
|
||||||
TIMETABLE_TIMESTAMP(xmac_timetable, "send");
|
TIMETABLE_TIMESTAMP(xmac_timetable, "send");
|
||||||
@ -297,6 +298,9 @@ send_packet(void)
|
|||||||
hdr = rimebuf_hdrptr();
|
hdr = rimebuf_hdrptr();
|
||||||
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&hdr->receiver, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
rimeaddr_copy(&hdr->receiver, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
||||||
|
if(rimeaddr_cmp(&hdr->receiver, &rimeaddr_null)) {
|
||||||
|
is_broadcast = 1;
|
||||||
|
}
|
||||||
rimebuf_compact();
|
rimebuf_compact();
|
||||||
|
|
||||||
t0 = RTIMER_NOW();
|
t0 = RTIMER_NOW();
|
||||||
@ -308,9 +312,10 @@ send_packet(void)
|
|||||||
|
|
||||||
/* Send a train of strobes until the receiver answers with an ACK. */
|
/* Send a train of strobes until the receiver answers with an ACK. */
|
||||||
|
|
||||||
/* Turn on the radio to listen for the strobe ACK. XXX for
|
/* Turn on the radio to listen for the strobe ACK. */
|
||||||
broadcasts, don't turn radio on at all. */
|
if(!is_broadcast) {
|
||||||
on();
|
on();
|
||||||
|
}
|
||||||
|
|
||||||
watchdog_stop();
|
watchdog_stop();
|
||||||
got_ack = 0;
|
got_ack = 0;
|
||||||
@ -377,6 +382,7 @@ send_packet(void)
|
|||||||
keep it on() for a while. */
|
keep it on() for a while. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Send the data packet. */
|
||||||
if(rimeaddr_cmp(&hdr->receiver, &rimeaddr_null) || got_ack) {
|
if(rimeaddr_cmp(&hdr->receiver, &rimeaddr_null) || got_ack) {
|
||||||
#if WITH_TIMETABLE
|
#if WITH_TIMETABLE
|
||||||
TIMETABLE_TIMESTAMP(xmac_timetable, "send packet");
|
TIMETABLE_TIMESTAMP(xmac_timetable, "send packet");
|
||||||
@ -574,6 +580,7 @@ turn_off(int keep_radio_on)
|
|||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
const struct mac_driver xmac_driver =
|
const struct mac_driver xmac_driver =
|
||||||
{
|
{
|
||||||
|
"X-MAC",
|
||||||
qsend_packet,
|
qsend_packet,
|
||||||
read_packet,
|
read_packet,
|
||||||
set_receive_function,
|
set_receive_function,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user