01net    Web


Actuellement en ligne : 687 Utilisateurs dont 18 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > C/C++
> port com
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
lemens
  
   
      ?   @     Posté le 17/02/2004 16:09:13  
Voter pour ce message
voila je susi nouveau sur ce forum dsl si je pose des questions con . voila je possede un fichier qui permet d'envoyer des octets sur le port com1 qui fonctionne tres bien sur linux je voudrait le faire marcher sur xp je possede dev c++ en version d'essai



Sur linux je me sert de la bibliotheque com.h

[/cpp]

#define GET_ETAT 0

#define GET_BAUD 1

#define SET_BAUD 2

#define GET_FORMAT 3

#define SET_TIMEOUT 4

#define SET_IRQ 5

#define PAS_IRQ 6



#define BITS7 0x02

#define BITS8 0x03

#define STOP1 0x00

#define STOP2 0x04

#define PASPAR 0x00

#define PAIR 0x18

#define IMPAIR 0x08

#define EMIS 0x00

#define ARRET 0x40

#define AC_TR 0x00

#define AC_DIV 0x80



#define TVIDE 0x20

#define RPLEIN 0x01





j'ai donc inclu cette bibliotheque



voici mon fichier source



[cpp]#include <iostream.h>

#include <stdlib.h>

#include <fcntl.h>

#include "com.h"









int main()

{

FILE*f;

char test;

char a=0x52;

char b;

[cpp]



test=open ("/dev/com1", O_RDWR);

if (test ==-1) {printf(" erreur d'ouverture du port com\n");

while(1)

{

write ( f,a,1);

read (f,b,1);

printf ("%c\n",b);

}

system("PAUSE");

return 0;

}[/cpp]





voici les erreurs du compilateur

[/cpp]

c:\docume~1\sylvain\mesdoc~1\test.cpp: In function `int main()':

c:\docume~1\sylvain\mesdoc~1\test.cpp:21: passing `FILE *' to argument 1 of `write(int, const void *, unsigned int)' lacks a cast

c:\docume~1\sylvain\mesdoc~1\test.cpp:21: passing `char' to argument 2 of `write(int, const void *, unsigned int)' lacks a cast

c:\docume~1\sylvain\mesdoc~1\test.cpp:22: passing `FILE *' to argument 1 of `read(int, void *, unsigned int)' lacks a cast

c:\docume~1\sylvain\mesdoc~1\test.cpp:22: passing `char' to argument 2 of `read(int, void *, unsigned int)' lacks a cast

c:\docume~1\sylvain\mesdoc~1\test.cpp:28: parse error at end of input

[cpp]

ya t'il quelque chose que j'ai oublier de faire merci de votre aide
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 17/02/2004 16:31:40  
Voter pour ce message
heu...tu compile en c ou en c++?

paske "iostream" pis "printf" pis encore des FILE * c un peu bordelique tout ca...

D'ailleurs tel quel c impossible que ca compile sur linux.

en c89 ca te dit que ca connait pas iostream, en c++ ca te dit que ca connait pas write.

Et pis read et write ne prennent pas FILE * en paramètre, mais un fd (file descriptor), c pas la meme chose, bien que ca soit tout les deux des int et que ca le signale pas a la compilation.

tape "man fread" (puis pareil avec fopen et fwrite) dans une console sous linux, ca devrait t'aiguiller.
lemens
  
   
      ?   @     Posté le 17/02/2004 17:02:41  
Voter pour ce message
1) oui je compile en c



j'ai compris mes erreurs



[cpp]#include <iostream.h>

#include <stdlib.h>

#include <fcntl.h>

#include "com.h"









int main()

{



int test;

char a=0x31;

char b;





test=open ("/dev/com1", O_RDWR);

if (test ==-1) {printf(" erreur d'ouverture du port com\n");}



write (test,&a,1);

read (test,&b,1);

printf ("%c\n",b);





system("PAUSE");



}



[/cpp] mnt ca compile bien mais le test d'ouverture du port com est negatif j'en revien au premier probleme ya t'il une bibliotheque speciale pou le port com ou bien

test=open ("/dev/com1", O_RDWR);

n'est pa le bon emplacement ?
lemens
  
   
      ?   @     Posté le 17/02/2004 17:20:40  
Voter pour ce message
je repete que je suis sous dev c++ sous xp
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 17/02/2004 17:41:10  
Voter pour ce message
ca "/dev/com1" , ca ca marchera jamais sous windows.

lemens
  
   
      ?   @     Posté le 17/02/2004 17:48:43  
Voter pour ce message
ba c bien ce qui me semblait par quoi faut ke je le remplace ?
Nico5779
  ex-deus
  :-)
      ?   ^   @     Posté le 17/02/2004 18:08:31  
Voter pour ce message
ben je c pas trop, y as une grande différence entre en windows et linux a ce niveau, c que sous linux, tout les périphériques sont gèrer comme des simple fichiers, sous windows c sans doute différent, y doit y avoir une méthode propre pour utiliser ce type de phérif.
<     1       >

01net > Forum de 01net > Programmation et développement > C/C++
> port com

Aller à :

Page générée en : 0.21s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Suite de sécurité
Une suite de haute technologie facile à prendre en main et efficace contre toutes les menaces.
Jeux
Nouveauté : Aidez William à récolter les feuilles mortes pour les greffer sur les poiriers, les cerisiers... !