Recherche comment faire fonctionner ce code via une interface graphique (pilotag

cedpic Messages postés 8 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 2 novembre 2009 - 14 oct. 2009 à 13:05
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 14 oct. 2009 à 17:02
voici le code que j ai creer qui marche tres bien en mode console mais je souhaiterais les piloter par une interface graphique en remplacent les bouton Bx par des vrais bouton :
//debut
#include <stdio.h>
#include
#include <sys/io.h>
#define ADRESSEBASE 0x378

int main(void)


//ouverture du dialogue sur le port db25
{
if(ioperm(ADRESSEBASE, 2, 1))
{
perror("Erreur d'obtention des droits");
return(1);
}

//lecture de la valeur actuelle sur le port db25
printf("Valeur en entree: %d\n", inb(ADRESSEBASE));
//initialisation des valeurs

//initialisation de la valeur du port db25
int bin=0;
//initialisation des valeurs boutons
int b1=0;
int b2=0;
int b3=0;
int b4=0;
int b5=0;
int b6=0;
int b7=0;
int b8=0;
int b9=0;
//initialisation des valeurs datas
int d1=0;
int d2=0;
int d3=0;
int d4=0;
int d5=0;
int d6=0;
int d7=0;
int d8=0;
do{
//demande de position des boutons 0=OFF 1=ON
printf(" Bouton ON=1 Bouton OFF=0\n");
printf("Quel valeur affecte a b1:");scanf("%d", &b1);
printf("Quel valeur affecte a b2:");scanf("%d", &b2);
printf("Quel valeur affecte a b3:");scanf("%d", &b3);
printf("Quel valeur affecte a b4:");scanf("%d", &b4);
printf("Quel valeur affecte a b5:");scanf("%d", &b5);
printf("Quel valeur affecte a b6:");scanf("%d", &b6);
printf("Quel valeur affecte a b7:");scanf("%d", &b7);
printf("Quel valeur affecte a b8:");scanf("%d", &b8);
printf("Arret :");scanf("%d", &b9);
//attribution des valeurs datas selon le bouton et sa position
if (b1 == 1)
{
d1=1;
}
else if (b1 != 1)
{
d1 = 0;
}
if (b2 == 1)
{
d2=2;
}
else if (b2 != 1)
{
d2 = 0;
}
if (b3 == 1)
{
d3=4;
}
else if (b3 != 1)
{
d3 = 0;
}
if (b4 == 1)
{
d4=8;
}
else if (b4 != 1)
{
d4 = 0;
}
if (b5 == 1)
{
d5=16;
}
else if (b5 == 0)
{
d5 = 0;
}
if (b6 == 1)
{
d6=32;
}
else if (b6 == 0)
{
d6 = 0;
}
if (b7 == 1)
{
d7=64;
}
else if (b7 == 0)
{
d7 = 0;
}
if (b8 == 1)
{
d8=128;
}
else if (b8 == 0)
{
d8 = 0;
}

bin = d1+d2+d3+d4+d5+d6+d7+d8;

outb (bin, ADRESSEBASE);

printf("Valeur en entree: %d\n", inb(ADRESSEBASE));
}
while (b9 !=1 );

if(ioperm(ADRESSEBASE, 2, 0))
{
perror("Erreur de fermeture");
return(1);
}

return(1) ;
}
//fin

merci de votrte aide
A voir également:

1 réponse

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
14 oct. 2009 à 17:02
Bah !
Regardes des tutoriaux. Vu que c'est Linux, tu as Qt, GTK ...
Mais il va falloir revoir ton programme, qui est actuellement séquentiel et le passer événementiel.
0
Rejoignez-nous