Réglages caméra Javascript

Fermé
Pieick6662 Messages postés 5 Date d'inscription dimanche 1 mai 2016 Statut Membre Dernière intervention 23 mai 2016 - 22 mai 2016 à 19:05
jordane45 Messages postés 38471 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 mai 2025 - 23 mai 2016 à 00:13
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 38471 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 mai 2025 4 742
22 mai 2016 à 20:51
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 5 Date d'inscription dimanche 1 mai 2016 Statut Membre Dernière intervention 23 mai 2016
22 mai 2016 à 21:32
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 38471 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 mai 2025 4 742
22 mai 2016 à 21:49
Je ne sais pas... comment le lances tu ? Quel est le code ton bouton ?
0
Pieick6662 Messages postés 5 Date d'inscription dimanche 1 mai 2016 Statut Membre Dernière intervention 23 mai 2016
22 mai 2016 à 22:20
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 38471 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 mai 2025 4 742
22 mai 2016 à 22:32
Tu as oublié de mettre des quotes dans le onClick
0
Pieick6662 Messages postés 5 Date d'inscription dimanche 1 mai 2016 Statut Membre Dernière intervention 23 mai 2016
22 mai 2016 à 23:13
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