From 9bd1c2dd7db5e234ddef0b65c54cdc348d9ce040 Mon Sep 17 00:00:00 2001
From: fherrero <fherrero@iri.upc.edu>
Date: Sun, 7 Nov 2021 21:29:21 +0100
Subject: [PATCH] Add semaphore and building service clients

---
 html/jury.html | 421 +++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 372 insertions(+), 49 deletions(-)

diff --git a/html/jury.html b/html/jury.html
index 62d8b34..a45d90a 100644
--- a/html/jury.html
+++ b/html/jury.html
@@ -91,10 +91,58 @@
         name : 'gui/image_quality'
       });
       
-      // var image_size_param = new ROSLIB.Param({
-      //   ros : ros,
-      //   name : 'gui/image_size'
-      // });
+      var set_semaphore1_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_semaphore1',
+        serviceType : 'iri_adc_msgs/set_semaphore'
+      });
+
+      var set_semaphore2_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_semaphore2',
+        serviceType : 'iri_adc_msgs/set_semaphore'
+      });
+
+      var set_semaphore3_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_semaphore3',
+        serviceType : 'iri_adc_msgs/set_semaphore'
+      });
+
+      var set_semaphore4_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_semaphore4',
+        serviceType : 'iri_adc_msgs/set_semaphore'
+      });
+
+      var semaphore_request = new ROSLIB.ServiceRequest({
+        color : 0
+      });
+
+      var set_building1_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_building1',
+        serviceType : 'iri_adc_msgs/set_semaphore' //TODO change
+      });
+
+
+      var set_building2_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_building2',
+        serviceType : 'iri_adc_msgs/set_semaphore' //TODO change
+      });
+
+
+      var set_building3_service_client = new ROSLIB.Service({
+        ros : ros,
+        name : '/jury/set_building3',
+        serviceType : 'iri_adc_msgs/set_semaphore' //TODO change
+      });
+
+      var building_request = new ROSLIB.ServiceRequest({
+        status : 0
+      });
+
       
       var adc_jury_service_client = new ROSLIB.Service({
         ros : ros,
@@ -451,7 +499,7 @@
         download(textbox.value, filename, "text/plain" );
       }
       
-     function reload_image()
+      function reload_image()
       {
         image_topic_param.get(function(value)
         {
@@ -484,28 +532,303 @@
             else
               image_quality_param.set(image_quality);
           });
-        
-          // image_size_param.get(function(value)
-          // {
-          //   if(value!=null)
-          //   {
-          //     var new_image_size = value; 
-          //     if(new_image_size!=image_size)
-          //     {
-          //       image_size=new_image_size;
-          //       var yourImg = document.getElementById('video_image');
-          //       if(yourImg && yourImg.style)
-          //       {
-          //         //yourImg.style.height = new_image_size;
-          //         //yourImg.style.width = new_image_size;
-          //       }
-          //     }
-          //   }
-          //   else
-          //     image_size_param.set(image_size);
-          // });
       }
 
+      function semaphore1_green()
+      {
+        semaphore_request.color=2;
+        set_semaphore1_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore1 didn't respond");
+          });
+      }
+
+      function semaphore1_red()
+      {
+        semaphore_request.color=1;
+        set_semaphore1_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore1 didn't respond");
+          });
+      }
+
+      function semaphore1_off()
+      {
+        semaphore_request.color=0;
+        set_semaphore1_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore1 didn't respond");
+          });
+      }
+
+
+      function semaphore2_green()
+      {
+        semaphore_request.color=2;
+        set_semaphore2_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore2 didn't respond");
+          });
+      }
+
+      function semaphore2_red()
+      {
+        semaphore_request.color=1;
+        set_semaphore2_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore2 didn't respond");
+          });
+      }
+
+      function semaphore2_off()
+      {
+        semaphore_request.color=0;
+        set_semaphore2_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore2 didn't respond");
+          });
+      }
+
+
+      function semaphore3_green()
+      {
+        semaphore_request.color=2;
+        set_semaphore3_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore3 didn't respond");
+          });
+      }
+
+      function semaphore3_red()
+      {
+        semaphore_request.color=1;
+        set_semaphore3_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore3 didn't respond");
+          });
+      }
+
+      function semaphore3_off()
+      {
+        semaphore_request.color=0;
+        set_semaphore3_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore3 didn't respond");
+          });
+      }
+
+
+      function semaphore4_green()
+      {
+        semaphore_request.color=2;
+        set_semaphore4_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore4 didn't respond");
+          });
+      }
+
+      function semaphore4_red()
+      {
+        semaphore_request.color=1;
+        set_semaphore4_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore4 didn't respond");
+          });
+      }
+
+      function semaphore4_off()
+      {
+        semaphore_request.color=0;
+        set_semaphore4_service_client.callService(semaphore_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("semaphore4 didn't respond");
+          });
+      }
+
+      function semaphores_green()
+      {
+        semaphore1_green();
+        semaphore2_green();
+        semaphore3_green();
+        semaphore4_green();
+      }
+
+      function semaphores_red()
+      {
+        semaphore1_red();
+        semaphore2_red();
+        semaphore3_red();
+        semaphore4_red();
+      }
+
+      function semaphores_off()
+      {
+        semaphore1_off();
+        semaphore2_off();
+        semaphore3_off();
+        semaphore4_off();
+      }
+
+      function building1_on()
+      {
+        building_request.status=1;
+        set_building1_service_client.callService(building_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("building1 didn't respond");
+          });
+      }
+
+      function building1_off()
+      {
+        building_request.status=0;
+        set_building1_service_client.callService(building_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("building1 didn't respond");
+          });
+      }
+
+      function building2_on()
+      {
+        building_request.status=1;
+        set_building2_service_client.callService(building_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("building2 didn't respond");
+          });
+      }
+
+      function building2_off()
+      {
+        building_request.status=0;
+        set_building2_service_client.callService(building_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("building2 didn't respond");
+          });
+      }
+
+      function building3_on()
+      {
+        building_request.status=1;
+        set_building3_service_client.callService(building_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("building3 didn't respond");
+          });
+      }
+
+      function building3_off()
+      {
+        building_request.status=0;
+        set_building3_service_client.callService(building_request,
+          function(result)
+          {
+
+          },
+          function(result)
+          {
+            console.error("building3 didn't respond");
+          });
+      }
+
+      function buildings_on()
+      {
+        building1_on();
+        building2_on();
+        building3_on();
+      }
+
+      function buildings_off()
+      {
+        building1_off();
+        building2_off();
+        building3_off();
+      }
+
+
+
       $(document).ready
       (
         function ()
@@ -630,37 +953,37 @@
           <div class="row">
             <div style="width: 50%">
               Semaphore 1
-              <button class="btn btn-success btn-semaphore" id="semaphore1_green">green</button>
-              <button class="btn btn-danger btn-semaphore" id="semaphore1_red">red</button>
-              <button class="btn btn-dark btn-semaphore" id="semaphore1_off">off</button>
+              <button class="btn btn-success btn-semaphore" id="semaphore1_green" onclick="semaphore1_green()">green</button>
+              <button class="btn btn-danger btn-semaphore" id="semaphore1_red" onclick="semaphore1_red()">red</button>
+              <button class="btn btn-dark btn-semaphore" id="semaphore1_off"  onclick="semaphore1_off()">off</button>
               <span id="semaphore1_info" ></span>
               <br>
               Semaphore 2
-              <button class="btn btn-success btn-semaphore" id="semaphore2_green">green</button>
-              <button class="btn btn-danger btn-semaphore" id="semaphore2_red">red</button>
-              <button class="btn btn-dark btn-semaphore" id="semaphore2_off">off</button>
+              <button class="btn btn-success btn-semaphore" id="semaphore2_green" onclick="semaphore2_green()">green</button>
+              <button class="btn btn-danger btn-semaphore" id="semaphore2_red" onclick="semaphore2_red()">red</button>
+              <button class="btn btn-dark btn-semaphore" id="semaphore2_off" onclick="semaphore2_off()">off</button>
               <span id="semaphore2_info" ></span>
               <br>
               Semaphore 3
-              <button class="btn btn-success btn-semaphore" id="semaphore3_green">green</button>
-              <button class="btn btn-danger btn-semaphore" id="semaphore3_red">red</button>
-              <button class="btn btn-dark btn-semaphore" id="semaphore3_off">off</button>
+              <button class="btn btn-success btn-semaphore" id="semaphore3_green" onclick="semaphore3_green()">green</button>
+              <button class="btn btn-danger btn-semaphore" id="semaphore3_red" onclick="semaphore3_red()">red</button>
+              <button class="btn btn-dark btn-semaphore" id="semaphore3_off" onclick="semaphore3_off()">off</button>
               <span id="semaphore3_info" ></span>
               <br>
               Semaphore 4
-              <button class="btn btn-success btn-semaphore" id="semaphore4_green">green</button>
-              <button class="btn btn-danger btn-semaphore" id="semaphore4_red">red</button>
-              <button class="btn btn-dark btn-semaphore" id="semaphore4_off">off</button>
+              <button class="btn btn-success btn-semaphore" id="semaphore4_green" onclick="semaphore4_green()">green</button>
+              <button class="btn btn-danger btn-semaphore" id="semaphore4_red" onclick="semaphore4_red()">red</button>
+              <button class="btn btn-dark btn-semaphore" id="semaphore4_off" onclick="semaphore4_off()">off</button>
               <span id="semaphore4_info" ></span>
             </div>
             <div style="width: 50%">
               All &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
-              <button class="btn btn-success btn-semaphore" id="semaphores_green">green</button>
-              <button class="btn btn-danger btn-semaphore" id="semaphores_red">red</button>
-              <button class="btn btn-dark btn-semaphore" id="semaphores_off">off</button>
+              <button class="btn btn-success btn-semaphore" id="semaphores_green" onclick="semaphores_green()">green</button>
+              <button class="btn btn-danger btn-semaphore" id="semaphores_red" onclick="semaphores_red()">red</button>
+              <button class="btn btn-dark btn-semaphore" id="semaphores_off" onclick="semaphores_off()">off</button>
               <span id="semaphores_info" ></span>
               <br>
-              Sync semaphores <input name="sync_semaphores" id="sync_semaphores" type="checkbox" checked>
+              <!--Sync semaphores <input name="sync_semaphores" id="sync_semaphores" type="checkbox" checked>-->
             </div>
           </div>
           
@@ -668,21 +991,21 @@
           <div class="row">
             <div style="width: 50%">
               Building 1
-              <button class="btn btn-light btn-semaphore" id="building1_on">on</button>
-              <button class="btn btn-dark btn-semaphore"  id="building1_off">off</button>
+              <button class="btn btn-light btn-semaphore" id="building1_on" onclick="building1_on()">on</button>
+              <button class="btn btn-dark btn-semaphore"  id="building1_off" onclick="building1_off()">off</button>
               <br>
               Building 2
-              <button class="btn btn-light btn-semaphore" id="building2_on">on</button>
-              <button class="btn btn-dark btn-semaphore"  id="building2_off">off</button>
+              <button class="btn btn-light btn-semaphore" id="building2_on" onclick="building2_on()">on</button>
+              <button class="btn btn-dark btn-semaphore"  id="building2_off" onclick="building2_off()">off</button>
               <br>
               Building 3
-              <button class="btn btn-light btn-semaphore" id="building3_on">on</button>
-              <button class="btn btn-dark btn-semaphore"  id="building3_off">off</button>
+              <button class="btn btn-light btn-semaphore" id="building3_on" onclick="building3_on()">on</button>
+              <button class="btn btn-dark btn-semaphore"  id="building3_off" onclick="building3_off()">off</button>
             </div>
             <div style="width: 50%">
               All &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
-              <button class="btn btn-light btn-semaphore" id="buildings_on">on</button>
-              <button class="btn btn-dark btn-semaphore"  id="buildings_off">off</button>
+              <button class="btn btn-light btn-semaphore" id="buildings_on" onclick="buildings_on()">on</button>
+              <button class="btn btn-dark btn-semaphore"  id="buildings_off" onclick="buildings_off()">off</button>
             </div>
           </div>
           <hr>
-- 
GitLab