1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
   | /**************************************************\
*       PROGRAMME ECRITURE - LECTURE VIA RS485     *
*                                                  *
\**************************************************/
 
#include <windows.h>    // déclaration des librairies
#include <iostream>
#include <vector>
 
using namespace std;
 
int main(void)      // programme principal
{
 
    /***************************************************
    *       INITIALISATION & OUVERTURE PORT COM        *
    *                                                  *
    ***************************************************/
 
    // On crée un handle que l'on initialise à NULL.
    HANDLE SPort=NULL;
    //DWORD Event;
    COMMCONFIG tR;
    // Sport est un handle ( identifiant )
	// Pour mieux comprendre les paramètre passés
	// consultez la fonction CreateFile();
	SPort = CreateFile("COM4",
					   GENERIC_READ | GENERIC_WRITE,
					   0,
					   NULL,
					   OPEN_EXISTING,
					   0,
					   NULL);
	// Le handle sera le lien entre notre apllication
	// et le port série.
	// Ici ce sera le port indiquédans le tableau COM déclaré au début qui sera ouvert.
 
	if ( SPort == INVALID_HANDLE_VALUE )
	{
		cout << "Le port selectionne ne peut etre ouvert ou l'est deja"<<endl ;
		MessageBox(0,"Le port selectionne ne peut etre ouvert ou l'est deja","Erreur",MB_OK);
		system( "pause" );
	}
	// Vérification de parité désactivée
	tR.dcb.fParity=NOPARITY;
	// La taille du mot donnée est de
	tR.dcb.ByteSize=8;
	// Un bit de stop
	tR.dcb.StopBits=ONESTOPBIT;
	// désactive les Xon-Xoff
	tR.dcb.fInX=FALSE;
	tR.dcb.fOutX=FALSE;
	// Configuration du BaudRate
	tR.dcb.BaudRate= CBR_9600;
 
	// Enregistrer les modifications apportées
	// au paramètres Xon-Xoff
	SetCommConfig(SPort, &tR, sizeof(tR));
	// On remplit la strucuture COMMTIMEOUTS
	COMMTIMEOUTS tMyTimeOuts =  {
	100,
    0,
    0,
    1000,
    1000
    };
 	 //Enregistre les modifications concernant le CommTimeouts
	if (!SetCommTimeouts(SPort, &tMyTimeOuts) )
	{
		MessageBox(0,"Erreur de configuration","Erreur",MB_OK);
		system( "pause" );
	}
 
    /************* FIN déclaration port COM et Initialisation *************/ |