Merge branch 'master' of https://github.com/szmoore/MCTX3420.git
authorJeremy Tan <[email protected]>
Wed, 23 Oct 2013 08:13:51 +0000 (16:13 +0800)
committerJeremy Tan <[email protected]>
Wed, 23 Oct 2013 08:13:51 +0000 (16:13 +0800)
Conflicts:
server/actuators/pregulator.c
server/sensors/strain.c
testing/MCTXWeb/public_html/control.html
testing/MCTXWeb/public_html/static/mctx.control.js

server/actuators/pregulator.c
server/filetest [new file with mode: 0644]
server/sensors/strain.c
testing/MCTXWeb/public_html/control.html
testing/MCTXWeb/public_html/static/mctx.control.js

index f93c407..3740729 100644 (file)
@@ -2,7 +2,8 @@
 #include "../bbb_pin.h"
 
 #define PREGULATOR_PWM ECAP0
-#define PREGULATOR_PERIOD 16666667
+#define PREGULATOR_PERIOD 500000
+//16666667
 
 /**
  * Initiliase the pressure regulator
diff --git a/server/filetest b/server/filetest
new file mode 100644 (file)
index 0000000..945da8f
--- /dev/null
@@ -0,0 +1 @@
+0.000000
index 4278d6c..77a11a2 100644 (file)
@@ -6,6 +6,8 @@
 #include <pthread.h>
 
 #define STRAIN_ADC ADC0
+// TODO: Choose this
+#define STRAIN_GPIO 15
 
 /**
  * Convert Strain gauge id number to a GPIO pin on the Mux
@@ -59,10 +61,11 @@ bool Strain_Init(const char * name, int id)
        if (!GPIO_Set(gpio_num, false))
                Fatal("Couldn't set GPIO%d for strain sensor %d to LOW", gpio_num, id);
 
-       static bool init_adc = false;
-       if (!init_adc)
+       static int init = 0;
+       if (++init == 1)
        {
-               init_adc = true;
+               GPIO_Export(STRAIN_GPIO);
+               GPIO_Set(STRAIN_GPIO, true);
                ADC_Export(STRAIN_ADC);
        }
        return true;
@@ -70,12 +73,14 @@ bool Strain_Init(const char * name, int id)
 
 bool Strain_Cleanup(int id)
 {
-       static bool kill_adc = false;
-       if (!kill_adc)
+       static int killed = 0;
+       if (++killed == 4)
        {
-               kill_adc = true;
+
+               GPIO_Set(STRAIN_GPIO, false);
                ADC_Unexport(STRAIN_ADC);
        }
+
        int gpio_num = Strain_To_GPIO(id);
        GPIO_Unexport(gpio_num);
        return true;
index 7d7b9ad..5d22e90 100644 (file)
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
-<html>\r
-  <head>\r
-    <title>MCTX3420 Web Interface</title>\r
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
-    <!--[if lte IE 8]>\r
-      <script language="javascript" type="text/javascript" src="static/excanvas.min.js"></script>\r
-    <![endif]-->\r
-    <script type="text/javascript" src="static/jquery-1.10.1.min.js"></script>\r
-    <script type="text/javascript" src="static/jquery.flot.min.js"></script>\r
-    <script type="text/javascript" src="static/mctx.gui.js"></script>\r
-    <script type="text/javascript" src="static/mctx.control.js"></script>\r
-    \r
-    <link rel="stylesheet" type="text/css" href="static/style.css">\r
-    <link rel="stylesheet" type="text/css" href="static/nav-menu.css">\r
-    <script type="text/javascript">\r
-      runBeforeLoad().done(function () {\r
-        $(document).ready(function () {\r
-          $("form").submit(function () { //Prevent form submit globally\r
-            return false;\r
-          });\r
-          \r
-          //Set the status updated\r
-          $("#state-exp").setStatusUpdater();\r
-          \r
-          //Set the logic for the start controls\r
-          $("#start-controls input[type='button']").click(function () {\r
-            var start = $("#start-controls input[type='button']");\r
-            var force = $("#start-controls input[name='start_force']");\r
-            \r
-            $(this).startExperiment(start, $("#experiment_name").val(), \r
-                      force.is(":checked"), $("#start-result"));\r
-            force.prop("checked", false);\r
-          });\r
-          \r
-          //Set the logic for the stop button\r
-          $("#experiment-stop").click(function () {\r
-            $(this).stopExperiment($("#stop-status"));\r
-          });\r
-          \r
-          //Set the logic for the pressure controls\r
-          $("#pressure-controls").submit(function () {\r
-            var pressure = {\r
-              set : $("#pressure-set").val(),\r
-              step : $("#pressure-stepsize").val(),\r
-              wait : $("#pressure-stepwait").val(),\r
-              count : $("#pressure-stepcount").val()\r
-            };   \r
-            $(this).setPressure(pressure, $("#pressure-result"));\r
-          });\r
-          \r
-          $("#samplerate-controls").submit(function () {\r
-            setSampleRate($("#sensor-select option:selected").val(), \r
-                          $("#sensor-set").val(), $("#samplerate-result"));\r
-          });\r
-       });       \r
-      }).fail(function () {\r
-        $(document).ready(function () {\r
-         $("#state-exp").text("Connection failure").parent().addClass("fail");\r
-       });  \r
-      });\r
-    </script>\r
-  </head>\r
-  \r
-  <body>\r
-    <div id="header-wrap">\r
-      <div id="header">\r
-        <div id="leftnav">\r
-          <a href="http://www.uwa.edu.au/" target="_blank">\r
-            <img alt = "The University of Western Australia"\r
-            src="static/uwacrest-text.png">\r
-          </a>\r
-          <span id="title">Exploding Cans</span>\r
-        </div>\r
-        <div id="rightnav">\r
-          <span id="welcome-container">\r
-          </span>\r
-          <span id="date">\r
-            <script type="text/javascript">getDate();</script>\r
-          </span>\r
-          <div id="logout-container">\r
-            <form action="#">\r
-              <div>\r
-                <input type="button" id="logout" value="Logout">\r
-              </div>\r
-            </form>\r
-          </div>\r
-        </div>\r
-        <div class="clear"></div>\r
-      </div>\r
-    </div>\r
-    <!-- End header -->\r
-    \r
-    <div id="content-wrap">\r
-      <noscript>\r
-        <div class="widget centre">\r
-          <div class="title">JavaScript required</div>\r
-          This website requires JavaScript to function correctly.\r
-          Please enable JavaScript to use this site.\r
-        </div>\r
-      </noscript>\r
-\r
-      <div id="content">\r
-        <div class="widget" id="sidebar-show">&gt;</div>\r
-        <div id="sidebar">\r
-          <div class="widget">\r
-            <div id="sidebar-hide">&lt;</div>\r
-            <div class="title">Navigation menu</div>\r
-            <div id="sidebar-menu" class="nav-menu">\r
-              <ul>\r
-                <li><a href="index.html"><span>Home</span></a></li>\r
-                <li><a href="control.html"><span>Experiment control</span></a></li>\r
-                <li><a href="graph.html"><span>Experiment graphs</span></a></li>\r
-                <li><a href="data.html"><span>Experiment data</span></a></li>\r
-                <li><a href="pintest.html"><span>Pin debugging</span></a></li>\r
-                <li class="last"><a href="help.html"><span>Help</span></a></li>\r
-              </ul>\r
-            </div>\r
-          </div>\r
-        </div>\r
-        <!-- End sidebar -->\r
-\r
-        <div id="main">\r
-          <div class="widget">\r
-            <div class="title">Experiment Overview</div>\r
-            <table class="horizontal medium">\r
-              <tr id="state-exp-r">\r
-                <th>Experiment state</th>\r
-                <td id="state-exp"></td>\r
-                <td style="text-align: right;">\r
-                  <input id="experiment-stop" type="button" value="Stop">\r
-                </td>\r
-              </tr>\r
-            </table>\r
-            <div id="stop-status">\r
-              &nbsp;\r
-            </div>\r
-            \r
-            <div class="sub-title">Error and warning messages</div>\r
-            <textarea id="errorlog" wrap="off" rows="4" cols="30" readonly>\r
-            </textarea>\r
-          </div>\r
-          \r
-          <div id="start-widget" class="widget">\r
-            <div class="title centre">Start an experiment</div>\r
-            <form id="start-controls" class="nice" action="#">\r
-              <p>\r
-                <label for="experiment_name">Experiment name</label>\r
-                <input id="experiment_name" type="text">\r
-                \r
-                <label for="start_force">Overwrite existing</label>\r
-                <input type="checkbox" name="start_force" id="start_force">\r
-              </p>\r
-              <p id="start-result">\r
-                &nbsp;\r
-              </p>\r
-              <p class="centre">\r
-                <input type="button" name="start_strain" value="Strain test">\r
-                <input type="button" name="start_explode" value="Explode test">                \r
-              </p>\r
-            </form>\r
-          </div>\r
-          \r
-          <div id="pressure-widget" class="widget">            \r
-            <form id="pressure-controls" action="#" class="nice clear">\r
-              <table>\r
-                <tr>\r
-                  <td><label for="pressure-set">Starting pressure (kPa)</label></td>\r
-                  <td><label for="pressure-stepsize">Pressure step size (kPa)</label></td>\r
-                </tr>\r
-                <tr>\r
-                  <td><input id="pressure-set" type="text"></td>\r
-                  <td><input id="pressure-stepsize" type="text"></td>\r
-                </tr>\r
-                <tr>\r
-                  <td><label for="pressure-stepcount">Number of steps to make</label></td>\r
-                  <td><label for="pressure-stepwait">Wait time between steps (s)</label></td>\r
-                </tr>\r
-                <tr>\r
-                  <td><input id="pressure-stepcount" type="text"></td>\r
-                  <td><input id="pressure-stepwait" type="text"></td>\r
-                </tr>\r
-              </table>\r
-              <p class="left" id="pressure-result">\r
-                &nbsp;\r
-              </p>\r
-              <p class="right">\r
-                <input type="submit" value="Set pressure">\r
-              </p>\r
-            </form>\r
-            \r
-            <form id="samplerate-controls" action="#" class="nice clear">\r
-              <table>\r
-                <tr>\r
-                  <td><label for="sensor-select">Select a sensor</label></td>\r
-                  <td><label for="sensor-set">Set sampling rate (s)</label></td>\r
-                </tr>\r
-                <tr>\r
-                  <td><select id="sensor-select" style="width:100%;"></select></td>\r
-                  <td><input id="sensor-set" type="text"></td>\r
-                </tr>\r
-              </table>\r
-              <p class="left" id="samplerate-result">\r
-                &nbsp;\r
-              </p>\r
-              <p class="right">\r
-                <input type="submit" value="Set sampling rate">\r
-              </p>\r
-            </form>\r
-          </div>\r
-          \r
-          <div id="stats-widget" class="widget">\r
-            <form id="stats" action="#" class="nice clear">\r
-              <table>\r
-                <tr>\r
-                  <td><label for="stats-mainspressure">Mains pressure (kPa)</label></td>\r
-                  <td><label for="stats-canpressure">Can pressure (kPa)</label></td>\r
-                </tr>\r
-                <tr>\r
-                  <td><input id="stats-mainspressure" type="text" readonly></td>\r
-                  <td><input id="stats-canpressure" type="text" readonly></td>\r
-                </tr>\r
-                <tr class="stats-strain">\r
-                  <td><label for="stats-strain1">Central hoop strain</label></td>\r
-                  <td><label for="stats-strain2">Central longitudinal strain</label></td>\r
-                </tr>\r
-                <tr class="stats-strain">\r
-                  <td><input id="stats-strain1" type="text" readonly></td>\r
-                  <td><input id="stats-strain2" type="text" readonly></td>\r
-                </tr>\r
-                <tr class="stats-strain">\r
-                  <td><label for="stats-strain3">End hoop strain</label></td>\r
-                  <td><label for="stats-strain4">End longitudinal strain</label></td>\r
-                </tr>\r
-                <tr class="stats-strain">\r
-                  <td><input id="stats-strain3" type="text" readonly></td>\r
-                  <td><input id="stats-strain4" type="text" readonly></td>\r
-                </tr>\r
-                <tr class="stats-strain">\r
-                  <td><label for="stats-dilatometer">Dilatometer reading</label></td>\r
-                  <td><label for="stats-dilatometer">Camera feed</label></td>\r
-                </tr>\r
-                <tr class="stats-strain">\r
-                  <td><input id="stats-dilatometer" type="text" readonly></td>\r
-                  <td><a href="#">Link</a></td>\r
-                </tr>\r
-              </table>\r
-            </form>\r
-          </div>\r
-          \r
-        </div>\r
-        <!-- End main content -->\r
-      </div>\r
-    </div>\r
-  </body>\r
-</html>\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <head>
+    <title>MCTX3420 Web Interface</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <!--[if lte IE 8]>
+      <script language="javascript" type="text/javascript" src="static/excanvas.min.js"></script>
+    <![endif]-->
+    <script type="text/javascript" src="static/jquery-1.10.1.min.js"></script>
+    <script type="text/javascript" src="static/jquery.flot.min.js"></script>
+    <script type="text/javascript" src="static/mctx.gui.js"></script>
+    <script type="text/javascript" src="static/mctx.control.js"></script>
+    
+    <link rel="stylesheet" type="text/css" href="static/style.css">
+    <link rel="stylesheet" type="text/css" href="static/nav-menu.css">
+    <script type="text/javascript">
+      runBeforeLoad().done(function () {
+        $(document).ready(function () {
+          $("form").submit(function () { //Prevent form submit globally
+            return false;
+          });
+          
+          //Set the status updated
+          $("#state-exp").setStatusUpdater();
+          
+          //Set the logic for the start controls
+          $("#start-controls input[type='button']").click(function () {
+            var start = $("#start-controls input[type='button']");
+            var force = $("#start-controls input[name='start_force']");
+            
+            $(this).startExperiment(start, $("#experiment_name").val(), 
+                      force.is(":checked"), $("#start-result"));
+            force.prop("checked", false);
+          });
+          
+          //Set the logic for the stop button
+          $("#experiment-stop").click(function () {
+            $(this).stopExperiment($("#stop-status"));
+          });
+          
+          //Set the logic for the pressure controls
+          $("#pressure-controls").submit(function () {
+            var pressure = {
+              set : $("#pressure-set").val(),
+              step : $("#pressure-stepsize").val(),
+              wait : $("#pressure-stepwait").val(),
+              count : $("#pressure-stepcount").val()
+            };   
+            $(this).setPressure(pressure, $("#pressure-result"));
+          });
+          
+          $("#pressure-controls input[name='clear']").click(function () {
+            $("#pressure-set")[0].reset();
+          });
+          
+          $("#pressure-controls input[name='zero']").click(function () {
+            $("#pressure-controls input[name='clear']").click();
+            $("#pressure-set").val("0");
+            
+            $("#pressure-controls").submit();
+          });
+          
+          $("#pressure-controls input[name='step-it']").click(function () {
+            var pressure = {
+              set : $("#pressure-set").val(), step : "", wait : "", count : ""
+            };
+            
+            $(this).setPressure(pressure, $("#pressure-result")).done(function () {
+              var next = Number($("#pressure-set").val()) + Number($("#pressure-stepsize").val());
+              $("#pressure-set").val(next.toString());
+            });
+            
+          });
+          $("#samplerate-controls").submit(function () {
+            setSampleRate($("#sensor-select option:selected").val(), 
+                          $("#sensor-set").val(), $("#samplerate-result"));
+          });
+       });       
+      }).fail(function () {
+        $(document).ready(function () {
+         $("#state-exp").text("Connection failure").parent().addClass("fail");
+       });  
+      });
+    </script>
+  </head>
+  
+  <body>
+    <div id="header-wrap">
+      <div id="header">
+        <div id="leftnav">
+          <a href="http://www.uwa.edu.au/" target="_blank">
+            <img alt = "The University of Western Australia"
+            src="static/uwacrest-text.png">
+          </a>
+          <span id="title">Exploding Cans</span>
+        </div>
+        <div id="rightnav">
+          <span id="welcome-container">
+          </span>
+          <span id="date">
+            <script type="text/javascript">getDate();</script>
+          </span>
+          <div id="logout-container">
+            <form action="#">
+              <div>
+                <input type="button" id="logout" value="Logout">
+              </div>
+            </form>
+          </div>
+        </div>
+        <div class="clear"></div>
+      </div>
+    </div>
+    <!-- End header -->
+    
+    <div id="content-wrap">
+      <noscript>
+        <div class="widget centre">
+          <div class="title">JavaScript required</div>
+          This website requires JavaScript to function correctly.
+          Please enable JavaScript to use this site.
+        </div>
+      </noscript>
+
+      <div id="content">
+        <div class="widget" id="sidebar-show">&gt;</div>
+        <div id="sidebar">
+          <div class="widget">
+            <div id="sidebar-hide">&lt;</div>
+            <div class="title">Navigation menu</div>
+            <div id="sidebar-menu" class="nav-menu">
+              <ul>
+                <li><a href="index.html"><span>Home</span></a></li>
+                <li><a href="control.html"><span>Experiment control</span></a></li>
+                <li><a href="graph.html"><span>Experiment graphs</span></a></li>
+                <li><a href="data.html"><span>Experiment data</span></a></li>
+                <li><a href="pintest.html"><span>Pin debugging</span></a></li>
+                <li class="last"><a href="help.html"><span>Help</span></a></li>
+              </ul>
+            </div>
+          </div>
+        </div>
+        <!-- End sidebar -->
+
+        <div id="main">
+          <div class="widget">
+            <div class="title">Experiment Overview</div>
+            <table class="horizontal medium">
+              <tr id="state-exp-r">
+                <th>Experiment state</th>
+                <td id="state-exp"></td>
+                <td style="text-align: right;">
+                  <input id="experiment-stop" type="button" value="Stop">
+                </td>
+              </tr>
+            </table>
+            <div id="stop-status">
+              &nbsp;
+            </div>
+            
+            <div class="sub-title">Error and warning messages</div>
+            <textarea id="errorlog" wrap="off" rows="4" cols="30" readonly>
+            </textarea>
+          </div>
+          
+          <div id="start-widget" class="widget">
+            <div class="title centre">Start an experiment</div>
+            <form id="start-controls" class="nice" action="#">
+              <p>
+                <label for="experiment_name">Experiment name</label>
+                <input id="experiment_name" type="text">
+                
+                <label for="start_force">Overwrite existing</label>
+                <input type="checkbox" name="start_force" id="start_force">
+              </p>
+              <p id="start-result">
+                &nbsp;
+              </p>
+              <p class="centre">
+                
+                <input type="button" name="start_explode" value="Explode test">
+                <input type="button" name="start_strain" value="Strain test">                
+              </p>
+            </form>
+          </div>
+          
+          <div id="pressure-widget" class="widget">            
+            <form id="pressure-controls" action="#" class="nice clear">
+              <table>
+                <tr>
+                  <td><label for="pressure-set">Starting pressure (kPa)</label></td>
+                  <td><label for="pressure-stepsize">Pressure step size (kPa)</label></td>
+                </tr>
+                <tr>
+                  <td><input id="pressure-set" type="text"></td>
+                  <td><input id="pressure-stepsize" type="text"></td>
+                </tr>
+                <tr>
+                  <td><label for="pressure-stepcount">Number of steps to make</label></td>
+                  <td><label for="pressure-stepwait">Wait time between steps (s)</label></td>
+                </tr>
+                <tr>
+                  <td><input id="pressure-stepcount" type="text"></td>
+                  <td><input id="pressure-stepwait" type="text"></td>
+                </tr>
+              </table>
+              <p class="left" id="pressure-result">
+                &nbsp;
+              </p>
+              <p class="right">
+                <input type="button" name="clear" value="Clear input">
+                <input type="button" name="zero" value="Zero the pressure">
+                <input type="button" name="step-it" value="Step the pressure">
+                <input type="submit" value="Set pressure">
+              </p>
+            </form>
+            
+            <form id="samplerate-controls" action="#" class="nice clear">
+              <table>
+                <tr>
+                  <td><label for="sensor-select">Select a sensor</label></td>
+                  <td><label for="sensor-set">Set sampling rate (s)</label></td>
+                </tr>
+                <tr>
+                  <td><select id="sensor-select" style="width:100%;"></select></td>
+                  <td><input id="sensor-set" type="text"></td>
+                </tr>
+              </table>
+              <p class="left" id="samplerate-result">
+                &nbsp;
+              </p>
+              <p class="right">
+                <input type="submit" value="Set sampling rate">
+              </p>
+            </form>
+          </div>
+          
+          <div id="stats-widget" class="widget">
+            <form id="stats" action="#" class="nice clear">
+              <table>
+                <tr>
+                  <td><label for="stats-mainspressure">Mains pressure (kPa)</label></td>
+                  <td><label for="stats-canpressure">Can pressure (kPa)</label></td>
+                </tr>
+                <tr>
+                  <td><input id="stats-mainspressure" type="text" readonly></td>
+                  <td><input id="stats-canpressure" type="text" readonly></td>
+                </tr>
+                <tr class="stats-strain">
+                  <td><label for="stats-strain1">Central hoop strain</label></td>
+                  <td><label for="stats-strain2">Central longitudinal strain</label></td>
+                </tr>
+                <tr class="stats-strain">
+                  <td><input id="stats-strain1" type="text" readonly></td>
+                  <td><input id="stats-strain2" type="text" readonly></td>
+                </tr>
+                <tr class="stats-strain">
+                  <td><label for="stats-strain3">End hoop strain</label></td>
+                  <td><label for="stats-strain4">End longitudinal strain</label></td>
+                </tr>
+                <tr class="stats-strain">
+                  <td><input id="stats-strain3" type="text" readonly></td>
+                  <td><input id="stats-strain4" type="text" readonly></td>
+                </tr>
+                <tr class="stats-strain">
+                  <td><label for="stats-dilatometer">Dilatometer reading</label></td>
+                  <td><label for="stats-dilatometer">Camera feed</label></td>
+                </tr>
+                <tr class="stats-strain">
+                  <td><input id="stats-dilatometer" type="text" readonly></td>
+                  <td><a href="#">Link</a></td>
+                </tr>
+              </table>
+            </form>
+          </div>
+          
+        </div>
+        <!-- End main content -->
+      </div>
+    </div>
+  </body>
+</html>
index de45e61..d3b5348 100644 (file)
@@ -47,7 +47,7 @@ function setSampleRate(id, val, result) {
 
 $.fn.loadSensorList = function (result, input) {
   var select = this;
-  select.empty(); //Reset list\r
+  select.empty(); //Reset list
   
   $.ajax({
     url : mctx.api + 'identify',
@@ -104,15 +104,15 @@ $.fn.setStatusUpdater = function () {
           fail = true;
       }
       
-      if (data.control_state_id !== mctx.control.state) {   \r
-        //Set logic for sensor sample rate thing\r
+      if (data.control_state_id !== mctx.control.state) {   
+        //Set logic for sensor sample rate thing
         $("#sensor-select").loadSensorList($("#samplerate-result"));      
         toggleControls(running);
         $(result).text(text);
         if (fail) {
-          $(result).parent().addClass("fail");
+          $(result).parent().addClass("fail").removeClass("pass");
         } else {
-          $(result).parent().addClass("pass");
+          $(result).parent().addClass("pass").removeClass("fail");
         }
         
         mctx.control.state = data.control_state_id;
@@ -132,8 +132,8 @@ $.fn.setStatusUpdater = function () {
 
 $.fn.startExperiment = function (group, experiment, force, result) {
  $(group).attr('disabled', 'disabled');
\r
- var can_number = ($(this).attr("name") === "start_strain") ? 0 : 1;\r
+ var can_number = ($(this).attr("name") === "start_strain") ? 0 : 1;
  
  if (!experiment || !experiment.match(/^[a-zA-Z0-9_-]+$/)) {
    result.text("Experiment names must be composed of alphanumeric characters" + 
@@ -146,7 +146,7 @@ $.fn.startExperiment = function (group, experiment, force, result) {
  if (force) {
    data.force = 1;
  }
\r
  //Start the experiment
  $.ajax({
    url : mctx.control.api,
@@ -154,32 +154,32 @@ $.fn.startExperiment = function (group, experiment, force, result) {
  }).done(function (data) {
    if (!result.checkStatus(data)) {
      return;
-   }\r
-   \r
-   //Select the can\r
-   $.ajax({\r
-    url : mctx.api + "actuators",\r
-    data : {name : "can_select", set : can_number}\r
-   }).done(function (data) {\r
-    if (!result.checkStatus(data)) {\r
-     return;\r
-    }\r
-    \r
-    //Enable the can\r
-    $.ajax({\r
-      url : mctx.api + 'actuators',\r
-      data : {name : "can_enable", set : 1}\r
-    }).done(function (data) {\r
-      if (!result.checkStatus(data)) {\r
-        return;\r
-      }\r
-      result.html("&nbsp;");\r
-      toggleControls(true);\r
-    }).always(function () {\r
-      $(group).removeAttr('disabled');\r
-    });\r
-   }).fail(function () {\r
-    $(group).removeAttr('disabled');\r
+   }
+   
+   //Select the can
+   $.ajax({
+    url : mctx.api + "actuators",
+    data : {name : "can_select", set : can_number}
+   }).done(function (data) {
+    if (!result.checkStatus(data)) {
+     return;
+    }
+    
+    //Enable the can
+    $.ajax({
+      url : mctx.api + 'actuators',
+      data : {name : "can_enable", set : 1}
+    }).done(function (data) {
+      if (!result.checkStatus(data)) {
+        return;
+      }
+      result.html("&nbsp;");
+      toggleControls(true);
+    }).always(function () {
+      $(group).removeAttr('disabled');
+    });
+   }).fail(function () {
+    $(group).removeAttr('disabled');
    });
  }).fail(function () {
    $(group).removeAttr('disabled');
@@ -219,7 +219,7 @@ $.fn.setPressure = function(pressure, result) {
   
   var set = pressure['set'] + "_" + pressure['wait'] + "_" +
             pressure['step'] + "_" + pressure['count'];
-  $.ajax({
+  return $.ajax({
     url : mctx.api + "actuators",
     data : {name : "pregulator", set : set}
   }).done(function (data) {

UCC git Repository :: git.ucc.asn.au