21.01.2014 Views

Structural Health Monitoring Using Smart Sensors - ideals ...

Structural Health Monitoring Using Smart Sensors - ideals ...

Structural Health Monitoring Using Smart Sensors - ideals ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!