Commcarte.c : Différence entre versions
m |
|||
(Une révision intermédiaire par le même utilisateur non affichée) | |||
Ligne 1 : | Ligne 1 : | ||
{{RetourVers/TpII}} | {{RetourVers/TpII}} | ||
− | + | <source lang="c"> | |
− | + | #include "commcarte.h" | |
− | + | ||
− | + | int openParPort(char * parport) | |
− | + | { | |
− | + | int errno, device; | |
− | + | if ((device = open(parport, O_RDWR)) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"Erreur à l'ouverture : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | if (ioctl(device, PPCLAIM) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"Erreur d'accès : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | unsigned char val=4; | |
− | + | if (ioctl (device, PPWCONTROL, &val) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"erreur de configuration : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | return device; | |
− | + | } | |
− | + | ||
− | + | int ecrireParPortp(int device,unsigned char *val) | |
− | + | { | |
− | + | if (ioctl (device, PPWDATA, val) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"erreur d'écriture : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | return 0; | |
− | + | } | |
− | + | ||
− | + | int ecrireParPort(int device,unsigned char val) | |
− | + | { | |
− | + | if (ioctl (device, PPWDATA, &val) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"erreur d'écriture : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | return 0; | |
− | + | } | |
− | + | ||
− | + | int closeParPort(int device) | |
− | + | { | |
− | + | unsigned char val=3; | |
− | + | if (ioctl (device, PPWCONTROL, &val) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"erreur de configuration : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | if (ioctl(device, PPRELEASE) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"Erreur : %s (%d)\n", | |
− | + | strerror(errno),errno); | |
− | + | return -1; | |
− | + | } | |
− | + | if(close(device) < 0) | |
− | + | { | |
− | + | fprintf(stderr,"Erreur de fermeture : %s (%d)\n", | |
+ | strerror(errno),errno); | ||
+ | return -1; | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </source> | ||
{{RetourVers/TpII}} | {{RetourVers/TpII}} |
Version actuelle datée du 15 décembre 2012 à 21:52
retour vers la page des Tps II
#include "commcarte.h"
int openParPort(char * parport)
{
int errno, device;
if ((device = open(parport, O_RDWR)) < 0)
{
fprintf(stderr,"Erreur à l'ouverture : %s (%d)\n",
strerror(errno),errno);
return -1;
}
if (ioctl(device, PPCLAIM) < 0)
{
fprintf(stderr,"Erreur d'accès : %s (%d)\n",
strerror(errno),errno);
return -1;
}
unsigned char val=4;
if (ioctl (device, PPWCONTROL, &val) < 0)
{
fprintf(stderr,"erreur de configuration : %s (%d)\n",
strerror(errno),errno);
return -1;
}
return device;
}
int ecrireParPortp(int device,unsigned char *val)
{
if (ioctl (device, PPWDATA, val) < 0)
{
fprintf(stderr,"erreur d'écriture : %s (%d)\n",
strerror(errno),errno);
return -1;
}
return 0;
}
int ecrireParPort(int device,unsigned char val)
{
if (ioctl (device, PPWDATA, &val) < 0)
{
fprintf(stderr,"erreur d'écriture : %s (%d)\n",
strerror(errno),errno);
return -1;
}
return 0;
}
int closeParPort(int device)
{
unsigned char val=3;
if (ioctl (device, PPWCONTROL, &val) < 0)
{
fprintf(stderr,"erreur de configuration : %s (%d)\n",
strerror(errno),errno);
return -1;
}
if (ioctl(device, PPRELEASE) < 0)
{
fprintf(stderr,"Erreur : %s (%d)\n",
strerror(errno),errno);
return -1;
}
if(close(device) < 0)
{
fprintf(stderr,"Erreur de fermeture : %s (%d)\n",
strerror(errno),errno);
return -1;
}
return 0;
}