| 12
 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