diff --git a/executablecode/Makefile.src b/executablecode/Makefile.src
index f005e67c8d1e0d5e5c34cf7b6df437b6e54e8ed9..28b9acb23f0af46aef4caec4f72c265800a703d3 100755
--- a/executablecode/Makefile.src
+++ b/executablecode/Makefile.src
@@ -1 +1 @@
-SRCS = generated_src/main.c generated_src/TestBench.c generated_src/SpeedSensor.c generated_src/RadarSensor.c generated_src/GPSSensor.c generated_src/CarPositionSimulator.c generated_src/EmergencySimulator.c generated_src/Communication.c generated_src/DSRSC_Management.c generated_src/NeighbourhoodTableManagement.c generated_src/CorrectnessChecking.c generated_src/PTC.c generated_src/DrivingPowerReductionStrategy.c generated_src/BCU.c generated_src/DangerAvoidanceStrategy.c generated_src/BrakeManagement.c generated_src/CSCU.c generated_src/ObjectListManagement.c generated_src/PlausibilityCheck.c generated_src/VehiculeDynamicsManagement.c 
\ No newline at end of file
+SRCS = generated_src/main.c generated_src/ObserverProp1.c generated_src/RemotelyControlledMicrowave.c generated_src/RemoteControl.c generated_src/MicroWaveOven.c generated_src/Bell.c generated_src/ControlPanel.c generated_src/Controller.c generated_src/Magnetron.c generated_src/Door.c generated_src/WirelessInterface.c 
\ No newline at end of file
diff --git a/src/ui/LoadInfo.java b/src/ui/LoadInfo.java
index 8f6c51d257398458b217336d88d53d54dde0e901..77cf183b829128b2332c136b835f9e8d0b509bb4 100644
--- a/src/ui/LoadInfo.java
+++ b/src/ui/LoadInfo.java
@@ -54,6 +54,7 @@ public class LoadInfo {
     
     public int id;
 	public double load;
+	public long energy;
     
     public LoadInfo() {
     }
diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java
index d3420a45072bcfb20c07d5019375487e8528a8a6..5fb4c1e00094e039744c0b7485f719f62ac3fc63 100755
--- a/src/ui/MainGUI.java
+++ b/src/ui/MainGUI.java
@@ -6258,7 +6258,7 @@ public	class MainGUI implements ActionListener, WindowListener, KeyListener {
 		}
 	}
 	
