IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

control d'une camera PTZ via un client C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut control d'une camera PTZ via un client C++
    Bonjour,
    Pour mon stage je doit réaliser un programme de suivit d'un object grace a une caméra Ip axis. Je cherche, via mon client http codé en C++ a controler le mouvement de cette camera grace à une requete de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://10.x.xx.xx/axis-cgi/com/ptz.cgi?center=200,200
    Cette requete fonctionne très bien lorsque je la lance depuis la barre d'adresse de mon navigateur web, la camera se centre bien sur le point (200,200). Mais lorsque je lance cette requete depuis mon client http avec la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./bin/httpget http://10.x.xx.xx/axis-cgi/com/ptz.cgi?center=200,200
    Rien ne se passe. Je recoit seulement la reponse



    de la part du serveur de la camera. J'ai lu sur un blog (http://pierrepouzol.wordpress.com/page/2/) que le parametre "camera=1" devait etre rajouter en cas de requete depuis un programme autre que le navigateur web, mais cela ne fonctionne toujours pas. La reponse dans ce cas la est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (...)/httpget2$ ./bin/httpget http://10.x.xx.xx/axis-cgi/com/ptz.cgi?camera=1&center=200,200
    [1] 2324
    (...)/httpget2$ 302 Found
    Quelqu'un a t il deja reussit a controler une camera axis avec ce genre de requete ?

    Merci de votre aide !

    P.S : le passage important du blog cité plus haut :

    J’ai donc aujourd’hui cherché à incorporer de nouvelles fonctions, à savoir les continuousmove, et les preset position.

    Pour se faire, je savais que les commandes devaient être de la forme suivante;

    http://cam01/axis-cgi/com/ptz.cgi?gotoserverpresetno=1 et

    http://cam01/axis-cgi/com/ptz.cgi?co...ntiltmove=1,-1.

    Le problème que j’ai rencontré aujourd’hui, c’est qu’un fois codé et incorporé dans l’applet, rien ne se passait. En effet, les commandes étaient bien formée comme ci-dessus, visiblement l’envoie de requête se faisait correctement, bref tout allait bien, mais rien ne changeait à l’écran.

    J’ai donc cherché à comprendre pourquoi. La première étape fut de vérifier que la commande(copier coller depuis la sortie d’éclipse) fonctionnait dans un web browser. En effet, la commande s’effectuait sans problème. J’ai donc continué à coder tout en réfléchissant à ce problème. Pendant ce temps j’ai donc inclus les nouvelles fonctionnalités de continuousmove(qui rencontrait le même problème), géré un problème de perte de focus entraînant une perte de contrôle possible au clavier, gérer les évènements de prise/perte de focus sur les textezone (lors de la prise de focus, on sélectionne tout le contenu, à la perte on update les observer), commenter les grandes parties de mon code etc…sans trouver la raison qui faisait que cela ne marchait pas.

    En réalité, ce qui m’a trompé a été le test sur le navigateur. En effet, si cette fonctionnalité marche via navigateur, la commande n’est pas la même lorsqu’on la lance depuis une applet java. En effet il faut, comme pour les autres fonctionnalités, inclure le morceau de code camera=1 devant les arguments.

    Les commandes devenaient alors:

    http://cam01/axis-cgi/com/ptz.cgi?came [...] verpresetno=1 et

    http://cam01/axis-cgi/com/ptz.cgi?ca...ntiltmove=1,-1

    Une fois ceci fait, les commandes passent par l’applet. On peut donc maintenant contrôler directement des mouvements continues et pré-enregistré.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par Plus_plus Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./bin/httpget http://10.x.xx.xx/axis-cgi/com/ptz.cgi?center=200,200
    rien à voir avec le C++ mais bon... as tu essayé de lancer avec ton adresse entre guillement ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci, cela aurrait pu etre une piste en effet. Mais ça ne fonctionne pas mieu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (...)$ ./bin/httpget "http://10.xx.xx.xx/axis-cgi/com/ptz.cgi?camera=1&center=10,10"
    302 Found
    J'ai entre temps essayé d'exécuter la requete avec plusieurs user agent correspondant a des navigateurs qui execute bien la requete (firefox et IE), mais ça ne fonctionne toujours pas. Voici la requete que j'envoie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GET /axis-cgi/com/ptz.cgi?camera=1&center=10,10 HTTP/1.1
    Host: 10.xx.xx.xx
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9b5) Gecko/2008041514 Firefox/3.0b5
    Mais la reponse du serveur est toujours vide et la camera ne bouge pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    302 Found
    No message received

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Re bonjour !
    Je viens de trouver la solution sur un autre forum, je la donne pour ceux qui seraient comme moi dans le pétrain

    En fait il manquait juste le cookie ! J'ai installer un add-on firefox "live header" pour verifier la requete envoyée a la camera. La voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    GET /axis-cgi/com/ptz.cgi?camera=1&center=10,10 HTTP/1.1
    Host: 10.xx.xx.xx
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: fr,en-us;q=0.7,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Cookie: ptz_ctl_id=41755
    La seule chose importante dans cette requete est le cookie. Il faut donc le reccuperer avant de pouvoir executer un mouvement avec la camera !

    Merci !

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/10/2011, 19h08
  2. Réponses: 2
    Dernier message: 23/08/2010, 14h51
  3. Réponses: 2
    Dernier message: 24/01/2007, 13h03
  4. [débutant] controler une balise <object> via ASP
    Par Mucsy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/01/2007, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo