[snee] r1377 committed - commit to add more collators and fix a few random bugs ont eh several ...

0 views
Skip to first unread message

sn...@googlecode.com

unread,
Aug 30, 2013, 9:54:38 AM8/30/13
to snee-...@googlegroups.com
Revision: 1377
Author: alan.bar...@gmail.com
Date: Fri Aug 30 13:53:42 2013 UTC
Log: commit to add more collators and fix a few random bugs ont eh
several ndoe failrue stratgegy when dealign with specific lfietimes
http://code.google.com/p/snee/source/detail?r=1377

Added:

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/collator.java

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/Types.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/cost-parameters.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/logicalSchema_query10.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/logicalSchema_query64.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/physicalSchema_query10.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/physicalSchema_query64.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/query-parameters.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/siteRes10.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/siteRes64.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/snee10.properties

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/snee64.properties

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/units.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/wsn_query10.xml

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/wsn_query64.xml

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime/Collate.java

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime/Klevel.java

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime/Query.java

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/meyer-heavy.txt
Modified:

/branches/alan_2012_07_19_unreliableChannels/clients/failed-node-eval-client/src/main/java/uk/ac/manchester/snee/client/SNEEFailedNodeEvalClientUsingInNetworkSource.java

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/CondorFailedNodeClient.java

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/FailedNodeTimeClientUtils.java

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/FailedNodeTimePlotter.java

/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/SNEEFailedNodeEvalClientUsingInNetworkSourceTimeDelay.java

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/CondorReliableChannelClient.java

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/query-parameters.xml

/branches/alan_2012_07_19_unreliableChannels/snee-api/src/main/java/uk/ac/manchester/cs/snee/SNEE.java

/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManager.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/SNEEController.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/evaluator/Dispatcher.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManagerImpl.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/executer/Executer.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/Planner.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/ChoiceAssessor.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModel.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelSite.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelUtils.java

