Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1392 connectés 

 


Sujet(s) à lire :
 

 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[En cours fw 4.44.2] Axis 207W - Programmation planificateur de photos

n°581454
benben70
Posté le 06-12-2009 à 18:50:13  profilanswer
 

Reprise du message précédent :
Bonsoir,
 
suite à d'éternels problèmes de plantage, qui se résolvent soit par un déconnexion du réseau (parfois) ou de l'alimentation ( ouf!), j'ai amélioré le script. En effet j'ai observé que quand la caméra était plantée, la led (activée par mon script flashait encore). J'ai donc modifié le script en faisant flasher la led en vert si l'upload fonctionne, en rouge si l'upload echoue. Quand la caméra était planté, j'ai obtenu des flashs rouges. J'ai alors modifié le script pour compter ces echecs et rebooter la caméra au bout de 10 échecs. Cela donne le résultat si dessous :

#!/bin/sh
 
#check if the counter file doesn't exist (first call of the script)
if [ ! -e /tmp/nb_upload_err.txt ]; then  
  #create the file
  echo "0" > /tmp/nb_upload_err.txt
 
  #log
  logger  -p user.crit "Upload script init"
fi
 
#get counter value
COUNTER=$(cat /tmp/nb_upload_err.txt)
 
#switch the led to yellow
statusled off  
statusled yellow
 
#get the image
shttpclient -o /tmp/image.jpg -u root -w PASSWORD_CAM http://127.0.0.1/axis-cgi/jpg/imag [...] ion=640480
 
#switch the led to green
statusled green
 
#upload the image
shttpclient -i /tmp/image.jpg  http://votre.site.web/webcam/upload.php
 
#if upload has been succesfull
if [ $? = 0 ]; then
   # and if counter is not nul
   if [ $COUNTER -ne 0 ];  then
 
        #reset it
 echo "0" > /tmp/nb_upload_err.txt
        logger  -p user.crit "Upload is OK : Reset Upload Error Counter"
   fi
 
   #switch the led off
   statusled off
 
#if upload has raised an error
else
   #switch the led to red
   statusled red
 
   #increment the counter
   COUNTER=$(($COUNTER + 1))
   echo $COUNTER > /tmp/nb_upload_err.txt
 
   logger -p user.crit "Nb Erreur Upload $COUNTER"
 
   #if the error counter raise 10
   if [ $COUNTER -ge 10 ];  then
 
     #reboot the cam
     logger -p user.crit "Reboot"
     reboot
   fi
fi

 
Ne pas oublier de faire un chmod 755 pour mettre les droits d'execution ( ou le mode 0100755 à l'aide de l'editeur web de la caméra). Vous pouvez tester le script à l'aide de telnet en lancant ./snapshot.sh
 
J'attend maintenant que la caméra se plante (je dois recevoir un mail de log "Upload script init" lors du premier upload après un reset), et évidemment ce ne plante plus. C'est la loi de murphy ...
 
Benoit

mood
Publicité
Posté le 06-12-2009 à 18:50:13  profilanswer
 

n°598374
Nicolas 2
Posté le 01-04-2010 à 01:21:39  profilanswer
 

Bonjour Benoit,
 
Je viens de tenter à nouveau le passage de la 4.40.1 à la 4.44.2 mais le pb d'entête des jpeg est toujours d'actualité.
 
Pourrais-tu préciser dans quel répertoire doit se trouver le script upload.php et snapshot.sh ?
 
En fait, je ne comprend pas bien où il faut mettre ton script ..., faut-il que je l'intègre dans mon /etc/snapshot.script (moyennant les adaptations nécessaires) ?
 
Merci d'avance, à bientôt  :jap:
 
 
EDIT:
Après réflexion, et si j'ai bien tout compris, il me semble que snapshot.sh contienne le code ci-dessous et doivent être ajouté dans le répertoire de base de la caméra (.\)
L'objectif de snapshot.sh est de rebooter la caméra en cas d'échec répétitif d'exécution du script upload.php.

