[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/GGB/tos/lib/Straw
Straw.h, 1.1, 1.2 StrawC.nc, 1.1, 1.2 StrawM.nc, 1.1, 1.2
Sukun Kim
binetude at users.sourceforge.net
Thu Nov 30 15:12:25 PST 2006
- Previous message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/GGB/tos/sensorboards/ggbacltst
Accel.nc, 1.4, 1.5
- Next message: [Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/GGB/apps/LRX
LRX.nc, 1.1, NONE LRXMsg.h, 1.1, NONE LRXReceive.nc, 1.1,
NONE LRXSend.nc, 1.1, NONE Makefile, 1.1, NONE README, 1.1,
NONE ReceiveLargeMsgReliably.nc, 1.1,
NONE SendLargeMsgReliably.nc, 1.1, NONE SimpleCmdMsg.h, 1.1,
NONE SingleHopTest.nc, 1.1, NONE SingleHopTestM.nc, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-1.x/contrib/GGB/tos/lib/Straw
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv23195
Modified Files:
Straw.h StrawC.nc StrawM.nc
Log Message:
Index: Straw.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/GGB/tos/lib/Straw/Straw.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Straw.h 19 May 2005 03:37:03 -0000 1.1
--- Straw.h 30 Nov 2006 23:12:23 -0000 1.2
***************
*** 26,31 ****
STRAW_TRANSFER_DATA = 6,
STRAW_RANDOM_READ = 7,
! DIVERGE_HEADER_LENGTH = 3,
STRAWCMDMSG_LENGTH = TOSH_DATA_LENGTH - DIVERGE_HEADER_LENGTH,
--- 26,32 ----
STRAW_TRANSFER_DATA = 6,
STRAW_RANDOM_READ = 7,
+ STRAW_ERR_CHK = 9,
! DIVERGE_HEADER_LENGTH = 2,
STRAWCMDMSG_LENGTH = TOSH_DATA_LENGTH - DIVERGE_HEADER_LENGTH,
***************
*** 37,40 ****
--- 38,42 ----
STRAW_NETWORK_INFO_REPLY = 1,
STRAW_DATA_REPLY = 8,
+ STRAW_ERR_CHK_REPLY = 9,
CONVERGE_HEADER_LENGTH = 7,
***************
*** 46,60 ****
};
typedef struct {
uint16_t type;
! } __attribute__ ((packed)) CmnDummy;
typedef struct {
uint16_t type;
- uint16_t uartOnlyDelay;
- uint16_t uartDelay;
- uint16_t radioDelay;
uint8_t toUART;
! } __attribute__ ((packed)) NetworkInfo;
typedef struct {
--- 48,61 ----
};
+
+
typedef struct {
uint16_t type;
! } CmnDummy;
typedef struct {
uint16_t type;
uint8_t toUART;
! } NetworkInfo;
typedef struct {
***************
*** 62,71 ****
uint32_t start;
uint32_t size;
uint8_t toUART;
! } __attribute__ ((packed)) TransferData;
typedef struct {
uint16_t seqNo[MAX_RANDOM_READ_SEQNO_SIZE];
! } __attribute__ ((packed)) RandomRead;
typedef struct StrawCmdMsg {
--- 63,82 ----
uint32_t start;
uint32_t size;
+
+ uint16_t uartOnlyDelay;
+ uint16_t uartDelay;
+ uint16_t radioDelay;
uint8_t toUART;
! uint8_t portId;
! } TransferData;
typedef struct {
uint16_t seqNo[MAX_RANDOM_READ_SEQNO_SIZE];
! } RandomRead;
!
! typedef struct {
! uint16_t type;
! uint8_t toUART;
! } ErrChk;
typedef struct StrawCmdMsg {
***************
*** 76,81 ****
TransferData td;
RandomRead rr;
} arg;
! } __attribute__ ((packed)) StrawCmdMsg;
--- 87,93 ----
TransferData td;
RandomRead rr;
+ ErrChk ec;
} arg;
! } StrawCmdMsg;
***************
*** 83,100 ****
typedef struct {
uint16_t type;
! } __attribute__ ((packed)) CmnDummyReply;
typedef struct {
uint16_t type;
uint16_t parent;
uint8_t depth;
uint8_t occupancy;
uint8_t quality;
! } __attribute__ ((packed)) NetworkInfoReply;
typedef struct {
uint16_t seqNo;
uint8_t data[MAX_DATA_REPLY_DATA_SIZE];
! } __attribute__ ((packed)) DataReply;
typedef struct StrawReplyMsg {
--- 95,122 ----
typedef struct {
uint16_t type;
! } CmnDummyReply;
typedef struct {
uint16_t type;
+ uint16_t uartOnlyDelay;
+ uint16_t uartDelay;
+ uint16_t radioDelay;
+
uint16_t parent;
uint8_t depth;
uint8_t occupancy;
uint8_t quality;
! } NetworkInfoReply;
typedef struct {
uint16_t seqNo;
uint8_t data[MAX_DATA_REPLY_DATA_SIZE];
! } DataReply;
!
! typedef struct {
! uint16_t type;
! uint16_t checksum;
! uint16_t bffrChk;
! } ErrChkReply;
typedef struct StrawReplyMsg {
***************
*** 103,111 ****
NetworkInfoReply nir;
DataReply dr;
} arg;
! } __attribute__ ((packed)) StrawReplyMsg;
typedef struct StrawUARTMsg {
StrawReplyMsg dummy;
! } __attribute__ ((packed)) StrawUARTMsg;
--- 125,134 ----
NetworkInfoReply nir;
DataReply dr;
+ ErrChkReply ecr;
} arg;
! } StrawReplyMsg;
typedef struct StrawUARTMsg {
StrawReplyMsg dummy;
! } StrawUARTMsg;
Index: StrawC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/GGB/tos/lib/Straw/StrawC.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** StrawC.nc 19 May 2005 03:37:03 -0000 1.1
--- StrawC.nc 30 Nov 2006 23:12:23 -0000 1.2
***************
*** 4,44 ****
provides {
interface StdControl;
! interface Straw;
}
}
implementation
{
! components StrawM,
Bcast,
- ////DripC, DripStateC,
WMEWMAMultiHopRouter as multihopM,
! QueuedSend,
! GenericCommPromiscuous as Comm,
! TimerC;
! StdControl = StrawM;
StdControl = Bcast;
- ////StdControl = Drip;
StdControl = multihopM;
! StdControl = QueuedSend;
! StdControl = Comm;
! StdControl = TimerC;
Straw = StrawM;
StrawM.ReceiveCmd -> Bcast.Receive[AM_STRAWCMDMSG];
Bcast.ReceiveMsg[AM_STRAWCMDMSG] -> Comm.ReceiveMsg[AM_STRAWCMDMSG];
- ////StrawM.ReceiveCmd -> Drip.Receive[AM_STRAWCMDMSG];
- ////StrawM.Drip -> DripC.Drip[AM_STRAWCMDMSG];
- ////DripC.DripState[AM_STRAWCMDMSG] ->
- //// DripStateC.DripState[unique("DripState")];
-
- StrawM.SendReply -> multihopM.Send[AM_STRAWREPLYMSG];
- multihopM.ReceiveMsg[AM_STRAWREPLYMSG] -> Comm.ReceiveMsg[AM_STRAWREPLYMSG];
-
- StrawM.SendUART -> QueuedSend.SendMsg[AM_STRAWUARTMSG];
StrawM.RouteControl -> multihopM;
! StrawM.Timer -> TimerC.Timer[unique("Timer")];
}
--- 4,38 ----
provides {
interface StdControl;
! interface Straw[uint8_t id];
}
}
implementation
{
! components
! TimerC,
! GenericCommPromiscuous as Comm,
! QueuedSend,
Bcast,
WMEWMAMultiHopRouter as multihopM,
! StrawM;
! StdControl = TimerC;
! StdControl = Comm;
! StdControl = QueuedSend;
StdControl = Bcast;
StdControl = multihopM;
! StdControl = StrawM;
Straw = StrawM;
+ StrawM.ShootingTimer -> TimerC.Timer[unique("Timer")];
+ StrawM.SendUART -> QueuedSend.SendMsg[AM_STRAWUARTMSG];
+
StrawM.ReceiveCmd -> Bcast.Receive[AM_STRAWCMDMSG];
Bcast.ReceiveMsg[AM_STRAWCMDMSG] -> Comm.ReceiveMsg[AM_STRAWCMDMSG];
StrawM.RouteControl -> multihopM;
! StrawM.SendReply -> multihopM.Send[AM_STRAWREPLYMSG];
! multihopM.ReceiveMsg[AM_STRAWREPLYMSG] -> Comm.ReceiveMsg[AM_STRAWREPLYMSG];
}
Index: StrawM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/GGB/tos/lib/Straw/StrawM.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** StrawM.nc 19 May 2005 03:37:03 -0000 1.1
--- StrawM.nc 30 Nov 2006 23:12:23 -0000 1.2
***************
*** 1,15 ****
module StrawM
{
provides {
interface StdControl;
! interface Straw;
}
uses {
! interface Receive as ReceiveCmd;
! ////interface Drip;
! interface Send as SendReply;
interface SendMsg as SendUART;
interface RouteControl;
! interface Timer;
}
}
--- 1,17 ----
+ includes Straw;
module StrawM
{
provides {
interface StdControl;
! interface Straw[uint8_t id];
}
uses {
! interface Timer as ShootingTimer;
interface SendMsg as SendUART;
+
+ interface Receive as ReceiveCmd;
+
interface RouteControl;
! interface Send as SendReply;
}
}
***************
*** 18,26 ****
enum {
NO_OF_BFFR = 5,
! RADIUS_OF_INTERFERENCE = 3,
};
uint16_t UART_ONLY_DELAY = (TOSH_DATA_LENGTH * 7 + 157) / 36;
uint16_t UART_DELAY = (TOSH_DATA_LENGTH * 7 + 85) / 36;
uint16_t RADIO_DELAY = (TOSH_DATA_LENGTH * 7 + 234) / 19;
// Buffer space for drip. But it will not be processed later. //
--- 20,32 ----
enum {
NO_OF_BFFR = 5,
! RADIUS_OF_INTERFERENCE = 5,
};
uint16_t UART_ONLY_DELAY = (TOSH_DATA_LENGTH * 7 + 157) / 36;
uint16_t UART_DELAY = (TOSH_DATA_LENGTH * 7 + 85) / 36;
+ #if defined(PLATFORM_MICA2)
uint16_t RADIO_DELAY = (TOSH_DATA_LENGTH * 7 + 234) / 19;
+ #elif defined(PLATFORM_TELOSB) || defined(PLATFORM_MICAZ)
+ uint16_t RADIO_DELAY = (TOSH_DATA_LENGTH * 7 + 234) / 65;
+ #endif
// Buffer space for drip. But it will not be processed later. //
***************
*** 38,41 ****
--- 44,48 ----
uint8_t replyIndex;
+ uint8_t portId;
uint32_t start;
uint32_t size;
***************
*** 47,54 ****
--- 54,122 ----
uint32_t dataIndex;
uint8_t seqNoIndex;
+ uint8_t readingSize;
+
+ uint16_t checksum;
uint8_t depth;
+ command result_t StdControl.init() {
+ return SUCCESS;
+ }
+ command result_t StdControl.start() {
+ uint8_t i;
+ state = STRAW_IDLE_STATE;
+ subState = STRAW_SUB_IDLE;
+ for (i = 0; i < NO_OF_BFFR; i++) {
+ reply[i] = (StrawReplyMsg *) call SendReply.getBuffer(&replyBffr[i],
+ &replyLen[i]);
+ bffrState[i] = STRAW_BFFR_EMPTY;
+ }
+ replyIndex = 0;
+ return SUCCESS;
+ }
+ command result_t StdControl.stop() {
+ state = STRAW_IDLE_STATE;
+ subState = STRAW_SUB_IDLE;
+ return SUCCESS;
+ }
+
+
+
+ /*
+ uint8_t getCRC(uint8_t currentCrc, uint8_t byteStream) {
+ uint8_t i;
+ currentCrc = currentCrc ^ byteStream;
+ for (i = 0; i < 8; i++) {
+ if (currentCrc & 0x8000) {
+ currentCrc = currentCrc << 1 ^ 0x07;
+ } else {
+ currentCrc = currentCrc << 1;
+ }
+ }
+ return currentCrc;
+ }*/
+ command result_t Straw.readDone[uint8_t id](result_t success) {
+ // all //
+ uint8_t i;
+ if (success) {
+ bffrState[replyIndex] = STRAW_BFFR_READDONE;
+ if (state == STRAW_TRANSFER_DATA) {
+ dataIndex += readingSize;
+
+ for (i = 0; i < readingSize; i++)
+ checksum += reply[replyIndex]->arg.dr.data[i];
+
+ } else if (state == STRAW_RANDOM_READ) {
+ ++seqNoIndex;
+ }
+ } else {
+ bffrState[replyIndex] = STRAW_BFFR_EMPTY;
+ }
+ return SUCCESS;
+ }
+
+
+
void adjPktIntrv() {
if (subState == STRAW_SUB_PROC && !toUART) {
***************
*** 58,64 ****
if (tempDepth != depth) {
! call Timer.stop();
depth = tempDepth;
! call Timer.start(TIMER_REPEAT, depth < RADIUS_OF_INTERFERENCE
? UART_DELAY + depth * RADIO_DELAY
: RADIUS_OF_INTERFERENCE * RADIO_DELAY);
--- 126,132 ----
if (tempDepth != depth) {
! call ShootingTimer.stop();
depth = tempDepth;
! call ShootingTimer.start(TIMER_REPEAT, depth < RADIUS_OF_INTERFERENCE
? UART_DELAY + depth * RADIO_DELAY
: RADIUS_OF_INTERFERENCE * RADIO_DELAY);
***************
*** 69,77 ****
// tdNext and rrNext assume at least 1 packet //
task void tdNext() {
- uint8_t readingSize;
if (dataIndex == start + size) {
subState = STRAW_SUB_FNSHD;
! call Timer.stop();
} else if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
--- 137,149 ----
// tdNext and rrNext assume at least 1 packet //
task void tdNext() {
if (dataIndex == start + size) {
subState = STRAW_SUB_FNSHD;
! call ShootingTimer.stop();
! if (bffrState[(replyIndex + NO_OF_BFFR - 1) % NO_OF_BFFR]
! != STRAW_BFFR_SENDING) {
! state = STRAW_IDLE_STATE;
! subState = STRAW_SUB_IDLE;
! }
} else if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
***************
*** 80,88 ****
? start + size - dataIndex : MAX_DATA_REPLY_DATA_SIZE;
! if (signal Straw.read(dataIndex, readingSize,
reply[replyIndex]->arg.dr.data)) {
reply[replyIndex]->arg.dr.seqNo = (dataIndex - start)
/ MAX_DATA_REPLY_DATA_SIZE + STRAW_TYPE_SHIFT;
- dataIndex += readingSize;
bffrState[replyIndex] = STRAW_BFFR_READING;
} else {
--- 152,159 ----
? start + size - dataIndex : MAX_DATA_REPLY_DATA_SIZE;
! if (signal Straw.read[portId](dataIndex, readingSize,
reply[replyIndex]->arg.dr.data)) {
reply[replyIndex]->arg.dr.seqNo = (dataIndex - start)
/ MAX_DATA_REPLY_DATA_SIZE + STRAW_TYPE_SHIFT;
bffrState[replyIndex] = STRAW_BFFR_READING;
} else {
***************
*** 96,106 ****
task void rrNext() {
uint32_t readingStart;
! uint8_t readingSize;
!
if ((seqNoIndex == MAX_RANDOM_READ_SEQNO_SIZE)
|| (cmd->arg.rr.seqNo[seqNoIndex] == STRAW_RANDOM_READ)) {
subState = STRAW_SUB_FNSHD;
! call Timer.stop();
!
} else if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
|| (bffrState[replyIndex] == STRAW_BFFR_READDONE)) {
--- 167,181 ----
task void rrNext() {
uint32_t readingStart;
!
if ((seqNoIndex == MAX_RANDOM_READ_SEQNO_SIZE)
|| (cmd->arg.rr.seqNo[seqNoIndex] == STRAW_RANDOM_READ)) {
subState = STRAW_SUB_FNSHD;
! call ShootingTimer.stop();
! if (bffrState[(replyIndex + NO_OF_BFFR - 1) % NO_OF_BFFR]
! != STRAW_BFFR_SENDING) {
! state = STRAW_IDLE_STATE;
! subState = STRAW_SUB_IDLE;
! }
!
} else if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
|| (bffrState[replyIndex] == STRAW_BFFR_READDONE)) {
***************
*** 111,118 ****
? start + size - readingStart : MAX_DATA_REPLY_DATA_SIZE;
! if (signal Straw.read(readingStart, readingSize,
reply[replyIndex]->arg.dr.data)) {
reply[replyIndex]->arg.dr.seqNo = cmd->arg.rr.seqNo[seqNoIndex];
- ++seqNoIndex;
bffrState[replyIndex] = STRAW_BFFR_READING;
} else {
--- 186,192 ----
? start + size - readingStart : MAX_DATA_REPLY_DATA_SIZE;
! if (signal Straw.read[portId](readingStart, readingSize,
reply[replyIndex]->arg.dr.data)) {
reply[replyIndex]->arg.dr.seqNo = cmd->arg.rr.seqNo[seqNoIndex];
bffrState[replyIndex] = STRAW_BFFR_READING;
} else {
***************
*** 120,144 ****
}
}
adjPktIntrv();
}
! command result_t Straw.readDone(result_t success) {
! // all //
! bffrState[replyIndex] = success ? STRAW_BFFR_READDONE : STRAW_BFFR_EMPTY;
return SUCCESS;
}
task void cmdIntpr() {
subState = STRAW_SUB_FIRST;
! call Timer.start(TIMER_ONE_SHOT, RADIUS_OF_INTERFERENCE * RADIO_DELAY);
switch (state) {
case STRAW_NETWORK_INFO:
- UART_ONLY_DELAY = cmd->arg.ni.uartOnlyDelay;
- UART_DELAY = cmd->arg.ni.uartDelay;
- RADIO_DELAY = cmd->arg.ni.radioDelay;
toUART = cmd->arg.ni.toUART;
if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
|| (bffrState[replyIndex] == STRAW_BFFR_READDONE)) {
reply[replyIndex]->arg.nir.type = STRAW_NETWORK_INFO_REPLY;
reply[replyIndex]->arg.nir.parent = call RouteControl.getParent();
reply[replyIndex]->arg.nir.depth = call RouteControl.getDepth();
--- 194,272 ----
}
}
+
adjPktIntrv();
}
!
!
! result_t timerStart() {
! subState = STRAW_SUB_PROC;
! depth = call RouteControl.getDepth();
! if (depth > RADIUS_OF_INTERFERENCE) depth = RADIUS_OF_INTERFERENCE;
! return call ShootingTimer.start(TIMER_REPEAT, toUART
! ? UART_ONLY_DELAY
! : (depth < RADIUS_OF_INTERFERENCE ? UART_DELAY + depth * RADIO_DELAY
! : RADIUS_OF_INTERFERENCE * RADIO_DELAY));
! }
! task void timerTask() {
! if (bffrState[replyIndex] == STRAW_BFFR_READDONE) {
! if (toUART) {
! bffrState[replyIndex] = call SendUART.send(TOS_UART_ADDR,
! TOSH_DATA_LENGTH, &replyBffr[replyIndex])
! ? STRAW_BFFR_SENDING : STRAW_BFFR_EMPTY;
! } else {
! bffrState[replyIndex] = call SendReply.send(&replyBffr[replyIndex],
! sizeof(StrawReplyMsg))
! ? STRAW_BFFR_SENDING : STRAW_BFFR_EMPTY;
! }
! }
! replyIndex = (replyIndex + 1) % NO_OF_BFFR;
!
! switch (state) {
! case STRAW_NETWORK_INFO:
! subState = STRAW_SUB_FNSHD;
! break;
! case STRAW_TRANSFER_DATA:
! if (subState == STRAW_SUB_FIRST) {
! subState = STRAW_SUB_PROC;
! timerStart();
! }
! post tdNext();
! break;
! case STRAW_RANDOM_READ:
! if (subState == STRAW_SUB_FIRST) {
! subState = STRAW_SUB_PROC;
! timerStart();
! }
! post rrNext();
! break;
! case STRAW_ERR_CHK:
! subState = STRAW_SUB_FNSHD;
! break;
! default:
! break;
! }
! }
! event result_t ShootingTimer.fired() {
! post timerTask();
return SUCCESS;
}
+
+
task void cmdIntpr() {
subState = STRAW_SUB_FIRST;
! call ShootingTimer.start(TIMER_ONE_SHOT,
! RADIUS_OF_INTERFERENCE * RADIO_DELAY);
switch (state) {
case STRAW_NETWORK_INFO:
toUART = cmd->arg.ni.toUART;
if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
|| (bffrState[replyIndex] == STRAW_BFFR_READDONE)) {
reply[replyIndex]->arg.nir.type = STRAW_NETWORK_INFO_REPLY;
+ reply[replyIndex]->arg.nir.uartOnlyDelay = UART_ONLY_DELAY;
+ reply[replyIndex]->arg.nir.uartDelay = UART_DELAY;
+ reply[replyIndex]->arg.nir.radioDelay = RADIO_DELAY;
+
reply[replyIndex]->arg.nir.parent = call RouteControl.getParent();
reply[replyIndex]->arg.nir.depth = call RouteControl.getDepth();
***************
*** 149,156 ****
--- 277,290 ----
break;
case STRAW_TRANSFER_DATA:
+ portId = cmd->arg.td.portId;
start = cmd->arg.td.start;
size = cmd->arg.td.size;
+
+ UART_ONLY_DELAY = cmd->arg.td.uartOnlyDelay;
+ UART_DELAY = cmd->arg.td.uartDelay;
+ RADIO_DELAY = cmd->arg.td.radioDelay;
toUART = cmd->arg.td.toUART;
dataIndex = start;
+ checksum = 0;
post tdNext();
break;
***************
*** 159,162 ****
--- 293,305 ----
post rrNext();
break;
+ case STRAW_ERR_CHK:
+ toUART = cmd->arg.ec.toUART;
+ if ((bffrState[replyIndex] == STRAW_BFFR_EMPTY)
+ || (bffrState[replyIndex] == STRAW_BFFR_READDONE)) {
+ reply[replyIndex]->arg.ecr.type = STRAW_ERR_CHK_REPLY;
+ reply[replyIndex]->arg.ecr.checksum = checksum;
+ bffrState[replyIndex] = STRAW_BFFR_READDONE;
+ }
+ break;
default:
break;
***************
*** 166,179 ****
uint16_t payloadLen) {
! StrawCmdMsg *dripCmd;
! dripLength = payloadLen;
! memcpy(dripBffr, (uint8_t *)payload, dripLength);
! dripCmd = (StrawCmdMsg *)dripBffr;
! if (dripCmd->dest != TOS_LOCAL_ADDRESS) return msg;
if (state != STRAW_IDLE_STATE) return msg;
! cmdLength = dripLength;
! memcpy(cmdBffr, dripBffr, cmdLength);
cmd = (StrawCmdMsg *)cmdBffr;
--- 309,319 ----
uint16_t payloadLen) {
! StrawCmdMsg *cmdMsg = (StrawCmdMsg *)payload;
! if (cmdMsg->dest != TOS_LOCAL_ADDRESS) return msg;
if (state != STRAW_IDLE_STATE) return msg;
! cmdLength = payloadLen;
! memcpy(cmdBffr, payload, cmdLength);
cmd = (StrawCmdMsg *)cmdBffr;
***************
*** 185,192 ****
}
! ////event result_t Drip.rebroadcastRequest(TOS_MsgPtr msg, void *payload) {
! //// memcpy(payload, dripBffr, dripLength);
! //// return call Drip.rebroadcast(msg, payload, dripLength);
! ////}
result_t sendDoneCmn(TOS_MsgPtr msg) {
--- 325,329 ----
}
!
result_t sendDoneCmn(TOS_MsgPtr msg) {
***************
*** 211,285 ****
}
- result_t timerStart() {
- subState = STRAW_SUB_PROC;
- depth = call RouteControl.getDepth();
- if (depth > RADIUS_OF_INTERFERENCE) depth = RADIUS_OF_INTERFERENCE;
- return call Timer.start(TIMER_REPEAT, toUART
- ? UART_ONLY_DELAY
- : (depth < RADIUS_OF_INTERFERENCE ? UART_DELAY + depth * RADIO_DELAY
- : RADIUS_OF_INTERFERENCE * RADIO_DELAY));
- }
- task void timerTask() {
- if (bffrState[replyIndex] == STRAW_BFFR_READDONE) {
- if (toUART) {
- bffrState[replyIndex] = call SendUART.send(TOS_UART_ADDR,
- TOSH_DATA_LENGTH, &replyBffr[replyIndex])
- ? STRAW_BFFR_SENDING : STRAW_BFFR_EMPTY;
- } else {
- bffrState[replyIndex] = call SendReply.send(&replyBffr[replyIndex],
- sizeof(StrawReplyMsg))
- ? STRAW_BFFR_SENDING : STRAW_BFFR_EMPTY;
- }
- }
- replyIndex = (replyIndex + 1) % NO_OF_BFFR;
-
- switch (state) {
- case STRAW_NETWORK_INFO:
- subState = STRAW_SUB_FNSHD;
- break;
- case STRAW_TRANSFER_DATA:
- if (subState == STRAW_SUB_FIRST) {
- subState = STRAW_SUB_PROC;
- timerStart();
- }
- post tdNext();
- break;
- case STRAW_RANDOM_READ:
- if (subState == STRAW_SUB_FIRST) {
- subState = STRAW_SUB_PROC;
- timerStart();
- }
- post rrNext();
- break;
- default:
- break;
- }
- }
- event result_t Timer.fired() {
- post timerTask();
- return SUCCESS;
- }
-
! command result_t StdControl.init() {
! return SUCCESS;
! }
! command result_t StdControl.start() {
! uint8_t i;
! state = STRAW_IDLE_STATE;
! subState = STRAW_SUB_IDLE;
! for (i = 0; i < NO_OF_BFFR; i++) {
! reply[i] = (StrawReplyMsg *) call SendReply.getBuffer(&replyBffr[i],
! &replyLen[i]);
! bffrState[i] = STRAW_BFFR_EMPTY;
! }
! replyIndex = 0;
! return SUCCESS;
! }
! command result_t StdControl.stop() {
! state = STRAW_IDLE_STATE;
! subState = STRAW_SUB_IDLE;
! return SUCCESS;
}
}
--- 348,356 ----
}
! default event result_t Straw.read[uint8_t id](uint32_t aStart, uint32_t aSize,
! uint8_t* aBffr) {
! return FAIL;
}
}
- Previous message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/GGB/tos/sensorboards/ggbacltst
Accel.nc, 1.4, 1.5
- Next message: [Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/GGB/apps/LRX
LRX.nc, 1.1, NONE LRXMsg.h, 1.1, NONE LRXReceive.nc, 1.1,
NONE LRXSend.nc, 1.1, NONE Makefile, 1.1, NONE README, 1.1,
NONE ReceiveLargeMsgReliably.nc, 1.1,
NONE SendLargeMsgReliably.nc, 1.1, NONE SimpleCmdMsg.h, 1.1,
NONE SingleHopTest.nc, 1.1, NONE SingleHopTestM.nc, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-contrib-commits
mailing list