=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/collator.java
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,147 @@
+package uk.ac.manchester.snee.client;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+
+public class collator
+{
+ private static File inputFolder = new
File("/media/Data/smalltopologysetseveralnodefailure");
+ private static File outputFolder = new
File("/media/Data/smalltopologysetseveralnodefailurefinalResultsjoin");
+ private static HashMap<String, ArrayList<String>> gData = new
HashMap<String, ArrayList<String>>();
+ private static HashMap<String, ArrayList<String>> pData = new
HashMap<String, ArrayList<String>>();
+
+ public static void main(String [] args)
+ {
+ File[] queriesInFolder = inputFolder.listFiles();
+ for(int folderIndex =0; folderIndex < queriesInFolder.length;
folderIndex++)
+ {
+ File queryFolder = queriesInFolder[folderIndex];
+ if(queryFolder.isDirectory())
+ {
+ try
+ {
+ BufferedReader in = new BufferedReader(new
FileReader(queryFolder + "/out.txt"));
+ String line = "";
+ int recorded = 0;
+ ArrayList<String> gDataQ = new ArrayList<String>();
+ ArrayList<String> pDataQ = new ArrayList<String>();
+ for(int index = 0; index < 8; index++)
+ {
+ gDataQ.add("");
+ pDataQ.add("");
+ }
+ boolean passedBlurb = false;
+ while((line = in.readLine())!= null)
+ {
+ if(line.equals("initisling client"))
+ passedBlurb = true;
+ Double lifetime = convertToNumber(line);
+ if(lifetime != null && passedBlurb)
+ {
+ if(recorded < 8)
+ {
+ gDataQ.set(recorded, line);
+ }
+ else
+ {
+ pDataQ.set(recorded - 8, line);
+ }
+ recorded++;
+ }
+ }
+ gData.put(queryFolder.getName(), gDataQ);
+ pData.put(queryFolder.getName(), pDataQ);
+ }
+ catch (FileNotFoundException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch (IOException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ outputData();
+ }
+
+ private static Double convertToNumber(String line)
+ {
+ try
+ {
+ return Double.parseDouble(line);
+ }
+ catch(Exception e)
+ {
+ return null;
+ }
+ }
+
+ private static void outputData()
+ {
+ try
+ {
+ BufferedWriter out = new BufferedWriter(new
FileWriter(outputFolder));
+ ArrayList<String> sortedKeys = sort(gData.keySet());
+ Iterator<String> sortedKeysIterator = sortedKeys.iterator();
+ while(sortedKeysIterator.hasNext())
+ {
+ String key = sortedKeysIterator.next();
+ String line = key + " ";
+ ArrayList<String> gDataQ = gData.get(key);
+ ArrayList<String> pDataQ = pData.get(key);
+ Iterator<String> qDataQIterator = gDataQ.iterator();
+ Iterator<String> pDataQIterator = pDataQ.iterator();
+ while(qDataQIterator.hasNext())
+ {
+ line = line.concat(qDataQIterator.next() + " ");
+ }
+ while(pDataQIterator.hasNext())
+ {
+ line = line.concat(pDataQIterator.next() + " ");
+ }
+ out.write(line + "\n");
+ }
+ out.flush();
+ out.close();
+ }
+ catch (IOException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+ private static ArrayList<String> sort(Set<String> keySet)
+ {
+ ArrayList<String> sorted = new ArrayList<String>();
+ for(int index = 0; index < 90; index++)
+ {
+ sorted.add(null);
+ }
+ Iterator<String> keys = keySet.iterator();
+ while(keys.hasNext())
+ {
+ String key = keys.next();
+ String [] bits = key.split("query");
+ sorted.set(Integer.parseInt(bits[1]), key);
+ }
+ for(int index = 0; index < 90; index++)
+ {
+ sorted.remove(null);
+ }
+ return sorted;
+ }
+}
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/Types.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Types>
+ <type name="boolean" size = "1" math = "1" nesCName="bool"/>
+ <type name="decimal" size="8" math ="5" nesCName = "float"/>
+ <type name="float" size="4" math="5" nesCName = "float"/>
+ <type name="integer" size="2" math="5" nesCName = "uint16_t"/>
+ <type name="string" size="4" math="2"/>
+ <type name="timestamp" size="8" math ="3" nesCName = "unint64_t"/>
+ <!--
+ <type name="real" size="8" math ="5"/>
+ <type name="double" size="16" math ="5"/>
+ <type name="numeric" size="8" math ="5"/>
+ <type name="smallint" size="2" math ="5"/>
+ <type name="bit" size="1" math ="5" nesCName = "uint8_t"/>
+ <type name="tinyint" size="1" math ="5" nesCName = "uint8_t"/>
+ <type name="date" size="8" math ="3"/>
+ <type name="time" size="4" math ="3" nesCName = "int32_t"/>
+ <type name="varchar" size="1" factor="8" math ="1"/>
+ <type name="char" size="1" math ="2" nesCName = "char"/>
+ <type name="longvarchar" size="4" math ="2"/>
+ -->
+</Types>
+
+<!--
+ * Math level. Describes what operations can be done on this variable.<br>
+ * Level 0 = No operations at all
+ * Level 1 = Equals within type only<br>
+ * Level 2 = Comparisons within type only<br>
+ * Level 3 = Standard Functions and Comparisons within type only<br>
+ * Level 4 = All Functions and Comparisons with type only<br>
+ * Level 5 = Convertible to a real so full math support<br>
+-->
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/cost-parameters.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OperatorMetaData>
+ <Time>
+ <CopyTuple time="0.1"/>
+ <ApplyPredicate time="0.15"/>
+ <CheckTuple time="0.05"/>
+ <DoCalculation time="0.05"/>
+ <Concatenate time="0.3"/>
+ <CallMethod time="0.1"/>
+ <SignalEvent time="2"/>
+ <AcquireData time="100"/>
+ <ScanTuple time="0.1"/>
+ <TurnOnRadio time="30"/>
+ <TurnOffRadio time="15"/>
+ <RadioSyncWindow time ="100"/>
+ <SendPacket time = "30"/> <!-- Tested as 28 set to 30 for safety -->
+ <SetAValue time = "0.02"/>
+ <DeliverTuple time = "100"/>
+ <ManagementSection time = "5000"/>
+ <EndManagementSection time = "100"/>
+ <writeToFlash time= "1"/> <!-- pulled from avrora external flash
monitor, for each byte -->
+ </Time>
+ <MinimumTimerInterval time = "10"/>
+ <Space>
+ <!-- The maximum size, in bytes, of data (i.e., payload) in message
+ that can be sent across the radio -->
+ <MaxMessagePayloadSize bytes="29"/>
+
+ <!-- The overhead incurred, in bytes, with each message in the payload
+ of the message, e.g., for sending previous fragment information-->
+ <PayloadOverhead bytes="6"/>
+ </Space>
+</OperatorMetaData>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/logicalSchema_query10.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<schema xmlns="http://snee.cs.man.ac.uk/namespace/logical-schema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://snee.cs.man.ac.uk/namespace/logical-schema ../schema/logical-schema.xsd">
+
+ <stream name="A" type="pull">
+ <column name="x">
+ <type class ="integer"/>
+ </column>
+ </stream>
+
+</schema>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/logicalSchema_query64.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<schema xmlns="http://snee.cs.man.ac.uk/namespace/logical-schema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://snee.cs.man.ac.uk/namespace/logical-schema ../schema/logical-schema.xsd">
+
+ <stream name="A" type="pull">
+ <column name="x">
+ <type class ="integer"/>
+ </column>
+ </stream>
+ <stream name="B" type="pull">
+ <column name="x">
+ <type class ="integer"/>
+ </column>
+ </stream>
+ <stream name="C" type="pull">
+ <column name="x">
+ <type class ="integer"/>
+ </column>
+ </stream>
+ <stream name="D" type="pull">
+ <column name="x">
+ <type class ="integer"/>
+ </column>
+ </stream>
+
+</schema>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/physicalSchema_query10.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<source xmlns="http://snee.cs.man.ac.uk/namespace/physical-schema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://snee.cs.man.ac.uk/namespace/physical-schema ../schema/physical-schema.xsd ">
+
+ <sensor_network name="wsn1">
+ <topology>condorCheck/wsn_query10.xml</topology>
+ <site-resources>condorCheck/siteRes10.xml</site-resources>
+ <gateways>0</gateways>
+ <extents>
+ <extent name="A">
+ <sites>8,2,3,13,6,7,0,5,9</sites>
+ </extent>
+ </extents>
+ </sensor_network>
+</source>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/physicalSchema_query64.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<source xmlns="http://snee.cs.man.ac.uk/namespace/physical-schema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://snee.cs.man.ac.uk/namespace/physical-schema ../schema/physical-schema.xsd ">
+
+ <sensor_network name="wsn1">
+ <topology>condorCheck/wsn_query64.xml</topology>
+ <site-resources>condorCheck/siteRes64.xml</site-resources>
+ <gateways>0</gateways>
+ <extents>
+ <extent name="A">
+ <sites>14,13,0</sites>
+ </extent>
+ <extent name="B">
+ <sites>0,7,10</sites>
+ </extent>
+ <extent name="C">
+ <sites>10,5,8</sites>
+ </extent>
+ <extent name="D">
+ <sites>8,1,9</sites>
+ </extent>
+ </extents>
+ </sensor_network>
+</source>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/query-parameters.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+
+<query-parameters
+xmlns="http://snee.cs.manchester.ac.uk"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://snee.cs.manchester.ac.uk query-parameters.xsd">
+
+ <qos-expectations>
+
+ <optimization-goal>
+ <type>NONE</type>
+ <variable>NONE</variable>
+ <weighting>1</weighting>
+ </optimization-goal>
+
+ <acquisition-interval>
+ <units>SECONDS</units>
+ <constraint>
+ <range>
+ <min-val>10</min-val>
+ <max-val>10</max-val>
+ </range>
+ </constraint>
+ <weighting>1</weighting>
+ </acquisition-interval>
+
+ <buffering-factor>
+ <constraint>
+ <range>
+ <min-val>10</min-val>
+ <max-val>200</max-val>
+ </range>
+ </constraint>
+ <weighting>1</weighting>
+ </buffering-factor>
+
+ <delivery-time>
+ <units>SECONDS</units>
+ <constraint>
+ <equals>600</equals>
+ </constraint>
+ <weighting>2</weighting>
+ </delivery-time>
+
+ </qos-expectations>
+
+<!-- Not currently implemented, but just to give an idea of what other
+parameters may be associated with a query...
+
+ <data-analysis>
+ </data-analysis>
+
+ <execution-schedule>
+ <start-time>10:00 30 AUG 2010</start-time>
+ <stop-time>22:00 30 AUG 2010</stop-time>
+ </execution-schedule>
+
+-->
+
+</query-parameters>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/siteRes10.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,202 @@
+<?xml version="1.0"?>
+
+<site-resources
+xmlns="http://snee.cs.manchester.ac.uk"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://snee.cs.manchester.ac.uk site-resources.xsd">
+
+
+<units>
+ <energy>JOULES</energy>
+ <memory>KILOBYTES</memory>
+</units>
+
+<sites>
+ <default>
+ <energy-stock>31320</energy-stock>
+ <ram>10</ram>
+ <flash-memory>48</flash-memory>
+ </default>
+ <site id="0"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="1"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="2"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="3"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="4"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="5"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="6"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="7"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="8"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="9"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="10"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="11"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="12"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="13"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="14"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="15"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="16"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="17"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="18"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="19"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="20"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="21"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="22"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="23"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="24"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="25"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="26"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>27,28,29</alternativeSites>
+
+ </site>
+ <site id="27"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>28,29</alternativeSites>
+
+ </site>
+ <site id="28"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>29</alternativeSites>
+
+ </site>
+ <site id="29"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites></alternativeSites>
+
+ </site>
+ </sites>
+
+</site-resources>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/siteRes64.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,202 @@
+<?xml version="1.0"?>
+
+<site-resources
+xmlns="http://snee.cs.manchester.ac.uk"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://snee.cs.manchester.ac.uk site-resources.xsd">
+
+
+<units>
+ <energy>JOULES</energy>
+ <memory>KILOBYTES</memory>
+</units>
+
+<sites>
+ <default>
+ <energy-stock>31320</energy-stock>
+ <ram>10</ram>
+ <flash-memory>48</flash-memory>
+ </default>
+ <site id="0"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="1"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="2"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="3"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="4"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="5"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="6"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="7"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="8"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="9"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="10"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="11"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="12"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="13"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="14"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>15,16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="15"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>16,17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="16"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+
<alternativeSites>17,18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="17"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>18,19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="18"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>19,20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="19"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>20,21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="20"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>21,22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="21"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>22,23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="22"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>23,24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="23"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>24,25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="24"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>25,26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="25"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>26,27,28,29</alternativeSites>
+
+ </site>
+ <site id="26"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>27,28,29</alternativeSites>
+
+ </site>
+ <site id="27"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>28,29</alternativeSites>
+
+ </site>
+ <site id="28"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites>29</alternativeSites>
+
+ </site>
+ <site id="29"><sensorTypes>
+ <sensorType sensor="default"/>
+ </sensorTypes>
+ <alternativeSites></alternativeSites>
+
+ </site>
+ </sites>
+
+</site-resources>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/snee10.properties
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,107 @@
+
+# Determines whether graphs are to be generated.
+compiler.generate_graphs = true
+
+# Instructs query operator tree graphs to show operator output type
+compiler.debug.show_operator_tuple_type = true
+
+compiler.convert_graphs = true
+graphviz.exe = /usr/local/bin/dot
+
+# Purge old output files at the start of every run
+compiler.delete_old_files = true
+
+# the root directory for the compiler outputs
+compiler.output_root_dir = output
+
+# Using equivalence-preserving transformation removes unrequired
+# operators (e.g., a NOW window combined with a RSTREAM)
+# TODO: currently in physical rewriter, move this to logical rewriter
+# TODO: consider removing this option
+# FIXME: Should not be a required property
+compiler.logicalrewriter.remove_unrequired_operators = true
+
+# Pushes project operators as close to the leaves of the operator
+# tree as possible.
+# TODO: currently in physical rewriter, move this to logical rewriter
+# TODO: consider removing this option
+# FIXME: Should not be a required property
+compiler.logicalrewriter.push_project_down = true
+
+# Combines leaf operators (receive, acquire, scan) and select operators
+# into a single operator
+# NB: In Old SNEE in the translation/rewriting step
+# TODO: Only works for acquire operators at the moment
+# TODO: consider removing this option
+# FIXME: Should not be a required property
+compiler.logicalrewriter.combine_leaf_and_select = true
+
+# Sets the random seed used for generating routing trees
+# FIXME: Should not be a required property
+compiler.router.random_seed = 4
+
+# Removes unnecessary exchange operators from the DAF
+# FIXME: Should not be a required property
+compiler.where_sched.remove_redundant_exchanges = false
+
+# Instructs where-scheduler to decrease buffering factor
+# to enable a shorter acquisition interval.
+# FIXME: Should not be a required property
+compiler.when_sched.decrease_beta_for_valid_alpha = true
+
+#Specifies whether agendas generated should allow sensing to have
interruptions
+#Use this option to enable high acquisition intervals
+compiler.allow_discontinuous_sensing = true
+
+# Location of the logical schema
+logical_schema = condorCheck/logicalSchema_query10.xml
+
+# Location of the physical schema
+physical_schema = condorCheck/physicalSchema_query10.xml
+
+# Location of the cost parameters file
+# TODO: This should be moved to physical schema, as there is potentially
+# one set of cost parameters per source.
+# FIXME: Should not be a required property
+cost_parameters_file = condorCheck/cost-parameters.xml
+
+# The name of the file with the types
+types_file = condorCheck/Types.xml
+
+# The name of the file with the user unit definitions
+units_file = condorCheck/units.xml
+
+# Specifies whether individual images or a single image is sent to WSN
nodes.
+sncb.generate_combined_image = false
+
+# Specifies whether the metadata collection program should be invoked,
+# or default metadata should be used.
+sncb.perform_metadata_collection = false
+
+# Specifies whether the command server should be included with SNEE query
plan
+# Only compatible with Tmote Sky TinyOS2 code generation target
+sncb.include_command_server = true
+
+#Specifies which stragety levels to run.
+# Currently FL, FP, FG, ALL
+wsn_manager.strategies = All
+
+#specifies how much k resilience to expect local to generate (minumal)
+wsn_manager.k_resilence_level = 1
+
+#specifies if acquire operators are to be taken into account when
generating overlays
+wsn_manager.k_resilence_sense = true
+
+# Specifies code generation target
+# telosb_t2 generates TinyOS v2 code for TelosB or TmoteSky hardware
+# avrora_mica2_t2 generates TinyOS v2 code for Avrora simulator emulating
mica2 hardware
+# avrora_micaz_t2 generates TinyOS v2 code for Avrora simulator emulating
micaz hardware
+# tossim_t2 generates TinyOS v2 code for Tossim simulator
+sncb.code_generation_target = avrora_mica2_t2
+#sncb.code_generation_target = telosb_t2
+
+TIMESTAMP_FORMAT = yyyy-MM-dd HH:mm:ss.SSS Z
+WEBROWSET_FORMAT = http://java.sun.com/xml/ns/jdbc
+
+# Size of history, in tuples, maintained per stream
+results.history_size.tuples = 1000
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/snee64.properties
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,107 @@
+
+# Determines whether graphs are to be generated.
+compiler.generate_graphs = true
+
+# Instructs query operator tree graphs to show operator output type
+compiler.debug.show_operator_tuple_type = true
+
+compiler.convert_graphs = true
+graphviz.exe = /usr/local/bin/dot
+
+# Purge old output files at the start of every run
+compiler.delete_old_files = true
+
+# the root directory for the compiler outputs
+compiler.output_root_dir = output
+
+# Using equivalence-preserving transformation removes unrequired
+# operators (e.g., a NOW window combined with a RSTREAM)
+# TODO: currently in physical rewriter, move this to logical rewriter
+# TODO: consider removing this option
+# FIXME: Should not be a required property
+compiler.logicalrewriter.remove_unrequired_operators = true
+
+# Pushes project operators as close to the leaves of the operator
+# tree as possible.
+# TODO: currently in physical rewriter, move this to logical rewriter
+# TODO: consider removing this option
+# FIXME: Should not be a required property
+compiler.logicalrewriter.push_project_down = true
+
+# Combines leaf operators (receive, acquire, scan) and select operators
+# into a single operator
+# NB: In Old SNEE in the translation/rewriting step
+# TODO: Only works for acquire operators at the moment
+# TODO: consider removing this option
+# FIXME: Should not be a required property
+compiler.logicalrewriter.combine_leaf_and_select = true
+
+# Sets the random seed used for generating routing trees
+# FIXME: Should not be a required property
+compiler.router.random_seed = 4
+
+# Removes unnecessary exchange operators from the DAF
+# FIXME: Should not be a required property
+compiler.where_sched.remove_redundant_exchanges = false
+
+# Instructs where-scheduler to decrease buffering factor
+# to enable a shorter acquisition interval.
+# FIXME: Should not be a required property
+compiler.when_sched.decrease_beta_for_valid_alpha = true
+
+#Specifies whether agendas generated should allow sensing to have
interruptions
+#Use this option to enable high acquisition intervals
+compiler.allow_discontinuous_sensing = true
+
+# Location of the logical schema
+logical_schema = condorCheck/logicalSchema_query64.xml
+
+# Location of the physical schema
+physical_schema = condorCheck/physicalSchema_query64.xml
+
+# Location of the cost parameters file
+# TODO: This should be moved to physical schema, as there is potentially
+# one set of cost parameters per source.
+# FIXME: Should not be a required property
+cost_parameters_file = condorCheck/cost-parameters.xml
+
+# The name of the file with the types
+types_file = condorCheck/Types.xml
+
+# The name of the file with the user unit definitions
+units_file = condorCheck/units.xml
+
+# Specifies whether individual images or a single image is sent to WSN
nodes.
+sncb.generate_combined_image = false
+
+# Specifies whether the metadata collection program should be invoked,
+# or default metadata should be used.
+sncb.perform_metadata_collection = false
+
+# Specifies whether the command server should be included with SNEE query
plan
+# Only compatible with Tmote Sky TinyOS2 code generation target
+sncb.include_command_server = true
+
+#Specifies which stragety levels to run.
+# Currently FL, FP, FG, ALL
+wsn_manager.strategies = All
+
+#specifies how much k resilience to expect local to generate (minumal)
+wsn_manager.k_resilence_level = 1
+
+#specifies if acquire operators are to be taken into account when
generating overlays
+wsn_manager.k_resilence_sense = true
+
+# Specifies code generation target
+# telosb_t2 generates TinyOS v2 code for TelosB or TmoteSky hardware
+# avrora_mica2_t2 generates TinyOS v2 code for Avrora simulator emulating
mica2 hardware
+# avrora_micaz_t2 generates TinyOS v2 code for Avrora simulator emulating
micaz hardware
+# tossim_t2 generates TinyOS v2 code for Tossim simulator
+sncb.code_generation_target = avrora_mica2_t2
+#sncb.code_generation_target = telosb_t2
+
+TIMESTAMP_FORMAT = yyyy-MM-dd HH:mm:ss.SSS Z
+WEBROWSET_FORMAT = http://java.sun.com/xml/ns/jdbc
+
+# Size of history, in tuples, maintained per stream
+results.history_size.tuples = 1000
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/units.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+
+<units
+xmlns="http://snee.cs.manchester.ac.uk"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://snee.cs.manchester.ac.uk units.xsd">
+
+<time>
+ <base-unit>MILLISECONDS</base-unit>
+ <unit>
+ <name>SECONDS</name>
+ <scaling-factor>1000</scaling-factor>
+ </unit>
+ <unit>
+ <name>MINUTES</name>
+ <scaling-factor>60000</scaling-factor>
+ </unit>
+ <unit>
+ <name>HOURS</name>
+ <scaling-factor>3600000</scaling-factor>
+ </unit>
+ <unit>
+ <name>DAYS</name>
+ <scaling-factor>86400000</scaling-factor>
+ </unit>
+ <unit>
+ <name>WEEKS</name>
+ <scaling-factor>604800000</scaling-factor>
+ </unit>
+ <unit>
+ <name>MONTHS</name>
+ <!-- assuming 30 days in a month -->
+ <scaling-factor>2592000000</scaling-factor>
+ </unit>
+ <unit>
+ <name>YEARS</name>
+ <!-- assuming 365 days in a month -->
+ <scaling-factor>31536000000</scaling-factor>
+ </unit>
+</time>
+
+
+<energy>
+ <base-unit>MILLIJOULES</base-unit>
+ <unit>
+ <name>JOULES</name>
+ <scaling-factor>1000</scaling-factor>
+ </unit>
+ <unit>
+ <name>KILOJOULES</name>
+ <scaling-factor>1000000</scaling-factor>
+ </unit>
+ <unit>
+ <name>KILOJOULES</name>
+ <scaling-factor>1000000000</scaling-factor>
+ </unit>
+ <unit>
+ <name>MEGAJOULES</name>
+ <scaling-factor>1000000000</scaling-factor>
+ </unit>
+
+</energy>
+
+<memory>
+ <base-unit>BYTES</base-unit>
+ <unit>
+ <name>KILOBYTES</name>
+ <scaling-factor>1024</scaling-factor>
+ </unit>
+ <unit>
+ <name>MEGABYTES</name>
+ <scaling-factor>1048576</scaling-factor>
+ </unit>
+</memory>
+
+</units>
+
+
+
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/wsn_query10.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,394 @@
+<?xml version="1.0"?>
+
+<network-topology
+xmlns="http://snee.cs.manchester.ac.uk"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://snee.cs.manchester.ac.uk network-topology.xsd">
+
+<units>
+ <energy>MILLIJOULES</energy>
+ <memory>BYTES</memory>
+ <time>MILLISECONDS</time>
+</units>
+
+<radio-links>
+ <radio-link source="0" dest="1" bidirectional="true" energy="37"
time="20" radio-loss="0"/>
+ <radio-link source="0" dest="2" bidirectional="true" energy="38"
time="20" radio-loss="0"/>
+ <radio-link source="0" dest="3" bidirectional="true" energy="95"
time="27" radio-loss="0"/>
+ <radio-link source="0" dest="4" bidirectional="true" energy="22"
time="18" radio-loss="0"/>
+ <radio-link source="0" dest="5" bidirectional="true" energy="164"
time="38" radio-loss="0"/>
+ <radio-link source="0" dest="6" bidirectional="true" energy="210"
time="48" radio-loss="0"/>
+ <radio-link source="0" dest="7" bidirectional="true" energy="3" time="3"
radio-loss="0"/>
+ <radio-link source="0" dest="8" bidirectional="true" energy="157"
time="37" radio-loss="0"/>
+ <radio-link source="0" dest="9" bidirectional="true" energy="235"
time="54" radio-loss="0"/>
+ <radio-link source="0" dest="10" bidirectional="true" energy="108"
time="29" radio-loss="0"/>
+ <radio-link source="0" dest="11" bidirectional="true" energy="152"
time="36" radio-loss="0"/>
+ <radio-link source="0" dest="12" bidirectional="true" energy="48"
time="21" radio-loss="0"/>
+ <radio-link source="0" dest="13" bidirectional="true" energy="54"
time="22" radio-loss="0"/>
+ <radio-link source="0" dest="14" bidirectional="true" energy="168"
time="39" radio-loss="0"/>
+ <radio-link source="0" dest="16" bidirectional="true" energy="74"
time="20" radio-loss="0"/>
+ <radio-link source="0" dest="17" bidirectional="true" energy="76"
time="20" radio-loss="0"/>
+ <radio-link source="0" dest="18" bidirectional="true" energy="190"
time="27" radio-loss="0"/>
+ <radio-link source="0" dest="19" bidirectional="true" energy="44"
time="18" radio-loss="0"/>
+ <radio-link source="0" dest="20" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="0" dest="21" bidirectional="true" energy="254"
time="48" radio-loss="0"/>
+ <radio-link source="0" dest="22" bidirectional="true" energy="6" time="3"
radio-loss="0"/>
+ <radio-link source="0" dest="23" bidirectional="true" energy="254"
time="37" radio-loss="0"/>
+ <radio-link source="0" dest="24" bidirectional="true" energy="254"
time="54" radio-loss="0"/>
+ <radio-link source="0" dest="25" bidirectional="true" energy="216"
time="29" radio-loss="0"/>
+ <radio-link source="0" dest="26" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="0" dest="27" bidirectional="true" energy="96"
time="21" radio-loss="0"/>
+ <radio-link source="0" dest="28" bidirectional="true" energy="108"
time="22" radio-loss="0"/>
+ <radio-link source="0" dest="29" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="1" dest="2" bidirectional="true" energy="19"
time="18" radio-loss="0"/>
+ <radio-link source="1" dest="3" bidirectional="true" energy="59"
time="22" radio-loss="0"/>
+ <radio-link source="1" dest="4" bidirectional="true" energy="31"
time="19" radio-loss="0"/>
+ <radio-link source="1" dest="5" bidirectional="true" energy="155"
time="36" radio-loss="0"/>
+ <radio-link source="1" dest="6" bidirectional="true" energy="178"
time="41" radio-loss="0"/>
+ <radio-link source="1" dest="7" bidirectional="true" energy="65"
time="23" radio-loss="0"/>
+ <radio-link source="1" dest="8" bidirectional="true" energy="165"
time="38" radio-loss="0"/>
+ <radio-link source="1" dest="9" bidirectional="true" energy="171"
time="39" radio-loss="0"/>
+ <radio-link source="1" dest="10" bidirectional="true" energy="11"
time="9" radio-loss="0"/>
+ <radio-link source="1" dest="11" bidirectional="true" energy="39"
time="20" radio-loss="0"/>
+ <radio-link source="1" dest="12" bidirectional="true" energy="129"
time="32" radio-loss="0"/>
+ <radio-link source="1" dest="13" bidirectional="true" energy="185"
time="42" radio-loss="0"/>
+ <radio-link source="1" dest="14" bidirectional="true" energy="224"
time="51" radio-loss="0"/>
+ <radio-link source="1" dest="17" bidirectional="true" energy="38"
time="18" radio-loss="0"/>
+ <radio-link source="1" dest="18" bidirectional="true" energy="118"
time="22" radio-loss="0"/>
+ <radio-link source="1" dest="19" bidirectional="true" energy="62"
time="19" radio-loss="0"/>
+ <radio-link source="1" dest="20" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="1" dest="21" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="1" dest="22" bidirectional="true" energy="130"
time="23" radio-loss="0"/>
+ <radio-link source="1" dest="23" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="1" dest="24" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="1" dest="25" bidirectional="true" energy="22"
time="9" radio-loss="0"/>
+ <radio-link source="1" dest="26" bidirectional="true" energy="78"
time="20" radio-loss="0"/>
+ <radio-link source="1" dest="27" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="1" dest="28" bidirectional="true" energy="254"
time="42" radio-loss="0"/>
+ <radio-link source="1" dest="29" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="2" dest="3" bidirectional="true" energy="168"
time="39" radio-loss="0"/>
+ <radio-link source="2" dest="4" bidirectional="true" energy="135"
time="33" radio-loss="0"/>
+ <radio-link source="2" dest="5" bidirectional="true" energy="228"
time="52" radio-loss="0"/>
+ <radio-link source="2" dest="6" bidirectional="true" energy="251"
time="59" radio-loss="0"/>
+ <radio-link source="2" dest="7" bidirectional="true" energy="54"
time="22" radio-loss="0"/>
+ <radio-link source="2" dest="8" bidirectional="true" energy="230"
time="53" radio-loss="0"/>
+ <radio-link source="2" dest="9" bidirectional="true" energy="248"
time="58" radio-loss="0"/>
+ <radio-link source="2" dest="10" bidirectional="true" energy="38"
time="20" radio-loss="0"/>
+ <radio-link source="2" dest="11" bidirectional="true" energy="168"
time="39" radio-loss="0"/>
+ <radio-link source="2" dest="12" bidirectional="true" energy="178"
time="41" radio-loss="0"/>
+ <radio-link source="2" dest="13" bidirectional="true" energy="165"
time="38" radio-loss="0"/>
+ <radio-link source="2" dest="14" bidirectional="true" energy="253"
time="59" radio-loss="0"/>
+ <radio-link source="2" dest="16" bidirectional="true" energy="38"
time="18" radio-loss="0"/>
+ <radio-link source="2" dest="18" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="2" dest="19" bidirectional="true" energy="254"
time="33" radio-loss="0"/>
+ <radio-link source="2" dest="20" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="2" dest="21" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="2" dest="22" bidirectional="true" energy="108"
time="22" radio-loss="0"/>
+ <radio-link source="2" dest="23" bidirectional="true" energy="254"
time="53" radio-loss="0"/>
+ <radio-link source="2" dest="24" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="2" dest="25" bidirectional="true" energy="76"
time="20" radio-loss="0"/>
+ <radio-link source="2" dest="26" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="2" dest="27" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="2" dest="28" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="2" dest="29" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="3" dest="4" bidirectional="true" energy="10" time="8"
radio-loss="0"/>
+ <radio-link source="3" dest="5" bidirectional="true" energy="13"
time="13" radio-loss="0"/>
+ <radio-link source="3" dest="6" bidirectional="true" energy="41"
time="20" radio-loss="0"/>
+ <radio-link source="3" dest="7" bidirectional="true" energy="111"
time="29" radio-loss="0"/>
+ <radio-link source="3" dest="8" bidirectional="true" energy="15"
time="16" radio-loss="0"/>
+ <radio-link source="3" dest="9" bidirectional="true" energy="114"
time="30" radio-loss="0"/>
+ <radio-link source="3" dest="10" bidirectional="true" energy="114"
time="30" radio-loss="0"/>
+ <radio-link source="3" dest="11" bidirectional="true" energy="15"
time="17" radio-loss="0"/>
+ <radio-link source="3" dest="12" bidirectional="true" energy="29"
time="19" radio-loss="0"/>
+ <radio-link source="3" dest="13" bidirectional="true" energy="188"
time="43" radio-loss="0"/>
+ <radio-link source="3" dest="14" bidirectional="true" energy="148"
time="35" radio-loss="0"/>
+ <radio-link source="3" dest="16" bidirectional="true" energy="118"
time="22" radio-loss="0"/>
+ <radio-link source="3" dest="17" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="3" dest="19" bidirectional="true" energy="20"
time="8" radio-loss="0"/>
+ <radio-link source="3" dest="20" bidirectional="true" energy="26"
time="13" radio-loss="0"/>
+ <radio-link source="3" dest="21" bidirectional="true" energy="82"
time="20" radio-loss="0"/>
+ <radio-link source="3" dest="22" bidirectional="true" energy="222"
time="29" radio-loss="0"/>
+ <radio-link source="3" dest="23" bidirectional="true" energy="30"
time="16" radio-loss="0"/>
+ <radio-link source="3" dest="24" bidirectional="true" energy="228"
time="30" radio-loss="0"/>
+ <radio-link source="3" dest="25" bidirectional="true" energy="228"
time="30" radio-loss="0"/>
+ <radio-link source="3" dest="26" bidirectional="true" energy="30"
time="17" radio-loss="0"/>
+ <radio-link source="3" dest="27" bidirectional="true" energy="58"
time="19" radio-loss="0"/>
+ <radio-link source="3" dest="28" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="3" dest="29" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="4" dest="5" bidirectional="true" energy="33"
time="20" radio-loss="0"/>
+ <radio-link source="4" dest="6" bidirectional="true" energy="109"
time="29" radio-loss="0"/>
+ <radio-link source="4" dest="7" bidirectional="true" energy="43"
time="21" radio-loss="0"/>
+ <radio-link source="4" dest="8" bidirectional="true" energy="32"
time="19" radio-loss="0"/>
+ <radio-link source="4" dest="9" bidirectional="true" energy="162"
time="38" radio-loss="0"/>
+ <radio-link source="4" dest="10" bidirectional="true" energy="105"
time="28" radio-loss="0"/>
+ <radio-link source="4" dest="11" bidirectional="true" energy="57"
time="22" radio-loss="0"/>
+ <radio-link source="4" dest="12" bidirectional="true" energy="14"
time="14" radio-loss="0"/>
+ <radio-link source="4" dest="13" bidirectional="true" energy="145"
time="35" radio-loss="0"/>
+ <radio-link source="4" dest="14" bidirectional="true" energy="132"
time="32" radio-loss="0"/>
+ <radio-link source="4" dest="16" bidirectional="true" energy="62"
time="19" radio-loss="0"/>
+ <radio-link source="4" dest="17" bidirectional="true" energy="254"
time="33" radio-loss="0"/>
+ <radio-link source="4" dest="18" bidirectional="true" energy="20"
time="8" radio-loss="0"/>
+ <radio-link source="4" dest="20" bidirectional="true" energy="66"
time="20" radio-loss="0"/>
+ <radio-link source="4" dest="21" bidirectional="true" energy="218"
time="29" radio-loss="0"/>
+ <radio-link source="4" dest="22" bidirectional="true" energy="86"
time="21" radio-loss="0"/>
+ <radio-link source="4" dest="23" bidirectional="true" energy="64"
time="19" radio-loss="0"/>
+ <radio-link source="4" dest="24" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="4" dest="25" bidirectional="true" energy="210"
time="28" radio-loss="0"/>
+ <radio-link source="4" dest="26" bidirectional="true" energy="114"
time="22" radio-loss="0"/>
+ <radio-link source="4" dest="27" bidirectional="true" energy="28"
time="14" radio-loss="0"/>
+ <radio-link source="4" dest="28" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="4" dest="29" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="5" dest="6" bidirectional="true" energy="13"
time="13" radio-loss="0"/>
+ <radio-link source="5" dest="7" bidirectional="true" energy="172"
time="40" radio-loss="0"/>
+ <radio-link source="5" dest="8" bidirectional="true" energy="8" time="6"
radio-loss="0"/>
+ <radio-link source="5" dest="9" bidirectional="true" energy="121"
time="31" radio-loss="0"/>
+ <radio-link source="5" dest="10" bidirectional="true" energy="190"
time="43" radio-loss="0"/>
+ <radio-link source="5" dest="11" bidirectional="true" energy="90"
time="26" radio-loss="0"/>
+ <radio-link source="5" dest="12" bidirectional="true" energy="59"
time="22" radio-loss="0"/>
+ <radio-link source="5" dest="13" bidirectional="true" energy="216"
time="49" radio-loss="0"/>
+ <radio-link source="5" dest="14" bidirectional="true" energy="120"
time="30" radio-loss="0"/>
+ <radio-link source="5" dest="16" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="5" dest="17" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="5" dest="18" bidirectional="true" energy="26"
time="13" radio-loss="0"/>
+ <radio-link source="5" dest="19" bidirectional="true" energy="66"
time="20" radio-loss="0"/>
+ <radio-link source="5" dest="21" bidirectional="true" energy="26"
time="13" radio-loss="0"/>
+ <radio-link source="5" dest="22" bidirectional="true" energy="254"
time="40" radio-loss="0"/>
+ <radio-link source="5" dest="23" bidirectional="true" energy="16"
time="6" radio-loss="0"/>
+ <radio-link source="5" dest="24" bidirectional="true" energy="242"
time="31" radio-loss="0"/>
+ <radio-link source="5" dest="25" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="5" dest="26" bidirectional="true" energy="180"
time="26" radio-loss="0"/>
+ <radio-link source="5" dest="27" bidirectional="true" energy="118"
time="22" radio-loss="0"/>
+ <radio-link source="5" dest="28" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="5" dest="29" bidirectional="true" energy="240"
time="30" radio-loss="0"/>
+ <radio-link source="6" dest="7" bidirectional="true" energy="218"
time="50" radio-loss="0"/>
+ <radio-link source="6" dest="8" bidirectional="true" energy="20"
time="18" radio-loss="0"/>
+ <radio-link source="6" dest="9" bidirectional="true" energy="39"
time="20" radio-loss="0"/>
+ <radio-link source="6" dest="10" bidirectional="true" energy="199"
time="45" radio-loss="0"/>
+ <radio-link source="6" dest="11" bidirectional="true" energy="74"
time="24" radio-loss="0"/>
+ <radio-link source="6" dest="12" bidirectional="true" energy="147"
time="35" radio-loss="0"/>
+ <radio-link source="6" dest="14" bidirectional="true" energy="188"
time="43" radio-loss="0"/>
+ <radio-link source="6" dest="16" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="6" dest="17" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="6" dest="18" bidirectional="true" energy="82"
time="20" radio-loss="0"/>
+ <radio-link source="6" dest="19" bidirectional="true" energy="218"
time="29" radio-loss="0"/>
+ <radio-link source="6" dest="20" bidirectional="true" energy="26"
time="13" radio-loss="0"/>
+ <radio-link source="6" dest="22" bidirectional="true" energy="254"
time="50" radio-loss="0"/>
+ <radio-link source="6" dest="23" bidirectional="true" energy="40"
time="18" radio-loss="0"/>
+ <radio-link source="6" dest="24" bidirectional="true" energy="78"
time="20" radio-loss="0"/>
+ <radio-link source="6" dest="25" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="6" dest="26" bidirectional="true" energy="148"
time="24" radio-loss="0"/>
+ <radio-link source="6" dest="27" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="6" dest="29" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="7" dest="8" bidirectional="true" energy="163"
time="38" radio-loss="0"/>
+ <radio-link source="7" dest="9" bidirectional="true" energy="245"
time="57" radio-loss="0"/>
+ <radio-link source="7" dest="10" bidirectional="true" energy="128"
time="32" radio-loss="0"/>
+ <radio-link source="7" dest="11" bidirectional="true" energy="168"
time="39" radio-loss="0"/>
+ <radio-link source="7" dest="12" bidirectional="true" energy="48"
time="21" radio-loss="0"/>
+ <radio-link source="7" dest="13" bidirectional="true" energy="23"
time="19" radio-loss="0"/>
+ <radio-link source="7" dest="14" bidirectional="true" energy="163"
time="38" radio-loss="0"/>
+ <radio-link source="7" dest="16" bidirectional="true" energy="130"
time="23" radio-loss="0"/>
+ <radio-link source="7" dest="17" bidirectional="true" energy="108"
time="22" radio-loss="0"/>
+ <radio-link source="7" dest="18" bidirectional="true" energy="222"
time="29" radio-loss="0"/>
+ <radio-link source="7" dest="19" bidirectional="true" energy="86"
time="21" radio-loss="0"/>
+ <radio-link source="7" dest="20" bidirectional="true" energy="254"
time="40" radio-loss="0"/>
+ <radio-link source="7" dest="21" bidirectional="true" energy="254"
time="50" radio-loss="0"/>
+ <radio-link source="7" dest="23" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="7" dest="24" bidirectional="true" energy="254"
time="57" radio-loss="0"/>
+ <radio-link source="7" dest="25" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="7" dest="26" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="7" dest="27" bidirectional="true" energy="96"
time="21" radio-loss="0"/>
+ <radio-link source="7" dest="28" bidirectional="true" energy="46"
time="19" radio-loss="0"/>
+ <radio-link source="7" dest="29" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="8" dest="9" bidirectional="true" energy="157"
time="37" radio-loss="0"/>
+ <radio-link source="8" dest="10" bidirectional="true" energy="202"
time="46" radio-loss="0"/>
+ <radio-link source="8" dest="11" bidirectional="true" energy="123"
time="31" radio-loss="0"/>
+ <radio-link source="8" dest="12" bidirectional="true" energy="20"
time="18" radio-loss="0"/>
+ <radio-link source="8" dest="13" bidirectional="true" energy="199"
time="45" radio-loss="0"/>
+ <radio-link source="8" dest="14" bidirectional="true" energy="76"
time="24" radio-loss="0"/>
+ <radio-link source="8" dest="16" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="8" dest="17" bidirectional="true" energy="254"
time="53" radio-loss="0"/>
+ <radio-link source="8" dest="18" bidirectional="true" energy="30"
time="16" radio-loss="0"/>
+ <radio-link source="8" dest="19" bidirectional="true" energy="64"
time="19" radio-loss="0"/>
+ <radio-link source="8" dest="20" bidirectional="true" energy="16"
time="6" radio-loss="0"/>
+ <radio-link source="8" dest="21" bidirectional="true" energy="40"
time="18" radio-loss="0"/>
+ <radio-link source="8" dest="22" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="8" dest="24" bidirectional="true" energy="254"
time="37" radio-loss="0"/>
+ <radio-link source="8" dest="25" bidirectional="true" energy="254"
time="46" radio-loss="0"/>
+ <radio-link source="8" dest="26" bidirectional="true" energy="246"
time="31" radio-loss="0"/>
+ <radio-link source="8" dest="27" bidirectional="true" energy="40"
time="18" radio-loss="0"/>
+ <radio-link source="8" dest="28" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="8" dest="29" bidirectional="true" energy="152"
time="24" radio-loss="0"/>
+ <radio-link source="9" dest="10" bidirectional="true" energy="171"
time="39" radio-loss="0"/>
+ <radio-link source="9" dest="11" bidirectional="true" energy="25"
time="19" radio-loss="0"/>
+ <radio-link source="9" dest="12" bidirectional="true" energy="214"
time="49" radio-loss="0"/>
+ <radio-link source="9" dest="16" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="9" dest="17" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="9" dest="18" bidirectional="true" energy="228"
time="30" radio-loss="0"/>
+ <radio-link source="9" dest="19" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="9" dest="20" bidirectional="true" energy="242"
time="31" radio-loss="0"/>
+ <radio-link source="9" dest="21" bidirectional="true" energy="78"
time="20" radio-loss="0"/>
+ <radio-link source="9" dest="22" bidirectional="true" energy="254"
time="57" radio-loss="0"/>
+ <radio-link source="9" dest="23" bidirectional="true" energy="254"
time="37" radio-loss="0"/>
+ <radio-link source="9" dest="25" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="9" dest="26" bidirectional="true" energy="50"
time="19" radio-loss="0"/>
+ <radio-link source="9" dest="27" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="10" dest="11" bidirectional="true" energy="52"
time="22" radio-loss="0"/>
+ <radio-link source="10" dest="12" bidirectional="true" energy="180"
time="41" radio-loss="0"/>
+ <radio-link source="10" dest="13" bidirectional="true" energy="222"
time="51" radio-loss="0"/>
+ <radio-link source="10" dest="16" bidirectional="true" energy="22"
time="9" radio-loss="0"/>
+ <radio-link source="10" dest="17" bidirectional="true" energy="76"
time="20" radio-loss="0"/>
+ <radio-link source="10" dest="18" bidirectional="true" energy="228"
time="30" radio-loss="0"/>
+ <radio-link source="10" dest="19" bidirectional="true" energy="210"
time="28" radio-loss="0"/>
+ <radio-link source="10" dest="20" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="10" dest="21" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="10" dest="22" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="10" dest="23" bidirectional="true" energy="254"
time="46" radio-loss="0"/>
+ <radio-link source="10" dest="24" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="10" dest="26" bidirectional="true" energy="104"
time="22" radio-loss="0"/>
+ <radio-link source="10" dest="27" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="10" dest="28" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="11" dest="12" bidirectional="true" energy="152"
time="36" radio-loss="0"/>
+ <radio-link source="11" dest="13" bidirectional="true" energy="241"
time="56" radio-loss="0"/>
+ <radio-link source="11" dest="14" bidirectional="true" energy="228"
time="52" radio-loss="0"/>
+ <radio-link source="11" dest="16" bidirectional="true" energy="78"
time="20" radio-loss="0"/>
+ <radio-link source="11" dest="17" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="11" dest="18" bidirectional="true" energy="30"
time="17" radio-loss="0"/>
+ <radio-link source="11" dest="19" bidirectional="true" energy="114"
time="22" radio-loss="0"/>
+ <radio-link source="11" dest="20" bidirectional="true" energy="180"
time="26" radio-loss="0"/>
+ <radio-link source="11" dest="21" bidirectional="true" energy="148"
time="24" radio-loss="0"/>
+ <radio-link source="11" dest="22" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="11" dest="23" bidirectional="true" energy="246"
time="31" radio-loss="0"/>
+ <radio-link source="11" dest="24" bidirectional="true" energy="50"
time="19" radio-loss="0"/>
+ <radio-link source="11" dest="25" bidirectional="true" energy="104"
time="22" radio-loss="0"/>
+ <radio-link source="11" dest="27" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="11" dest="28" bidirectional="true" energy="254"
time="56" radio-loss="0"/>
+ <radio-link source="11" dest="29" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="12" dest="13" bidirectional="true" energy="93"
time="26" radio-loss="0"/>
+ <radio-link source="12" dest="14" bidirectional="true" energy="27"
time="19" radio-loss="0"/>
+ <radio-link source="12" dest="16" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="12" dest="17" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="12" dest="18" bidirectional="true" energy="58"
time="19" radio-loss="0"/>
+ <radio-link source="12" dest="19" bidirectional="true" energy="28"
time="14" radio-loss="0"/>
+ <radio-link source="12" dest="20" bidirectional="true" energy="118"
time="22" radio-loss="0"/>
+ <radio-link source="12" dest="21" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="12" dest="22" bidirectional="true" energy="96"
time="21" radio-loss="0"/>
+ <radio-link source="12" dest="23" bidirectional="true" energy="40"
time="18" radio-loss="0"/>
+ <radio-link source="12" dest="24" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="12" dest="25" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="12" dest="26" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="12" dest="28" bidirectional="true" energy="186"
time="26" radio-loss="0"/>
+ <radio-link source="12" dest="29" bidirectional="true" energy="54"
time="19" radio-loss="0"/>
+ <radio-link source="13" dest="14" bidirectional="true" energy="140"
time="34" radio-loss="0"/>
+ <radio-link source="13" dest="16" bidirectional="true" energy="254"
time="42" radio-loss="0"/>
+ <radio-link source="13" dest="17" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="13" dest="18" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="13" dest="19" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="13" dest="20" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="13" dest="22" bidirectional="true" energy="46"
time="19" radio-loss="0"/>
+ <radio-link source="13" dest="23" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="13" dest="25" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="13" dest="26" bidirectional="true" energy="254"
time="56" radio-loss="0"/>
+ <radio-link source="13" dest="27" bidirectional="true" energy="186"
time="26" radio-loss="0"/>
+ <radio-link source="13" dest="29" bidirectional="true" energy="254"
time="34" radio-loss="0"/>
+ <radio-link source="14" dest="16" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="14" dest="17" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="14" dest="18" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="14" dest="19" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="14" dest="20" bidirectional="true" energy="240"
time="30" radio-loss="0"/>
+ <radio-link source="14" dest="21" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="14" dest="22" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="14" dest="23" bidirectional="true" energy="152"
time="24" radio-loss="0"/>
+ <radio-link source="14" dest="26" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="14" dest="27" bidirectional="true" energy="54"
time="19" radio-loss="0"/>
+ <radio-link source="14" dest="28" bidirectional="true" energy="254"
time="34" radio-loss="0"/>
+ <radio-link source="16" dest="17" bidirectional="true" energy="76"
time="18" radio-loss="0"/>
+ <radio-link source="16" dest="18" bidirectional="true" energy="236"
time="22" radio-loss="0"/>
+ <radio-link source="16" dest="19" bidirectional="true" energy="124"
time="19" radio-loss="0"/>
+ <radio-link source="16" dest="20" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="16" dest="21" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="16" dest="22" bidirectional="true" energy="254"
time="23" radio-loss="0"/>
+ <radio-link source="16" dest="23" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="16" dest="24" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="16" dest="25" bidirectional="true" energy="44"
time="9" radio-loss="0"/>
+ <radio-link source="16" dest="26" bidirectional="true" energy="156"
time="20" radio-loss="0"/>
+ <radio-link source="16" dest="27" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="16" dest="28" bidirectional="true" energy="254"
time="42" radio-loss="0"/>
+ <radio-link source="16" dest="29" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="17" dest="18" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="17" dest="19" bidirectional="true" energy="254"
time="33" radio-loss="0"/>
+ <radio-link source="17" dest="20" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="17" dest="21" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="17" dest="22" bidirectional="true" energy="216"
time="22" radio-loss="0"/>
+ <radio-link source="17" dest="23" bidirectional="true" energy="254"
time="53" radio-loss="0"/>
+ <radio-link source="17" dest="24" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="17" dest="25" bidirectional="true" energy="152"
time="20" radio-loss="0"/>
+ <radio-link source="17" dest="26" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="17" dest="27" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="17" dest="28" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="17" dest="29" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="18" dest="19" bidirectional="true" energy="40"
time="8" radio-loss="0"/>
+ <radio-link source="18" dest="20" bidirectional="true" energy="52"
time="13" radio-loss="0"/>
+ <radio-link source="18" dest="21" bidirectional="true" energy="164"
time="20" radio-loss="0"/>
+ <radio-link source="18" dest="22" bidirectional="true" energy="254"
time="29" radio-loss="0"/>
+ <radio-link source="18" dest="23" bidirectional="true" energy="60"
time="16" radio-loss="0"/>
+ <radio-link source="18" dest="24" bidirectional="true" energy="254"
time="30" radio-loss="0"/>
+ <radio-link source="18" dest="25" bidirectional="true" energy="254"
time="30" radio-loss="0"/>
+ <radio-link source="18" dest="26" bidirectional="true" energy="60"
time="17" radio-loss="0"/>
+ <radio-link source="18" dest="27" bidirectional="true" energy="116"
time="19" radio-loss="0"/>
+ <radio-link source="18" dest="28" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="18" dest="29" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="19" dest="20" bidirectional="true" energy="132"
time="20" radio-loss="0"/>
+ <radio-link source="19" dest="21" bidirectional="true" energy="254"
time="29" radio-loss="0"/>
+ <radio-link source="19" dest="22" bidirectional="true" energy="172"
time="21" radio-loss="0"/>
+ <radio-link source="19" dest="23" bidirectional="true" energy="128"
time="19" radio-loss="0"/>
+ <radio-link source="19" dest="24" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="19" dest="25" bidirectional="true" energy="254"
time="28" radio-loss="0"/>
+ <radio-link source="19" dest="26" bidirectional="true" energy="228"
time="22" radio-loss="0"/>
+ <radio-link source="19" dest="27" bidirectional="true" energy="56"
time="14" radio-loss="0"/>
+ <radio-link source="19" dest="28" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="19" dest="29" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="20" dest="21" bidirectional="true" energy="52"
time="13" radio-loss="0"/>
+ <radio-link source="20" dest="22" bidirectional="true" energy="254"
time="40" radio-loss="0"/>
+ <radio-link source="20" dest="23" bidirectional="true" energy="32"
time="6" radio-loss="0"/>
+ <radio-link source="20" dest="24" bidirectional="true" energy="254"
time="31" radio-loss="0"/>
+ <radio-link source="20" dest="25" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="20" dest="26" bidirectional="true" energy="254"
time="26" radio-loss="0"/>
+ <radio-link source="20" dest="27" bidirectional="true" energy="236"
time="22" radio-loss="0"/>
+ <radio-link source="20" dest="28" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="20" dest="29" bidirectional="true" energy="254"
time="30" radio-loss="0"/>
+ <radio-link source="21" dest="22" bidirectional="true" energy="254"
time="50" radio-loss="0"/>
+ <radio-link source="21" dest="23" bidirectional="true" energy="80"
time="18" radio-loss="0"/>
+ <radio-link source="21" dest="24" bidirectional="true" energy="156"
time="20" radio-loss="0"/>
+ <radio-link source="21" dest="25" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="21" dest="26" bidirectional="true" energy="254"
time="24" radio-loss="0"/>
+ <radio-link source="21" dest="27" bidirectional="true" energy="254"
time="35" radio-loss="0"/>
+ <radio-link source="21" dest="29" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="22" dest="23" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="22" dest="24" bidirectional="true" energy="254"
time="57" radio-loss="0"/>
+ <radio-link source="22" dest="25" bidirectional="true" energy="254"
time="32" radio-loss="0"/>
+ <radio-link source="22" dest="26" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="22" dest="27" bidirectional="true" energy="192"
time="21" radio-loss="0"/>
+ <radio-link source="22" dest="28" bidirectional="true" energy="92"
time="19" radio-loss="0"/>
+ <radio-link source="22" dest="29" bidirectional="true" energy="254"
time="38" radio-loss="0"/>
+ <radio-link source="23" dest="24" bidirectional="true" energy="254"
time="37" radio-loss="0"/>
+ <radio-link source="23" dest="25" bidirectional="true" energy="254"
time="46" radio-loss="0"/>
+ <radio-link source="23" dest="26" bidirectional="true" energy="254"
time="31" radio-loss="0"/>
+ <radio-link source="23" dest="27" bidirectional="true" energy="80"
time="18" radio-loss="0"/>
+ <radio-link source="23" dest="28" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="23" dest="29" bidirectional="true" energy="254"
time="24" radio-loss="0"/>
+ <radio-link source="24" dest="25" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="24" dest="26" bidirectional="true" energy="100"
time="19" radio-loss="0"/>
+ <radio-link source="24" dest="27" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="25" dest="26" bidirectional="true" energy="208"
time="22" radio-loss="0"/>
+ <radio-link source="25" dest="27" bidirectional="true" energy="254"
time="41" radio-loss="0"/>
+ <radio-link source="25" dest="28" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="26" dest="27" bidirectional="true" energy="254"
time="36" radio-loss="0"/>
+ <radio-link source="26" dest="28" bidirectional="true" energy="254"
time="56" radio-loss="0"/>
+ <radio-link source="26" dest="29" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="27" dest="28" bidirectional="true" energy="254"
time="26" radio-loss="0"/>
+ <radio-link source="27" dest="29" bidirectional="true" energy="108"
time="19" radio-loss="0"/>
+ <radio-link source="28" dest="29" bidirectional="true" energy="254"
time="34" radio-loss="0"/>
+
+</radio-links>
+
+</network-topology>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/resources/condorCheck/wsn_query64.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,118 @@
+<?xml version="1.0"?>
+
+<network-topology
+xmlns="http://snee.cs.manchester.ac.uk"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://snee.cs.manchester.ac.uk network-topology.xsd">
+
+<units>
+ <energy>MILLIJOULES</energy>
+ <memory>BYTES</memory>
+ <time>MILLISECONDS</time>
+</units>
+
+<radio-links>
+ <radio-link source="0" dest="5" bidirectional="true" energy="123"
time="31" radio-loss="0"/>
+ <radio-link source="0" dest="6" bidirectional="true" energy="250"
time="58" radio-loss="0"/>
+ <radio-link source="0" dest="8" bidirectional="true" energy="109"
time="29" radio-loss="0"/>
+ <radio-link source="0" dest="9" bidirectional="true" energy="225"
time="52" radio-loss="0"/>
+ <radio-link source="0" dest="20" bidirectional="true" energy="246"
time="31" radio-loss="0"/>
+ <radio-link source="0" dest="21" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="0" dest="23" bidirectional="true" energy="218"
time="29" radio-loss="0"/>
+ <radio-link source="0" dest="24" bidirectional="true" energy="254"
time="52" radio-loss="0"/>
+ <radio-link source="1" dest="4" bidirectional="true" energy="1" time="1"
radio-loss="0"/>
+ <radio-link source="1" dest="5" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="1" dest="6" bidirectional="true" energy="207"
time="47" radio-loss="0"/>
+ <radio-link source="1" dest="11" bidirectional="true" energy="12"
time="10" radio-loss="0"/>
+ <radio-link source="1" dest="13" bidirectional="true" energy="197"
time="45" radio-loss="0"/>
+ <radio-link source="1" dest="14" bidirectional="true" energy="253"
time="59" radio-loss="0"/>
+ <radio-link source="1" dest="19" bidirectional="true" energy="2" time="1"
radio-loss="0"/>
+ <radio-link source="1" dest="20" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="1" dest="21" bidirectional="true" energy="254"
time="47" radio-loss="0"/>
+ <radio-link source="1" dest="26" bidirectional="true" energy="24"
time="10" radio-loss="0"/>
+ <radio-link source="1" dest="28" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="1" dest="29" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="2" dest="7" bidirectional="true" energy="31"
time="19" radio-loss="0"/>
+ <radio-link source="2" dest="10" bidirectional="true" energy="171"
time="39" radio-loss="0"/>
+ <radio-link source="2" dest="22" bidirectional="true" energy="62"
time="19" radio-loss="0"/>
+ <radio-link source="2" dest="25" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="3" dest="11" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="3" dest="14" bidirectional="true" energy="222"
time="51" radio-loss="0"/>
+ <radio-link source="3" dest="26" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="3" dest="29" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="4" dest="5" bidirectional="true" energy="251"
time="59" radio-loss="0"/>
+ <radio-link source="4" dest="6" bidirectional="true" energy="206"
time="47" radio-loss="0"/>
+ <radio-link source="4" dest="11" bidirectional="true" energy="12"
time="12" radio-loss="0"/>
+ <radio-link source="4" dest="13" bidirectional="true" energy="200"
time="45" radio-loss="0"/>
+ <radio-link source="4" dest="16" bidirectional="true" energy="2" time="1"
radio-loss="0"/>
+ <radio-link source="4" dest="20" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="4" dest="21" bidirectional="true" energy="254"
time="47" radio-loss="0"/>
+ <radio-link source="4" dest="26" bidirectional="true" energy="24"
time="12" radio-loss="0"/>
+ <radio-link source="4" dest="28" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="5" dest="6" bidirectional="true" energy="168"
time="39" radio-loss="0"/>
+ <radio-link source="5" dest="8" bidirectional="true" energy="51"
time="21" radio-loss="0"/>
+ <radio-link source="5" dest="13" bidirectional="true" energy="250"
time="58" radio-loss="0"/>
+ <radio-link source="5" dest="16" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="5" dest="19" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="5" dest="21" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="5" dest="23" bidirectional="true" energy="102"
time="21" radio-loss="0"/>
+ <radio-link source="5" dest="28" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="6" dest="11" bidirectional="true" energy="216"
time="49" radio-loss="0"/>
+ <radio-link source="6" dest="13" bidirectional="true" energy="39"
time="20" radio-loss="0"/>
+ <radio-link source="6" dest="16" bidirectional="true" energy="254"
time="47" radio-loss="0"/>
+ <radio-link source="6" dest="19" bidirectional="true" energy="254"
time="47" radio-loss="0"/>
+ <radio-link source="6" dest="20" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="6" dest="26" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="6" dest="28" bidirectional="true" energy="78"
time="20" radio-loss="0"/>
+ <radio-link source="7" dest="9" bidirectional="true" energy="175"
time="40" radio-loss="0"/>
+ <radio-link source="7" dest="10" bidirectional="true" energy="251"
time="59" radio-loss="0"/>
+ <radio-link source="7" dest="17" bidirectional="true" energy="62"
time="19" radio-loss="0"/>
+ <radio-link source="7" dest="24" bidirectional="true" energy="254"
time="40" radio-loss="0"/>
+ <radio-link source="7" dest="25" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="8" dest="20" bidirectional="true" energy="102"
time="21" radio-loss="0"/>
+ <radio-link source="9" dest="22" bidirectional="true" energy="254"
time="40" radio-loss="0"/>
+ <radio-link source="10" dest="17" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="10" dest="22" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="11" dest="13" bidirectional="true" energy="187"
time="43" radio-loss="0"/>
+ <radio-link source="11" dest="14" bidirectional="true" energy="221"
time="51" radio-loss="0"/>
+ <radio-link source="11" dest="16" bidirectional="true" energy="24"
time="10" radio-loss="0"/>
+ <radio-link source="11" dest="18" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="11" dest="19" bidirectional="true" energy="24"
time="12" radio-loss="0"/>
+ <radio-link source="11" dest="21" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="11" dest="28" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="11" dest="29" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="13" dest="16" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="13" dest="19" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="13" dest="20" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="13" dest="21" bidirectional="true" energy="78"
time="20" radio-loss="0"/>
+ <radio-link source="13" dest="26" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="14" dest="16" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="14" dest="18" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="14" dest="26" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="16" dest="19" bidirectional="true" energy="4"
time="1" radio-loss="0"/>
+ <radio-link source="16" dest="20" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="16" dest="21" bidirectional="true" energy="254"
time="47" radio-loss="0"/>
+ <radio-link source="16" dest="26" bidirectional="true" energy="48"
time="10" radio-loss="0"/>
+ <radio-link source="16" dest="28" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="16" dest="29" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="17" dest="22" bidirectional="true" energy="124"
time="19" radio-loss="0"/>
+ <radio-link source="17" dest="25" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="18" dest="26" bidirectional="true" energy="254"
time="60" radio-loss="0"/>
+ <radio-link source="18" dest="29" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+ <radio-link source="19" dest="20" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="19" dest="21" bidirectional="true" energy="254"
time="47" radio-loss="0"/>
+ <radio-link source="19" dest="26" bidirectional="true" energy="48"
time="12" radio-loss="0"/>
+ <radio-link source="19" dest="28" bidirectional="true" energy="254"
time="45" radio-loss="0"/>
+ <radio-link source="20" dest="21" bidirectional="true" energy="254"
time="39" radio-loss="0"/>
+ <radio-link source="20" dest="23" bidirectional="true" energy="204"
time="21" radio-loss="0"/>
+ <radio-link source="20" dest="28" bidirectional="true" energy="254"
time="58" radio-loss="0"/>
+ <radio-link source="21" dest="26" bidirectional="true" energy="254"
time="49" radio-loss="0"/>
+ <radio-link source="21" dest="28" bidirectional="true" energy="156"
time="20" radio-loss="0"/>
+ <radio-link source="22" dest="24" bidirectional="true" energy="254"
time="40" radio-loss="0"/>
+ <radio-link source="22" dest="25" bidirectional="true" energy="254"
time="59" radio-loss="0"/>
+ <radio-link source="26" dest="28" bidirectional="true" energy="254"
time="43" radio-loss="0"/>
+ <radio-link source="26" dest="29" bidirectional="true" energy="254"
time="51" radio-loss="0"/>
+
+</radio-links>
+
+</network-topology>
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime/Collate.java
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,181 @@
+package uk.ac.manchester.snee.client.collateUnreliableLifetime;
+
+import java.io.BufferedReader;
+ import java.io.BufferedWriter;
+ import java.io.File;
+import java.io.FileNotFoundException;
+ import java.io.FileReader;
+ import java.io.FileWriter;
+ import java.io.IOException;
+import java.util.ArrayList;
+ import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+
+public class Collate {
+
+
+ private static String sep = System.getProperty("file.separator");
+ private static File root = new
File("/mnt/usb/1st1/Edge/edge_falure_unreliable/condor_edge_ulifetimeEstimateHeavyLogicalEdgesk2");
+ private static File output = new
File("/mnt/usb/1st1/Edge/edge_falure_unreliable/condor_edge_ulifetimeEstimateHeavyLogicalEdgesk2Results");
+
+ public static void main(String [] args)
+ {
+ try
+ {
+ HashMap<String, Query> data = new HashMap<String, Query>();
+ File[] listedFiles = root.listFiles();
+ int max = listedFiles.length;
+ for(int counter = 0; counter < max; counter++)
+ {
+ File queryFolder = listedFiles[counter];
+ if(queryFolder.isDirectory())
+ {
+ String[] bits = queryFolder.getName().split("\\.");
+ String fileName = bits[0];
+ int klevel = Integer.parseInt(bits[1]);
+ int nodeFailures = Integer.parseInt(bits[2]);
+ double distance = Double.parseDouble(bits[3]);
+ Double lifetime = 0.0;
+ if(distance == 1)
+ {
+ System.out.println("reading " + queryFolder.toString());
+ lifetime = readInLifetime(queryFolder);
+ storeInCorrectPoint(lifetime, klevel, nodeFailures, fileName,
data);
+ }
+ }
+ }
+ System.out.println("starting output");
+ outputData(data);
+ }
+ catch(Exception e)
+ {
+ System.out.println(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ private static void storeInCorrectPoint(Double lifetime, Integer klevel,
+ Integer nodeFailures, String fileName, HashMap<String, Query> data)
+ {
+ Query query = data.get(fileName);
+ if(query == null)
+ {
+ query = new Query(new HashMap<String, Klevel>());
+ data.put(fileName, query);
+ Klevel k = new Klevel(new HashMap<String, Double>());
+ query.getData().put(klevel.toString(), k);
+ k.getData().put(nodeFailures.toString(), lifetime);
+ }
+ else
+ {
+ Klevel k = query.getData().get(klevel.toString());
+ if(k == null)
+ {
+ k = new Klevel(new HashMap<String, Double>());
+ query.getData().put(klevel.toString(), k);
+ k.getData().put(nodeFailures.toString(), lifetime);
+ }
+ else
+ {
+ query.getData().put(klevel.toString(), k);
+ k.getData().put(nodeFailures.toString(), lifetime);
+ }
+ }
+ }
+
+ private static Double readInLifetime(File queryFolder)
+ throws IOException
+ {
+ BufferedReader in = new BufferedReader(new FileReader(
+ new File(queryFolder + sep + "out.txt")));
+ String line = null;
+ while((line = in.readLine()) != null)
+ {
+ if(line.split("new lifetime = ").length == 2)
+ {
+ in.close();
+ return Double.parseDouble(line.split("new lifetime = ")[1]);
+ }
+ }
+ in.close();
+ return null;
+ }
+
+ private static void outputData(HashMap<String, Query> data)
+ throws IOException
+ {
+ output.mkdir();
+ BufferedWriter out =
+ new BufferedWriter(new FileWriter(new File(output.toString() + sep
+ "results")));
+ Iterator<String> queryKeys = queryidSort(data.keySet()).iterator();
+ while(queryKeys.hasNext())
+ {
+ String queryKey = queryKeys.next();
+ HashMap<String, Klevel> klevel = data.get(queryKey).getData();
+ Iterator<String> klevelKeys = sort(klevel.keySet()).iterator();
+ while(klevelKeys.hasNext())
+ {
+ String klevelKey = klevelKeys.next();
+ HashMap<String, Double> kdata = klevel.get(klevelKey).getData();
+ Iterator<String> failureKeys = sort(kdata.keySet()).iterator();
+ String text = queryKey + " " + klevelKey + " ";
+ while(failureKeys.hasNext())
+ {
+ String failureCount = failureKeys.next();
+ Double lifetime = kdata.get(failureCount);
+ text = text.concat(lifetime + " ");
+ }
+ out.write(text + "\n");
+ }
+ }
+ out.flush();
+ out.close();
+ }
+
+
+ private static ArrayList<String> queryidSort(Set<String> keys)
+ {
+ ArrayList<String> newkeys = new ArrayList<String>();
+ for(int index =0; index < 90; index++)
+ {
+ newkeys.add(null);
+ }
+ Iterator<String> keyIterator = keys.iterator();
+ while(keyIterator.hasNext())
+ {
+ String key = keyIterator.next();
+ int position = Integer.parseInt(key.split("query")[1]);
+ newkeys.set(position, key);
+ }
+ for(int index =0; index < 90; index++)
+ {
+ newkeys.remove(null);
+ }
+ return newkeys;
+ }
+
+ private static ArrayList<String> sort(Set<String> keys)
+ {
+ ArrayList<String> newkeys = new ArrayList<String>();
+ for(int index =0; index < 90; index++)
+ {
+ newkeys.add(null);
+ }
+ Iterator<String> keyIterator = keys.iterator();
+ while(keyIterator.hasNext())
+ {
+ String key = keyIterator.next();
+ int position = Integer.parseInt(key);
+ newkeys.set(position, key);
+ }
+ for(int index =0; index < 90; index++)
+ {
+ newkeys.remove(null);
+ }
+ return newkeys;
+ }
+
+ }
+
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime/Klevel.java
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,36 @@
+package uk.ac.manchester.snee.client.collateUnreliableLifetime;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+public class Klevel
+{
+ private HashMap<String, Double> data = new HashMap<String, Double>();
+
+ public Klevel(HashMap<String, Double> data)
+ {
+ this.setData(data);
+ }
+
+ public void setData(HashMap<String, Double> data)
+ {
+ this.data = data;
+ }
+
+ public HashMap<String, Double> getData()
+ {
+ return data;
+ }
+
+ public String toString()
+ {
+ String output = "";
+ Iterator<String> keys = data.keySet().iterator();
+ while(keys.hasNext())
+ {
+ String key = keys.next();
+ output = output.concat(key + "-" + data.get(key).toString() + ":");
+ }
+ return output;
+ }
+}
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/collateUnreliableLifetime/Query.java
Fri Aug 30 13:53:42 2013 UTC
@@ -0,0 +1,37 @@
+package uk.ac.manchester.snee.client.collateUnreliableLifetime;
+ import java.util.HashMap;
+ import java.util.Iterator;
+
+ public class Query
+ {
+ private HashMap<String, Klevel> data = new HashMap<String, Klevel>();
+
+ public Query(HashMap<String, Klevel> data)
+ {
+ this.setData(data);
+ }
+
+ public void setData(HashMap<String, Klevel> data)
+ {
+ this.data = data;
+ }
+
+ public HashMap<String, Klevel> getData()
+ {
+ return data;
+ }
+
+ public String toString()
+ {
+ String output = "";
+ Iterator<String> keys = data.keySet().iterator();
+ while(keys.hasNext())
+ {
+ String key = keys.next();
+ output = output.concat(key + "-" + data.get(key).toString() + ":");
+ }
+ return output;
+ }
+
+ }
+
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/meyer-heavy.txt
Fri Aug 30 13:53:42 2013 UTC
File is too large to display a diff.
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/failed-node-eval-client/src/main/java/uk/ac/manchester/snee/client/SNEEFailedNodeEvalClientUsingInNetworkSource.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failed-node-eval-client/src/main/java/uk/ac/manchester/snee/client/SNEEFailedNodeEvalClientUsingInNetworkSource.java
Fri Aug 30 13:53:42 2013 UTC
@@ -395,7 +395,7 @@
SNEEConfigurationException
{
SNEEController control = (SNEEController) getController();
- control.resetQEP(qep);
+ control.resetQEP(qep, false);
}

private void resetMetaData()
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/CondorFailedNodeClient.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/CondorFailedNodeClient.java
Fri Aug 30 13:53:42 2013 UTC
@@ -51,11 +51,13 @@
protected static int numberOfExectutionCycles;
protected static boolean calculated = false;
protected static SensorNetworkQueryPlan originalQEP;
- private static int queryid = 1;
+ private static int queryid = 64;
protected static int testNo = 1;
private static String sep = System.getProperty("file.separator");
private static final FailedNodeTimeClientUtils utils = new
FailedNodeTimeClientUtils();
protected static CondorFailedNodeClient client;
+ protected static int faieldTests = 0;
+ protected static int preditctableNodeFailureIterations = 0;

public CondorFailedNodeClient(String query, double duration,
String queryParams, String csvFilename, String sneeProperties)
@@ -90,7 +92,7 @@
//File result = new File(output.toString() + "/" + "ran" + query +
queryid);
//result.mkdir();
// System.out.println("made folder output and " + output.toString()
+ "/" + "ran" + query + queryid);
- recursiveRun(query, duration, queryParams, true, propertiesPath) ;
+ recursiveRun(query, duration, queryParams, false, propertiesPath) ;
}
catch (Exception e)
{
@@ -221,10 +223,21 @@
testNo++;
}
currentlyFailedNodes.clear();
- double currentLifetime = numberOfExectutionCycles *
currentNumberOfFailures ;
- utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.PARTIAL, fails);
+ boolean successful = false;
+ double currentLifetime = 0.0;
+ if(faieldTests == 0)
+ {
+ successful = true;
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures);
+ }
+ else
+ {
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures - (faieldTests -1));
+ }
+ faieldTests = 0;
+ utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.PARTIAL, fails, successful);
utils.plotTopology(testNo -1);
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);
}
}

