</header>
<body>
-
<main>
<div class="side">
<div class="panel">
<textarea class="text" rows="20" cols="7" id="comandos" placeholder="Definicion de la red como: h1:s1"></textarea>
<div class="buttons">
- <button type="button" name="button" onclick="startvsorc()">Iniciar VSoRC</button>
- <button type="button" name="button" onclick="stopvsorc()">Detener VSoRC</button>
- <button type="button" name="button" onclick="startcontroller()">Iniciar controlador</button>
- <button type="button" name="button" onclick="stopcontroller()">Detener controlador</button>
+ <button id="btnstartvsorc" type="button" name="button" onclick="startvsorc()">Iniciar VSoRC</button>
+ <button id="btnstopvsorc" type="button" name="button" onclick="stopvsorc()">Detener VSoRC</button>
+ <button id="btnstartcontroller" type="button" name="button" onclick="startcontroller()">Iniciar controlador Simple Switch</button>
+ <button id="btnstartcontrollerrouter" type="button" name="button" onclick="startcontrollerrouter()">Iniciar controlador REST Router</button>
+ <button id="btnstopcontroller" type="button" name="button" onclick="stopcontroller()">Detener controlador</button>
</div>
</div>
</div>
</div>
<div class="panel">
- <textarea class="text" style="font-size: 12px;" rows="20" cols="7" id="vsorccommand" placeholder="Enviar comandos a la terminal"></textarea>
+ <input type="text" id="vsorccommand" style="background-color: rgba(255,255,255,0.8); font-size: 12px;" placeholder="Enviar comandos a la terminal"></input>
+ <!-- <textarea class="text" style="font-size: 12px;" rows="1" cols="20" id="vsorccommand" placeholder="Enviar comandos a la terminal"></textarea> -->
<div class="buttons">
- <button type="button" name="button" onclick="sendcommand()">Send</button>
- <!-- <button type="button" name="button" onclick="cancel()">Cancel</button> -->
+ <button type="button" name="button" onclick="sendcommand()" id="btnsend">Send</button>
</div>
</div>
</div>
<div class="panel">
<textarea class="text" style="font-size: 12px;" disabled rows="20" cols="7" id="controllerout" placeholder="Salida del controlador"></textarea>
</div>
+ <div class="panel">
+ <textarea class="text" style="font-size: 12px;" disabled rows="16" cols="7" id="raspberrys" placeholder="Raspberry Pi UP!"></textarea>
+ </div>
+
</div>
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
+
+ comando.addEventListener('keypress', function(event) {
+ if (event.keyCode == 13) {
+ event.preventDefault();
+ if(comando.value != ""){
+ document.getElementById('btnsend').click();
+}
+ }
+ });
+
+
let timeVsorc = 1000;
- let timeController = 2000;
- //Estos time son para especificar cada cuantos ms se pedira leer la data de los archivos aichivo y controllerout
+ 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); //Para ver que rpi estan UP
+
+ 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);
}
}
xhr.send();
-
+ }
+ function startcontrollerrouter() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/startcontrollerrouter', 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 router");
+ }
+ }
+ xhr.send();
}
function cancel() {
let xhr = new XMLHttpRequest();
xhr.onload = function() {
if (xhr.status == 200) { //can use this.status instead
//console.log(xhr.responseText);// para ver en la consola
- controllerout.value=xhr.response;
+
+ let controllerstat = xhr.response.split('^'); //La data del controlador y el estado de este llegan separados por ^
+ if(controllerstat[1] === "true"){
+ document.getElementById('btnstopcontroller').disabled = false;
+ document.getElementById('btnstartcontroller').disabled = true;
+ document.getElementById('btnstartcontrollerrouter').disabled = true;
+ }else{
+ document.getElementById('btnstopcontroller').disabled = true;
+ document.getElementById('btnstartcontroller').disabled = false;
+ document.getElementById('btnstartcontrollerrouter').disabled = false;
+ }
+ controllerout.value=controllerstat[0];
console.log("getting controller data");
+ console.log(controllerstat);
}
}
xhr.send();
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;
+
+ //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");