« Aide:Coloration syntaxique » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 354 :
 
[[Catégorie:Aide technique]]
 
<source lang="csharp">
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <ncurses.h>
 
int main(void){
//DEBUT : INITIALISATION DE L'ECRAN
initscr();
cbreak();
noecho();
nodelay(stdscr,TRUE);//l'attente de saisie d'un texte est non bloquant
//FIN : INITIALISATION DE L'ECRAN
int port;
int resr=0;
int resw=0;
char chaine[50];
char requete[5];
char reponse[5];
struct termios old_param;
struct termios new_param;
port=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);//on ouvre le fichier de port
//ON TEST L'OUVERTURE DU PORT
if (port<0){
perror("Erreur : echec d'ouverture du port");
exit(-1);
}
tcgetattr(port,&old_param);
tcgetattr(port,&new_param);
//ON MODIF CERTAINS PARAM DU PROTOCOLE
new_param.c_cflag=B9600|CS8|CLOCAL|CREAD;
new_param.c_lflag&=~(ICANON|ECHO|ECHOE|ISIG);
new_param.c_iflag=IGNBRK;//on ignore le test de verification du branchement du cable
new_param.c_oflag=0;
new_param.c_cc[VMIN]=1;
new_param.c_cc[VTIME]=0;
tcflush(port,TCIOFLUSH);//on vide le buffer
tcsetattr(port,TCSANOW,&new_param);
 
 
 
//PARTIE QUI LIT LE CODE BARRE
while(1){
getch();//initialisation de la fenetre
move(5,10);
printw("%s","Attente du passage du code barre ...");//info pour l'utilisateur
refresh();
 
//debut : On donne les instructions au lecteur pour lui dire qu'on est pret
strcpy(requete," 21 ");
requete[0]=2;
requete[3]=3;
requete[4]=0;
resw=write(port,requete,4);//on envoie les instructions au lecteur
//fin : On donne les instructions au lecteur
//Cette boucle permet d'attendre l'accusé de reception du lecteur à notre précedente demain
while (reponse[0]!=3){
resr=read(port,reponse,1);//1er read de retour
 
}
 
move(9,10);
//On recoit le code barre
while (chaine[0]!=3){//tant que le message ne contient pas le caractere de fin
resr=read(port,chaine,1);//1er read de retour
if ((resr>0)&&(chaine[0]!=3)&&(chaine[0]!=2)){
chaine[resr]=0;
printw("%s",chaine);//on affiche le code à l'utilisateur
refresh();
}
}
 
move(8,10);
printw("%s","Le code barre est :");
//mvhline(5,10,' ',30);
endwin();
refresh();
sleep(5);
}
//FIN PARTIE
//ON DEBUTE LA FERMETURE DU PROGRAMME
tcflush(port,TCIOFLUSH);//on vide le buffer
tcsetattr(port,TCSANOW,&new_param);
 
close(port);//on ferme la communication avec le port
return(0);
}
 
</source>