@@ -254,10 +267,21 @@
testNo++;
}
currentlyFailedNodes.clear();
- double currentLifetime = numberOfExectutionCycles *
currentNumberOfFailures;
- utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.GLOBAL, fails);
+ boolean successful = false;
+ double currentLifetime = 0.0;
+ if(faieldTests == 0)
+ {
+ successful = true;
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures);
+ }
+ else
+ {
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures - (faieldTests -1));
+ }
+ faieldTests = 0;
+ utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.GLOBAL, fails, successful);
utils.plotTopology(testNo -1);
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);
}
}

@@ -286,7 +310,7 @@
return orginal.getLifetimeEstimate();
}

- private void resetDataSources(SensorNetworkQueryPlan qep)
+ private void resetDataSources(SensorNetworkQueryPlan qep, boolean
keepEnergySoruces)
throws SourceDoesNotExistException, SourceMetadataException,
SNEEConfigurationException, SNCBException, TopologyReaderException,
OptimizationException, SchemaMetadataException, TypeMappingException,
@@ -294,29 +318,88 @@
{
SNEEController control = (SNEEController) getController();
control.resetMetaData(qep);
- control.resetQEP(qep);
+ control.resetQEP(qep, keepEnergySoruces);
}

- private void runTests(CondorFailedNodeClient client, String currentQuery,
+ private boolean runTests(CondorFailedNodeClient client, String
currentQuery,
int queryid, boolean allowDeathOfAcquires, ArrayList<String> fails)
throws Exception
{
- updateSites(allowDeathOfAcquires);
- if(applicableConfulenceSites.size() != 0)
+ try
{
+ updateSites(allowDeathOfAcquires);
String deadNode = chooseNodes();
-
getController().simulateEnergyDrainofAganedaExecutionCycles(numberOfExectutionCycles);
- client.runForTests(deadNode, queryid, fails);
- utils.updateRecoveryFile(queryid);
- System.gc();
- updateSites(allowDeathOfAcquires);
+ if(applicableConfulenceSites.size() != 0)
+ {
+ Double energydrainLifetime =
getController().getTimeTillNextNodefailsFromEnergyDelpetion();
+ String energydrainNode =
getController().getNextNodefailsFromEnergyDelpetion();
+
+ if(energydrainLifetime < (numberOfExectutionCycles -
preditctableNodeFailureIterations))
+ {
+ System.out.println("having to run a predictable node failure");
+ System.out.println("runnign with node " + energydrainNode + " as
lifetime is " +
+ energydrainLifetime + "and should be " +
numberOfExectutionCycles);
+
+
+
getController().simulateEnergyDrainofAganedaExecutionCycles(energydrainLifetime.intValue());
+ client.runExpectedNodeFailure(energydrainNode, queryid, fails);
+ preditctableNodeFailureIterations =
energydrainLifetime.intValue();
+ }
+ else
+ {
+
getController().simulateEnergyDrainofAganedaExecutionCycles(numberOfExectutionCycles);
+ client.runForTests(deadNode, queryid, fails);
+ preditctableNodeFailureIterations = 0;
+ }
+ // utils.updateRecoveryFile(queryid);
+ System.gc();
+ updateSites(allowDeathOfAcquires);
+ }
+ else
+ {
+ System.out.println("were no avilable nodes to fail, will not run
test");
+ faieldTests++;
+ client.updateAdpatationCount();
+ }
+ System.out.println("Stopping current query");
+ getController().close();
+ return true;
}
- else
+ catch(Exception e)
{
System.out.println("were no avilable nodes to fail, will not run
test");
+ e.printStackTrace();
+ faieldTests++;
+ client.updateAdpatationCount();
+ System.out.println("Stopping current query");
+ getController().close();
+ return false;
}
- System.out.println("Stopping current query");
- getController().close();
+ }
+
+ private void runExpectedNodeFailure(String energydrainNode, int queryid,
+ ArrayList<String> fails)
+ throws Exception
+ {
+ if (logger.isDebugEnabled())
+ logger.debug("ENTER");
+ System.out.println("Query: " + _query);
+ System.out.println("Failed node [" + energydrainNode + "] ");
+ SNEEController control = (SNEEController) getController();
+ control.giveAutonomicManagerQuery(_query);
+ ArrayList<String> currentNodeFailures = new ArrayList<String>();
+ currentlyFailedNodes.add(energydrainNode);
+ currentNodeFailures.add(energydrainNode);
+ control.runSimulatedNodeFailure(currentNodeFailures);
+ fails.add(energydrainNode);
+ }
+
+
+ private void updateAdpatationCount()
+ {
+ SNEEController control = (SNEEController) getController();
+ control.updateAdpatationCount();
+
}

/**
@@ -437,6 +520,7 @@
ArrayList<String> currentNodeFailures = new ArrayList<String>();
currentlyFailedNodes.add(failedNode);
currentNodeFailures.add(failedNode);
+ SensorNetworkQueryPlan lastQEP = client.getQEP();
try
{
control.runSimulatedNodeFailure(currentNodeFailures);
@@ -470,7 +554,7 @@
IOException, CodeGenerationException, SNEEConfigurationException
{
SNEEController control = (SNEEController) getController();
- control.resetQEP(qep);
+ control.resetQEP(qep, true);
}

private void resetMetaData(SensorNetworkQueryPlan qep)
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/FailedNodeTimeClientUtils.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/FailedNodeTimeClientUtils.java
Fri Aug 30 13:53:42 2013 UTC
@@ -208,7 +208,8 @@
return local;
}

- public void storeAdaptation(int queryid, int testid, double
currentLifetime, PlotterEnum which, ArrayList<String> fails)
+ public void storeAdaptation(int queryid, int testid, double
currentLifetime,
+ PlotterEnum which, ArrayList<String> fails,
boolean successful)
{
File inputFolder = new File("output" + sep + "query" + queryid + sep
+ "AutonomicManData" + sep + "Adaption" + testid + sep + "Planner" + sep
+ "storedObjects");
ArrayList<Adaptation> adaptations = this.readInObjects(inputFolder);
@@ -220,15 +221,23 @@
DecimalFormat df = new DecimalFormat("#.#####");
if(which == PlotterEnum.GLOBAL && global != null)
{
- Double overallLifetime = new
Double(global.getLifetimeEstimate().doubleValue() + currentLifetime);
+ Double overallLifetime = 0.0;
+ if(successful)
+ overallLifetime = new
Double(global.getLifetimeEstimate().doubleValue() + currentLifetime);
+ else
+ overallLifetime = currentLifetime;
System.out.println(df.format( overallLifetime));
- plot.addGlobalLifetime(global.getLifetimeEstimate() +
currentLifetime, fails);
+ plot.addGlobalLifetime(overallLifetime, fails);
}
else if(which == PlotterEnum.PARTIAL && partial != null)
{
- Double overallLifetime = new
Double(partial.getLifetimeEstimate().doubleValue() + currentLifetime);
+ Double overallLifetime = 0.0;
+ if(successful)
+ overallLifetime = new
Double(partial.getLifetimeEstimate().doubleValue() + currentLifetime);
+ else
+ overallLifetime = currentLifetime;
System.out.println(df.format(overallLifetime ));
- plot.addPartialLifetime(partial.getLifetimeEstimate() +
currentLifetime, fails);
+ plot.addPartialLifetime(overallLifetime, fails);
}
else if(which == PlotterEnum.LOCAL & local != null)
{
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/FailedNodeTimePlotter.java
Wed Feb 29 13:52:41 2012 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/FailedNodeTimePlotter.java
Fri Aug 30 13:53:42 2013 UTC
@@ -177,7 +177,7 @@
{
System.out.println(e.getMessage());
}
- generatePlots(testID);
+ //generatePlots(testID);
}


@@ -267,7 +267,7 @@

lifetimeWriter.flush();

- generatePlots(testID);
+ //generatePlots(testID);
}

private void generatePlots(int testID)
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/SNEEFailedNodeEvalClientUsingInNetworkSourceTimeDelay.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/failedNodeEvalClientTimeIntergrated/src/main/java/uk/ac/manchester/snee/client/SNEEFailedNodeEvalClientUsingInNetworkSourceTimeDelay.java
Fri Aug 30 13:53:42 2013 UTC
@@ -59,7 +59,7 @@

Logger.getLogger(SNEEFailedNodeEvalClientUsingInNetworkSourceTimeDelay.class.getName());
@SuppressWarnings("unused")
private String sneeProperties;
- private static int queryid = 13;
+ private static int queryid = 31 ;
protected static int testNo = 1;
private static String dictonary = "testsSize30";

@@ -71,6 +71,7 @@
protected static boolean calculated = false;
protected static SensorNetworkQueryPlan originalQEP;
protected static SNEEFailedNodeEvalClientUsingInNetworkSourceTimeDelay
client;
+ protected static int faieldTests = 0;

private static final FailedNodeTimeClientUtils utils = new
FailedNodeTimeClientUtils();

@@ -114,6 +115,11 @@

queryIterator = queries.iterator();
failedOutput = utils.createFailedTestListWriter();
+
+ for(int index =1; index < queryid; index++)
+ {
+ queryIterator.next();
+ }

// while(queryIterator.hasNext())
// {
@@ -181,12 +187,12 @@
{
if(position == 0)
{
- runGlobalTests(currentQuery, allowDeathOfAcquires);
+ runPartialTests(currentQuery, allowDeathOfAcquires, position);
runSeveralTests(position + 1, currentQuery, allowDeathOfAcquires);
}
else if(position == 1)
{
- runPartialTests(currentQuery, allowDeathOfAcquires);
+ runGlobalTests(currentQuery, allowDeathOfAcquires, position);
runSeveralTests(position + 1, currentQuery, allowDeathOfAcquires);
}
// else if(position == 2)
@@ -223,10 +229,14 @@
* @throws Exception
*/
private static void runPartialTests(String currentQuery,
- boolean allowDeathOfAcquires)
+ boolean allowDeathOfAcquires, int position)
throws Exception
{
//client.resetDataSources(originalQEP);
+ int cap = 0;
+ for(int index = 1; index <= maxNumberofFailures; index++)
+ cap += index;
+ testNo = 1 + (cap * (position));
System.out.println("running tests for partial ");

SNEEProperties.setSetting(SNEEPropertyNames.CHOICE_ASSESSOR_PREFERENCE,
ChoiceAssessorPreferenceEnum.Partial.toString());

@@ -244,10 +254,21 @@
testNo++;
}
currentlyFailedNodes.clear();
- double currentLifetime = numberOfExectutionCycles *
currentNumberOfFailures ;
- utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.PARTIAL, fails);
+ boolean successful = false;
+ double currentLifetime = 0.0;
+ if(faieldTests == 0)
+ {
+ successful = true;
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures);
+ }
+ else
+ {
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures - (faieldTests -1));
+ }
+ faieldTests = 0;
+ utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.PARTIAL, fails, successful);
utils.plotTopology(testNo -1);
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);
}

}
@@ -258,13 +279,16 @@
* @param allowDeathOfAcquires
* @throws Exception
*/
- private static void runGlobalTests(String currentQuery, boolean
allowDeathOfAcquires)
+ private static void runGlobalTests(String currentQuery, boolean
allowDeathOfAcquires, int position)
throws Exception
{
originalQEP = client.getQEP();
System.out.println("running tests for global ");

SNEEProperties.setSetting(SNEEPropertyNames.CHOICE_ASSESSOR_PREFERENCE,
ChoiceAssessorPreferenceEnum.Global.toString());
- testNo = 1;
+ int cap = 0;
+ for(int index = 1; index <= maxNumberofFailures; index++)
+ cap += index;
+ testNo = 1 + (cap * (position));
for(int currentNumberOfFailures = 1; currentNumberOfFailures <=
maxNumberofFailures; currentNumberOfFailures++)
{
calculateAgendaExecutionsBetweenFailures(currentNumberOfFailures,
client);
@@ -277,11 +301,21 @@
client.runTests(client, currentQuery, queryid,
allowDeathOfAcquires, fails);
testNo++;
}
- currentlyFailedNodes.clear();
- double currentLifetime = numberOfExectutionCycles *
currentNumberOfFailures;
- utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.GLOBAL, fails);
+ boolean successful = false;
+ double currentLifetime = 0.0;
+ if(faieldTests == 0)
+ {
+ successful = true;
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures);
+ }
+ else
+ {
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures - (faieldTests -1));
+ }
+ faieldTests = 0;
+ utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.GLOBAL, fails, successful);
utils.plotTopology(testNo -1);
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);

}

