FONCTION DE GESTION DU PORT SÉRIE (OUVERTURE,EMISSION,RECEPTION)

eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022 - 24 juil. 2003 à 20:18
cs_zeom Messages postés 19 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 21 avril 2010 - 5 avril 2010 à 14:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11115-fonction-de-gestion-du-port-serie-ouverture-emission-reception

cs_zeom Messages postés 19 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 21 avril 2010
5 avril 2010 à 14:19
salut est c que j'ai peut utilisé cette programme pour faire une communication entre visuel studio 2008 et un automate Omron
ramiaramila1 Messages postés 1 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 13 mai 2008
13 mai 2008 à 09:29
est ce que vous pouvez me donner des documents sur la communication entre pc et automate (protocole, programme, ...), svp j'en ait besoin pour realiser un projet pour ma soutenance de mémoire.
cs_quentennis Messages postés 2 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 août 2008
18 avril 2008 à 09:27
Salut à tous

Ce code est vraiment génial, bien commenté et facile à comprendre, c'est vraiment un plaisir !!!
J'ai eu quelques petites difficultés à corriger les différentes erreurs (minimes !!), mais maintenant, ça marche impécable ! Le problème de la réception des données qui n'intervient que lorsque l'on a déjà ouvert une autre application via le port série vient en effet des variables que tu définis au départ :

BIT_DE_STOP_1 1
BITS_DE_STOP_2 2
PAS_DE_PARITE
PARITE_PAIRE
PARITE_IMPAIRE

Il faut supprimer ces variables que tu définis, et lorsque tu appelles ta fonction pour ouvrir le port série, il faut les remplacer par :

ONESTOPBIT
TWOSTOPBITS
NOPARITY
EVENPARITY
ODDPARITY

Voilà, j'espère que ça aidera ! Et encore merci à pour cette aide précieuse !
cs_Grandnord Messages postés 6 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 10 octobre 2006
30 oct. 2007 à 23:32
Bonjour à tous,
Je désire faire fonctionner une boite d'interrupteur sous Linux. Pour cela je dois envoyer la chaine de caractères "N1" + le caractère ENTRER par le port série 1.

Est-ce que quelqun a une idée comment s'y prendre?

J'ai essayé:
g_ErrCom=EmissionCom("N1\0",sizeof("N1\0")); ????
Mais ca ne fonctionne pas... :C

Merci.
DarkIndra Messages postés 21 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 9 juillet 2007
15 juin 2007 à 09:23
Bonjour à tous, je suis en bts electronique, a la suite d'un dut informatique, et je suis en stage, je dois faire une interface lecteur de badge/base de données access. voila pour les "présentations" ^^
pour l'interface c'est fait, je test ce que je reçois avec le programme ci dessus (legerement modifier pour ne pas emettre par exemple) et donc j'envoi 2 octets (par l'intermédiaire d'un pic, et d'un max232 pour l'adaptation en tension) sur mon port série, seulement voila, par exemple je veux lui envoyer 1111.1111 1111.1111 (le point pour séparer pour la visibilité ;)
et lui il me reçoit 111.1111 0111.1111
donc pour finir, pourquoi n'accepte t'il que 7 bits et non les 8? (en effet le zéro devant la premiere série étant non significatif, il ne l'affiche pas ), j'ai beau chercher, cela vient de la fonction readfile et pourtant elle est paramétrée pour accepter 8bits.
Sinon pour les petites info, j'utilise dev-C++
Merci de votre attention et éventuellement de votre aide :)
Pilloutche Messages postés 1 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 7 avril 2007
7 avril 2007 à 17:09
Salut a tous!
Vraiment géniale cette source!
avec ces deux lignes dans le programme 'test' cité plus haut, ca fonctionne parfaitement:

unsigned int NbCarRecus;
g_ErrCom=ReceptionCom(TrameRecue,NbMaxCar,&NbCarRecus);

Merci beaucoup ;-)
cs_rexdan Messages postés 1 Date d'inscription mardi 26 septembre 2006 Statut Membre Dernière intervention 26 septembre 2006
26 sept. 2006 à 12:16
salut à tous

