Problème envoi commande camera IP

Signaler
Messages postés
5
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2010
-
Messages postés
5
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2010
-
Bonjour a tous,
Je suis actuellement entrain de développer une Ihm sous windows qui permet a l'utilisateur d'envoyer des commandes de mouvements et de capture d'image.
Mais j'ai un petit problème, le fait est que mon code compile très bien sous Builder 6 mais la commande ne fonctionne pas sur la camera, je ne sais pas si cela viens de ma requete GET ou ma connexion ? Quelqu'un as une idée de mon erreur ?

voici mon code

#include <stdio.h>
#pragma hdrstop



#include "U_Connection.h"

#include <stdlib.h>
#include <string.h>


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
var=1;
int n;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::BtConnectionClick(TObject *Sender)
{
if(var==0)
{
Client->Active=false;
BtConnection->Caption="Connexion";

var=1;
}
else if(var==1){
Client->Address=(EdtAdresse->Text); // insertion de l'adresse IP saisie dans le composant socket
Client->Port=StrToInt(EdtPort->Text); // insertion du port saisie dans le composant socket

Client->Active=true;
BtConnection->Caption="Deconnexion";

var=0;
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString recept=Socket->ReceiveText();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::BtenvoiCdeClick(TObject *Sender)
{

sCommande="GET /cgi-bin/video.jpg HTTP/1.1";
sCommande+="Host: 192.168.2.5";
sCommande+="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17";
sCommande+="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
sCommande+="Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3";
sCommande+="Accept-Encoding: gzip,deflate";
sCommande+="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
sCommande+="Keep-Alive: 300";
sCommande+="Connection: keep-alive";
sCommande+="If-Modified-Since: Sat, 22 Jan 2000 21:00:26 GMT";
sCommande+="Cache-Control: max-age=0";

sCommande+="\r"; // \r veut dire que la commande est finie

strcpy(cCommande,sCommande.c_str()); // cCommande (tableau) prend la valleur de sCommande qui a été transformé en chaine AZERTY par la fonction .c_str()

send((unsigned int)Client, cCommande, strlen(cCommande), 0); //envoi de la commande


}

Merci d'avance pour vos réponses

6 réponses

Messages postés
5
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2010

oups je me suis trompé dans une partie du code

la partie sCommande n'est pas la bonne c'est plutot ceci

sCommande="GET /cgi-bin/camctrl.cgi?move=right HTTP/1.1";
sCommande+="Host: 192.168.2.5";
sCommande+="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17";
sCommande+="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
sCommande+="Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3";
sCommande+="Accept-Encoding: gzip,deflate";
sCommande+="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
sCommande+="Keep-Alive: 300";
sCommande+="Connection: keep-alive";

mais bon sa ne marche toujours pas
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
salut,

Sans voir la bête j'ai un peu de mal.

Je suppose que tu as une autre appli (constructeur) pour configurer ta caméra.

Si oui, as-tu utiliser WireShark pour comparer les trames envoyée et la réponse de la caméra ?
Messages postés
5
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2010

salut
non je n'ai pas d'autre appli pour configurer la camera, je peux juste la configurer via un navigateur web
Pour avoir le type de trame envoyé a la caméra via le navigateur web j'ai utilisé LiveHTTPheader, c'est de cela que j'ai eu l'idée d'envoyer la même trame a la caméra
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
ok, je ne connais pas LiveHTTPheader. Mais tu peux quand meme utiliser WireShark pour voir ce qu'envoie le navigateur.
Ca te permettra de comparer précisément les trames ( du navigateur et de ton appli) c'est comme ca que je debuggais quand je devais configurer un module Wifi.
je ne vois pas l'intéret (pour la caméra) d'avoir les infos du navigateur.
Messages postés
5
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2010

je teste cela je vous tiens au courant
Messages postés
5
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2010

j'ai trouvé une solution pour envoyer cette fameuse requete
En effet je passe par une composant NMHTTP de Builder c++ qui me permet d'envoyer mes requetes sans a avoir a creer de socket, il suffit juste de mettre ce code

NMHTTP->Get("COMMANDE");