@@ -315,10 +349,21 @@
testNo++;
}
currentlyFailedNodes.clear();
- double currentLifetime = numberOfExectutionCycles *
(originalQEP.getAgendaIOT().getLength_bms(false) / 1024) *
currentNumberOfFailures;
- utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.LOCAL, fails);
+ boolean successful = false;
+ double currentLifetime = 0.0;
+ if(faieldTests == 0)
+ {
+ successful = true;
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures);
+ }
+ else
+ {
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures - (faieldTests -1));
+ }
+ faieldTests = 0;
+ utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.LOCAL, fails, successful);
utils.plotTopology(testNo -1);
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);

}

@@ -342,7 +387,7 @@
private static void runBestTests(String currentQuery, boolean
allowDeathOfAcquires)
throws Exception
{
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);
originalQEP = client.getQEP();
System.out.println("running tests for best ");

SNEEProperties.setSetting(SNEEPropertyNames.CHOICE_ASSESSOR_PREFERENCE,
ChoiceAssessorPreferenceEnum.Best.toString());
@@ -360,10 +405,22 @@
testNo++;
}
currentlyFailedNodes.clear();
- double currentLifetime = numberOfExectutionCycles *
(originalQEP.getAgendaIOT().getLength_bms(false) / 1024) *
currentNumberOfFailures;
- utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.ALL, fails);
+ boolean successful = false;
+ double currentLifetime = 0.0;
+ if(faieldTests == 0)
+ {
+ successful = true;
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures);
+ }
+ else
+ {
+ currentLifetime = numberOfExectutionCycles *
(currentNumberOfFailures - (faieldTests -1));
+ }
+ faieldTests = 0;
+ // double currentLifetime = numberOfExectutionCycles *
(originalQEP.getAgendaIOT().getLength_bms(false) / 1024) *
currentNumberOfFailures;
+ utils.storeAdaptation(queryid, testNo -1, currentLifetime,
PlotterEnum.ALL, fails, successful);
utils.plotTopology(testNo -1);
- client.resetDataSources(originalQEP);
+ client.resetDataSources(originalQEP, false);

}

