Accueil > Forum > > > > Comment effectuer une liaison serie en c++ ???
Comment effectuer une liaison serie en c++ ???
jeudi 14 février 2002 à 16:12:25 |
Comment effectuer une liaison serie en c++ ???

Arcocide
|
Voila mon prob : je dois effectuer un liaison serie en c++ avec Builder enter un PC et une machine. Comment definir le port, et comment envoyer une ligne quelquonque a cette machine ?? Merci beaucouuuup d'avance??? Help me ??
|
|
samedi 23 mars 2002 à 15:27:35 |
Re : Comment effectuer une liaison serie en c++ ???

jfloviou
|
Ben moi j'utilise le protocole VISCA pour envoyer des ordres a une camera, j'ai donc dû utiliser le port série. C'est tout simple d'emploi voila en gros mon code:
#include <stdio.h> #include <windows.h>
char buffer[2]; int i; int valeur;
main (){ /* Writing Thread */ /*char write_buffer[20]; /* Buffer for the input from the keyboard */ HANDLE rec_h; /* Handle of the child */ DWORD rec_id; /* ID of the child */ HANDLE send_com; /* Handle of the sender device */ DCB dcb_write; /* Structure for the config. of the serial port */ DWORD wr; /* Necessary for WriteFile */
/* Creation of the receiver */ /*rec_h = CreateThread ( NULL, 0, (LPTHREAD_START_ROUTINE) receiver, NULL, 0, &rec_id ); if (rec_h == INVALID_HANDLE_VALUE) printf("Creating receiver: %ld\n", GetLastError());*/
/* Creation of file to write to the COM1-port */ send_com = CreateFile ( "COM1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL ); if (send_com == INVALID_HANDLE_VALUE) printf("Creating file for write access: %ld\n", GetLastError());
/* Reading the state of COM1 */ if (!GetCommState(send_com, &dcb_write)) printf("Error getting send_com-state: %ld\n", GetLastError());
/* New configuration of COM1 */ dcb_write.BaudRate = CBR_19200; dcb_write.ByteSize = 8; dcb_write.Parity = NOPARITY; dcb_write.fParity = FALSE; dcb_write.StopBits = ONESTOPBIT; dcb_write.fBinary = TRUE; dcb_write.fOutxCtsFlow = FALSE; dcb_write.fOutxDsrFlow = FALSE; dcb_write.fDtrControl = DTR_CONTROL_DISABLE; dcb_write.fDsrSensitivity = FALSE; dcb_write.fTXContinueOnXoff = FALSE; dcb_write.fOutX = FALSE; dcb_write.fInX = FALSE; dcb_write.fErrorChar = FALSE; dcb_write.fNull = FALSE; dcb_write.fRtsControl = RTS_CONTROL_DISABLE; dcb_write.fAbortOnError = FALSE; dcb_write.XonLim = 20; dcb_write.XoffLim = 20; if (!SetCommState(send_com, &dcb_write)) printf("Error getting send_com-state: %ld\n", GetLastError());
/* Work of this thread */ while (1==1){ printf("Entrée: "); scanf("%s",buffer); /* Input of the data to send */ for(i=0;i<2;i++) { if (buffer[i]>=48 && buffer[i]<=57) buffer[i]=buffer[i]-48; if (buffer[i]>=97 && buffer[i]<=102) buffer[i]=buffer[i]-87; } valeur=buffer[1]+buffer[0]*16; /*while (write_buffer[i] != '\x00'){*/ /* Writing data to COM1 */ if (WriteFile( send_com, &valeur, 1, &wr, NULL ) == FALSE) printf("Writing send_com: %ld\n", GetLastError()); i = i + 1; /*}*/ } return (0); } /* End main */
jaja
------------------------------- Réponse au message : -------------------------------
Voila mon prob : je dois effectuer un liaison serie en c++ avec Builder enter un PC et une machine. Comment definir le port, et comment envoyer une ligne quelquonque a cette machine ??
Merci beaucouuuup d'avance??? Help me ??
|
|
lundi 14 mars 2005 à 15:58:44 |
Re : Comment effectuer une liaison serie en c++ ???

irisiris76
|
Pourrait tu me donner les réferences ou des fichiers, adresses de site contenant des informations sur le protocole Visca.
merci d'avance
|
|
lundi 23 janvier 2006 à 16:55:23 |
Comment gérer le contrôle de flux lors d'un main: (soit RTS-CTS ou Xon/Xoff)

Payot13
|
// portcom.cpp
#include "portcom.h" #include <iostream.h> ************************************************/ * Nom : Portcom() * Description: Constructeur de la classe Portcom afin d'initialiser les paramètres ************************************************/
PortCom::PortCom(char *nport, int Pbits, int Pparite, int Pstop, int Pflux, int Pbaud) { nom = new char [strlen (nport)]; strcpy(nom,nport); //copie contenu de nport dans nom NbBits = Pbits; Parite = Pparite; NbStops = Pstop; Flux = Pflux; Vitesse = Pbaud; }
/************************************************ * Nom : Ouvrir(void) * Description: Ouverture et configuration du port ************************************************/
void PortCom::Ouvrir(void) { int XRecep; int XTrans; int RTS; //Ouverture d'un port serie hPortCom = CreateFile(nom,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if ( hPortCom == INVALID_HANDLE_VALUE ) { cout << "Le port selectionné ne peut etre ouvert ou l'est deja" ; } else { } // Paramètres du port hcomm GetCommState(hPortCom,&configuration); // Récupère les infos pour configurer le port // Configuration des différents champs configuration.BaudRate=Vitesse; //vitesse configuration.Parity=Parite; //parite configuration.ByteSize=NbBits; //nombre de bits configuration.StopBits=NbStops; //bit de stop //Contrôle de flux configuration.fInX=...........; //Xon-Xoff: 0:désactiver,1:activer configuration.fOutX=........; //Xon-Xoff: 0:désactiver,1:activer configuration.fRtsControl=..........; //RTS-CTS //Modifie les paramètres du port à partir du DCB SetCommState(hPortCom,&configuration); // Mise à jour des champs }
|
|
Cette discussion est classée dans : serie, machine, liaison, effectuer
Répondre à ce message
Sujets en rapport avec ce message
Comment faire une liaison serie en c++ ??? [ par Arcocide ]
Voila mon prob : je dois effectuer un liaison serie en c++ avec Builder enter un PC et une machine. Comment definir le port, et comment envoyer une li
Comment faire une liaison serie en c++ ??? [ par Arcocide ]
Voila mon prob : je dois effectuer un liaison serie en c++ avec Builder enter un PC et une machine. Comment definir le port, et comment envoyer une li
Comment faire une liaison serie en c++ ??? [ par Arcocide ]
Voila mon prob : je dois effectuer un liaison serie en c++ avec Builder enter un PC et une machine. Comment definir le port, et comment envoyer une li
liaison RS232 entre PC et machine [ par VolaiL ]
J'ai actuellement à réaliser lors de mon stage une applicaiton C++ qui permettrait de communiquer entre un PC et une machine ( un kardex pour ceux qui
recherche d un code source liaison serie [ par chupeau ]
bonjour,je recherche le code source d'une liaison serie de type CGPIBentre un pc et un oscilloscope.C'est liaison devra relever des tensions en sortie
Gros probleme avec une liaison serie [ par cmoilastar ]
Bonjour tout le monde, voila j'ai besoin de connaître les informations qui transittent par mon port série qui est relié a un banc de mesure afin de po
envoi sms via liaison serie (C/C++) (siemens c45) [ par Esus ]
bonjoursJe suis en 2eme annee de bts info. et j'ai un projet a realiser.je dois communiquer avec un tel portable en c/c++ (siemens c45) via une liaiso
Liaison serie [ par Adri_52 ]
Quelqu'un aurai le code d'une liaison serie RS232 en borland c++merci
Liaison serie rs232 [ par Adri_52 ]
Quelqu'un pourrait m expliquer comment fait on pour ouvrir et envoyer sur une liaison serie rs232 dans un environnement DOS.(sans windows.h)Merci
serie d'image bmp à partir de vidéo AVI [ par little_bius ]
Bonjour,Je voudrai savoir s'il est possible de transformer une vidéo au format AVI en une série d'image bmp.Par exemple si on a une vidéo de 30 second
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|