-	public synchronized void addLoadInfo(int _id, double _load) {
+	public synchronized void addLoadInfo(int _id, double _load, long _energy) {
 		if (loadIDs == null) {
 			loadIDs = new ArrayList<LoadInfo>();
 		}
diff --git a/src/ui/TGComponent.java b/src/ui/TGComponent.java
index 44ab47b2f3dc2af8c0af964eb879eca1f18386c1..f2d00355ffb49d9a2f7391c85a57613bb80e5abf 100755
--- a/src/ui/TGComponent.java
+++ b/src/ui/TGComponent.java
@@ -824,6 +824,12 @@ public abstract class TGComponent implements CDElement, GenericTree {
 		g.fillOval(x+width, y+((sizeRect-sizeOval)/2), sizeOval, sizeOval);
 		g.drawLine(x+width+sizeOval, y+(sizeRect/2), x+width+sizeOval+(sizeOval), y+(sizeRect/2));
 		g.drawString("" + (int)(li.load*100) + "%", x+width+sizeOval+(sizeOval) + 1, y+(sizeOval/2));
+		
+		if (li.energy != -1) {
+			g.fillOval(x+width, y+((sizeRect-sizeOval)/2)+20, sizeOval, sizeOval);
+			g.drawLine(x+width+sizeOval, y+(sizeRect/2)+20, x+width+sizeOval+(sizeOval), y+(sizeRect/2)+20);
+			g.drawString("" + (int)(li.energy) + " pW", x+width+sizeOval+(sizeOval) + 1, y+(sizeOval/2) + 20);
+		}
 	}
 	
     public void draw(Graphics g) {
diff --git a/src/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/ui/interactivesimulation/JFrameInteractiveSimulation.java
index 9b6e610d9dd8ec0f84abc926b3374d3a06f7c27d..2671def33adc1e63e4380cdb168ee81adef81dad 100755
--- a/src/ui/interactivesimulation/JFrameInteractiveSimulation.java
+++ b/src/ui/interactivesimulation/JFrameInteractiveSimulation.java
@@ -1282,6 +1282,7 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 		String busname;
 		String busid;
 		String state;
+		String usedEnergy;
 		
 		int k;
 		
@@ -1493,6 +1494,7 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 							contdel = null;
 							busname = null;
 							busid = null;
+							usedEnergy = null;
 							
 							id = elt.getAttribute("id");
 							name = elt.getAttribute("name");
@@ -1502,6 +1504,12 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 								//System.out.println("nl:" + nl + " value=" + node0.getNodeValue() + " content=" + node0.getTextContent());
 								util = node0.getTextContent();
 							}
+							nl = elt.getElementsByTagName("energy");
+							if ((nl != null) && (nl.getLength() > 0)) {
+								node0 = nl.item(0);
+								//System.out.println("nl:" + nl + " value=" + node0.getNodeValue() + " content=" + node0.getTextContent());
+								usedEnergy = node0.getTextContent();
+							}
 							
 							//System.out.println("toto12");
 							nl = elt.getElementsByTagName("contdel");
@@ -1519,7 +1527,7 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 							
 							
 							if ((id != null) && (util != null)) {
-								updateCPUState(id, util, contdel, busname, busid);
+								updateCPUState(id, util, usedEnergy, contdel, busname, busid);
 							}
 						}
 						
@@ -2234,7 +2242,7 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 		
 	}
 	
-	private void updateCPUState(String _id, String _utilization, String contdel, String busName, String busID) {
+	private void updateCPUState(String _id, String _utilization, String _usedEnergy, String contdel, String busName, String busID) {
 		Integer i = getInteger(_id);
 		int row;
 		String info;
@@ -2243,6 +2251,9 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 			try {
 				valueTable.remove(i);
 				info = "Utilization: " + _utilization;
+				if (_usedEnergy != null) {
+					info += "; used energy: " +  _usedEnergy;
+				}
 				if ((contdel != null) && (busName != null) && (busID != null)) {
 					info += "; Cont. delay on " + busName + " (" + busID + "): " + contdel;
 				}
@@ -2250,7 +2261,11 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 				//System.out.println("Searching for old row");
 				row = (Integer)(rowTable.get(i)).intValue();
 				cputm.fireTableCellUpdated(row, 2);
-				mgui.addLoadInfo(i, getDouble(_utilization).doubleValue());
+				if (_usedEnergy != null) {
+					mgui.addLoadInfo(i, getDouble(_utilization).doubleValue(), -1);
+				} else {
+					mgui.addLoadInfo(i, getDouble(_utilization).doubleValue(), getLong(_usedEnergy).longValue());
+				}
 			} catch (Exception e) {
 				TraceManager.addDev("Exception updateCPUState: " + e.getMessage() + " id=" + _id + " util=" + _utilization);
 			}
@@ -2268,7 +2283,7 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 				//TraceManager.addDev("Searching for old row");
 				row = rowTable.get(i).intValue();
 				bustm.fireTableCellUpdated(row, 2);
-				mgui.addLoadInfo(i, getDouble(_utilization).doubleValue());
+				mgui.addLoadInfo(i, getDouble(_utilization).doubleValue(), -1);
 			} catch (Exception e) {
 				System.err.println("Exception updateBusState: " + e.getMessage());
 			}
@@ -2449,6 +2464,14 @@ public	class JFrameInteractiveSimulation extends JFrame implements ActionListene
 		}
 	}
 	
+	public Long getLong(String s) {
+		try {
+			return Long.decode(s);
+		} catch (Exception e) {
+			return null;
+		}
+	}
+	
 	public Double getDouble(String s) {
 		try {
 			return new Double(s);