Structural Health Monitoring Using Smart Sensors - ideals ...
Structural Health Monitoring Using Smart Sensors - ideals ...
Structural Health Monitoring Using Smart Sensors - ideals ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Sender<br />
SendLData.bcast()<br />
Pack parameters<br />
(destination, messageID)<br />
post BCBeginTask<br />
Receiver<br />
BCBeginTask<br />
Inquire of receivers whether<br />
they are ready to receive<br />
data.<br />
if all the receivers<br />
acknowledge,<br />
post BeginTask();<br />
SendNoticeSubTask()<br />
SendNoticeMsg.sendDone()<br />
post BCBeginTask()<br />
ReceiveNoticeMsg.receive()<br />
Receiver stores received<br />
parameters.<br />
Afterward, message ID and<br />
sender’s address will be<br />
used to rejects packets for<br />
other communication<br />
request.<br />
TimerNotice.fired()<br />
if acknowledged,<br />
post SendDataTask()<br />
else<br />
post SendNoticeSubTask()<br />
ReceiveNoticeMsg.receive()<br />
set flag as acknowledged<br />
SendAckMsg()<br />
SendNoticeSubTask()<br />
BeginTask<br />
Pack parameters<br />
(e.g., data length,<br />
sensitivity, etc. )<br />
SendNoticeSubTask()<br />
SendNoticeMsg.sendDone()<br />
call TimerNotice.start()<br />
ReceiveNoticeMsg.receive()<br />
Receiver stores received<br />
parameters.<br />
TimerNotice.fired()<br />
if acknowledged,<br />
post SendDataTask()<br />
else<br />
post SendNoticeSubTask()<br />
ReceiveNoticeMsg.receive()<br />
set flag as acknowledged<br />
SendAckMsg()<br />
SendNoticeSubTask()<br />
SendDataTask()<br />
Pack a packet with data<br />
TimerData.start<br />
TimerData.fired<br />
SendDataMsg.sendDone<br />
if all the data is sent<br />
post SendNoticeEnd<br />
else<br />
post SendDataTask<br />
ReceiveDataMsg.receive<br />
Receiver stores received<br />
data<br />
SendNoticeEnd()<br />
Pack a packet. Notification<br />
that sender has sent all the<br />
data<br />
SendNoticeSubTask<br />
SendNoticeMsg.sendDone()<br />
call TimerNotice.start()<br />
ReceiveNoticeMsg.receive()<br />
Receiver checks for<br />
missing packets and report<br />
to the sender.<br />
TimerNotice.fired()<br />
if acknowledged,<br />
post<br />
Comment3Check()<br />
else<br />
post<br />
SendNoticeSubTask()<br />
Comment3Check()<br />
if there are missing packets<br />
post SendDataTask<br />
else<br />
pack a packet with ‘Done’<br />
message<br />
post SendNoticeSubTask<br />
SendNoticeSubTask<br />
SendNoticeMsg.sendDone()<br />
call TimerNotice.start()<br />
ReceiveNoticeMsg.receive()<br />
set flag as acknowledged<br />
check request for resending<br />
SendAckMsg()<br />
SendNoticeSubTask()<br />
ReceiveNoticeMsg.receive()<br />
Acknowledge the sender<br />
Signal received()<br />
TimerNotice.fired()<br />
if acknowledged,<br />
signal sendDone()<br />
else<br />
post<br />
SendNoticeSubTask()<br />
ReceiveNoticeMsg.receive()<br />
set flag as acknowledged<br />
70<br />
SendAckMsg()<br />
SendNoticeSubTask()<br />
Figure 5.15. Detailed block diagram of the reliable multicast protocol for long data records