Commcarte.c : Différence entre versions
(3 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | {{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}} |
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;
}