#!/bin/sh
 
#check if the counter file doesn't exist (first call of the script)
if [ ! -e /tmp/nb_upload_err.txt ]; then  
  #create the file
  echo "0" > /tmp/nb_upload_err.txt
 
  #log
  logger  -p user.crit "Upload script init"
fi
 
#get counter value
COUNTER=$(cat /tmp/nb_upload_err.txt)
 
#switch the led to yellow
statusled off  
statusled yellow
 
#get the image
shttpclient -o /tmp/image.jpg -u root -w PASSWORD_CAM http://127.0.0.1/axis-cgi/jpg/image.cgi?resolution=640480
 
#switch the led to green
statusled green
 
#upload the image
shttpclient -i /tmp/image.jpg  http://votre.site.web/webcam/upload.php
 
#if upload has been succesfull
if [ $? = 0 ]; then
   # and if counter is not nul
   if [ $COUNTER -ne 0 ];  then
 
        #reset it
 echo "0" > /tmp/nb_upload_err.txt
        logger  -p user.crit "Upload is OK : Reset Upload Error Counter"
   fi
 
   #switch the led off
   statusled off
 
#if upload has raised an error
else
   #switch the led to red
   statusled red
 
   #increment the counter
   COUNTER=$(($COUNTER + 1))
   echo $COUNTER > /tmp/nb_upload_err.txt
 
   logger -p user.crit "Nb Erreur Upload $COUNTER"
 
   #if the error counter raise 10
   if [ $COUNTER -ge 10 ];  then
 
     #reboot the cam
     logger -p user.crit "Reboot"
     reboot
   fi
fi


Pour ce qui est de upload.php, je pense qu'il ne doit pas être mis dans la caméra mais sur un serveur web équipé de PHP.

<?php  
echo "upload OK";
 //sauvegarde des entêtes
 $file_handle=fopen("headers-".date("Y-m-d_His" ).".txt",'w');
 foreach($_SERVER as $key=>$value) {
   fwrite($file_handle,"$key: $value \n" );
    }  
 fclose($file_handle);
 
 //sauvegarde de l'image
 $file_handle=fopen("axis-".date("Y-m-d_His" ).".jpg",'w');
 
        //ajout de l'entête manquante avec la version 4.44 du soft axis  
 fwrite($file_handle,chr(0xff).chr(0xd8).chr(0xff).chr(0xe0).chr(00));
 
 fwrite($file_handle,file_get_contents('php://input'));
 fclose($file_handle);
 
 
 //suppression des fichiers vieux de plus de 1h
 $dirhandle = opendir("." );
 while (($file = readdir($dirhandle)) !== false)
  {
  $ext = strtolower(strrchr($file,"." ));
 
  if(is_file("$file" ) )
   if ( ($ext==".jpg" ) && (filemtime("$file" ) <= (mktime()- 3600)) ) unlink("./$file" );
   if ( ($ext==".txt" ) && (filemtime("$file" ) <= (mktime()- 3600)) ) unlink("./$file" );
  }
 closedir($dirhandle);
 return $result;  
?>

La correction de l'entête des JPEG se fait donc par l'exécution du script upload.php et ne convient pas si on envoie les photos directement par FTP depuis la caméra. Il faudrait pouvoir corriger les entêtes directement dans les scripts de la caméra.


Message édité par Nicolas 2 le 01-04-2010 à 15:20:51
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
cameras AXIS 207W - Explorer 7 sur Vistaenvoyer photos scannees sur album"kizoa"
WebcamXP et camera AXIS 207WChoix entre 2 écrans pour photos/jeux
imprimantes photosmon ecran fait des trucs bizarres (photos inside)
Plus de sujets relatifs à : [En cours fw 4.44.2] Axis 207W - Programmation planificateur de photos


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR