Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

Aide pour la programmation de port serie?

jacklina, le dimanche 14 décembre 2003 à 23:19:11 
 Signaler ce message aux modérateurs

Salut je cherche un programe pour faire une transmission d'un caractere d'un pc a un autre a travers le port serie. les deux Pc sont lies avec un cable j'ai fais des essais mais je n'ai pas reussi don j'ai urgement besoin de votre aide
/*----------------------------------------------------------­--------------*/
/* Fonction d’initialisation d’un port RS232 */
/* */
/* Paramètres */
/* char *Port : "COM1" pour Port1, "COM2" pour port2 */
/* char *Parite : "Paire", "Impaire", "Aucune" */
/* char *Vitesse : la vitesse en bauds */
/* char *Data : le nombre de bit de donnée */
/* char *StopBit : Le nombre de stop Bit */
/* */
/* Retour : un entier égal à 0 si erreur. */
/*------------------------------------------------------------------------*/
int InitCOM(char *Port,char *Parite,char *Vitesse,char *Data,char *StopBit)
{
DCB dcb; // déclarer une variable contenant la configuration du port
HANDLE hCom; // déclarer un handle
DWORD dwError; // n° de l’erreur
BOOL fSuccess; // tout c’est bien passé
/*--------------------------------------------------------*/
/* Ouverture du port de Com */
/*--------------------------------------------------------*/
hCom = CreateFile(
Port, // Choix du port « COMx »
GENERIC_READ | GENERIC_WRITE, // accès pour lire et écrire sur le port
0, // accès exclusif au port de COM
NULL, // sécurité par défaut
OPEN_EXISTING, //Doit être à cette valeur car se n’est pas un fichier
0,
NULL // mode synchrone
);
/*-----------------------------------------------------------*/
/* Vérifier si handle ouvert correctement */
/*-----------------------------------------------------------*/
if (hCom == INVALID_HANDLE_VALUE)
{
dwError = GetLastError();
/* Fichier non créer Gérer l'erreur */
}
/*-----------------------------------------------------------*/
/* Lecture Configuration initiale */
/*-----------------------------------------------------------*/
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess)
{
/* Gérer l'erreur*/
}
/*-------------------------------------------------------------------*/
/* Configuration du port */
/*-------------------------------------------------------------------*/
/* Gestion de la vitesse */
dcb.BaudRate = StrToInt(Vitesse);
/* Gestion du nombre de bits */
dcb.ByteSize = StrToInt(Data);
/* Gestion de la parité */
if (strcmp(Parite,"Aucune")==0)
dcb.Parity = NOPARITY;
if (strcmp(Parite,"Paire")==0)
dcb.Parity = EVENPARITY;
if (strcmp(Parite,"Impaire")==0)
dcb.Parity = ODDPARITY;
/* Gestion du Stop Bit */
if (strcmp(StopBit,"1")==0)
dcb.StopBits = ONESTOPBIT;
if (strcmp(StopBit,"1.5")==0)
dcb.StopBits = ONE5STOPBITS;
if (strcmp(StopBit,"2")==0)
dcb.StopBits = TWOSTOPBITS;
dcb.DCBlength;
dcb.BaudRate;
dcb.fBinary=1;
dcb.fParity=0;
dcb.fOutxCtsFlow=0;
dcb.fOutxDsrFlow=0;
dcb.fDtrControl=0;
dcb.fDsrSensitivity=0;
dcb.fTXContinueOnXoff=0;
dcb.fRtsControl=0;
/*-----------------------------------------------*/
/* Configurer le port */
/*-----------------------------------------------*/
fSuccess = SetCommState(hCom, &dcb);
if (!fSuccess)
{
/* Gérer l'erreur*/
}
/*------------------------------------------*/
/* fermer le port de com */
/*------------------------------------------*/
CloseHandle(hCom);
return(fSuccess);
}

Ecriture sur un port série : Exemple de fonction d’envoie de donnée

/*-----------------------------------------------------------------------------*/
/* Envoyer une chaine de caractére sur la RS232 */
/* */
/* Paramètres : */
/* char *Chaine La chaine à Envoyer */
/* char *Port, le port de COM : "COM1" ou "COM2" */
/* char *EolChar, le caractère fin de ligne */
/* */
/* Retour : 0 si erreur */
/*-----------------------------------------------------------------------------*/
int EnvoiChaineRS232(char *Chaine,char *Port,char *EolChar)
{
HANDLE hCom;
DWORD dwError;
BOOL fSuccess;
DWORD dwEvtMask;
int i;
int NbOctet;
char *Message;
unsigned long nBytesWrite;
Message = new char[200];
/*-----------------------------------------------*/
/* Ouverture du port de communiucation */
/*-----------------------------------------------*/
hCom = CreateFile(Port,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL
);
/*--------------------------------------------------*/
/* Envoi de la chaine + Eol caractére */
/*--------------------------------------------------*/
if(strcmp(EolChar,"CR")==0)
sprintf(Message,"%s%c",Chaine,0x0D);
if(strcmp(EolChar,"LF")==0)
sprintf(Message,"%s%c",Chaine,0x0A);
if(strcmp(EolChar,"LF/CR")==0)
sprintf(Message,"%s%c%c",Chaine,0x0A,0x0D);
if(strcmp(EolChar,"CR/LF")==0)
sprintf(Message,"%s%c%c",Chaine,0x0D,0x0A);
// compter le nombre d’octet à envoyer
NbOctet = StrLen(Message);
// écrire dans le fichier
WriteFile(hCom,Message,NbOctet,&nBytesWrite,NULL);
// Fermer le handle de com
CloseHandle(hCom);
// Libération mémoire
delete[] Message;
return(fSuccess);
}


Lecture sur un port série : Exemple de fonction de réception de données

/*------------------------------------------------------------------------------*/
/* Recevoir une chaîne de caractère sur la RS232 */
/* */
/* Paramètres : */
/* char *ChaineRecue , buffer de réception */
/* char *Port, le port de COM : "COM1" ou "COM2" */
/*------------------------------------------------------------------------------*/
int RecevoirRS232(char *Chaine Recue,char *Port)
{
DCB dcb;
HANDLE hCom;
DWORD dwError;
BOOL fSuccess;
BOOL bResult;
DWORD dwEvtMask;
COMMTIMEOUTS tTimeout;
unsigned long nBytesRead;
char *inBuffer;
int TimeoutRead;
int i;
int NbOctet;
char c;
/*-------------------------------------*/
/* Initialisation des variables */
/*-------------------------------------*/
inBuffer = new char[200]; // réservation mémoire pour le buffer de récéption
sprintf(inBuffer,"%s","");
nBytesRead=0;
/*-----------------------------------------------*/
/* Ouverture du port de communication */
/*-----------------------------------------------*/
hCom = CreateFile(Port,
GENERIC_READ | GENERIC_WRITE,

0,
NULL,
OPEN_EXISTING,
0,
NULL
);
/*----------------------------------*/
/* Définition des timeouts */
/*----------------------------------*/
TimeoutRead = 500; // timeout de 500ms
tTimeout.ReadIntervalTimeout = MAXWORD;
tTimeout.ReadTotalTimeoutMultiplier = 0;
tTimeout.ReadTotalTimeoutConstant = TimeoutRead; // pas de time out = 0
tTimeout.WriteTotalTimeoutMultiplier = 0;
tTimeout.WriteTotalTimeoutConstant = 0;
// configurer le timeout
SetCommTimeouts(hCom,&tTimeout);
/*-------------------------------------------------------------*/
/* boucle d'attente de lecture des octets */
/* Sortie de la boucle par timeout par exemple, si */
/* l’on suppose le format de la trame reçu n’est */
/* variable. */
/*-------------------------------------------------------------*/
bResult = ReadFile(hCom,inBuffer,199,&nBytesRead,NULL);
if (nBytesRead!=0) // Il existe des octets lus
{
// Mettre en forme la trame : recherche de CR
}
else
sprintf(inBuffer,, »%s », “Pas de donnée reçue”) ;
sprintf(ChaineRecue,"%s",inBuffer); // Retourner la chaîne reçue
// fermer le port
CloseHandle(hCom);
// Libérer la mémoire
delete[] inBuffer;
return(fSuccess);
}



void main(void)
{
int Erreur ;
char *TrameRecue ;
TrameRecue = new char[200] ;
Erreur=InitCOM(« COM1 », « Aucune », « 9600 », « 8 », « 1 ») ;
if (Erreur !=0) // périphérique initialisé correctement
{
// envoi de la commande d’identification
EnvoiChaineRS232(« ID ? », « COM1 », « CR ») ;
// recevoir la réponse
RecevoirRS232(TrameRecue, « COM1 ») ;
// Traiter la trame reçue
}
else
{
// afficher une erreur
}
// Libération mémoire
delete[] TrameRecue ;
}

1

Dosantos1, le mardi 6 janvier 2004 à 15:57:19

Bonjour Jacklina,

Je suis a la recherche de toute documentations sur comment configurer et programmer un port serie RS 232.

S'il vous plait pourriez vous m'aider ?

Merci.

Répondre à Dosantos1

12

 tchoubaka, le lundi 30 mars 2009 à 01:28:50
  • +1

Bjr mon ami, je te conseillerai d'aller dans google et de taper <<programmer le port serie>> et tu recherche cet adresse en dessous du titre: le port serie du pc. ceci entre parenthese c'est l'adresse ( brassart.iut-amiens.fr/enseignement/fichiers/2006_TP5_Port_serie.pdf )
que Dieu te bénisse

Répondre à tchoubaka

2

jacklina, le mardi 6 janvier 2004 à 22:25:20

Bon j'ai eu un programme de communication avec RS232 qui marche a merveil vous pouvez le trouve sur ce site www.codes-sources.com et vous taper dans la recherche RS232 dans la rubrique c/c++ bon chance

Répondre à jacklina

3

ouesleti besma, le jeudi 8 janvier 2004 à 11:18:34

Salut
je cherche un programme en java pour faire une transmission d'un caractere d'un pc àune caisse enregistreuse a travers le port serie . pc et caisse sont lies avec un cable.

merci d'avance

Répondre à ouesleti besma

4

jacklina, le jeudi 8 janvier 2004 à 23:04:15

Je suis sincerement desole j'en ai un qui marche mais sur C++ si ca vous interesse je vous l'envois

Répondre à jacklina

8

Goo Madagascar, le jeudi 7 juin 2007 à 11:10:17

Je m'appelle Goo
Je voudrais recevoir la programmation de la port serie en c++ si vous le voulez
Mon email est lrakotoary@yahoo.fr
Merci

Répondre à Goo Madagascar

5

ouesleti besma, le vendredi 9 janvier 2004 à 07:42:49
  • +1

Bonjour jacklina,

la programmmation de la port serie entre pc et caisse enregistreuse sur c++ m'interresse aussi .

s'il vous plait jacklina pourriez vous m'envoiyer ce programme.

merci infiniment.

Répondre à ouesleti besma

6

rams085, le lundi 13 novembre 2006 à 14:32:37

Bonjour à tous,
Je dois créer un adaptateur port série RS232 - bus parallèle, si vous avez des infos qui pourrez m'être utiles, elles seront les bien venues.

Jackelina, pourrez-tu m'envoyer le code C++ que tu as stp ? Merci d'avance

Répondre à rams085

7

riadh, le vendredi 2 mars 2007 à 16:31:35
  • +1

Bonjour jacklina;
j'ai un projet de programmation des ports d'un ordinateur à l'aide de programme visual basic 6.0
j'espère que tu m'aide.
voilà mon email riadh_bouguerra@yahoo.fr

Répondre à riadh

9

tarik, le vendredi 25 janvier 2008 à 00:04:34
  • +1

Moi je fait des études informatique et je veu utiliser le vb pour commender un port série ou usb et je ne sais pas comment aidez svp;mrci à l'vance .

Répondre à tarik

10

balba, le jeudi 31 janvier 2008 à 21:03:38

Bonsoir,

Je suis à la recherche d'un programme executable (je ne connait pas de language de programmation) qui permet lors d'un clik de souris lire le contenu (Fichier) d'un dipositif relié par une RS 232.
OU un programme qui met l'appariel comme un disque dur par une rs 232.
D'avance je vous remerci de votre aide.

Répondre à balba

11

djimadoum, le mardi 8 avril 2008 à 10:51:06

Salut a tous
je n'arrive paas a avoir le son sur mon laptop Toshiba tecra
kelkun peut m'aider a trouver solution a mon problem?
merci d'avance.
djim

Répondre à djimadoum
Programmation port serie sous windows xp Bonjour je suis en train de faire un recepteur de telecommande en C/C++ sous windows XP. le recepteur infrarouge envoi les valeurs sur la broche DCD (data carrier detect) du port serie. J'aimerai savoir comment lire les valeurs le la broche DCD en... www.commentcamarche.net/forum/affich-596674-programmation-port-serie-sous-windows-xp
RECHERCHE test ou schéma port SERIE (DB9) Bonjour à tous....je suis à la recherche d'un programme ou d'un schéma pour tester un port série (en sortie de l'ordi). Comment savoir si ce port est bien soudé à la carte mère sans démonter, savoir si on peut faire des tests avec un petit prog ou... www.commentcamarche.net/forum/affich-447713-recherche-test-ou-schema-port-serie-db9
Programme de Pic qui lit une trame port série Bonjour, je suis un étudiant et je suis très préssé car la soutenance est dans une semaine, je veux un programme qui lit une trame du port série à travers RX et TX voici un exemplede trame ( 0D 41 31 0A) en suite , le pic doit actionner une diode led... www.commentcamarche.net/forum/affich-6879643-programme-de-pic-qui-lit-une-trame-port-serie
Programmation du port sérieETUDE ET CONCEPTION D’UN CAPTEUR DE VITESSE DE POSITION : TRAITEMENT DES DONNEES SUR DSP ET AFFICHAGE DU RESULTAT SUR UN ECRAN DE PC voila le theme de mon stage actuellement je suis au niveau de la programmation du port série en matlab et je n'arrive... www.commentcamarche.net/forum/affich-3645443-programmation-du-port-serie
[VB] Emission et réception du port sérieBonsoir, J'essaie d'établir un code qui me permettrait de recevoir des données sur le port série. Mais le débogage bloque sur SerialPort1.ReadLine() quand le port reçoit des données. Deuxièment quand je teste l'émission de données en écrivant sur le... www.commentcamarche.net/forum/affich-10891935-vb-emission-et-reception-du-port-serie
Programmation port série en C++ builderje veux communiquer avec un eurotherm(régulateur température); je programme la communication en C++ builder j'arrive à envoyer des données, mais pas à les recevoir j'utilise la fct ReadFile, qui me renvoie TRUE, mais qui ne lit pas les données, nbr... www.commentcamarche.net/forum/affich-55667-programmation-port-serie-en-c-builder
Télécharger Free Serial Port MonitorFree Serial Port Monitor est un outil qui va vous permettre d'intercepter, d'afficher et d'analyser toutes les données échangées que vous échangerez entre les applications Windows et les périphériques série. Ce programme est l’idéal pour le... www.commentcamarche.net/telecharger/telecharger-34058643-free-serial-port-monitor
Télécharger Free Virtual Serial Ports EmulatorPour les utilisateurs d'un même réseau ou même sur un seul ordinateur, parfois un appareil peut être sollicité plus d'une fois par plusieurs applications. Free Virtual Serial Ports Emulator ou VPSE est un programme destine aux ingénieurs... www.commentcamarche.net/telecharger/telecharger-34056516-free-virtual-serial-ports-emulator
Port série et port parallèleIntroduction aux ports d'entrée-sortie Les ports d'entrée-sortie sont des éléments matériels de l'ordinateur, permettant au système de communiquer avec des éléments extérieurs, c'est-à-dire d'échanger des données, d'où l'appellation d'interface... www.commentcamarche.net/contents/pc/serie.php3
Port/Ports TCP/IPL'utilité des ports De nombreux programmes TCP/IP peuvent être exécutés simultanément sur Internet (vous pouvez par exemple ouvrir plusieurs navigateurs simultanément ou bien naviguer sur des pages HTML tout en téléchargeant un fichier par FTP).... www.commentcamarche.net/contents/internet/port.php3
Le bus USB (Universal Serial Bus)Présentation du bus USB Le bus USB (Universal Serial Bus, en français Bus série universel) est, comme son nom l'indique, basé sur une architecture de type série. Il s'agit toutefois d'une interface entrée-sortie beaucoup plus rapide que les ports... www.commentcamarche.net/contents/pc/usb.php3