cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008
-
25 mars 2005 à 10:27
devinfos
Messages postés1Date d'inscriptionlundi 13 décembre 2010StatutMembreDernière intervention24 mars 2011
-
24 mars 2011 à 17:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
devinfos
Messages postés1Date d'inscriptionlundi 13 décembre 2010StatutMembreDernière intervention24 mars 2011 24 mars 2011 à 17:10
Merci beaucoup,j'ai essayé le code il marche à merveille
cs_Pico12
Messages postés1Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention12 février 2008 12 févr. 2008 à 12:38
Excellent code.
Juste 2 petites remarques :
Comme DOPEMAX l'a déjà dit, il manque des accolades dans console.cpp
Pour ceux qui voudrais utiliser des ports supérieur à 10 :
char szCOM[20];
sprintf(szCOM, "\\\\.\\COM%d", nId);
//(cf. MSDN)
C'est utile par exemple pour dialoguer avec un composant USB qui est émulé comme un port serie (microcontroleur, ...).
muuller
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention22 juin 2007 22 juin 2007 à 18:43
Au fait ce que je voudrai faire c'est piloter une grille de commutation à 4 entrées et 4 sorties à partir du port RS232 d'un pc.
J'aimerai envoyer 4 bytes qui sont respectivement : l'instruction, l'entrée choisie, la sortie choisie,et le n° de machine.Et je voudrai voir le résultat sur l'afficheur 7 segment de ma grille.
Si quelqu'un peut m'aider, je lui en serait trés reconnaissant.
Merci!!!!
muuller
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention22 juin 2007 22 juin 2007 à 18:39
salut,j'ai utilisé ton code il est vraiment top,mais j'ai 4 erreurs qui sont :
fatal error C1083: Cannot open include file: 'LiaisonRS232.h': No such file or directory
fatal error C1083: Cannot open include file: 'LiaisonRS232.h': No such file or directory
fatal error C1083: Cannot open include file: 'LiaisonRS232.h': No such file or directory
fatal error C1083: Cannot open include file: 'Application.h': No such file or directory
La primère est localisée dans Application.cpp ,la deuxième est dans Console.cpp, la troisième se trouve dans Liaison RS232.cpp et la 4éme est dans source.cpp
pouvez vous m'aider please
cs_Mr.X
Messages postés118Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 2 novembre 2007 17 juin 2007 à 03:06
Les convention aurait du être un peu mieu respecter ... Et puis les variables globale sont a proscrire.
dopemax
Messages postés1Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention30 août 2006 30 août 2006 à 12:03
Bravo pour le code
Une petite remarque, tu as oublié les {} du else dans la fonction void Console::MnuOuvrirCOM() du console.cpp
du coup il indique tout le temps l'erreur, alors qu'il n'y en a pas.
Voila
ben_34_
Messages postés3Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juin 2006 30 mars 2006 à 15:55
Salut,
D'abord félicitations pour ce code qui est très clair et qui fonctionne bien.
Cependant j'ai un petit problème:
Je souhaite m'en servir pour recevoir et envoyer des données, mais je suis limité dans les données: par exemple si j'envoi "00" en hexa, ça ne marche pas, pareil pour "20" (un espace en ASCII). C'est sûrement parceque certains caractères sont interprétés comme des fins de transmission ou je ne sais quoi, sans doute une fonctionnalité du contrôle de flux.
Je pense qu'en modifiant un paramètre dans com.h je doit pouvoir résoudre mon problème.
Aurais-tu une idée sur le paramètre à changer? Ou est-ce que ce n'est pas si simple?
En te remerciant
saoufe972
Messages postés1Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention24 mars 2006 24 mars 2006 à 12:26
salut ton programme il est trop top
j'ai un projet en cours.
ce que j'aurais voulu c'est juste le module de lecture de la liaison.
merci
KaYaStar
Messages postés4Date d'inscriptiondimanche 12 juin 2005StatutMembreDernière intervention11 juin 2006 9 mars 2006 à 13:07
Vous n'auriez pas la meme chose sous linux ???
berenger_R
Messages postés21Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 3 avril 2006 22 févr. 2006 à 17:56
Bonjour,
Il est dit que ce programme peut receptionner des trames GPS.
Est ce que quelqu'un pourrait m'explique comme il fonctionne. Parce que c'est exactement ce que je doit faire mais, je ne suis pas un spécialiste du C++.
Pour résumer, il me faut récupérer en temps réel les differentes trames GPS qui proviennent d'un recepteur pour les traiter et ranger toutes les données utiles (contenu dans ces trames) dans une structure. Ceci me permetra ensuite de faire des calculs avec ces données.
De plus si quelqu'un sait aussi comment passer des trames récupérées à un type struct.
Je vous remercie par avance
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 15 mai 2005 à 00:44
Ah ça, les MFC, connaissais pas moi ^^.
Pendary
Messages postés7Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention14 mai 2005 14 mai 2005 à 21:58
Merci bien pour ta réponse :)
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 10 mai 2005 à 08:45
il manque #include "StdAfx.h" au début du .cpp
cette include DOIT être le PREMIER de tous les fichiers sources sous VC++ a moins de choisir un projet VIDE.
Pendary
Messages postés7Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention14 mai 2005 7 mai 2005 à 14:15
merci bcp :) a demain ^^
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 7 mai 2005 à 14:12
malheureusement, tu me remercies un tantnet trop vite, parce que je vois pas ... enfin, c'est pas ce que je pensais du moins. manque de bol, je dois partir maintenant, mais si demain matin c'est tjs pas réglé ton souci, envois moi un mail avec ton code, et je regarde quand je suis debout (tard ;)):
kirua at coder-studio . com
Pendary
Messages postés7Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention14 mai 2005 7 mai 2005 à 14:10
en tout cas je te remercie poue ta rapidité et pour ton aide :)
Pendary
Messages postés7Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention14 mai 2005 7 mai 2005 à 14:09
#define RX_SIZE 4096 /* taille tampon d'entrée */
#define TX_SIZE 4096 /* taille tampon de sortie */
#define MAX_WAIT_READ 5000 /* temps max d'attente pour lecture (en ms) */
int nId;
int nBytesWritten;
int nBytesRead;
{
printf("Erreur lors de l'ouverture du port COM%d", nId);
return FALSE;
}
/* affectation taille des tampons d'émission et de réception */
SetupComm(g_hCOM, RX_SIZE, TX_SIZE);
/* configuration du port COM */
if(!SetCommTimeouts(g_hCOM, &g_cto) || !SetCommState(g_hCOM, &g_dcb))
{
//printf("Erreur lors de la configuration du port COM%d", nId);
CloseHandle(g_hCOM);
return FALSE;
}
/* on vide les tampons d'émission et de réception, mise à 1 DTR */
PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT);
EscapeCommFunction(g_hCOM, SETDTR);
return TRUE;
}
24 mars 2011 à 17:10
12 févr. 2008 à 12:38
Juste 2 petites remarques :
Comme DOPEMAX l'a déjà dit, il manque des accolades dans console.cpp
Pour ceux qui voudrais utiliser des ports supérieur à 10 :
char szCOM[20];
sprintf(szCOM, "\\\\.\\COM%d", nId);
//(cf. MSDN)
C'est utile par exemple pour dialoguer avec un composant USB qui est émulé comme un port serie (microcontroleur, ...).
22 juin 2007 à 18:43
J'aimerai envoyer 4 bytes qui sont respectivement : l'instruction, l'entrée choisie, la sortie choisie,et le n° de machine.Et je voudrai voir le résultat sur l'afficheur 7 segment de ma grille.
Si quelqu'un peut m'aider, je lui en serait trés reconnaissant.
Merci!!!!
22 juin 2007 à 18:39
fatal error C1083: Cannot open include file: 'LiaisonRS232.h': No such file or directory
fatal error C1083: Cannot open include file: 'LiaisonRS232.h': No such file or directory
fatal error C1083: Cannot open include file: 'LiaisonRS232.h': No such file or directory
fatal error C1083: Cannot open include file: 'Application.h': No such file or directory
La primère est localisée dans Application.cpp ,la deuxième est dans Console.cpp, la troisième se trouve dans Liaison RS232.cpp et la 4éme est dans source.cpp
pouvez vous m'aider please
17 juin 2007 à 03:06
30 août 2006 à 12:03
Une petite remarque, tu as oublié les {} du else dans la fonction void Console::MnuOuvrirCOM() du console.cpp
du coup il indique tout le temps l'erreur, alors qu'il n'y en a pas.
Voila
30 mars 2006 à 15:55
D'abord félicitations pour ce code qui est très clair et qui fonctionne bien.
Cependant j'ai un petit problème:
Je souhaite m'en servir pour recevoir et envoyer des données, mais je suis limité dans les données: par exemple si j'envoi "00" en hexa, ça ne marche pas, pareil pour "20" (un espace en ASCII). C'est sûrement parceque certains caractères sont interprétés comme des fins de transmission ou je ne sais quoi, sans doute une fonctionnalité du contrôle de flux.
Je pense qu'en modifiant un paramètre dans com.h je doit pouvoir résoudre mon problème.
Aurais-tu une idée sur le paramètre à changer? Ou est-ce que ce n'est pas si simple?
En te remerciant
24 mars 2006 à 12:26
j'ai un projet en cours.
ce que j'aurais voulu c'est juste le module de lecture de la liaison.
merci
9 mars 2006 à 13:07
22 févr. 2006 à 17:56
Il est dit que ce programme peut receptionner des trames GPS.
Est ce que quelqu'un pourrait m'explique comme il fonctionne. Parce que c'est exactement ce que je doit faire mais, je ne suis pas un spécialiste du C++.
Pour résumer, il me faut récupérer en temps réel les differentes trames GPS qui proviennent d'un recepteur pour les traiter et ranger toutes les données utiles (contenu dans ces trames) dans une structure. Ceci me permetra ensuite de faire des calculs avec ces données.
De plus si quelqu'un sait aussi comment passer des trames récupérées à un type struct.
Je vous remercie par avance
15 mai 2005 à 00:44
14 mai 2005 à 21:58
10 mai 2005 à 08:45
cette include DOIT être le PREMIER de tous les fichiers sources sous VC++ a moins de choisir un projet VIDE.
7 mai 2005 à 14:15
7 mai 2005 à 14:12
kirua at coder-studio . com
7 mai 2005 à 14:10
7 mai 2005 à 14:09
#ifndef _LIAISONRS232__H_
#define _LIAISONRS232__H_
#include <windows.h>
class LiaisonRS232
{
public:
LiaisonRS232();
~LiaisonRS232();
bool OpenCOM(int nId);
bool ReadCOM(void* buffer, int nBytesToRead, int* pBytesRead);
bool WriteCOM(void* buffer, int nBytesToWrite, int* pBytesWritten);
bool CloseCOM();
private:
HANDLE g_hCOM;
COMMTIMEOUTS g_cto;
DCB g_dcb;
};
#endif
7 mai 2005 à 14:07
7 mai 2005 à 14:05
Le problème vient donc du ficheir que je vien de dl
Pourrais tu me dire si tu vois une faute dans le programme stp ? :)
Merci d'avance
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include
#include <string.h>
#include "LiaisonRS232.h"
using namespace std;
#define RX_SIZE 4096 /* taille tampon d'entrée */
#define TX_SIZE 4096 /* taille tampon de sortie */
#define MAX_WAIT_READ 5000 /* temps max d'attente pour lecture (en ms) */
int nId;
int nBytesWritten;
int nBytesRead;
LiaisonRS232::LiaisonRS232()
{
//configuration du temps d'attente
g_cto.ReadIntervalTimeout = MAX_WAIT_READ;
g_cto.ReadTotalTimeoutMultiplier = 0;
g_cto.ReadTotalTimeoutConstant = MAX_WAIT_READ;
g_cto.WriteTotalTimeoutMultiplier = 0;
g_cto.WriteTotalTimeoutConstant = 0;
//Configuration du Port
g_dcb.DCBlength = sizeof(DCB);
g_dcb.BaudRate = 9600;
g_dcb.fBinary = true;
g_dcb.fParity = false;
g_dcb.fOutxCtsFlow = false;
g_dcb.fOutxDsrFlow = false;
g_dcb.fDtrControl = DTR_CONTROL_ENABLE;
g_dcb.fDsrSensitivity = false;
g_dcb.fTXContinueOnXoff = false;
g_dcb.fOutX = false;
g_dcb.fInX = false;
g_dcb.fErrorChar = false;
g_dcb.fNull = false;
g_dcb.fRtsControl = RTS_CONTROL_ENABLE;
g_dcb.fAbortOnError = false;
g_dcb.fDummy2 = 0;
g_dcb.wReserved = 0;
g_dcb.XonLim = 0x100;
g_dcb.XoffLim = 0x100;
g_dcb.ByteSize = 8;
g_dcb.Parity = NOPARITY;
g_dcb.StopBits = ONESTOPBIT;
g_dcb.XonChar = 0x11;
g_dcb.XoffChar = 0x13;
g_dcb.ErrorChar = '?';
g_dcb.EofChar = 0x1A;
g_dcb.EvtChar = 0x10;
}
LiaisonRS232::~LiaisonRS232()
{
}
bool LiaisonRS232::OpenCOM(int nId)
{
char szCOM[5];
/* construction du nom du port, tentative d'ouverture */
sprintf(szCOM, "COM%d", nId);
g_hCOM = CreateFile(szCOM, GENERIC_READ|GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL);
if(g_hCOM == INVALID_HANDLE_VALUE)
{
printf("Erreur lors de l'ouverture du port COM%d", nId);
return FALSE;
}
/* affectation taille des tampons d'émission et de réception */
SetupComm(g_hCOM, RX_SIZE, TX_SIZE);
/* configuration du port COM */
if(!SetCommTimeouts(g_hCOM, &g_cto) || !SetCommState(g_hCOM, &g_dcb))
{
//printf("Erreur lors de la configuration du port COM%d", nId);
CloseHandle(g_hCOM);
return FALSE;
}
/* on vide les tampons d'émission et de réception, mise à 1 DTR */
PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT);
EscapeCommFunction(g_hCOM, SETDTR);
return TRUE;
}
bool LiaisonRS232::ReadCOM(void* buffer, int nBytesToRead, int* pBytesRead)
{
return ReadFile(g_hCOM, buffer, nBytesToRead, (LPDWORD)pBytesRead, NULL);
}
bool LiaisonRS232::WriteCOM(void* buffer, int nBytesToWrite, int* pBytesWritten)
{
return WriteFile(g_hCOM, buffer, nBytesToWrite, (LPDWORD)pBytesWritten, NULL);
}
bool LiaisonRS232::CloseCOM()
{
CloseHandle(g_hCOM);
return true;
}
7 mai 2005 à 13:58
7 mai 2005 à 13:53
je viens de m'en servir mais j'obitent une erreur : voici le bout de programme que j'ai tapé
void CMesurePlaneiteDlg::OnConfiguration()
{
LiaisonRS232 *Liaison = new LiaisonRS232();
int init = Liaison->OpenCOM(1);
if (init) m_sTrame="initialisation ok!";
UpdateData(FALSE);
char *Trame;
int *nb_envoi;
sprintf(Trame, "%s%s%s%s", 0x50, 0x4C, 0x2C, 0x31);
Liaison->WriteCOM(Trame,strlen(Trame),nb_envoi);
Liaison->CloseCOM();
}
et j'obtient ceci comme erreur lors de la compilation, si tu pouvais m'aider :) ca serai sympa :)
"fatal error C1010: unexpected end of file while looking for precompiled header directive"
25 mars 2005 à 10:27
Aussi, tu mélanges l'ensemble windows.h BOOL TRUE FALSE et l'ensemble standard (intégré au langage) bool true false. Fais ton choix :)
Sinon, merci pour ce code. Faudrait que je me mette à l'électronique un de ces jours.