Ptites questions sur la RS 232 ...


Je voudrais envoyé via la liaison série:
- un octet de validation (0x06)
- puis une serie de 8 octets
- un octet de fin (0x07)


1ere question :

Il y a t il un équivalent(du Basic) en C de PrintComx octet (x ==> n° du port , octet ==> octet à envoyer)

Pour pouvoir faire un code de se style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
PrintCom1 0x06; //octet Start
PrintCOm1 0x45; // Données
PrintCom1 0x..; //  A
...             // Envoyés
PrintCom1 0x07; //octet Stop

Ca me simplifierai la vie, car je suis parti sur cette piste :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
     BYTE buffer[1]; 
     CHAR buffer_send[8];
 
     buffer_send[0] = 0x12;
     buffer_send[1] = 0x32;
     ...
     buffer_send[8] = 0x33;
 
     //pour envoyer un seul octet :
     BYTE b = 0x45;
     WriteCOM(&b, buffer, &nBytesWritten);
 
     //pour envoyer plusieurs octets :
     buffer_send[len-1] = 0x56; (len <= 32)
     WriteCOM(buffer_send, len, &nBytesWritten);
J'ai déclaré 2 buffers ... un pour l'émission de l'octet de "commande" et l'autre pour l'émission de la trame

il y a quelque chose de plus facile ??

2ème question:

Comment je peux faire pour "découper" ma trame recu (2048 octets)en "morceau" de 8 octets, et placer ces morceaux dans un tableau ?
tabA1 tabA1'
tabB1 tabB1'
...

3ème question ( et la dernière .. looL)

Dans mon code, j'utilise un fflsush(stdin) et un gets(buffer),
Comment je peux faire pour le vider ... j'ai trouvé une méthode dans la FAQ... mais ca ne fonctionne pas ...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
    /* variables locales */
    char buffer[256];
    int Num_Port, Choix, nBytesWritten, nBytesRead;
    int Mode_PC,validation_µc,valid,validOK;
 
/******************************************************************************
  envoi : Envoi de la trame voulu par la RS232
******************************************************************************/
int envoi()
{
        if(Mode_PC=OK)
        {
            printf("\r\n");
            printf("Donnees a envoyer :\r\n");
            fflush(stdin);
            gets(buffer);
            printf("\r\n");
            printf("Envoi des donnees...\r\n");
            if(WriteCOM(buffer, strlen(buffer), &nBytesWritten))
                printf("%d octet(s) envoye(s).\r\n", nBytesWritten);
            else
                printf("Erreur lors de l'envoi.\r\n");
        }
}

Merci à vous de vous prendre le temps de lire ce post ... et d'y répondre ...

Andr0 ...