/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E S   F O N C T I O N S   E L E M E N T A I R E S                                                              */
/*        D U   D I S Q U E   V I D E O   B E T A - P A L   A   1200   B A U D S  :                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtc/disk_vi_P.11$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);                                                                                              \
                    }
main()
     {
     int            n;
     int            desc,descOUT,descIN;
     char           bufferIN[100],bufferOUT[100];
     printf("\n initialisation=%d",system("stty sane < /dev/ttyd2"));
     printf("\n programmation =%d",system("stty 1200 -cstopb -parity raw -echo < /dev/ttyd2"));
     desc = open("/dev/ttyd2",O_RDWR | O_NDELAY);
     printf("\n desc          =%d",desc);
     READ;
     printf("\n close         =%d",close(desc));

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

     SEND(0x43);
                                        /* Demande "PAL_BETA_SEARCH".                                                                */
     SEND('9');
     SEND('0');
     SEND('0');
     SEND('0');
     SEND('1');

     SEND(0x40);
                                        /* Demande "PAL_BETA_ENTER".                                                                 */

     sleep(6);
                                        /* ATTENTION, il y a un probleme avec le 'LVR4000' car, en effet :                           */
                                        /*                                                                                           */
                                        /*   1-le programme rend la main plusieurs secondes avant le positionnement effectif         */
                                        /*   a l'adresse demandee "90001"),                                                          */
                                        /*   2-apres ce positionnement, si l'on passe la machine en local et qu'on demande           */
                                        /*   un "search" au pupitre a l'adresse "123" (par exemple), la machine passe d'abord        */
                                        /*   par l'adresse "8523", puis au bout de quelques secondes se place en "123"...            */
                                        /*                                                                                           */

     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.