[C++] fonctions calcule odometrie

Résolu
hades06 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
 Dante -
Bonjour a tous ami informaticiens :),

Voila mon prbleme, je suis en bts informatique et reseaux et la je suis en plein projet de 2ieme année. Je m'occupe de l'odometrie d'un wifibot. Mon programme est normalement bon mais c'est dans ma librairie de fonction que ca bug et je sais pas du tout quoi changer.
Je vous mets ma librairie et les erreurs generer par le compilateur.
Je suis sur Ubunto 6.10

D'avance merci :)

#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
#include <string.h>
#include <pthread.h>
#include <time.h>

#define TCPBUF_SIZE 128
#define TBUF_RECV 7
#define TBUF_SEND 2

class wbodo {

public:

wbodo();

// Attributs de la classe

/***************** Fonction pour se connecter avec le serveur "sc12" *******************/

// Cette fonction place l'adresse IP et le numero de port
int setaddress(char *servername, int serverport);
// Cette fonction active la connection
int connexion();
// Cette fonction coupe la connection
void stop();


/* ***************** Methode pour controler le robot *************************** */

// VITESSE

// Cette fonction donne la vitesse linéaire et angulaire du robot en mm/s and crad/s
int setv(int v, int w);
// Cette fonction retourne la vitesse linéaire et angulaire du robot en mm/s and crad/s

int getv(float *v, float *w); // int getv(int *v, int *w) a la base

// ODOMETRIE

// Cette fonction reinitialise les valeur de l'odometrie a 0
int reset();
// Cette fonction donne les valeurs de l'odometrie en mm and crad
int setpos(int xm, int ym, int am);
// Cette fonction retourne les valeurs de l'odometrie en mm and crad

int getpos(float *xm, float *ym, float *am); //int getpos(int *xm, int *ym, int *am) a la base
// int getpos(float *xm, float *ym, float *am);
// Cette fonction active l'odometrie dans le robot. "Arrete par defaut"
int startodo();
// Cette fonction arrete l'odometrie dans le robot. "Arrete par defaut"
int stopodo();

// SONDES

// Cette fonction renvoie les valeurs des encodeurs a chaque periode de 40 ms
// 1:LEFT-FRONT 2:LEFT-BACK 3:RIGHT-BACK 4:RIGHT-FRONT
int getenc(int *enc1, int *enc2, int *enc3, int *enc4);
// Cette fonction rertourne le niveau de la batterie sur une echelle de 0-255
int getbat(int *bat);

/* Cette fonction retourne la valeur des sondes infra-rouge
int getirn(int *ir1,int *ir2);

int updatetics(void); */

private:
/*
int sock;
struct sockaddr_in server;
struct hostent *hp;
char buffer[TCPBUF_SIZE];

// Fonctions auxiliaire
double lin(int ir);
char * itoa(int n, char *buff, int radix);
void processLine(char *line, char separator, char **arg, int len);
*/
};
// void updatePos(long int *x,long int *y,int *a,int tl,int tr);

void updatePos(void);
void * ThreadPeriodico(void *arg);
void * ThreadVelocidad(void *arg);

#end#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
#include <string.h>
#include <pthread.h>
#include <time.h>

#define TCPBUF_SIZE 128
#define TBUF_RECV 7
#define TBUF_SEND 2