@@ -372,6 +429,7 @@
/**
* resets all the data stores for a new run
* @param qep
+ * @param keepcurrentEnergyLevels
* @throws SourceDoesNotExistException
* @throws SourceMetadataException
* @throws SNEEConfigurationException
@@ -383,7 +441,7 @@
* @throws IOException
* @throws CodeGenerationException
*/
- private void resetDataSources(SensorNetworkQueryPlan qep)
+ private void resetDataSources(SensorNetworkQueryPlan qep, boolean
keepcurrentEnergyLevels)
throws SourceDoesNotExistException, SourceMetadataException,
SNEEConfigurationException, SNCBException, TopologyReaderException,
OptimizationException, SchemaMetadataException, TypeMappingException,
@@ -391,7 +449,7 @@
{
SNEEController control = (SNEEController) getController();
control.resetMetaData(qep);
- control.resetQEP(qep);
+ control.resetQEP(qep, keepcurrentEnergyLevels);
}

/**
@@ -506,10 +564,19 @@
else
{
System.out.println("were no avilable nodes to fail, will not run
test");
+ faieldTests += 1;
+ client.updateAdpatationCount();
}
System.out.println("Stopping current query");
getController().close();
}
+
+ private void updateAdpatationCount()
+ {
+ SNEEController control = (SNEEController) getController();
+ control.updateAdpatationCount();
+
+ }

/**
* goes though routing tree, looking for nodes which are confluence
sites which are sites
@@ -662,7 +729,7 @@
IOException, CodeGenerationException, SNEEConfigurationException
{
SNEEController control = (SNEEController) getController();
- control.resetQEP(qep);
+ control.resetQEP(qep, true);
}

private void resetMetaData(SensorNetworkQueryPlan qep)
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/CondorReliableChannelClient.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/CondorReliableChannelClient.java
Fri Aug 30 13:53:42 2013 UTC
@@ -63,21 +63,21 @@
query = query.replace("_", " ");
String propertiesPath = args[1];
queryid = Integer.parseInt(args[2]);
- long seed = Long.parseLong(args[3]);
- //long seed =0;
+ //long seed = Long.parseLong(args[3]);
+ long seed =0;
double distanceConverter = Double.parseDouble(args[4]);
//int noFailures =0;
// Long lifetime = new Long(0);
- //Double lifetime1 = Double.parseDouble(args[5]);
+ Double lifetime = Double.parseDouble(args[5]);
//Long lifetime = new Long(lifetime1.longValue());
- //long lifetime = Long.parseLong(args[5]);
- //int noFailures = Integer.parseInt(args[3]);
+ // long lifetime = Long.parseLong(args[5]);
+ int noFailures = Integer.parseInt(args[3]);
File output = new File("output");
output.mkdir();
File result = new File(output.toString() + "/" + "ran" + query +
queryid);
result.mkdir();
System.out.println("made folder output and " + output.toString()
+ "/" + "ran" + query + queryid);
- recursiveRun(query, duration, queryParams, true, propertiesPath,
seed, distanceConverter);//, lifetime, noFailures) ;
+ recursiveRun(query, duration, queryParams, true, propertiesPath,
seed, distanceConverter, lifetime, noFailures) ;
}
catch (Exception e)
{
@@ -91,8 +91,8 @@
private static void recursiveRun(String currentQuery,
Long duration, String queryParams,
boolean allowDeathOfAcquires, String
propertiesPath,
- Long seed, double distanceConverter)//,
- // Long lifetime, int noFailures)
+ Long seed, double distanceConverter,
+ double lifetime, int noFailures)
throws IOException
{
System.out.println("Running Tests on query " + (queryid));
@@ -107,7 +107,7 @@
System.out.println("setting queryid");
contol.setQueryID(queryid);
System.out.println("running compilation");
- client.runCompilelation(seed, distanceConverter);//, lifetime,
noFailures);
+ client.runCompilelation(seed, distanceConverter, lifetime,
noFailures);
System.out.println("Ran all tests on query " + queryid);
queryid ++;
}
@@ -120,7 +120,7 @@
}
}

- private void runCompilelation(Long seed, double distanceConverter)//,
Long lifetime, int noFailures)
+ private void runCompilelation(Long seed, double distanceConverter,
Double lifetime, int noFailures)
throws
SNEECompilerException, MalformedURLException,
EvaluatorException, SNEEException, MetadataException,
@@ -145,16 +145,18 @@

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_INITILISE_FRAMEWORKS, "FALSE");
String k =
SNEEProperties.getSetting(SNEEPropertyNames.WSN_MANAGER_K_RESILENCE_LEVEL);

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_K_ACTIVE_LEVEL, k);
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_SIMULATION_ITERATIONS, "20");

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_RESILIENTLEVEL,
k);
-
//SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_NOISEMODEL, "meyer-heavy.txt");
-
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_NOISEMODEL, "casino-lab.txt");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_NOISEMODEL, "meyer-heavy.txt");
+ //
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_NOISEMODEL, "casino-lab.txt");
//
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_NOISEMODEL, "TTX4-DemoNoiseTrace.txt");
-
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_PATHLOSSEXPONENT, "3");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_PATHLOSSEXPONENT, "1.6");

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_TEST_LOGICAL_EDGES, "FALSE");
-
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_TUPLES, "TRUE");
-
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_LIFE, "FALSE");
-
//SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_EXPECTEDLIFETIME,
lifetime.toString());
-
//SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_LIFETIME_UNPREDICTABLEFAILURES_NO,
new Integer(noFailures).toString());
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_TUPLES, "FALSE");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_LIFE, "TRUE");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_EXPECTEDLIFETIME,
lifetime.toString());
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_LIFETIME_UNPREDICTABLEFAILURES, "TRUE");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_LIFETIME_UNPREDICTABLEFAILURES_NO,
new Integer(noFailures).toString());

control.addQuery(_query, _queryParams, seed, distanceConverter);
getController().close();
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/query-parameters.xml
Wed Mar 13 10:48:31 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/query-parameters.xml
Fri Aug 30 13:53:42 2013 UTC
@@ -27,8 +27,8 @@
<buffering-factor>
<constraint>
<range>
- <min-val>5</min-val>
- <max-val>5</max-val>
+ <min-val>0</min-val>
+ <max-val>200</max-val>
</range>
</constraint>
<weighting>1</weighting>
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-api/src/main/java/uk/ac/manchester/cs/snee/SNEE.java
Tue Jul 31 09:50:48 2012 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-api/src/main/java/uk/ac/manchester/cs/snee/SNEE.java
Fri Aug 30 13:53:42 2013 UTC
@@ -162,4 +162,12 @@
*/
public void simulateEnergyDrainofAganedaExecutionCycles(int
fixedNumberOfAgendaExecutionCycles);

