Merge remote-tracking branch 'upstream/master' into dilatometer
[matches/MCTX3420.git] / testing / MCTXWeb / public_html / control.html
index ecefd5a..034a50c 100644 (file)
@@ -9,34 +9,82 @@
     <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 () {
-         //Show the content!
-         $("#content").css("display", "block");
-         //Set the welcome bar
-         var name = " " + (mctx.friendlyName ? mctx.friendlyName : "");
-         $("#welcome-container").text("Welcome"+ name + "!");
-         $("#logout-container").css("display", "block");
-         //$("#menu-container").populateNavbar();
-
-         $("#logout").click(function () {
-           $("#logout").logout();
-         });
-
-         $("#main_controls").submit(function () {
-           //Validate!
-           return false;
-         });
-
-         $("#errorlog").setErrorLog();
-         $("#strain-graphs").setStrainGraphs();
+          $("form").submit(function () { //Prevent form submit globally
+            return false;
+          }).trigger("reset"); //Reset forms
+          
+          //Force enable start buttons if previously disabled
+          $("#start-controls input[type='button']").removeAttr("disabled");
+          
+          //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-controls")[0].reset();
+            $("#pressure-result").text("");
+          });
+          
+          $("#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>
   
           <div id="logout-container">
             <form action="#">
               <div>
+                <input type="button" id="change-password" value="Change password">
                 <input type="button" id="logout" value="Logout">
               </div>
             </form>
       </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 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="pintest.html"><span>Pin debugging</span></a></li>
-               <li class="last"><a href="#"><span>Help</span></a></li>
-            </ul>
+            <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="values.html"><span>Experiment data (live)</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 class="widget">
-            <div class="title">Help</div>
-
-          </div>
         </div>
         <!-- End sidebar -->
 
         <div id="main">
           <div class="widget">
-            <div class="title">Controls</div>
-            <b>Main controls</b>
-            <form id="main_controls" action="">
+            <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>Experiment name</td>
-                  <td><input name="experiment_name" type="text"></td>
+                  <td><label for="pressure-set">Starting pressure (kPa)</label></td>
+                  <td><label for="pressure-stepsize">Pressure step size (kPa)</label></td>
                 </tr>
                 <tr>
-                  <td>Experiment mode</td>
-                  <td>
-                    <input name="experiment_type" value="strain" type="radio"> Strain it
-                    <input name="experiment_type" value="explode" type="radio"> Explode it
-                  </td>
+                  <td><input id="pressure-set" type="text"></td>
+                  <td><input id="pressure-stepsize" type="text"></td>
                 </tr>
                 <tr>
-                  <td>
-                  </td>
-                  <td align="right">
-                    <input type="submit" value="Start">
-                    <input type="submit" value="Pause">
-                    <input type="submit" value="Stop">
-                  </td>
+                  <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>
-            <b>Error and warning messages</b><br>
-            <textarea id="errorlog" wrap="off" rows="4" cols="30" readonly></textarea>
-          </div>
-          <div class="widget">
-            <div class="title">Strain gauges</div>
-            <div id="strain-graphs" class="graph">
-              <!-- Strain graph placeholder -->
-            </div>
           </div>
         </div>
         <!-- End main content -->

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