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.

PC<br />

Base<br />

station<br />

Manager<br />

sensor<br />

Cluster<br />

heads<br />

Leaf nodes<br />

ProcessInstruction(2x)<br />

Store<br />

-Parameters for DCS.<br />

10<br />

10<br />

ProcessInstruction(10)<br />

NEXT<br />

NEXT<br />

NEXT<br />

1<br />

26<br />

26<br />

26<br />

26<br />

ProcessInstruction(26)<br />

Store<br />

-NodeIDs.<br />

Call TimerDrift.start<br />

event TimerDrift.fired()<br />

Broadcast Beacon signal<br />

if repetion > 10,<br />

ProcessInstruction (32)<br />

Synchronize<br />

Estimate clock drift<br />

ProcessInstruction(32)<br />

Broadcast Beacon signal<br />

Calculate t1<br />

post ProcessInstruction(33)<br />

ProcessInstruction(33)<br />

Inform leaf nodes<br />

-t1, T1, T2, etc.<br />

34<br />

34<br />

ProcessInstruction(34)<br />

Store<br />

-t1, T1, T2, etc.<br />

Adjust offset<br />

Calculate t1+T2<br />

Start TimerGTCheck()<br />

event TimerGTCheck.fired()<br />

Get global time<br />

if global time > (t1+T1)<br />

Start Sensing<br />

else<br />

broadcast beacon signal<br />

ProcessInstruction(34)<br />

Store<br />

-t1, T1, T2, etc.<br />

Adjust offset<br />

Calculate t1+T2<br />

Start TimerGTCheck()<br />

event TimerGTCheck.fired()<br />

Get global time<br />

if global time > (t1+T1)<br />

Start Sensing<br />

startSensing()<br />

Initialize sensing parameters<br />

allocate memory for sensing<br />

call TimerSensing.start()<br />

start sampling<br />

startSensing()<br />

Initialize sensing parameters<br />

allocate memory for sensing<br />

call TimerSensing.start()<br />

start sampling<br />

WriteData.write()<br />

Copy a block of data to<br />

global variables<br />

Get timestamp for each block<br />

WriteData.write()<br />

Copy a block of data to<br />

global variables<br />

Get timestamp for each block<br />

putData()<br />

if Done<br />

stop sensing<br />

putData()<br />

if Done<br />

stop sensing<br />

call TimerSensing.stop()<br />

event TimerSensing.fired()<br />

if sensing failed<br />

ProcessInstruction(32)<br />

else<br />

ProcessInstruction(38)<br />

32<br />

event TimerSensing.fired()<br />

if sensing failed<br />

stop sensing<br />

Figure 7.27. The implementation block diagram of monitoring in a sensor community (2).<br />

131

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

Saved successfully!

Ooh no, something went wrong!