/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E S   F O N C T I O N S   C O M P L E X E X E S                                                                */
/*        D U   D I S Q U E   V I D E O   B E T A - P A L   A   9600   B A U D S  :                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtc/disk_vi_P.21$c' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#include  <stdio.h>
#include  <fcntl.h>
#include  <sys/signal.h>

#define   SEND(caractere)                                                                                                               \
                    {                                                                                                                   \
                    char      *pointeur=&bufferOUT[0];                                                                                  \
                    bufferOUT[0] = caractere;                                                                                           \
                                        /* Fonction demandee...                                                                      */ \
                    write(desc,pointeur,1);                                                                                             \
                    READ;                                                                                                               \
                    }
#define   READ                                                                                                                          \
                    {                                                                                                                   \
                    char      *pointeur=&bufferIN[0];                                                                                   \
                    read(desc,pointeur,1);                                                                                              \
                    }

#define   COMMANDE(chaine)                                                                                                              \
                    {                                                                                                                   \
                    int       index=0;                                                                                                  \
                    int       iterer=0;                                                                                                 \
                                                                                                                                        \
                    while     (iterer == 0)                                                                                             \
                              {                                                                                                         \
                              char      caractere=chaine[index];                                                                        \
                                                                                                                                        \
                              if        (caractere != 0)                                                                                \
                                        {                                                                                               \
                                        printf("%c",caractere);                                                                         \
                                        SEND(caractere);                                                                                \
                                        index++;                                                                                        \
                                        }                                                                                               \
                              else                                                                                                      \
                                        {                                                                                               \
                                        iterer++;                                                                                       \
                                        }                                                                                               \
                              }                                                                                                         \
                                                                                                                                        \
                    READ;                                                                                                               \
                    }

main()
     {
     char      commande1[]="VC06145@";
                                        /* Clear ('V'), puis positionnement sur l'image d'adresse '06145' ('C') et "enter" ('@').    */
     char      commande2[]="VD06245:@00001@";
                                        /* Clear ('V'), puis lecture jusqu'a l'image d'adresse '6245' ('D') et "enter" ('@').        */

     int       n;
     int       desc,descOUT,descIN;
     char      bufferIN[100],bufferOUT[100];

     printf("\n initialisation=%d",system("stty sane < /dev/ttyS0"));
                                        /* Le 20090907150153 "/dev/ttyd2" fut remplace par "/dev/ttyS0" (sur '$LACT16').             */
     printf("\n programmation =%d",system("stty 9600 -cstopb -parity raw -echo < /dev/ttyS0"));
     desc = open("/dev/ttyS0",O_RDWR | O_NDELAY);
     printf("\n desc          =%d",desc);
     READ;
     printf("\n close         =%d",close(desc));

     desc = open("/dev/ttyS0",O_RDWR);
     printf("\n desc          =%d",desc);

     printf("\n");

     COMMANDE(commande1);
     sleep(2);
     COMMANDE(commande2);

     printf("\n close         =%d",close(desc));
     }



Copyright © Jean-François Colonna, 2021-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2021-2023.