Réglages caméra Javascript

Pieick6662 Messages postés 8 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
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">


  Luminosité : 
<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
A voir également:

1 réponse

jordane45 Messages postés 40050 Statut Modérateur 4 757
 
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
Pieick6662 Messages postés 8 Statut Membre
 
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
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Je ne sais pas... comment le lances tu ? Quel est le code ton bouton ?
0
Pieick6662 Messages postés 8 Statut Membre
 
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
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Tu as oublié de mettre des quotes dans le onClick
0
Pieick6662 Messages postés 8 Statut Membre
 
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