+ public Double getTimeTillNextNodefailsFromEnergyDelpetion()
+ throws OptimizationException, SchemaMetadataException,
+ TypeMappingException, SNEEConfigurationException;
+
+ public String getNextNodefailsFromEnergyDelpetion()
+ throws OptimizationException, SchemaMetadataException,
+ TypeMappingException, SNEEConfigurationException;
+
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManager.java
Fri Feb 15 18:30:48 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManager.java
Fri Aug 30 13:53:42 2013 UTC
@@ -104,7 +104,7 @@

public abstract void setCurrentQEP(SensorNetworkQueryPlan newQEP);

- public abstract void resetRunningSites(SensorNetworkQueryPlan qep)
+ public abstract void resetRunningSites(SensorNetworkQueryPlan qep,
boolean keepingEnergyLevels)
throws OptimizationException, SchemaMetadataException,
TypeMappingException,
IOException, CodeGenerationException, SNEEConfigurationException;

@@ -123,4 +123,12 @@
OptimizationException, IOException, CodeGenerationException,
NumberFormatException, WhenSchedulerException, AgendaException,
AgendaLengthException;
+
+ public abstract void updateAdpatationCount();
+
+ public abstract Double
getTimeTillNextNodefailsFromEnergyDelpetion(QueryExecutionPlan
queryExecutionPlan)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException;
+
+ public abstract String
getNextNodefailsFromEnergyDelpetion(QueryExecutionPlan queryExecutionPlan)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException;
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/SNEEController.java
Fri Feb 15 18:30:48 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/SNEEController.java
Fri Aug 30 13:53:42 2013 UTC
@@ -722,11 +722,11 @@
sm.resetTopology();
}

