Réglages caméra Javascript

Bonjour tout le monde,

Voila, pour un projet pour le BAC, Je dois coder un réglage de contraste et de luminosité d'une caméra en Javascript/Ajax et en HTML et malgré mes tentatives, il n'y a aucun changement au niveau de la caméra. Quels changements dois-je faire dans mon code en n'utilisant que les langages indiqués ci-dessus ?

Voici mon code pour le moment :
HTML
<div id="boiteoption">

&nbsp Luminosité&nbsp:&nbsp
<SELECT id="lumi" size="1" onchange="lumi()"><!-- Met en place une nouvelle option-->
<option value="1">0</option>
<OPTION value="2" >1</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="3">2</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="4">3</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="5">4</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="6">5</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="7">6</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="8">7</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="9">8</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="10">9</OPTION> <!-- Ajoute un choix possible au formulaire -->
<OPTION value="11">10</OPTION> <!-- Ajoute un choix possible au formulaire -->
</SELECT> </br>



Javascript

function lumi() {
var lumi= document.getElementById("lumi").value;
var xhr = getXhr()
xhr.onreadystatechange = function(){
if(xhr.readystate == 4 && xhr.status == 200){
alert(xhr.responseText);
}
}

if(lumi.value == 1) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=0&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 2) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=1&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 3) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=2&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 4) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=3&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 5) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=4&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 6) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=5&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 7) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=6&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 8) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=7&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 9) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=8&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 10) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=9&user=admin&pwd=',true);
xhr.send(null);}

else if(lumi.value == 11) {
xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value=10&user=admin&pwd=',true);
xhr.send(null);}

}


Merci

1 réponse

  1. Modérateur
    Bonjour,

    Déjà ... au lieu de faire 50 if/elseif ... je te conseille d'utiliser un SWITCH CASE cela rendre ton code plus lisible. https://www.w3schools.com/js/js_switch.asp

    De plus.. tu pourrais très bien ne modifier que la valeur de "value" vu que l'url en elle même reste toujours la même (au lieu de la recopier autant de fois que de if....)
    Ton code peut donc se résumér à :
    function lumi() {
    	var lumi= document.getElementById("lumi").value;
    	 var xhr = getXhr()
    	 xhr.onreadystatechange = function(){
    		 if(xhr.readystate == 4 && xhr.status == 200){
    			 alert(xhr.responseText);
    		 }
    	 }
    	 
       var valeur = parseInt(lumi.value) -1;
       xhr.open('POST','http://192.168.0.102:8090/camera_control.cgi?param=1&value='+valeur+'&user=admin&pwd=',true);
    	 xhr.send(null);}
       
    }
    


    Pour ce qui est de ton souci .... et bien... que t'affiche la CONSOLE de ton navigateur ?
    Je te conseille d'installer le plugin Firebug pour Firefox, de l'ouvrir, de lancer ta page et de regarder ce qui s'y affiche.

    0
    1. Justement c'est là que viens un problème majeur... la console n'affiche absolument aucune erreur... Je me demande si la fonction se lance quand j'appuie sur le bouton OK
      0
    2. Modérateur
      Je ne sais pas... comment le lances tu ? Quel est le code ton bouton ?
      0
    3. Alors une fois la valeur souhaité sélectionné, il me suffit normalement de cliquer sur le bouton "OK" codé de la manière suivante :

      <button id="bouton2" onClick=lumi()>OK</button>


      Pour qu'une fois le bouton pressé la fonction lumi (javascript dans le premier message)
      0
    4. Modérateur
      Tu as oublié de mettre des quotes dans le onClick
      0
    5. OK, cette faute a été corrigée mais le resultat reste le même, il n'y a aucune réaction de la part de la caméra...
      0