X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fcc2420%2Fcsma%2FCC2420CsmaP.nc;h=c0d5ef37e8972991536570b0fc1287251bb4d317;hb=10c02f9ece9b5ee20aa93c877d70fa6689ef7a7d;hp=64a9852433ae71fd685d0359665dd2437d0ef8d8;hpb=12235829757689b4afb8f04001109a452d2b35d2;p=tinyos-2.x.git diff --git a/tos/chips/cc2420/csma/CC2420CsmaP.nc b/tos/chips/cc2420/csma/CC2420CsmaP.nc index 64a98524..c0d5ef37 100644 --- a/tos/chips/cc2420/csma/CC2420CsmaP.nc +++ b/tos/chips/cc2420/csma/CC2420CsmaP.nc @@ -34,7 +34,7 @@ * @version $Revision$ $Date$ */ -module CC2420CsmaP { +module CC2420CsmaP @safe() { provides interface SplitControl; provides interface Send; @@ -63,7 +63,7 @@ implementation { S_TRANSMITTING, }; - message_t* m_msg; + message_t* ONE_NOK m_msg; error_t sendErr = SUCCESS; @@ -72,7 +72,6 @@ implementation { /****************** Prototypes ****************/ task void startDone_task(); - task void startDone_task(); task void stopDone_task(); task void sendDone_task(); @@ -134,7 +133,7 @@ implementation { m_msg = p_msg; } - header->length = len; + header->length = len + CC2420_SIZE; header->fcf &= 1 << IEEE154_FCF_ACK_REQ; header->fcf |= ( ( IEEE154_TYPE_DATA << IEEE154_FCF_FRAME_TYPE ) | ( 1 << IEEE154_FCF_INTRAPAN ) | @@ -144,8 +143,9 @@ implementation { metadata->ack = FALSE; metadata->rssi = 0; metadata->lqi = 0; - metadata->time = 0; - + metadata->timesync = FALSE; + metadata->timestamp = CC2420_INVALID_TIMESTAMP; + ccaOn = TRUE; signal RadioBackoff.requestCca(m_msg); @@ -156,7 +156,7 @@ implementation { command void* Send.getPayload(message_t* m, uint8_t len) { if (len <= call Send.maxPayloadLength()) { - return m->data; + return (void* COUNT_NOK(len))m->data; } else { return NULL;