A voir également:
- Interruptions de la souris
- Quelle touche pour débloquer la souris ? - Guide
- Autoclick souris - Télécharger - Divers Utilitaires
- Souris inversée - Guide
- Curseur souris disparu - Guide
- Souris ordinateur - Guide
3 réponses
Bonjour,
Il te suffit de lire le fichier device associé à ta souris (probablement /dev/mouse).
Pour tester, tu peux faire un "cat /dev/mouse", et bouger ta souris.
Cordialement, M.
Il te suffit de lire le fichier device associé à ta souris (probablement /dev/mouse).
Pour tester, tu peux faire un "cat /dev/mouse", et bouger ta souris.
Cordialement, M.
Bonjour ,, voila pour linux
il fo comprendres les packets envoye par le driver sur linux il fais 8 bytes les bytes 1 et 2 sont les positions x et y
#include <stdio.h>
#include <unistd.h>
#include <sys/fcntl.h>
#include <errno.h>
#include <sys/time.h>
#include <math.h>
#define nd 1
int absolute (int x);
int main(){
unsigned char c = 0xFF; // -1
printf( "d :: %d \n", c );
char buf[100];
int fd,i,j,n,retval;
struct mouse_state{
int buttons;
char dx;
char dy;
} state;
fd_set rfds;
struct timeval st;
int dx=0,dy=0;
fd=open("/dev/psaux",O_RDONLY);
if(fd<0){ printf("mouse open error\n"); return 1;}
state.dx=0;
state.dy=0;
for(i=0;i<1000;){
for(j=0;j<3;j++)
{
n=read(fd,buf+j,nd);
printf("%02X ",(int)buf[j] & 0xff);
}//EoFor j
if(j<2)
{
if(j>0)
printf("PS2 mouse read sequence error\n");
continue;
}
printf("\n");
// i++;
if(buf[0] & 0x08){
state.buttons=buf[0]&0x7;
if(buf[0] & 0x40) printf("X overflow ");
if(buf[0] & 0x80) printf("Y overflow ");
if(buf[0] & 0x10)
state.dx=buf[1];
else
state.dx=buf[1];
if(buf[0] & 0x20)
state.dy=buf[2];
else state.dy=buf[2];
// printf(" buttons=%02X \tdx=%d \tdy=%d\n",state.buttons,state.dx,state.dy);
}//EoState
else {
printf("Error data received from ps2 mouse.\n");
break;
}
if(state.dx<0)
dx-=absolute(state.dx);
else dx += state.dx;
if(state.dy<0) dy-=absolute(state.dy);
else dy += state.dy;
printf("dx=%d \tdy=%d\n",dx,dy);
}//EoFor i
close(fd);
return 0;
}
int absolute (int x) {
return (x > 0 ? x : -x);
}
il fo comprendres les packets envoye par le driver sur linux il fais 8 bytes les bytes 1 et 2 sont les positions x et y
#include <stdio.h>
#include <unistd.h>
#include <sys/fcntl.h>
#include <errno.h>
#include <sys/time.h>
#include <math.h>
#define nd 1
int absolute (int x);
int main(){
unsigned char c = 0xFF; // -1
printf( "d :: %d \n", c );
char buf[100];
int fd,i,j,n,retval;
struct mouse_state{
int buttons;
char dx;
char dy;
} state;
fd_set rfds;
struct timeval st;
int dx=0,dy=0;
fd=open("/dev/psaux",O_RDONLY);
if(fd<0){ printf("mouse open error\n"); return 1;}
state.dx=0;
state.dy=0;
for(i=0;i<1000;){
for(j=0;j<3;j++)
{
n=read(fd,buf+j,nd);
printf("%02X ",(int)buf[j] & 0xff);
}//EoFor j
if(j<2)
{
if(j>0)
printf("PS2 mouse read sequence error\n");
continue;
}
printf("\n");
// i++;
if(buf[0] & 0x08){
state.buttons=buf[0]&0x7;
if(buf[0] & 0x40) printf("X overflow ");
if(buf[0] & 0x80) printf("Y overflow ");
if(buf[0] & 0x10)
state.dx=buf[1];
else
state.dx=buf[1];
if(buf[0] & 0x20)
state.dy=buf[2];
else state.dy=buf[2];
// printf(" buttons=%02X \tdx=%d \tdy=%d\n",state.buttons,state.dx,state.dy);
}//EoState
else {
printf("Error data received from ps2 mouse.\n");
break;
}
if(state.dx<0)
dx-=absolute(state.dx);
else dx += state.dx;
if(state.dy<0) dy-=absolute(state.dy);
else dy += state.dy;
printf("dx=%d \tdy=%d\n",dx,dy);
}//EoFor i
close(fd);
return 0;
}
int absolute (int x) {
return (x > 0 ? x : -x);
}
Utilisateur anonyme
15 oct. 2010 à 15:20
15 oct. 2010 à 15:20
Sur google en 5 secondes, j'ai trouvé ça:
http://ensizero.ensimag.fr/forum/viewtopic.php?f=10&t=145
ça peut peut-être être la bonne voie ^^
http://ensizero.ensimag.fr/forum/viewtopic.php?f=10&t=145
ça peut peut-être être la bonne voie ^^
15 oct. 2010 à 14:02
il y a des fichiers tty, tty0,tty1 et encore plus
alors comment savoir le fichier qui correspond au fichier mouse??
Modifié par swed le 15/10/2010 à 16:30
C'est souvent /dev/input/mouse0 ou /dev/input/mice, ou quelquechose comme ca...
15 oct. 2010 à 19:23
Merci
15 oct. 2010 à 20:59