- public void resetQEP(SensorNetworkQueryPlan qep)
+ public void resetQEP(SensorNetworkQueryPlan qep, boolean
keepingEnergyLevels)
throws OptimizationException, SchemaMetadataException,
TypeMappingException, IOException, CodeGenerationException,
SNEEConfigurationException
{
- _dispatcher.resetQEP(qep);
+ _dispatcher.resetQEP(qep, keepingEnergyLevels);
}

public void removeNodeFromTheMetaData(String failedID,
SensorNetworkQueryPlan qep)
@@ -823,4 +823,25 @@
return queryId;

}
+
+ public void updateAdpatationCount()
+ {
+ _dispatcher.updateAdaptationCount();
+ }
+
+ @Override
+ public Double getTimeTillNextNodefailsFromEnergyDelpetion()
+ throws OptimizationException, SchemaMetadataException,
+ TypeMappingException, SNEEConfigurationException
+ {
+ return
_dispatcher.getTimeTillNextNodefailsFromEnergyDelpetion(this.getQEP());
+ }
+
+ @Override
+ public String getNextNodefailsFromEnergyDelpetion()
+ throws OptimizationException, SchemaMetadataException,
+ TypeMappingException, SNEEConfigurationException
+ {
+ return _dispatcher.getNextNodefailsFromEnergyDelpetion(this.getQEP());
+ }
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/evaluator/Dispatcher.java
Fri Feb 15 18:30:48 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/evaluator/Dispatcher.java
Fri Aug 30 13:53:42 2013 UTC
@@ -346,12 +346,12 @@

_autonomicManager.simulateEnergyDrainofAganedaExecutionCycles(fixedNumberOfAgendaExecutionCycles);
}

- public void resetQEP(SensorNetworkQueryPlan qep)
+ public void resetQEP(SensorNetworkQueryPlan qep, boolean
keepingEnergyLevels)
throws OptimizationException, SchemaMetadataException,
TypeMappingException,
IOException, CodeGenerationException, SNEEConfigurationException
{
_autonomicManager.setCurrentQEP(qep);
- _autonomicManager.resetRunningSites(qep);
+ _autonomicManager.resetRunningSites(qep, keepingEnergyLevels);
}

public void setupOverlay()
@@ -377,5 +377,23 @@
_autonomicManager.initilise(metadata, queryPlan, resultSet, queryId,
seed, distanceConverter);

}
+
+ public void updateAdaptationCount()
+ {
+ _autonomicManager.updateAdpatationCount();
+
+ }
+
+ public Double
getTimeTillNextNodefailsFromEnergyDelpetion(QueryExecutionPlan
queryExecutionPlan)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ return
_autonomicManager.getTimeTillNextNodefailsFromEnergyDelpetion(queryExecutionPlan);
+ }
+
+ public String getNextNodefailsFromEnergyDelpetion(QueryExecutionPlan
queryExecutionPlan)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ return
_autonomicManager.getNextNodefailsFromEnergyDelpetion(queryExecutionPlan);
+ }

}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManagerImpl.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManagerImpl.java
Fri Aug 30 13:53:42 2013 UTC
@@ -435,7 +435,7 @@
{
return adaptionCount;
}
-
+
@Override
public void setQueryParams(QoSExpectations qoS)
{
@@ -471,13 +471,28 @@
}

@Override
- public void resetRunningSites(SensorNetworkQueryPlan qep)
+ public void resetRunningSites(SensorNetworkQueryPlan qep, boolean
keepingEnergyLevels)
throws OptimizationException, SchemaMetadataException,
TypeMappingException,
IOException, CodeGenerationException, SNEEConfigurationException
{
- runningSites.clear();
+ if(!keepingEnergyLevels)
+ runningSites.clear();
+ else
+ transferEnergyLevels();
setupRunningSites(qep);
}
+
+ private void transferEnergyLevels()
+ {
+ Iterator<Node> siteIterator =
this.getWsnTopology().getNodes().iterator();
+ while(siteIterator.hasNext())
+ {
+ Site currentSite = (Site) siteIterator.next();
+ RunTimeSite energySite = runningSites.get(currentSite.getID());
+
currentSite.setEnergyStock(energySite.getCurrentEnergy().longValue());
+ }
+ runningSites.clear();
+ }