Je suis nouveau sur CPPFRANCE, et aussi dans la merde.... n'étant pas non plus un Dieu en C, je dois réaliser un code en C (SIMPLE!!!) sur VC++, et le programme de gplog ne fonctionne pas géniale (sans aucun doute du à mon ignorance du C); surtout au niveau de la réception des données. En fait je dois envoyer des données en Hexa du genre 23 01 24 0D... et ensuite recevoir des données d'une carte controleur.
Voici mon main, où je tente de débugger/comprendre un peu... mais je patauge.... Y aurait il une bonne ame....

Merci

Rex

void main (void)
{
char buffer[256];
unsigned int NbMaxCar=100;
unsigned int *NbCarRecus;

printf("enter the command: \n");
scanf("%s",&buffer);
//Exemple de configuration du port serie :
g_ErrCom=OuvreCom(PORT1,V19200,BITS_8,PAS_DE_PARITE,BIT_DE_STOP_1);

//Exemple d'emission
g_ErrCom=EmissionCom(buffer,sizeof(buffer) );
printf("the buffer sent is: %s \n",buffer);

// reception
g_ErrCom=ReceptionCom(buffer,sizeof(buffer),&NbCarRecus);

}
Famidoo Messages postés 13 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juillet 2006
7 juin 2006 à 10:26
et pour l'USB, c'est similaire ?
Geaby Messages postés 1 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 17 mai 2006
17 mai 2006 à 12:44
Bonjour,
je suis en stage et debutant en programmation. Dans le cadre de mon projet je dois controler chaque broche de mon port serie pour asservir des servo-moteurs. Je souhaiterai donc savoir comment ce programme utilise physiquement les broches des ports. Ou si quelqu'un connait un programme controllant individuellement chaque broche du port, je suis preneur :)
Merci
A plus
seedtrunks Messages postés 4 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 9 juin 2006
12 avril 2006 à 15:21
Bonjour,
Je suis en stage et débutant en programmation et je cherche un programme qui fonctionne avec dev C++ sous XP qui permettrai d'activer les ports série.Si quelqu'un a ce programme je suis preneur.
Merci d'avance
Utilisateur anonyme
11 avril 2006 à 14:10
salut,
depuis ce matin je cherche des sources pour voir un peu comment utiliser le port série, et ben ça fait plaisir qu'il y ait des gens qui ne programment pas comme des "porcs". Enfin un code qu'on comprend quand on le regarde ! gg ;)
Pas encore testé, mais il a le mérite d'être clair :)
a+
cs_proj Messages postés 5 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 31 mars 2006
27 mars 2006 à 16:38
voilà j'ai testé le prog de GPLOG et mon compilateur (Borland C++) ne reconnait pas la fonction OuvreCom().
Que doi-je faire?
Je travaille sous windows 2000

Merci
momo_le_dingue Messages postés 2 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 7 juin 2005
17 mai 2005 à 19:30
voila je sis debutant en programmation. je suis en bts info et pour mon stage je dois faire un petit programme pour faire tourner des petits mooteurs et je crois qui se branchent en port série. je souhaiterai de l'aide. merçi d'avance
cs_NiChaN Messages postés 27 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 29 décembre 2008
20 avril 2005 à 18:05
Moi je ne comprend pas pourquoi personne ne pense a faire des class, c beaucoup plus simple d'utilisation en finale !!
Une class GesComSerie pas exemple, et grace au methode n'importe qui peut l'utiliser a ca convenance dans son main ou bien meme en MFC GRAPHIQUE !
Voila !!

Pensez à cree des class !!
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
18 avril 2005 à 11:33
Erreur de frappe qui peux préter à confusion dans ma première phrase du post précédent (mien au lieu de mieux):

"Le code dont tu parles et dont tu fourni le lien est le mien apparemment."
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
18 avril 2005 à 11:31
Le code dont tu parles et dont tu fourni le lien est le mieux apparemment.

Celui-ci (en tout cas la version originale de messources sur ce site) fonctionne sur n'importe quelle version de Windows 32 bits (Win9x, ME, NT, 2k, XP).

