begin process at 2012 05 29 14:01:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Périphériques

 > 

port joystick


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

port joystick

mardi 10 janvier 2006 à 22:12:58 | port joystick

leon1

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.

Merci, d'avance, et j'ai des chocolats  en rab !!!

Leon.
leon.ternoy@laposte.net

#include <conio.h>
#include <stdio.h>
#include <dos.h>
#include <time.h>
#include <iostream.h>
#include <process.h>

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("       ");}
                                          
   /*clrscr();*/
   union REGS regs;
   regs.h.ah = 0x84;
   regs.x.dx = 1;
   int86(0x15,&regs,&regs);
   Js1x=regs.x.ax;
   Js1y=regs.x.bx;
   Js2x=regs.x.cx;
   Js2y=regs.x.dx;
   gotoxy(2, 4);printf("Valeur lue en J 1x (canal 1)=   %d   \n",Js1x);
   gotoxy(2, 5);printf("Valeur lue en J 1y (canal 1)=   %d   \n",Js1y);
   gotoxy(2, 6);printf("Valeur lue en J 2x (canal 2)=   %d   \n",Js2x);
   gotoxy(2, 7);printf("Valeur lue en J 2y (canal 2)=   %d   \n",Js2y);
    gotoxy(4, 8);printf("Valeurs du canal %d enregistrees \n",CanalEnreg);

    if (Carac==102) /* touche f=fichier */
    {gotoxy(1,10);
     printf("Nouveau chemin d'enregistrement (de la forme [Lecteur]:[Rép][SsRép][Fichier]):\a");
     fscanf(stdin, "%s", &CheminDisk);stream = fopen(CheminDisk, "w+");}
     else{gotoxy(1,10);printf("Chemin d'enregistrement= %s     ",CheminDisk);}


    if (Carac==99) /* touche c=canal */
    {if (PrecedCanalEnreg==2) {PrecedCanalEnreg=1;CanalEnreg=1;}
     else{PrecedCanalEnreg=2;CanalEnreg=2;}
    }

    if (Carac==105) /* touche i=Intervalle */
        {gotoxy(1, 11);printf("Nouvel interval des enregistrements(en secondes):\a");
     fscanf(stdin, "%f", &Intervalle);Carac=0;}
      else{gotoxy(1,11);printf("Interval des enregistrements(en sec)= %f    ",Intervalle);}

   tps = time(NULL);

   if(tps>LastRafraich+10){LastRafraich=tps;clrscr();}

   // 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*/

mercredi 11 janvier 2006 à 01:16:07 | Re : port joystick

BruNews

Administrateur CodeS-SourceS

Ne le prends pas mal mais sérieux je ne vois rien à conserver là dedans, efface tout.
Faudra te familiariser avec la prog API, vu que tu connais le C devrait pas y avoir de problème.
[ Lien ]
[ Lien ]

[ Lien ]
[ Lien ]

Les fonctions joystick simples sont dans Mmsystem.h (joyXXXX) mais je pense que tu verras cela un peu plus tard.

ciao...
[ Lien ]
BruNews, MVP VC++

mercredi 11 janvier 2006 à 18:13:04 | Re : port joystick

leon1

Bonsoir à tous.
Merci 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.


Cette discussion est classée dans : enregistrement, int, printf, gotoxy, carac


Répondre à ce message

Sujets en rapport avec ce message

demande de correction de programme [ par gemini010 ] slt a tous, je dois créer un programme avec differente fonctions et structures permettant de gerer des etudiants ( on doit pouvoir ajouter des enregis Langage C : Puissance 4 [ par breakeur59150 ] Bonjour à tous,j'ai une ou deux question à vous poser, je suis en train de faire le jeu puissance 4 en langage c sous borland C, C'est un projet que l aide [ par achrafgassolina ] salut tout le monde la j ai une érreure et je c pas comment la resoudre dans la ligne 296:36 dans la condition if et aprés je veux faire la saisie des Programme Tri à Bulle [ par tivanbelle ] Bonjour,J'ai fait ce programme en cours, c'est un tri a bullequi tri des valeur donc 2à2, mais le programme ne fonctionne pas. Pouvez vous me dire ce Puissance 4 en C [ par drinky05 ] Bonjour, j'aurai besoin d'aide pour mon programme, grand débutant, c'est pour un projet en cours, je dois réaliser un puissance 4, il fonctionne a peu conflit de type dans un tableau [ par pausecpp ] j'ai eu une réponse inattendue. voici un partie du code (l'essentiel ;) ):...#define N 5....float V[N]={0}; int i;for(i=0; i{printf("\nEntrer la coord Problème retour tableau fonction [ par acidjackproject ] Bnjour, voilà j'explique mon probleme:J'ai une fonction recherche qui parcours un index (tableau de structure). Lorsqu'elle a trouvé l'élément elle me probleme affichage structure [ par lil_adriano ] Slt tous le monde j'ai un souci avec l'affichage de mes structures. je dois faire la gestion d'une pizzeria.j'ai cree les structure et quelques proced Suite de Fibonacci [ par BastienL21 ] Bonjour à tous, débutant en C, j'ai écris un code permettant d'éxecuter la suite de Fibonacci en additionnant les deux nombres précédant, stockés dans Equation du 3éme degrée [ par jeanphilippe37 ] Slt, je t'envoie le programme de maths, ms j'ai essayé de mettre un system(pause) ms cela me fou une erreur de compilation. Pourré-tu me dire


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales