message_t* rxBufPtr;
message_t rxBuf;
- /* packet vars */
- uint8_t seqNo; // for later use ...
-
/* state vars */
error_t splitStateError; // state of SplitControl interfaces
bool rxBusy; // blocks an incoming packet if the rxBuffer is in use
atomic {
rxBufPtr = &rxBuf;
txBufPtr = 0;
- seqNo = 0;
splitStateError = EOFF;
rxBusy = FALSE;
}
}
command error_t Send.send(message_t *msg, uint8_t len) {
- ++seqNo; // where to put?
- return call SendDown.send(msg, len);
+ if(getMetadata(msg)->ack != NO_ACK_REQUESTED) {
+ // ensure reasonable value
+ getMetadata(msg)->ack = ACK_REQUESTED;
+ }
+ return call SendDown.send(msg, len);
}
command error_t Send.cancel(message_t* msg) {
atomic {
if (rxBusy) {
msgPtr = msg;
- } else {
+ }
+ else {
rxBusy = TRUE;
msgPtr = rxBufPtr;
rxBufPtr = msg;
}
return msgPtr;
}
-
+
command void* Receive.getPayload(message_t* msg, uint8_t* len) {
return call Packet.getPayload(msg, len);
}