Ton pb doit venir du fait que tu compile en Debug et non en Release.
Revan777 Messages postés 2 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 18 avril 2005
18 avril 2005 à 11:24
J'ai pensé aussi à une histoire de librairies supplémentaires à ajouter car l'errreur que j'obtiens en executant le programme sous Win98 c'est à la reception:
TestCOM a causé une défaillance de page dans le module MSVCRT.DLL à 0167:7800ffd0......
(Ce fichier dll comprend apparemment une bibliothèque de fonctions pour les applications Visual.)
Revan777 Messages postés 2 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 18 avril 2005
18 avril 2005 à 10:55
Salut, je suis en BTS IRIS en alternance et je dois développer justement un prog en C pour la reception de donnees sur le port COM (lecture de Code-barr à partir d'une douchette automatique).
J'ai trouvé un code qui ressemble à celui-ci et que j'ai modifié pour pouvoir stocker mes Code-barr dans un fichier pour ensuite les insérer dans une BDD sur l'intranet de l'entreprise. Mais le problème que j'ai, c'est que mon code n'est pas compatible Windows98 (sur XP, nickel). Alors voila suis en stress pour pouvoir fournir le prog à temps. SVP HELP ME.
Je laisse mon code complet avec le fichier de config (certes modeste, fo pas exagerer j'suis qu'en 1ere annee !) sur le site que je développe actuellement:
http://btsiris.network-hosting.com/COM/COM.zip

Je souhaitais savoir si le code de gplog était compatible Win98 et comment le modifier pour qu'il fasse exactement comme celui que vous trouverez sur mon site.
MERCI !
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
14 avril 2005 à 09:52
finalement ca marche... ca ne marche que les jours pair lol
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
13 avril 2005 à 16:37
salut et merci ca marche

Mais je cherche a envoyer une trame 0xAA soit '10101010' et je ne recois que 0x0A soit '00101010' (je perd le bit de poid fort de toutes mes trames) on dirait qu'il n'envois que 7 bits pourtant j'ai bien mis 8bits dans la config du port.
sais tu d'ou ca peut venir

merci
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
5 avril 2005 à 17:00
Et ces 2 lignes :

unsigned int NbCarRecus;
g_ErrCom=ReceptionCom(TrameRecue,NbMaxCar,&NbCarRecus);
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
5 avril 2005 à 16:59
et avec cette ligne :
g_ErrCom=ReceptionCom(TrameRecue,NbMaxCar,&NbCarRecus);

ca ne marche pas!
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
5 avril 2005 à 16:56
Merci pour ta source ( ca fais toujours plaisir) !!!
Mais chez moi j'ai voulu tester( le truc avec les broches ) et quand il veut faire la reception, Windows 2000 SP4 me mùets un message d'erreur et ferme l'appli ?!?!?!?!?!?!?!?!?
J'utilise dev-c++!
mon main donne ceci à present :
/*************************************************************
* MAIN
*************************************************************/
main()
{
unsigned char TrameRecue[100];
unsigned int NbMaxCar=100;
unsigned int *NbCarRecus;

//Exemple de configuration du port serie :
g_ErrCom=OuvreCom(PORT3,V9600,BITS_8,PARITE_PAIRE,BIT_DE_STOP_1);

//Exemple d'emission
g_ErrCom=EmissionCom("UneTame",sizeof("UneTame"));
system("PAUSE");
//Exemple reception.
g_ErrCom=ReceptionCom(TrameRecue,NbMaxCar,NbCarRecus);
system("PAUSE");
}
tagadaboum Messages postés 1 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 25 mars 2005
25 mars 2005 à 10:31
Merci beaucoup pour le source il m'a fait gagné du temps par contre il m'en a fait perdre aussi ....
Mais j'ai finit par trouver le problem :
Attention :
Quand tu fais SetCommState(g_hCom,&g_DCB); tu testes pas le retour et il se trouve que ça plante.
Pourquoi ?
Par ce que les constante que tu définis ne sont pas les bonnes pour :
/#define BIT_DE_STOP_1 1
#define BIT_DE_STOP_2 2
#define PAS_DE_PARITE 'N'
#define PARITE_IMPAIRE 'O'
#define PARITE_PAIRE 'E'

Il faut utiliser ces constante qui sont déjà définis dans je ne sais quel .h :
NOPARITY EVENPARITY ODDPARITY
ONESTOPBIT ONE5STOPBITS TWOSTOPBITS
et là ça marche !
blaise_laporte Messages postés 6 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 18 juillet 2005
2 mars 2005 à 16:21
Bonjour
Dabord, merci beaucoup pour cette source qui m'a évité de longues heures laborieuse (je debute en programation).
Le probleme:
Lorsque je fais un boucle contenant l'ouverture de la com, l'écriture et la fermeture (pour envoyer plusieur fois d'affillé le même message) il me dit qu'il n'a pas reussi à créer le flux des la deuxieme ocurence de la boucle, alors que la premiere fois, ça fonctionne impec. Je ne sais pas à quoi c'est dus.
Merci.
olischlo Messages postés 3 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 17:57
sbommer > C'est bien possible que ce soit cela... j'avais corrigé le problème, mais je ne me souvient plus vraiment comment...
sbommer Messages postés 2 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 11:56
pour le petit soucis avec le code,(olischlo)
il s'agit visiblement d'un probleme sur les valeurs
de Parity et StopBits.

en forcant ces valeur dans le "OuvreCom"
g_DCB.Parity=NOPARITY; //=Parity;
g_DCB.StopBits=ONESTOPBIT; // =StopBits;
le probleme se resoud.C'est donc juste un petit soucis sur les formats de ces 2 variables.

Ce code est super, merci à gplog
sbommer Messages postés 2 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 09:53
Je rencontre exactement le meme probleme que Olischlo,
Si quelqu 'un trouve la source de ce problème, je suis vraiment interessé (testé sur XP fam et XP pro)

Merci
olischlo Messages postés 3 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
2 juil. 2004 à 14:38
Il y a juste un petit souci avec ce code.

Lorsque je le lance l'appli, cela ne fonctionne que si prélablement une autre appli (ex: Hyperterminal) a déjà utilisé le PortCom. Sinon tous semble bien se passer, mais dans les fait aucun carractère n'est lu ou envoyé via le port série...

Ceci a été testé sur plusieurs PC sous Win2000.

J'ai pas vraiment réussi à trouver le pourquoi...
Utilisateur anonyme
7 avril 2004 à 20:11
Comme je debute , je voudrais te demander si tu peux me dire a quoi corresponde tes Headers STP ;

#include <windows.h> //compatibilité entre windows
#include <winbase.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

merci ca m'aiderai bcp :)
Utilisateur anonyme
7 avril 2004 à 18:43
Super ton code!!
je te remercis, car ca fait un petit moment que j'en cherché un, qui
tienne la route en C, car je boss en VB, mais j'essais de passé en C,
ton code va bcq m'aider merci encore ;)
jackyjacky Messages postés 23 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 18 janvier 2005
11 févr. 2004 à 11:38
Salut
j'aimerais savoir si on pourrais adapter le code pour transmettre un fichier complet par exemple (de taille résonnable)
Merci
Looping.net Messages postés 2 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 23 janvier 2004
23 janv. 2004 à 13:19
Merci à ymca2003 pour sa petite correction, ca marche pile poil :) En tout cas sous 2000.
Je n'ai toujours pas réussit à faire fonctionner ce code sous Windows 98.

J'ai par contre trouvé entre temps ce site :
http://www.wince.org.uk/vc/intermediate/serialrw.htm
les deux fichiers zip contiennent les sources qui fonctionnent après une ou deux petites modif (faut rajouter une ligne blanche à la fin de chaque fichier .h et .cpp et il faut rajouter #include <stdio.h> )

Et ce code fonctionne sous Windows 98. L'inconvénient c'est qu'il travaille bit par bit au lieu de travailler par chaîne de caractère comme le programme de gplog.
Je vais travailler dessus pour essayer de comprendre, et dès que j'ai plus d'infos, je reposte un message.
Si quelqu'un trouve la solution avant moi ce serait cool de poster

Looping
cs_lioyoyo Messages postés 1 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 15:08
Bonjour,
Ce code marche bien mais j'ai un souci pour declencher l'envoi des données de ma carte d'acquisition (srs245). J'ai lu que l'envoi se déclenchait quand le signal DTR (terminal de donnée pret) sur la pin 20 est validé. La fonction de réception prend-t-elle en compte ce genre de considération? Dans le cas contraire, comment forcer la validation de la pin 20?

Merci
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
12 janv. 2004 à 12:48
dans la correction que j'avaid donné, il y a une erreur sur le dernier paramètre
unsigned char TrameReçue[100];
unsigned int NbMaxCar=100;
unsigned int NbCarReçus;
g_ErrCom=ReceptionCom(TrameReçue,NbMaxCar,&NbCarReçus);
pierrejarod Messages postés 2 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 12 janvier 2004
12 janv. 2004 à 10:01
Rebonjour,
Petit rajout :
Le programme reste apparemment bloqué sur : " *pCountRead=NCarLus; ".

Merci
pierrejarod Messages postés 2 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 12 janvier 2004
12 janv. 2004 à 09:47
Bonjour,
Je programme sur Borland 5.0 et j'ai un problème avec ce programme (mais pas le même que tout le monde semble avoir).
Le voici : "L'exécutable a provoqué une classe d'exception EAccessViolation avec le message 'Violation d'accès à l'adresse 0040130B. Ecriture de l'adresse 00000000' ".
Est-ce que quelqu'un aurait rencontré la même erreur ou/et aurait une idée?
Merci d'avance
cs_vavincavent Messages postés 1 Date d'inscription dimanche 21 décembre 2003 Statut Membre Dernière intervention 21 décembre 2003
21 déc. 2003 à 23:59
Bonjour,
je suis totalement débutant en programmation C.
Votre code m'intéresse pour extraire des données d'un ordinateur de plongée.
j'ai installé dev-c++ et je souhaiterai écrire la lecture du port com1 dans un fichier. Comment faire?
Il faudrait que le programme se mette en attente d'un flux de données puis qu'il enregistre les données reçues.
merci de votre aide.
Vincent
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
14 déc. 2003 à 16:34
Pour réception : pb dans la solution de gplog :

void * TrameReçue;
unsigned int NbMaxCar=100;
unsigned int* NbCarReçus;
g_ErrCom=ReceptionCom(TrameReçue,NbMaxCar,NbCarReçus);

les données recus vont être écrite là où pointe TrameReçue c'est à dire à peu près n'importe où en mémoire (pointeur non initialisé)
=> à remplacer par :
unsigned char TrameReçue[100];
unsigned int NbMaxCar=100;
unsigned int* NbCarReçus;
g_ErrCom=ReceptionCom(TrameReçue,NbMaxCar,NbCarReçus);
ender_ Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 11 décembre 2003
11 déc. 2003 à 09:44
En ce qui me concenre , je développe sous Windows 2000 Pro,
sous l'environnement Visual C++ 7 de la plate forme .NET 2003..le programme marche bien, il bug seulement lors de la lecture (ReadFile(...) )
j'utilise une boucle locale : seulement les pins 2 et 3 du port série sont reliées...l'erreur provient de là?
merci d'avance.
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
10 déc. 2003 à 10:04
Je n'ai pas la réponse, mais je vous indique que ça ne fonctionne pas sous windows 95 (et oui, ça existe encore!!!) compilé avec Borland 5.02.
par contrre, ça fonctionne sous windows NT4
Bon courage
ender_ Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 11 décembre 2003
9 déc. 2003 à 10:46
En fait l'erreur est ERROR_NOACCESS
qq'un peut m'aider pour remedier ce problème?
ender_ Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 11 décembre 2003
9 déc. 2003 à 09:25
je pense que le problème provient du fait que le ponteur de fichier "dépasse" le EOF courant lors de la lecture du fichier...
Seulement comment remédier ce problème..qqu'un a une suggestion?
ender_ Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 11 décembre 2003
8 déc. 2003 à 18:14
j'ai le même problème que Looping.net. Si vous avez une solution, prière de l'expliquer sur le forum..
Looping.net Messages postés 2 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 23 janvier 2004
19 nov. 2003 à 12:17
Hello,

vraiment chouette ce morceau de code, après 3 jours de recherche sur le net, c'est le plus simple et un des rares que j'ai réussit à compiler !

L'ouverture du port et l'écriture se passent sans problèmes, par contre pour la lecture j'ai un petit soucis : il m'indique l'erreur suivante :
"L'instruction à "0x0040160a" emploie l'adresse mémoire "0x78001e6e". La mémoire ne peut pas être "written"."

J'utilise Windows 2000 SP2 et comme compilateur, j'utilise Dev C++ 4.

En placant quelques printf dans la fonction "ReceptionCom",
Je vois qu'il passe la fonction ClearCommError, et que la variable nCarALire n'est pas nulle. Mais il plante ensuite, et m'affiche l'erreur.

Est-ce que quelqu'un a eut ce problème et sait comment le résoudre ?
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
24 sept. 2003 à 09:54
à mon avis, avec les readfile() et writefile(), tu ne pourras pas l'utiliser sous linux, car ce sont des fonctions de windows API...
shkyo Messages postés 1 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 23 septembre 2003
23 sept. 2003 à 17:51
Salut, une simple petite question, tu mets que c'est en C ANSI, mais je vois dans les includes windows, winbase et conio, donc cela peut-il marcher sous Linux ???
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
17 sept. 2003 à 15:47
Merci, ça marche impec.
gplog Messages postés 82 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juillet 2009 1
16 sept. 2003 à 09:27
Salut loic,
voila pour toi un exemple de réception :
// Déclaration des Variables :
// Pointeur sur les caractères reçus
void * TrameReçue;
// Nombre maxi de caractère a lire (ici 100)
unsigned int NbMaxCar=100;
// Pointeur sur le nombre de caractère recus
unsigned int* NbCarReçus;

//Exemple de réception
g_ErrCom=ReceptionCom(TrameReçue,NbMaxCar,NbCarReçus);

Je sais pas trop si ça fonctionne parceque j'ai rien pour tester.
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
12 sept. 2003 à 17:44
Salut,
chouette ce driver pour pour com. Pour info, il marche aussi sous win95...
T'aurrais pas une ligne de code avec un exemple de réception Stp ?
merci d'avance...

remarque amicale à Matt48 : le forum, c'est fais pour partager des connaissances, donc l'utilisations d'email, c'est pas super pour ceux qui aurons besoin des mêmes infos que toi...
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
12 sept. 2003 à 17:43
Salut,
chouette ce driver pour pour com. Pour info, il marche aussi sous win95...
T'aurrais pas une ligne de code avec un exemple de réception Stp ?
merci d'avance...

remarque amicale à Matt48 : le forum, c'est fais pour partager des connaissances, donc l'utilisations d'email, c'est pas super pour ceux qui aurons besoin des mêmes infos que toi...
matt48 Messages postés 2 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 28 août 2003
28 août 2003 à 12:41
Ok, merci.
C'est ce que je voulais tester.
Mais je vois que d'autres ouvrent le port ce cette façon :
CreateFile("COM1:",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
Alors que toi, tu utilises : (FILE_FLAG_WRITE_THROUGH | FILE_FLAG_NO_BUFFERING) à la place de FILE_ATTRIBUTE_NORMAL.
Quelles sont les différences ?
tu connais la fonction SetupComm, si oui, comment l'utiliser, stp.
Merci.
A+
Mon E-mail : matt48@wanadoo.fr
gplog Messages postés 82 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juillet 2009 1
28 août 2003 à 09:41
Arff, alors là, matt je peut pas faire grand chose pour toi, j'ai toujours dévelloppé sur Win2000.
Et donc, j'ai jamais eu de problèmes.
Pour voir si des infos passent sur ton port série, tu peut utiliser un bouchon (tu relie les broches numéro 2 et 3 de ton port série). Avec le bouchon, tout ce que tu envoi revient vers ton PC donc, tu peut vérifier ce que tu envoi en faisant un réception sur ton port.
matt48 Messages postés 2 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 28 août 2003
27 août 2003 à 18:39
Bonjour,
Je trouve ce code super.
Ca fonctionne très bien sous mon windows 2000, mais ça ne marche pas du tout sous win98. Comme si rien ne passait sur le port. Tu aurais une idée. J'ai testé mon executable sur 3 PCs avec win98.
Merci, d'avance,
Matthieu
gplog Messages postés 82 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juillet 2009 1
25 juil. 2003 à 14:17
C'est normal si y s'arrete tout de suite. Y'as presque rien dans le main(un exemple de main). C'est juste un outil pour utiliser le port série, à toi de l'utiliser selon ton application.
Ici le main envoie seulement la chaine "UneTrame" vers le port série.-->donc c'est tres court.
eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022
25 juil. 2003 à 13:09
okok, ton prog je n'arrive pas le lancer sous dev c+, je le compile et le lance, ms il s'arréte de suite ... tu compiles avec koi ? tu pe mettre un exe plz ? !

++
gplog Messages postés 82 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juillet 2009 1
25 juil. 2003 à 08:54
Je suis en formation post bts en informatique industrielle et automatisation.
eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022
24 juil. 2003 à 20:18
Salut, tu es en quelle sections ?
Rejoignez-nous