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
|
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/stat.h>
#include <sys/types.h>
void *port_seri (void * inutile)
{ int fd;
int i;
int* t;
FILE* fp;
/* Ouverture de la liaison serie */
if ( (fd=open("/dev/ttyS1",O_RDWR)) == -1 ) {
perror("open");
exit(-1);
}
/* Lecture des parametres courants */
tcgetattr(fd,&termios_p);
/* On ignore les BREAK et les caracteres avec erreurs de
parité */
termios_p.c_iflag = IGNBRK | IGNPAR;
/* Pas de mode de sortie particulier */
termios_p.c_oflag = 0;
/*utiLiaison a 9600 bps avec 7 bits de donnees et une parite
paire */
termios_p.c_cflag = B9600 | CS7 | PARENB;
/* Mode non-canonique avec echo */
termios_p.c_lflag = ECHO;
/* Caracteres immediatement disponibles */
termios_p.c_cc[VMIN] = 1;
termios_p.c_cc[VTIME] = 0;
/* Sauvegarde des nouveaux parametres */
tcsetattr(fd,TCSANOW,&termios_p);
//On va ouvrir le fichier à envoyer au port série.
if ((fp = fopen ("/home/nasamad/monfichier.txt", "r+")) == NULL) {
perror ("");
}/* Attention!!! je compte remplacer ce bloc par un fread
(fd,buffer,taille)
et ensuite envoyer ce buffer sur le port série." Voir suite"*/
else {while (( i = getc (fp)) != EOF)
{
t = (int*)i;
write (fd, t, 1);
}
} /* C'est ici la fin du bloc que je dois remplacer
car je me demande si j'aurais ce que je souhaite vraiment*/
close(fd);
fclose (fp);
pthread_exit ((void *) t);
}
int main (void)
{
int t;
int ret;
pthread_t thread;
void * retour;
if ((ret = pthread_create (& thread, NULL, port_seri, NULL)) != 0)
{ fprintf (stderr, "%s\n",strerror (ret));
exit (1);
}
pthread_join (thread , & retour);
if (retour!= PTHREAD_CANCELED)
{ t = (int) retour;
fprintf (stdout, "main : valeur lue = %d\n", t);
}
return (0);
}/*§§§§FIN DU PROGRAMME§§§§§§§ |
Partager