Vorms

myscript.js

Feb 15th, 2021
77
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var isWebSocketConnected = false;
  2.  
  3. function changeModuleName(){
  4.     console.log("Bouton changeModuleName");
  5.     document.title=document.getElementById("moduleName").value;
  6.     try {
  7.         websocket.send(JSON.stringify({"moduleName":document.getElementById("moduleName").value}));
  8.     }
  9.     catch (ex) {
  10.         console.error("Caramba !", ex.message);
  11.     }
  12.    
  13.     console.log("Message moduleName envoyé");
  14. }
  15.  
  16. function goToPageReglages(){
  17.     cb = document.getElementById('marcheRelay');
  18.    
  19.     if (cb.checked){
  20.         document.getElementById("marcheRelay").checked = false;
  21.         runMarche();
  22.     }
  23.    
  24.     cb = document.getElementById('sensRelay');
  25.     if (cb.checked){
  26.         document.getElementById("sensRelay").checked = false;
  27.         runSens();
  28.     }
  29.        
  30.     cb = document.getElementById('led');
  31.     if (cb.checked){
  32.         document.getElementById("led").checked = false;
  33.         runLed();
  34.     }
  35.  
  36.     document.location.href='reglages.html';
  37.     return false;
  38. }
  39.  
  40. function saveNodeAddress(){
  41.     console.log("Bouton save node adresse");
  42.     try {
  43.         websocket.send(JSON.stringify({"nodeAddress":document.getElementById("nodeAddress").value}));
  44.     }
  45.    
  46.     catch (ex) {
  47.         console.error("Caramba !", ex.message);
  48.     }
  49.     console.log("Message save node adresse envoyé");
  50. }
  51.  
  52. function ValidateIPaddress(inputText){
  53.      var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
  54.      return (inputText.value.match(ipformat));
  55.  }
  56.  
  57. function saveMechanicals(){
  58.     console.log("Bouton save mechanicals");
  59.     const cb = document.getElementById('isDeviceRotatif');
  60.     var rep = (cb.checked == true ? 'checked' : 'unchecked');
  61.    
  62.     var t = JSON.stringify({"scaleFactor":document.getElementById("scaleFactor").value,
  63.     "actualPosition":document.getElementById("actualPosition").value,
  64.     "timeToStart":document.getElementById("timeToStart").value,
  65.     "nbPulsesToStop":document.getElementById("nbPulsesToStop").value,
  66.     "motorSpeed":document.getElementById("motorSpeed").value,
  67.     "tolerance":document.getElementById("tolerance").value,
  68.     "maxRange":document.getElementById("maxRange").value,
  69.     "isDeviceRotatif":rep});
  70.     try{
  71.         websocket.send(t);
  72.     }
  73.    
  74.     catch (ex) {
  75.         console.error("Caramba !", ex.message);
  76.     }
  77.    
  78.     console.log("Message save mechanicals envoyé");
  79. }
  80.  
  81. function runForA_GivenTime(){
  82.     console.log("Bouton runForA_GivenTime");
  83.     const cb = document.getElementById('sensDep');
  84.     var rep = (cb.checked == true ? 'checked' : 'unchecked');
  85.    
  86.     try {
  87.         websocket.send(JSON.stringify({"time":document.getElementById('runTime').value, "sensDep":rep}));
  88.         console.log("Message time envoyé");
  89.     }
  90.    
  91.     catch (ex) {
  92.         console.error("Caramba !", ex.message);
  93.     }
  94. }
  95.  
  96. function moveWith(dep){
  97.     console.log("Bouton déplacement relatif");
  98.     var u = dep.toString();
  99.     try {
  100.         websocket.send(JSON.stringify({"relativeMove":u}));
  101.         console.log("Message relativeMove envoyé");
  102.     }
  103.    
  104.     catch (ex) {
  105.         console.error("Caramba !", ex.message);
  106.     }
  107. }
  108.  
  109. function runMarche(){
  110.     console.log("Boutons runMarche");
  111.     const cb = document.getElementById('marcheRelay');
  112.     var rep = (cb.checked == true ? 'checked' : 'unchecked');
  113.     try {
  114.         websocket.send(JSON.stringify({"marcheRelay":rep}));
  115.     }
  116.    
  117.     catch (ex) {
  118.         console.error("Caramba !", ex.message);
  119.     }
  120.    
  121.     console.log("Message runMarche envoyé");
  122. }
  123.  
  124. function runSens(){
  125.     console.log("Bouton runSens");
  126.     const cb = document.getElementById('sensRelay');
  127.     var rep = (cb.checked == true ? 'checked' : 'unchecked');
  128.    
  129.     try {
  130.         websocket.send(JSON.stringify({"sensRelay":rep}));
  131.     }
  132.    
  133.     catch (ex) {
  134.         console.error("Caramba !", ex.message);
  135.     }
  136.    
  137.     console.log("Message runSens envoyé");
  138. }
  139.  
  140. function runLed(){
  141.     console.log("Bouton runLed");
  142.     const cb = document.getElementById('led');
  143.     var rep = (cb.checked == true ? 'checked' : 'unchecked');
  144.     try {
  145.         websocket.send(JSON.stringify({"led":rep}));
  146.     }
  147.    
  148.     catch (ex) {
  149.         console.error("Caramba !", ex.message);
  150.     }
  151.    
  152.     console.log("Message runLed envoyé");
  153. }
  154.  
  155. function goToPos(pos){
  156.     console.log("Bouton goToPos");
  157.    
  158.     try{
  159.         websocket.send(JSON.stringify({"newPos":pos.value}));
  160.     }
  161.    
  162.     catch (ex) {
  163.         console.error("Caramba !", ex.message);
  164.     }
  165.    
  166.     console.log("Message goToPos envoyé");
  167. }
  168.  
  169. function validateIpParameters(){
  170.     if (ValidateIPaddress(document.getElementById("ipAddress"))&& ValidateIPaddress(document.getElementById("mask"))){
  171.         alert("Attention, le module va changer de paramètres ip! (à déveloper !");
  172.        
  173.         websocket.send(JSON.stringify({"ipAddress":document.getElementById("ipAddress").value,
  174.         "mask":document.getElementById("mask").value,
  175.         "gateway":document.getElementById("gateway").value,
  176.         "ssid":document.getElementById("ssid").value,
  177.         "password":document.getElementById("password").value}));
  178.     } else {
  179.         alert("Un ou plusieurs paramètres ne sont pas corrects");
  180.     }  
  181. }
  182.  
  183. function OnStateChange(){
  184.      switch (this.readyState) {
  185.             case 0:
  186.                 console.log("The httpRequest object is not initialized");
  187.                 break;
  188.             case 1:
  189.                 console.log("Waiting for the send method");
  190.                 break;
  191.             case 2:
  192.                 console.log("The send method has been called, but no content is available at this time");
  193.                 break;
  194.             case 3:
  195.                 consol.log("Partial data has been received, but this content is not available yet");
  196.                 break;
  197.             case 4:
  198.                 console.log("All data has been received:");
  199.                 break;
  200.             };
  201. }
  202.  
  203. function indexOnloadfunction() {
  204.     console.log("indexOnloadfunction");
  205.     initWebSocket();
  206. }
  207.  
  208. function onOpen(event) {
  209.   isWebSocketConnected = true;
  210.   console.log('Connection opened');  
  211.   websocket.send(JSON.stringify({"url":location.pathname}));
  212.   if (window.location.pathname.includes("reglages")){
  213.     websocket.send(JSON.stringify({"reglagesInitialParameters":true}));
  214.   } else {
  215.     websocket.send(JSON.stringify({"indexInitialParameters":true}));
  216.   }
  217. }
  218.  
  219. function onClose(event) {
  220.   isWebSocketConnected = false;
  221.   console.log('Connection closed', event);
  222.   setTimeout(initWebSocket, 2000);
  223. }
  224.  
  225. function onMessage(event) {
  226.     var obj = JSON.parse(event.data);
  227.     if (obj.hasOwnProperty('toMuchClients')){
  228.         document.location.href='toMuchClients.html';
  229.     } else {   
  230.                 if (obj.hasOwnProperty('actualPosition')){
  231.                     document.getElementById("actualPosition").value = obj["actualPosition"]; // reglage.html ou index.html
  232.                     var inputs = document.getElementsByTagName("INPUT");
  233.                     for (var i = 0; i < inputs.length; i++) {
  234.                             inputs[i].disabled = false;
  235.                     }
  236.                     console.log("Buttons activés !");
  237.                 }
  238.                
  239.                 if (obj.hasOwnProperty('movePulses')){
  240.                     document.getElementById("moveInpuls").value = obj["movePulses"];
  241.                 }
  242.        
  243.                 if (obj.hasOwnProperty('move')){
  244.                     document.getElementById("moveInches").value = obj["move"];
  245.                 }
  246.                
  247.                 if (obj.hasOwnProperty('inertia')){
  248.                     document.getElementById("inertia").value = obj["inertia"];
  249.                 }
  250.                
  251.                 if (obj.hasOwnProperty('hideButtons')){
  252.                     // send handshake to the server
  253.                     websocket.send(JSON.stringify({"handshake":"buttons"}));
  254.                                
  255.                     var inputs = document.getElementsByTagName("INPUT");
  256.                     for (var i = 0; i < inputs.length; i++) {
  257.                             inputs[i].disabled = true;
  258.                     }
  259.  
  260.                     console.log("Désactiver les boutons");
  261.                 }
  262.                    
  263.                 if (obj.hasOwnProperty('moduleName') && !window.location.pathname.includes("reglages")){ // index.html initials parameters
  264.                     document.getElementById("moduleName").value = obj.moduleName;
  265.                     document.title=obj.moduleName;
  266.                     document.getElementById("nodeAddress").value = obj.nodeAddress;
  267.                     document.getElementById("actualPosition").value = obj.actualPosition;
  268.                     document.getElementById("ipAddress").value = obj.ipAddressText;
  269.                     document.getElementById("gateway").value = obj.gatewayText;
  270.                     document.getElementById("mask").value = obj.maskText;
  271.                     document.getElementById("ssid").value = obj.ssid;
  272.                     document.getElementById("password").value = obj.password;
  273.                     document.getElementById("scaleFactor").value = obj.scaleFactor;
  274.                     document.getElementById("timeToStart").value = obj.timeToStart;
  275.                     document.getElementById("nbPulsesToStop").value = obj.nbPulsesToStop;
  276.                     document.getElementById("motorSpeed").value = obj.motorSpeed;
  277.                     document.getElementById("tolerance").value = obj.tolerance;
  278.                     document.getElementById("maxRange").value = obj.maxRange;
  279.                     document.getElementById("isDeviceRotatif").checked = obj.isDeviceRotatif;
  280.                 }
  281.                
  282.                 if (obj.hasOwnProperty('moduleName') && window.location.pathname.includes("reglages")){ //  reglages.html initials parameters
  283.                     document.getElementById("moduleName").value = obj.moduleName;
  284.                     document.title=obj.moduleName;
  285.                     document.getElementById("actualPosition").value = obj.actualPosition;
  286.                 }
  287.                
  288.                 if (obj.hasOwnProperty('handshake')){
  289.                     var t = obj.handshake;
  290.                     if (t.includes("wifi")){
  291.                         alert("Paramètres wifi enregistrés avec succés sur le module");
  292.                     }
  293.                    
  294.                     if (t.includes("nodeAddress")){
  295.                         alert("Adresse du node RS422 enregistré avec succés sur le module");
  296.                     }
  297.                    
  298.                     if (t.includes("mechanicals")){
  299.                         alert("Paramètres mécaniques enregistrés avec succés sur le module");
  300.                     }
  301.                    
  302.                     if (t.includes("moduleName")){
  303.                         var t = "Le nom du module est enregistré avec succés sur le module.\rAttention à la nouvelle mise sous tension, l'url sera: ";
  304.                         t = t.concat("http://" + document.getElementById("moduleName").value + ".local");
  305.                         alert(t);
  306.                         //alert("Attention, à la nouvelle mise sous tension, l'url sera: " + document.getElementById("moduleName").value + ".local/");
  307.                     }
  308.                 }
  309.                
  310.                 if (obj.hasOwnProperty('heartbeat')){
  311.                     console.log("heartbeat reçu");
  312.                 }
  313.     }
  314. }
  315.  
  316. function onError(event){
  317.      alert(`[error] ${event.message}`);
  318. }
  319.  
  320. function initWebSocket() {
  321.     if (!isWebSocketConnected){
  322.       console.log('Trying to open a WebSocket connection…');
  323.       websocket = new WebSocket("ws://" + window.location.hostname + "/ws");
  324.       websocket.onopen    = onOpen;
  325.       websocket.onclose   = onClose;
  326.       websocket.onmessage = onMessage;
  327.       websocket.onerror   = onError;
  328.     }
  329. }
  330.  
  331. function reglagesOnloadfunction() {
  332.     initWebSocket();
  333. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×