Com. série rs232 config port

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 1 juin 2007 à 11:50
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 4 juin 2007 à 11:32
Bonjour,

Voila je cherche a developer une communication sur un port com (rs232)
et je cherche des infos ou de l'aide sur la configuration du port.
D'apres le maigre document dont je dispose je sais que:
"chaque échange se compose de 11 moments:
       1 start
       8 moments d'infos
       1 parité paire
       1 stop"

alors voila ma question est comment traduire cela au niveau du DCB ?
voici mon code actuel mais je ne pense pas que cela corresponde avec ce que je dosi faire:
    dcb.BaudRate = CBR_9600;
    dcb.fParity = FALSE;
    dcb.ByteSize = 8;
    dcb.StopBits = ONESTOPBIT;

surtout pr la parité paire!
bon si quelqu'un s'y connait ca serait sympa,j'aurais aussi peut etre quelques questions sur les comm séries en général si possible...
merci d'avance!
 

6 réponses

cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
1 juin 2007 à 12:24
http://msdn2.microsoft.com/en-us/library/aa363214.aspx


Tout ce que tu dois savoir se trouve là. Pour la parité paire tu met .Parity = ODDPARITY ou EVENPARITY pour impair.

A+
3
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
1 juin 2007 à 13:18
oki deja merci pr le coup de la parité car pr moi odd et even c'est pas tres parlant!

je vais de ce pas sur le site pr les infos!

 
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
1 juin 2007 à 13:26
re, tu pourrais m'aider a comprendre l'overlapped?
notament ceci:
// tant que le thread est actif
    while(pManager->m_bReadThreadRunning)
    {
        // attente de la réception d'un caractère
        DWORD dwEvtMask = 0;
        OVERLAPPED ov = {0};
        ov.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
        if(!pManager->m_pComm->WaitEvent(&dwEvtMask, &ov))
        {
            // si toujours en attente
            if(GetLastError() == ERROR_IO_PENDING)
            {
                // on attent que l'opération se termine ou qu'elle soit interrompue
                // (lors de l'appel à SetEvtMak(0) à la deconnexion par exemple)
                DWORD dwResult;
                while(!GetOverlappedResult(pManager->m_pComm->GetHandle(), &ov,
                        &dwResult, TRUE))
                {
                    if(GetLastError() != ERROR_IO_INCOMPLETE)
                        break;
                }
            }
        }

        // lecture si des caractères ont été reçus
        if(dwEvtMask & EV_RXCHAR)
        {
            // lecture des données
            DWORD dwLength;
            BYTE buffer[RX_SIZE+1];
            do
            {
                // lecture d'un bloc
                dwLength = pManager->ReadBlock(buffer, RX_SIZE);

                // envoi des données à la fenêtre
                if(dwLength > 0)
                {
                    // ajout NUL de terminaison
                    buffer[dwLength] = '\0';
                }
            }while(dwLength > 0 && pManager->m_bReadThreadRunning);
        }
        CloseHandle(ov.hEvent);

que j'ai trouver sur ce site!
la question que je me pose est est ce bloquant?
ou si on ne lit rien peut on effectuer d'autre trucs dans ce thread?
merci de me repondre si t'as un peu de temps!
 
0
MadMax1024 Messages postés 95 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 25 juillet 2008
2 juin 2007 à 20:49
Salut si tu veut j'ai déposé une source pour la communication rs232 sa peut t'aider à toi de voir
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
4 juin 2007 à 11:02
oki je vais voir ton code
et si j'ai des questions ben je reviens te voir ;-)
merci bcp!

 
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
4 juin 2007 à 11:32
Bon je te remercie mais ton code est tres bien pour une prise en main simple et basique dirais-je...
ouvrir lire et ecrire puis afficher!

mais perso je cherche plus des infos sur la gestion du thread de lecture ainsi que la gestion des evenements!!!

si tu t'y connais ....
 
0
Rejoignez-nous