+
+ <script type="text/javascript">
+
+
+
+ let topo = document.getElementById('comandos'); //Donde van escrito el DSL
+ let comando = document.getElementById('vsorccommand'); //Donde va escrito el comando para la terminal
+ let vsorcout = document.getElementById('vsorcout'); //salida del vsorc
+ let controllerout = document.getElementById('controllerout'); //salida del controlador
+ let raspberry = document.getElementById('raspberrys'); //monitor de las rpi disponibles
+
+ let timeVsorc = 1000;
+ let timeController = 1000;
+ let timeping = 5000;
+ //Estos time son para especificar cada cuantos ms se pedira leer la data de los archivos aichivo, controllerout y que raspberry estan activas
+
+ let intervalController = null;//Para tener el id del interval para obtener data del controller
+ let intervalVsorc = null; //Para tener el id del interval para obtener data del vsorc
+
+ intervalVsorc = setInterval(getvsorcdata, timeVsorc);
+ intervalController=setInterval(getcontrollerdata, timeController);
+ setInterval(rpiping,timeping);
+ function rpiping() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/rpiping', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ raspberry.value=xhr.response;
+ console.log("getting controller data");
+ }
+ }
+ xhr.send();
+
+ }
+ function startcontroller() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/startcontroller', true);
+ //console.log(xhr); //para ver en la consola
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ console.log("controller started");
+ }
+ }
+ xhr.send();
+
+ }
+ function cancel() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/cancel', true);
+ //console.log(xhr); //para ver en la consola
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ console.log("cancelled");
+ }
+ }
+ xhr.send();
+
+ }
+
+ function stopcontroller() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/stopcontroller', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ console.log("controller stoped");
+ }
+ }
+ xhr.send();
+ //clearInterval(intervalController);
+ controllerout.value='';
+ }
+ function getcontrollerdata() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/getcontrollerdata', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ let controllerstat = xhr.response.split('^');
+ if(controllerstat[1] === "true"){
+ document.getElementById('btnstopcontroller').disabled = false;
+ document.getElementById('btnstartcontroller').disabled = true;
+ }else{
+ document.getElementById('btnstopcontroller').disabled = true;
+ document.getElementById('btnstartcontroller').disabled = false;
+ }
+ controllerout.value=controllerstat[0];
+ console.log("getting controller data");
+ }
+ }
+ xhr.send();
+
+ controllerout.scrollTop = controllerout.scrollHeight;
+ }
+ function sendcommand() {
+ let xhr = new XMLHttpRequest();
+ cmd = JSON.stringify(comando.value);
+ xhr.open('GET', '/sendcommand?cmd=' + cmd, true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ console.log("command sended is "+cmd);
+ }
+ }
+ xhr.send();
+
+ }
+
+ function startvsorc() {
+ let xhr = new XMLHttpRequest();
+ topology = JSON.stringify(topo.value)
+ xhr.open('GET', '/startvsorc?topology=' + topology, true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ console.log("vsorc started");
+ }
+ }
+ xhr.send();
+
+ }
+
+ function stopvsorc() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/stopvsorc', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+
+ console.log("vsorc stopped");
+ }
+ }
+ xhr.send();
+ //clearInterval(intervalVsorc);
+ vsorcout.value='';
+ }
+
+ function getvsorcdata() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/getvsorcdata', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+
+ //strip
+ //cambiar boton con vaina[1]
+ //vsorcout = vaina[0]
+ let vsorcstat = xhr.response.split('^');
+ if(vsorcstat[1] === "true"){
+ document.getElementById('btnstopvsorc').disabled = false;
+ document.getElementById('btnstartvsorc').disabled = true;
+ }else{
+ document.getElementById('btnstopvsorc').disabled = true;
+ document.getElementById('btnstartvsorc').disabled = false;
+ }
+
+ vsorcout.value=vsorcstat[0];
+
+ console.log("getting vsorc data");
+
+
+ }
+ }
+ xhr.send();
+
+ vsorcout.scrollTop = vsorcout.scrollHeight;
+ }
+
+
+ function pingall() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/pingall', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("pingall");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function iperf() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/iperf', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("iperf");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function placement() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/placement', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("placement");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function net() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/net', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("net");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function nodes() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/nodes', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("nodes");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function status() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/statusnodes', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("statusnodes");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function intfs() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/intfs', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ vsorcout.value+=xhr.response;
+ console.log("interfaces");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ </script>
+ </main>