1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <title>MCTX3420 Web Interface</title>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <script language="javascript" type="text/javascript" src="static/excanvas.min.js"></script>
9 <script type="text/javascript" src="static/jquery-1.10.1.min.js"></script>
10 <script type="text/javascript" src="static/jquery.flot.min.js"></script>
11 <script type="text/javascript" src="static/mctx.gui.js"></script>
12 <script type="text/javascript" src="static/mctx.control.js"></script>
14 <link rel="stylesheet" type="text/css" href="static/style.css">
15 <link rel="stylesheet" type="text/css" href="static/nav-menu.css">
16 <script type="text/javascript">
17 function initialiseTable(container, prefix, data) {
18 var hrow = $("<tr/>");
19 var vrow = $("<tr/>");
22 for (var key in data) {
23 var value = data[key];
24 var id = prefix + value.name;
25 var h = $("<td/>").append($("<label/>", {for : id, text : value.name}));
26 var e = $("<td/>").append($("<input/>", {id : id, type : "text", readonly : true, value : value.value[1]}));
31 container.append(hrow).append(vrow);
38 container.append(hrow).append(vrow);
42 function updateTable(prefix, data) {
43 for (var key in data) {
44 var value = data[key];
45 var id = prefix + value.name;
46 $("#" + id).val(value.value[1]);
50 $.fn.setValueUpdater = function (data) {
51 initialiseTable($("#sensor-values table"), "sensors_", data.sensors);
52 initialiseTable($("#actuator-values table"), "actuators_", data.actuators);
54 var updater = function () {
56 url : mctx.api + 'identify',
57 data : {'sensors' : 1, 'actuators' : 1}
58 }).done(function (data) {
59 updateTable("sensors_", data.sensors);
60 updateTable("actuators_", data.actuators);
61 setTimeout(updater, 5000);
63 $("#error-message").text("Connection failure").addClass("fail");
67 setTimeout(updater, 5000);
70 runBeforeLoad().done(function () {
71 $(document).ready(function () {
73 url : mctx.api + 'identify',
74 data : {'sensors' : 1, 'actuators' : 1}
75 }).done(function (data) {
76 if (data.control_state !== "Running") {
77 $("#error-message").text("Experiment not running").addClass("fail");
79 $("#values-widget").setValueUpdater(data);
82 $("#error-message").text("Connection failure").addClass("fail");
86 $(document).ready(function () {
87 $("#error-message").text("Connection failure").addClass("fail");
94 <div id="header-wrap">
97 <a href="http://www.uwa.edu.au/" target="_blank">
98 <img alt = "The University of Western Australia"
99 src="static/uwacrest-text.png">
101 <span id="title">Exploding Cans</span>
104 <span id="welcome-container">
107 <script type="text/javascript">getDate();</script>
109 <div id="logout-container">
112 <input type="button" id="change-password" value="Change password">
113 <input type="button" id="logout" value="Logout">
118 <div class="clear"></div>
123 <div id="content-wrap">
125 <div class="widget centre">
126 <div class="title">JavaScript required</div>
127 This website requires JavaScript to function correctly.
128 Please enable JavaScript to use this site.
133 <div class="widget" id="sidebar-show">></div>
136 <div id="sidebar-hide"><</div>
137 <div class="title">Navigation menu</div>
138 <div id="sidebar-menu" class="nav-menu">
140 <li><a href="index.html"><span>Home</span></a></li>
141 <li><a href="control.html"><span>Experiment control</span></a></li>
142 <li><a href="graph.html"><span>Experiment graphs</span></a></li>
143 <li><a href="values.html"><span>Experiment data (live)</span></a></li>
144 <li><a href="data.html"><span>Experiment data</span></a></li>
145 <li><a href="pintest.html"><span>Pin debugging</span></a></li>
146 <li class="last"><a href="help.html"><span>Help</span></a></li>
154 <div id="values-widget" class="widget">
155 <p class="right" id="error-message">
158 <div class="sub-title">Sensors</div>
159 <form id="sensor-values" action="#" class="nice clear">
163 <div class="sub-title">Actuators</div>
164 <form id="actuator-values" action="#" class="nice clear">
170 <!-- End main content -->