stuff
[matches/MCTX3420.git] / testing / MCTXWeb / public_html / static / mctx.control.js
index 24b0448..d3b5348 100644 (file)
@@ -26,6 +26,43 @@ function toggleControls(running) {
   }
 }
 
+function setSampleRate(id, val, result) {
+  var n = Number(val);
+  if (isNaN(n) || n < 0) {
+    result.text("You must give positive numeric values.").addClass("fail");
+    return;
+  }
+  
+  $.ajax({
+    url : mctx.api + 'sensors',
+    data : {id : id, sample_s : n}
+  }).done(function(data) {
+    if (!result.checkStatus(data)) {
+      return;
+    }
+    
+    result.text("Set ok!").removeClass("fail").addClass("pass");
+  });
+};
+
+$.fn.loadSensorList = function (result, input) {
+  var select = this;
+  select.empty(); //Reset list
+  
+  $.ajax({
+    url : mctx.api + 'identify',
+    data : {'sensors' : 1}
+  }).done(function(data) {
+    if (!result.checkStatus(data)) {
+      return;
+    }
+    for (var id in data.sensors) {
+      var option = $("<option/>", {value : id, text : data.sensors[id].name});
+      select.append(option);
+    }
+  });
+}
+
 $.fn.setStatusUpdater = function () {
   var result = this;
   
@@ -67,13 +104,15 @@ $.fn.setStatusUpdater = function () {
           fail = true;
       }
       
-      if (data.control_state_id !== mctx.control.state) {      
+      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;
@@ -94,6 +133,8 @@ $.fn.setStatusUpdater = function () {
 $.fn.startExperiment = function (group, experiment, force, result) {
  $(group).attr('disabled', 'disabled');
  
+ 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" + 
                " or the characters -_-").addClass("fail");
@@ -106,6 +147,7 @@ $.fn.startExperiment = function (group, experiment, force, result) {
    data.force = 1;
  }
  
+ //Start the experiment
  $.ajax({
    url : mctx.control.api,
    data : data
@@ -113,9 +155,33 @@ $.fn.startExperiment = function (group, experiment, force, result) {
    if (!result.checkStatus(data)) {
      return;
    }
-   result.html("&nbsp;");
-   toggleControls(true);
- }).always(function () {
+   
+   //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');
  });
 };
@@ -151,11 +217,11 @@ $.fn.setPressure = function(pressure, result) {
     pressure[k] = n;
   }
   
-  var set = pressure['set'] + "," + pressure['wait'] + ","
-            pressure['size'] + "," + pressure['count'];
-  $.ajax({
+  var set = pressure['set'] + "_" + pressure['wait'] + "_" +
+            pressure['step'] + "_" + pressure['count'];
+  return $.ajax({
     url : mctx.api + "actuators",
-    data : {id : mctx.actuator.pressure_regulator, set : set}
+    data : {name : "pregulator", set : set}
   }).done(function (data) {
     if (!result.checkStatus(data)) {
       return;

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