class wbodo {

public:

wbodo();

// Attributs de la classe

/***************** Fonction pour se connecter avec le serveur "sc12" *******************/

// Cette fonction place l'adresse IP et le numero de port
int setaddress(char *servername, int serverport);
// Cette fonction active la connection
int connexion();
// Cette fonction coupe la connection
void stop();


/* ***************** Methode pour controler le robot *************************** */

// VITESSE

// Cette fonction donne la vitesse linéaire et angulaire du robot en mm/s and crad/s
int setv(int v, int w);
// Cette fonction retourne la vitesse linéaire et angulaire du robot en mm/s and crad/s

int getv(float *v, float *w); // int getv(int *v, int *w) a la base

// ODOMETRIE

// Cette fonction reinitialise les valeur de l'odometrie a 0
int reset();
// Cette fonction donne les valeurs de l'odometrie en mm and crad
int setpos(int xm, int ym, int am);
// Cette fonction retourne les valeurs de l'odometrie en mm and crad

int getpos(float *xm, float *ym, float *am); //int getpos(int *xm, int *ym, int *am) a la base
// int getpos(float *xm, float *ym, float *am);
// Cette fonction active l'odometrie dans le robot. "Arrete par defaut"
int startodo();
// Cette fonction arrete l'odometrie dans le robot. "Arrete par defaut"
int stopodo();

// SONDES

// Cette fonction renvoie les valeurs des encodeurs a chaque periode de 40 ms
// 1:LEFT-FRONT 2:LEFT-BACK 3:RIGHT-BACK 4:RIGHT-FRONT
int getenc(int *enc1, int *enc2, int *enc3, int *enc4);
// Cette fonction rertourne le niveau de la batterie sur une echelle de 0-255
int getbat(int *bat);

/* Cette fonction retourne la valeur des sondes infra-rouge
int getirn(int *ir1,int *ir2);

int updatetics(void); */

private:
/*
int sock;
struct sockaddr_in server;
struct hostent *hp;
char buffer[TCPBUF_SIZE];

// Fonctions auxiliaire
double lin(int ir);
char * itoa(int n, char *buff, int radix);
void processLine(char *line, char separator, char **arg, int len);
*/
};
// void updatePos(long int *x,long int *y,int *a,int tl,int tr);

void updatePos(void);
void * ThreadPeriodico(void *arg);
void * ThreadVelocidad(void *arg);

#end#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
#include <string.h>
#include <pthread.h>
#include <time.h>

#define TCPBUF_SIZE 128
#define TBUF_RECV 7
#define TBUF_SEND 2

class wbodo {

public:

wbodo();

// Attributs de la classe

/***************** Fonction pour se connecter avec le serveur "sc12" *******************/

// Cette fonction place l'adresse IP et le numero de port
int setaddress(char *servername, int serverport);
// Cette fonction active la connection
int connexion();
// Cette fonction coupe la connection
void stop();


/* ***************** Methode pour controler le robot *************************** */

// VITESSE

// Cette fonction donne la vitesse linéaire et angulaire du robot en mm/s and crad/s
int setv(int v, int w);
// Cette fonction retourne la vitesse linéaire et angulaire du robot en mm/s and crad/s

int getv(float *v, float *w); // int getv(int *v, int *w) a la base

// ODOMETRIE

// Cette fonction reinitialise les valeur de l'odometrie a 0
int reset();
// Cette fonction donne les valeurs de l'odometrie en mm and crad
int setpos(int xm, int ym, int am);
// Cette fonction retourne les valeurs de l'odometrie en mm and crad

int getpos(float *xm, float *ym, float *am); //int getpos(int *xm, int *ym, int *am) a la base
// int getpos(float *xm, float *ym, float *am);
// Cette fonction active l'odometrie dans le robot. "Arrete par defaut"
int startodo();
// Cette fonction arrete l'odometrie dans le robot. "Arrete par defaut"
int stopodo();

// SONDES

// Cette fonction renvoie les valeurs des encodeurs a chaque periode de 40 ms
// 1:LEFT-FRONT 2:LEFT-BACK 3:RIGHT-BACK 4:RIGHT-FRONT
int getenc(int *enc1, int *enc2, int *enc3, int *enc4);
// Cette fonction rertourne le niveau de la batterie sur une echelle de 0-255
int getbat(int *bat);

/* Cette fonction retourne la valeur des sondes infra-rouge
int getirn(int *ir1,int *ir2);

int updatetics(void); */

private:
/*
int sock;
struct sockaddr_in server;
struct hostent *hp;
char buffer[TCPBUF_SIZE];

// Fonctions auxiliaire
double lin(int ir);
char * itoa(int n, char *buff, int radix);
void processLine(char *line, char separator, char **arg, int len);
*/
};
// void updatePos(long int *x,long int *y,int *a,int tl,int tr);

void updatePos(void);
void * ThreadPeriodico(void *arg);
void * ThreadVelocidad(void *arg);

