cs_leon1
Messages postés3Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention11 janvier 2006
-
10 janv. 2006 à 22:12
cs_leon1
Messages postés3Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention11 janvier 2006
-
11 janv. 2006 à 18:13
Bonsoir.
Bonne année à tous.
J' avais écris il y à une dizaine d'années (j'ai repris mes études et fait un dut à 35 ans) ce petit prog qui lisait et enregistrai les voies du port joystick (lecture et enregistrement de données pour un radiotelescope).
Comme vous voyez, il est en C.
Evidement, cela ne fonctionne pas sous Xp....
J'arrive pas à comprendre pourquoi...
Je me suis récupéré VC++6 il y a un mois, et je m'y suis mis.
Je dois vieillir, pas moyen d'en faire quelquechose.
Quelqu'un peu faire quelquechose pour moi, pour une voie, par exemple, je me débrouillerai pour le reste.
int main()
{/* DEBUT DU PROG PRINCIPAL **************************************************************/
/* Declaration des Fonctions et Procedures */
int PasteInFile(int Val1,int Val2,FILE *stream);
long FreeOnDisk(int ValDisk);
/* Declaration des variables */
int Compt=0,Carac=0,Js1x=0,Js1y=0,Js2x=0,Js2y=0,i;
int CanalEnreg=2,PrecedCanalEnreg=2;
FILE *stream; /* declaration du fichier d'enregistrement des valeur mesurees */
struct date d;struct dostime_t t; /* structure pour l'heure et la date */
time_t tps=0,LastTime=0,LastRafraich= time(NULL);
int TabBinValPort[8],Date;
// DEBUT DU PROGRAMME
char CheminDisk[40]="c:\\joysdata.txt"; /* chemin d'enregistrement par defaut */
float Intervalle=1; /* valeur defaut */
stream = fopen(CheminDisk, "w+"); /* ouvre le fichier CheminDisk a mettre a jour*/
clrscr();
while(Carac!=113) /*touche q pour quitter*/
{Compt=Compt+1;
gotoxy(4,1);printf("Prog d'enregistrement des donnees du port Joystick");
gotoxy(1,3);printf("tour=%d\n", Compt);
Carac=0; /* reinitialisation du clavier */
if (kbhit()) Carac = getch();
if (Carac==112) /* touche p (faire une pause) */
{Carac=0;
while(Carac!=112) /* tant que la touche p n'est pas entree */
{if (kbhit()) Carac = getch();
gotoxy(15, 3);
printf("Pause");
}
gotoxy(15, 3);printf(" ");}
// ENREGISTREMENT
if (CanalEnreg==1)
{if (tps>=LastTime+Intervalle)
{PasteInFile(Js1x,Js1y,stream);
LastTime=time(NULL);
gotoxy(22,3);printf("ENREGISTREMENT au tour=%d", Compt);
} }
if (CanalEnreg==2)
{if (tps>=LastTime+Intervalle)
{PasteInFile(Js2x,Js2y,stream);
LastTime=time(NULL);
gotoxy(22,3);printf("ENREGISTREMENT au tour=%d", Compt);
} }
// Fin Enreg
gotoxy(1,12);printf("Le disque actif offre %ld octets libres ", FreeOnDisk(3));
gotoxy(2, 14);printf("c = pour changer le Canal d'enregistrement.");
gotoxy(2, 15);printf("i = pour changer l'Intervalle d'enregistrement.");
gotoxy(2, 16);printf("f = pour changer le Fichier d'enregistrement.");
gotoxy(2, 17);printf("p = pour faire une Pause ou recommencer.");
gotoxy(2, 18);printf("q = pour Quitter le programme.");
}//FIN WHILE
}// FIN PROG PRINCIPAL ***********************************************************************
/*********Fonction de calcul d'espace libre sur le disque c:**************/
/*Retourne la valeur de l'espace libre du disque c:*/
long FreeOnDisk(int ValDisk)
{struct diskfree_t free;
long avail;
if (_dos_getdiskfree(0, &free) != 0) {
printf("Disque dur plein()\n");
exit(1);}
avail = (long) free.avail_clusters * (long) free.bytes_per_sector * (long) free.sectors_per_cluster;
return (avail);
}/*fin fonction FreeOnDisk*/
/*******************Fonction de copie de donnees vers fichier*************/
/*Cette fonction copie des valeurs dans un fichier compatible Access
en precisant le moment de l'action copier*/
int PasteInFile(int Val1,int Val2,FILE *stream)
{ struct date d; struct dostime_t t;
getdate(&d); _dos_gettime(&t);
fprintf(stream, "\n%d/%d/%d; %2dh%02d:%02d:%02d; %d;%d;", d.da_day,d.da_mon,d.da_year,t.hour, t.minute,t.second,t.hsecond,Val1,Val2); /*écrit des données dans le fichier*/
return 0;
}/*fin fonction PasteInFile*/
cs_leon1
Messages postés3Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention11 janvier 2006 11 janv. 2006 à 18:13
Bonsoir à tous.
Merci [auteurdetail.aspx?ID=39449 BruNews], de ta réponse.
C'est toujours sympas de recevoir une réponse encourageante, de voir que le respect des anciens est toujours là !!!!!!
Je vais me lancer dans l'étude de tes docs, et puis on verra.
Si j'ai une veine qui pète dans le cerveau, on connaitra lez coupable !!!
Bon, je repart en formation.
Cordialement.
Léon.