
|
|
Auteur
|
Message
|
1
|
|
|
|
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
|
|
ex-deus
|
|
|
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.
|
|
|
|
|
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 ?
|
|
|
|
|
|
je repete que je suis sous dev c++ sous xp
|
|
ex-deus
|
|
|
ca "/dev/com1" , ca ca marchera jamais sous windows.
|
|
|
|
|
|
ba c bien ce qui me semblait par quoi faut ke je le remplace ?
|
|
ex-deus
|
|
|
|
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
|
|

|

|