public HashMap<String, RunTimeSite> getCopyOfRunningSites()
{
@@ -647,9 +662,30 @@
SchemaMetadataException, TypeMappingException, IOException,
CodeGenerationException
{
boolean areUnpredictable =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_LIFETIME_UNPREDICTABLEFAILURES);
- if(true)
+ if(areUnpredictable)
return
this.executer.calculateUnpredictableLifetimeDifferenceFromDeployments(rQEP,
qep, seed, distanceConverter);
else
return
this.executer.calculateLifetimeDifferenceFromDeployments(rQEP, qep, seed,
distanceConverter);
}
+
+ @Override
+ public void updateAdpatationCount()
+ {
+ this.adaptionCount++;
+
+ }
+
+ @Override
+ public Double
getTimeTillNextNodefailsFromEnergyDelpetion(QueryExecutionPlan qep)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ return this.planner.getTimeTillNextNodefailsFromEnergyDelpetion(qep);
+ }
+
+ @Override
+ public String getNextNodefailsFromEnergyDelpetion(QueryExecutionPlan qep)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ return this.planner.getNextNodefailsFromEnergyDelpetion(qep);
+ }
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/executer/Executer.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/executer/Executer.java
Fri Aug 30 13:53:42 2013 UTC
@@ -712,7 +712,7 @@
String queryid = manager.getQueryID();
DecimalFormat format = new DecimalFormat("#.##");

- double overallShortestLifetimeA = overallShortestLifetime /
(rQEP.getUnreliableAgenda().getDeliveryTime_ms() / 1000);
+ double overallShortestLifetimeA = overallShortestLifetime;
if(runLogicalEdges)
System.out.println(queryid + " " + "L" + " " +
format.format(overallShortestLifetimeA));
else
@@ -745,13 +745,13 @@
ArrayList<String> globalFailedNodes = new ArrayList<String>();
double overallRQEPShortestLifetime = 0;
NoiseModel Nmodel = new NoiseModel(network,
manager.getCostsParamters(), seed);
-
+ double lifetimebetweenFailure = 0.0;
int numberofunpredictableFailures = 0;
int expectedNumberOfUnexpectedFailures =

SNEEProperties.getIntSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_LIFETIME_UNPREDICTABLEFAILURES_NO);
- Long expectedlifetime =
- (long)
SNEEProperties.getIntSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_EXPECTEDLIFETIME);
- int timeTillUnexpectedFailure = new Double(expectedlifetime /
expectedNumberOfUnexpectedFailures).intValue();
+ Double expectedlifetime =
+
Double.parseDouble(SNEEProperties.getSetting(SNEEPropertyNames.WSN_MANAGER_EDGE_EXPECTEDLIFETIME));
+ int timeTillUnexpectedFailure = new Double(expectedlifetime /
(expectedNumberOfUnexpectedFailures+1)).intValue();

while(alive)
{
@@ -784,9 +784,10 @@
Node site = siteIter.next();
RunTimeSite rSite = runningSites.get(site.getID());
double currentEnergySupply = rSite.getCurrentEnergy() -
rSite.getCurrentAdaptationEnergyCost();
+ System.out.println(site.getID() + " " +
runningSites.get(site.getID()).getQepExecutionCost());
double siteLifetime = (currentEnergySupply /
runningSites.get(site.getID()).getQepExecutionCost());
boolean useAcquires =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_K_RESILENCE_SENSE);
- //uncomment out sections to not take the root site into account
+
if (!site.getID().equals(rQEP.getIOT().getRT().getRoot().getID())
&&
((useAcquires) || (!useAcquires && !((Site) site).isSource()))
&&
!globalFailedNodes.contains(site.getID()))
@@ -803,7 +804,7 @@
}

// got expected first node failure, need to find out if its above or
below unexpected failure
- if(shortestLifetime > timeTillUnexpectedFailure *
(numberofunpredictableFailures+1) &&
+ if(shortestLifetime > ((timeTillUnexpectedFailure *
(numberofunpredictableFailures + 1))- lifetimebetweenFailure) &&
numberofunpredictableFailures <
expectedNumberOfUnexpectedFailures)
{
ArrayList<String> allNodes = new ArrayList<String>();
@@ -814,10 +815,10 @@
shortestLifetime = timeTillUnexpectedFailure *
(numberofunpredictableFailures+1);
numberofunpredictableFailures++;
}
-
+ lifetimebetweenFailure += shortestLifetime;
//update runtimeSites energy levels
updateSitesEnergyLevels(shortestLifetime, globalFailedNodes);
- overallRQEPShortestLifetime += (shortestLifetime * agendaLength);
+ overallRQEPShortestLifetime += shortestLifetime;
globalFailedNodes.add(failedSite);
System.out.println("node " + failedSite);
if(failedSite.equals("52"))
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/Planner.java
Fri Jul 5 09:15:55 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/Planner.java
Fri Aug 30 13:53:42 2013 UTC
@@ -16,6 +16,7 @@
import uk.ac.manchester.cs.snee.compiler.OptimizationException;
import uk.ac.manchester.cs.snee.compiler.WhenSchedulerException;
import uk.ac.manchester.cs.snee.compiler.AgendaLengthException;
+import uk.ac.manchester.cs.snee.compiler.queryplan.QueryExecutionPlan;
import uk.ac.manchester.cs.snee.compiler.queryplan.SensorNetworkQueryPlan;
import uk.ac.manchester.cs.snee.compiler.queryplan.Task;
import uk.ac.manchester.cs.snee.manager.AutonomicManagerImpl;
@@ -224,11 +225,11 @@
if(choice.getStrategyId().toString().contains("Partial"))
{
Double choiceCost = choice.getLifetimeEstimate();
- if(choiceCost > cost)
- {
+ //if(choiceCost > cost)
+ //{
finalChoice = choice;
cost = choiceCost;
- }
+ //}
}
}
return finalChoice;
@@ -474,7 +475,7 @@
// this._metadataManager.getCostParameters());

boolean runTupleSim =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_TUPLES);
- if(true)
+ if(runTupleSim)
{
manager.simulateRunOfRQEP(rQEP, qep, seed, distanceConverter);

@@ -482,18 +483,28 @@
// assessor.assessOverlayChoice(storage, runningSites,
rQEP.getLogicalOverlayNetwork(),
// local, channelModel);
boolean runLifeSim =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_LIFE);
- if(false)
+ if(runLifeSim)
{
Storage storage =
manager.calculateLifetimeDifferenceFromDeployments(rQEP, qep, seed,
distanceConverter);
System.out.println("new robust lifetime = " +
- (storage.getRobustLifetime() /
- (rQEP.getUnreliableAgenda().getDeliveryTime_ms()
/ 1000)));
+ (storage.getRobustLifetime()));
System.out.println("new lifetime = " +
- (storage.getNaiveLifetime() /
- (rQEP.getUnreliableAgenda().getDeliveryTime_ms() / 1000)));
+ (storage.getNaiveLifetime()));

}
return rQEP;
}
+
+ public Double
getTimeTillNextNodefailsFromEnergyDelpetion(QueryExecutionPlan qep)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ return
this.assessor.getTimeTillNextNodefailsFromEnergyDelpetion((SensorNetworkQueryPlan)
qep);
+ }
+
+ public String getNextNodefailsFromEnergyDelpetion(QueryExecutionPlan qep)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ return
this.assessor.getNextNodefailsFromEnergyDelpetion((SensorNetworkQueryPlan)
qep);
+ }

}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/ChoiceAssessor.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/ChoiceAssessor.java
Fri Aug 30 13:53:42 2013 UTC
@@ -15,6 +15,7 @@
import uk.ac.manchester.cs.snee.common.graph.Node;
import uk.ac.manchester.cs.snee.compiler.OptimizationException;
import uk.ac.manchester.cs.snee.compiler.queryplan.Agenda;
+import uk.ac.manchester.cs.snee.compiler.queryplan.SensorNetworkQueryPlan;
import uk.ac.manchester.cs.snee.compiler.queryplan.TraversalOrder;
import uk.ac.manchester.cs.snee.manager.common.Adaptation;
import uk.ac.manchester.cs.snee.manager.common.AdaptationUtils;
@@ -417,4 +418,64 @@
}
}
}
+
+ public Double
getTimeTillNextNodefailsFromEnergyDelpetion(SensorNetworkQueryPlan qep)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ double shortestLifetime = Double.MAX_VALUE; //s
+ SiteEnergyModel siteModel = new SiteEnergyModel(qep.getAgendaIOT());
+ Iterator<Site> siteIter =
qep.getIOT().getRT().siteIterator(TraversalOrder.POST_ORDER);
+ while (siteIter.hasNext())
+ {
+ Site site = siteIter.next();
+ RunTimeSite rSite = runningSites.get(site.getID());
+ double currentEnergySupply = rSite.getCurrentEnergy() -
rSite.getCurrentAdaptationEnergyCost();
+ double siteEnergyCons = siteModel.getSiteEnergyConsumption(site); //
J
+ runningSites.get(site.getID()).setQepExecutionCost(siteEnergyCons);
+ double siteLifetime = (currentEnergySupply / siteEnergyCons);
+ //uncomment out sections to not take the root site into account
+ if (site!=qep.getIOT().getRT().getRoot())
+ {
+ if(shortestLifetime > siteLifetime)
+ {
+ if(!site.isDeadInSimulation())
+ {
+ shortestLifetime = siteLifetime;
+ }
+ }
+ }
+ }
+ return shortestLifetime;
+ }
+
+ public String getNextNodefailsFromEnergyDelpetion(SensorNetworkQueryPlan
qep)
+ throws OptimizationException, SchemaMetadataException,
TypeMappingException, SNEEConfigurationException
+ {
+ double shortestLifetime = Double.MAX_VALUE; //s
+ String nodeID = "";
+ SiteEnergyModel siteModel = new SiteEnergyModel(qep.getAgendaIOT());
+ Iterator<Site> siteIter =
qep.getIOT().getRT().siteIterator(TraversalOrder.POST_ORDER);
+ while (siteIter.hasNext())
+ {
+ Site site = siteIter.next();
+ RunTimeSite rSite = runningSites.get(site.getID());
+ double currentEnergySupply = rSite.getCurrentEnergy() -
rSite.getCurrentAdaptationEnergyCost();
+ double siteEnergyCons = siteModel.getSiteEnergyConsumption(site); //
J
+ runningSites.get(site.getID()).setQepExecutionCost(siteEnergyCons);
+ double siteLifetime = (currentEnergySupply / siteEnergyCons);
+ //uncomment out sections to not take the root site into account
+ if (site!=qep.getIOT().getRT().getRoot())
+ {
+ if(shortestLifetime > siteLifetime)
+ {
+ if(!site.isDeadInSimulation())
+ {
+ shortestLifetime = siteLifetime;
+ nodeID = site.getID();
+ }
+ }
+ }
+ }
+ return nodeID;
+ }
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModel.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModel.java
Fri Aug 30 13:53:42 2013 UTC
@@ -304,8 +304,8 @@
continue;
}

- cpuActiveTimeBms += t.getDuration();
- if (t instanceof FragmentTask) {
+ if (t instanceof FragmentTask && t.isRan()) {
+ cpuActiveTimeBms += t.getDuration();
FragmentTask ft = (FragmentTask)t;
Fragment f = ft.getFragment();
if (f.containsOperatorType(SensornetAcquireOperator.class)) {
@@ -313,8 +313,9 @@
}
sumEnergy += sensorEnergy;
}
- else if(t instanceof InstanceFragmentTask)
+ else if(t instanceof InstanceFragmentTask && t.isRan())
{
+ cpuActiveTimeBms += t.getDuration();
InstanceFragmentTask ft = (InstanceFragmentTask)t;
InstanceFragment f = ft.getFragment();
if (f.containsOperatorType(SensornetAcquireOperator.class)) {
@@ -323,10 +324,12 @@
sumEnergy += sensorEnergy;
}
else if (t instanceof CommunicationTask && t.isRan()) {
+ cpuActiveTimeBms += t.getDuration();
CommunicationTask ct = (CommunicationTask)t;
sumEnergy += getRadioEnergy(ct);

} else if (t instanceof RadioOnTask && t.isRan()) {
+ cpuActiveTimeBms += t.getDuration();
double taskDuration = AgendaIOT.bmsToMs(t.getDuration())/1000.0;
double radioRXAmp = AvroraCostParameters.getRadioReceiveAmpere();
double voltage = AvroraCostParameters.VOLTAGE;
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelSite.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelSite.java
Fri Aug 30 13:53:42 2013 UTC
@@ -90,8 +90,6 @@
ChannelModel model, boolean packetID)
{
this.expectedPackets = expectedPackets;
- if(this.siteID == "6")
- System.out.println();
setupExpectedPackets();
this.siteID = siteID;
this.overlayNetwork = overlayNetwork;
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelUtils.java
Mon Aug 19 13:57:16 2013 UTC
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelUtils.java
Fri Aug 30 13:53:42 2013 UTC
@@ -226,13 +226,13 @@
out.close();

out = new PrintWriter(new BufferedWriter(new FileWriter(new
File(superFolder + sep + "iterationPercentages" + iteration))));
- out.write("1 " + totalPercentages.get("6").get("19188") + "\n");
- out.write("3 " + totalPercentages.get("2").get("21206") + "\n");
- out.write("4 " + totalPercentages.get("11").get("22223") + "\n");
- out.write("5 " + totalPercentages.get("5").get("242511") + "\n");
- out.write("7 " + totalPercentages.get("1").get("52627") + "\n");
- out.write("8 " + totalPercentages.get("13").get("12829") + "\n");
- out.write("9 " + totalPercentages.get("0").get("323313") + "\n");
+ //out.write("1 " + totalPercentages.get("6").get("19188") + "\n");
+ //out.write("3 " + totalPercentages.get("2").get("21206") + "\n");
+ //out.write("4 " + totalPercentages.get("11").get("22223") + "\n");
+ // out.write("5 " + totalPercentages.get("5").get("242511") + "\n");
+ // out.write("7 " + totalPercentages.get("1").get("52627") + "\n");
+ // out.write("8 " + totalPercentages.get("13").get("12829") + "\n");
+ // out.write("9 " + totalPercentages.get("0").get("323313") + "\n");
out.flush();
out.close();
}
Reply all
Reply to author
Forward
0 new messages