#end#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
#include <string.h>
#include <pthread.h>
#include <time.h>

#define TCPBUF_SIZE 128
#define TBUF_RECV 7
#define TBUF_SEND 2

class wbodo {

public:

wbodo();

// Attributs de la classe

/***************** Fonction pour se connecter avec le serveur "sc12" *******************/

// Cette fonction place l'adresse IP et le numero de port
int setaddress(char *servername, int serverport);
// Cette fonction active la connection
int connexion();
// Cette fonction coupe la connection
void stop();


/* ***************** Methode pour controler le robot *************************** */

// VITESSE

// Cette fonction donne la vitesse linéaire et angulaire du robot en mm/s and crad/s
int setv(int v, int w);
// Cette fonction retourne la vitesse linéaire et angulaire du robot en mm/s and crad/s

int getv(float *v, float *w); // int getv(int *v, int *w) a la base

// ODOMETRIE

// Cette fonction reinitialise les valeur de l'odometrie a 0
int reset();
// Cette fonction donne les valeurs de l'odometrie en mm and crad
int setpos(int xm, int ym, int am);
// Cette fonction retourne les valeurs de l'odometrie en mm and crad

int getpos(float *xm, float *ym, float *am); //int getpos(int *xm, int *ym, int *am) a la base
// int getpos(float *xm, float *ym, float *am);
// Cette fonction active l'odometrie dans le robot. "Arrete par defaut"
int startodo();
// Cette fonction arrete l'odometrie dans le robot. "Arrete par defaut"
int stopodo();

// SONDES

// Cette fonction renvoie les valeurs des encodeurs a chaque periode de 40 ms
// 1:LEFT-FRONT 2:LEFT-BACK 3:RIGHT-BACK 4:RIGHT-FRONT
int getenc(int *enc1, int *enc2, int *enc3, int *enc4);
// Cette fonction rertourne le niveau de la batterie sur une echelle de 0-255
int getbat(int *bat);

/* Cette fonction retourne la valeur des sondes infra-rouge
int getirn(int *ir1,int *ir2);

int updatetics(void); */

private:
/*
int sock;
struct sockaddr_in server;
struct hostent *hp;
char buffer[TCPBUF_SIZE];

// Fonctions auxiliaire
double lin(int ir);
char * itoa(int n, char *buff, int radix);
void processLine(char *line, char separator, char **arg, int len);
*/
};
// void updatePos(long int *x,long int *y,int *a,int tl,int tr);

void updatePos(void);
void * ThreadPeriodico(void *arg);
void * ThreadVelocidad(void *arg);

#end


In file included from wbodo.cpp:1:
wbodo.h:96:7: warning: no newline at end of file
wbodo.h:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘wbodo’
wbodo.h:96:7: warning: no newline at end of file

26 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
oaui, un mots mal ecris, le verbe de "je bégaye" il y a plein de foi le .h dans ce que tu as mit.
0
hades06 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Hop c'est bon !!!
Il manquait des librairie pis vous aviez raison c t bien g++ enfin voila merci de l'aide ^^ !!!
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Il manquait de librairie ?!??!
je vois pas comment un manque de librairie peu géné la compilation.
0
hades06 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
bah en fait la ligne de comande donne ca
g++ wbodo.cpp -lm -lpthread
-lm pour la librairie des math et lpthread je connaissais pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dante
 
Salut, je travail également sur le projet wifibot, je suis aussi en 2nde année de BTS. J'aimerai savoir s'il est possible de se parler sur msn, pour s'aider où se donner quelques conseils.
Notre projet a nous et divier en 4 partie:
GESTION DU DEPLACEMENT DU ROBOT PAR JOYSTICK
GESTION DE LA CAMERA
GESTION DU GPS
et ma partie qui est:
GESTION AUTONOME DU ROBOT D'UN POINT A UN AUTRE

Je te remercie et j'espere que l'on pourra se donner quelques conseils.
Bonne chance.
0
hades06 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Pas d blemes, mon msn c'est vipergo2004@hotmail.com
0
Dante
 
Merci, je te rajoute des que je sorts des cours ;)
0