Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
727 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Détecter le branchement d'un périphérique ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Détecter le branchement d'un périphérique ?

n°1106028
benji_100
Posté le 02-06-2005 à 20:03:02  profilanswer
 

Coucou les gens :)
 
Je voudrai savoir comment vous vous y prendriez pour lancer une commande quelconque au branchement d'un peripherique ? (au hasard un disque dur firewire  :sweat:  )
 
Au debut je voulais passer par un script shell avec udev et/ou hotplug mais sans succes... Alors je passe par C/C++.
Y a t il une librairie qui gere les peripheriques qui soit deja créé et dispo ?
 
Faites moi part de vos lumieres  :sol:  
 
Pluche
Ben

mood
Publicité
Posté le 02-06-2005 à 20:03:02  profilanswer
 

n°1106030
deather2
Posté le 02-06-2005 à 20:03:46  profilanswer
 

ioctl() ?

n°1106039
Taz
bisounours-codeur
Posté le 02-06-2005 à 20:11:01  profilanswer
 

non, utilise gnome-vfs, GnomeVFSMonitor c'est super facile à utiliser et ça fait exactement ce que tu veux.

n°1106041
Taz
bisounours-codeur
Posté le 02-06-2005 à 20:11:53  profilanswer
 

et tu peux utiliser gnomevfs en python et sans doute d'autres langages de script, c'est sans doute plus facile.

n°1106264
blastman
just me !
Posté le 02-06-2005 à 22:38:05  profilanswer
 

python roxor


---------------
http://www.blastmanu.info
n°1106289
benji_100
Posté le 02-06-2005 à 23:08:06  profilanswer
 

bouh python :P

n°1107330
benji_100
Posté le 03-06-2005 à 17:08:31  profilanswer
 

Bon ... j'ai installé gnomevfs mais je ne vois pas du tout comment l'intégrer dans un programme... Oo  :??:  
 
Me mettre au python, je veux bien mais pourquoi ? gnomevfs est en python ? On peux inclure des fichiers de gnomevfs ?
 
S'il vous plaît aidez moi
 
Ben.

n°1107448
manatane
En vous remerciant, bonsoir
Posté le 03-06-2005 à 17:50:57  profilanswer
 

google -> http://developer.gnome.org/doc/API/gnome-vfs/
-> http://developer.gnome.org/doc/API [...] nitor.html
après bon ben faut bien avouer que comme çà c'est pas super clair...
 
m'enfin on voit quand meme que c'est du C :o  
 
sinon tu as libsysfs et sans doute une api pour les événements d'hotplug

n°1107449
Taz
bisounours-codeur
Posté le 03-06-2005 à 17:51:16  profilanswer
 

c'est une blague ?

n°1107452
Taz
bisounours-codeur
Posté le 03-06-2005 à 17:52:18  profilanswer
 

manatane a écrit :

google -> http://developer.gnome.org/doc/API/gnome-vfs/
-> http://developer.gnome.org/doc/API [...] nitor.html
après bon ben faut bien avouer que comme çà c'est pas super clair...
 
m'enfin on voit quand meme que c'est du C :o  
 
sinon tu as libsysfs et sans doute une api pour les événements d'hotplug


évidemment si tu lisais les liens que tu donnes ...
 
http://developer.gnome.org/doc/API [...] index.html
http://developer.gnome.org/doc/API [...] nitor.html

mood
Publicité
Posté le 03-06-2005 à 17:52:18  profilanswer
 

n°1107514
manatane
En vous remerciant, bonsoir
Posté le 03-06-2005 à 18:31:39  profilanswer
 

pourquoi une blague? c'est le premier lien http://www.google.fr/search?hl=fr& [...] ogle&meta=
Et puis on n'est pas obligé d'installer gnome pour écouter les événements hotplug. Genre en faisant pareil que gnome-volume-manager qui ecoute les événements de hal via son api?

n°1107519
Taz
bisounours-codeur
Posté le 03-06-2005 à 18:35:58  profilanswer
 

ben oui. et gnomevfs n'est pas gnome. gnomevfs utilise hal si dispo. et l'API de gnomevfs est nickel.

n°1107536
benji_100
Posté le 03-06-2005 à 18:47:42  profilanswer
 

Ok !
La doc de vfs2.0 est beaucoup mieux ^^
 
Merci Taz
 
Une derniere (?) question cependant :
J'ai installé gnome-vfs-2.0 avec ma debian, mais je n'arrive pas a trouver ou il a mis les fichiers .h ... Rien dans /usr/include ou dans le coin !
 
C'est fou ca...

n°1107537
manatane
En vous remerciant, bonsoir
Posté le 03-06-2005 à 18:47:48  profilanswer
 

Ah :D mes 2 neurones pensaient qu'il fallait installer le branle-bas de combat pour avoir accès à cette api (sur laquelle je vais me pencher merci :+)

n°1108075
patk7
Posté le 04-06-2005 à 14:54:16  profilanswer
 

bonjour à tous,
 
j'ai le même problème à régler pour la detection de peripheriques de stockage,  
qq peut-il m'expliquer simplement comment installer et utiliser gnome-vfs-2.0
merci d'avance


---------------
Developpement vôtre
n°1108091
benji_100
Posté le 04-06-2005 à 15:46:28  profilanswer
 

Quelle distribution de Linux as tu?


Message édité par benji_100 le 04-06-2005 à 15:46:58
n°1108133
patk7
Posté le 04-06-2005 à 17:27:03  profilanswer
 

je suis obligé d'utiliser du windows XP


---------------
Developpement vôtre
n°1108233
Taz
bisounours-codeur
Posté le 04-06-2005 à 20:25:43  profilanswer
 

donc
--> []

n°1108937
benji_100
Posté le 05-06-2005 à 19:56:45  profilanswer
 

Ah oué ... Windows XP tu te fais du mal...
Enfin bon si t as pas le choix...
Perso je penses que c 'est mort pour toi à moins que :
Tu trouve les sources, et que gnomevfs2 n'ait pas besoin d'autres packages linux... Je ne sais pas si c'est possible.

n°1110182
benji_100
Posté le 06-06-2005 à 19:16:13  profilanswer
 

Citation :

checking for glib-2.0 >= 2.0.0 gmodule-2.0 >= 2.0.0 gthread-2.0 >= 2.0.0 libxml-2.0 >= 2.2.8... Package glib-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `glib-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'glib-2.0' found
configure: error: Library requirements (glib-2.0 >= 2.0.0 gmodule-2.0 >= 2.0.0 gthread-2.0 >= 2.0.0 libxml-2.0 >= 2.2.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
user:/rep/gnome-vfs-2.0.4# echo $PKG_CONFIG_PATH
PKG_CONFIG_PATH: Variable pas définie.


 
Voila ce que j'ai en essayant d'installer la libgnome-vfs-2.0 ...
Evidement j'ai bien glib ! Pourquoi il ne le trouve pas ??


Message édité par benji_100 le 06-06-2005 à 19:17:06
n°1110299
manatane
En vous remerciant, bonsoir
Posté le 06-06-2005 à 20:58:46  profilanswer
 

et pourquoi tu compiles? tu peux pas prendre le paquet de ta distrib? (c'est mieux pour la cohérence de ton système en plus)

n°1110430
benji_100
Posté le 06-06-2005 à 23:20:57  profilanswer
 

le .deb ne fournit pas les .h !!!(ou alors j suis trop nul et j les ai pas trouvé... ce qui est possible aussi)
Bref les archives ont les .h mais j arrive pas a les compiler... (ce qui prouve aussi que je suis trop nul  :cry: lol)à cause d'un tas de dependances  :pfff: .
 
Mais quand meme ca me parait bizarre qu'avec les packages que j'installe avec apt-get, je ne puisse pas programmer..!! Nan?

n°1110450
manatane
En vous remerciant, bonsoir
Posté le 06-06-2005 à 23:30:58  profilanswer
 

tu dois avoir un deb libgnome-vfs-dev ou un truc comme çà (j'ai une Ubuntu) ayant pour description "Libraries and include files for developing GNOME VFS applications" quand tu fais un apt-cache search libgnome-vfs -> apt-get install libgnome-vfs-dev et voilà.

n°1110503
Taz
bisounours-codeur
Posté le 07-06-2005 à 00:57:28  profilanswer
 

libgnomevfs2-dev

n°1118446
benji_100
Posté le 13-06-2005 à 15:38:46  profilanswer
 

Ok alors la lib est tres bien :)
 
Par contre je n'arrive pas a comprendre comment diable utiliser les signaux "volume-mounted" ou "volume-unmounted" associés à des fonctions du type :
void user_function (GnomeVFSVolumeMonitor *vfsvolumemonitor,
                    GnomeVFSVolume *arg1,
                    gpointer user_data);
 
La doc est : http://developer.gnome.org/doc/API [...] nitor.html .
 
Je penses que cela doit avoir un rapport avec les callbacks, mais ils ne le disent pas explicitement... et je suppose qu'il ne suffit pas que je créé ma user_function pour qu'elle soit appellée directement au branchement de mon peripherique !
 
Si quelqu'un s'y connait un peu avec cette lib j veu bien un peu de sa lumiere car la doc m'aide pas du tout :/
 
Merci


Message édité par benji_100 le 13-06-2005 à 15:42:45
n°1118471
Taz
bisounours-codeur
Posté le 13-06-2005 à 15:50:45  profilanswer
 

Code :
  1. static void
  2. cb_volume_mounted_or_unmounted(GnomeVFSVolumeMonitor *vfsvolumemonitor,
  3.                             GnomeVFSVolume *vol,
  4.                             gpointer procdata)
  5. {
  6.         // blah
  7. }
  8. static void
  9. init_volume_monitor(ProcData *procdata)
  10. {
  11.         GnomeVFSVolumeMonitor *mon;
  12.         mon = gnome_vfs_get_volume_monitor();
  13.         g_signal_connect(mon, "volume_mounted",
  14.                          G_CALLBACK(cb_volume_mounted_or_unmounted), NULL);
  15.         g_signal_connect(mon, "volume_unmounted",
  16.                          G_CALLBACK(cb_volume_mounted_or_unmounted), NULL);
  17. }


 
me dit pas que ça marche, c'est le code d'une appli

n°1118657
benji_100
Posté le 13-06-2005 à 18:22:03  profilanswer
 

Ohh ca m'a l'air tres interressant mais je voudrai bien avoir le reste ! (surement la mainloop de glib qui me pose pb)
Est il possible de recuperer ce code sur le net ? ou sinon de quelle appli s'agit il ? (et de quel fichier par la meme occasion?)
 
En tout cas merci Taz, a chaque fois que tu me repond tu me debloque enormement... merci
 
EDIT : Oui je mexplique un peu qd meme :
gnomeVFS semble proposer de mettre en place ses propre callbacks MAIS il ne propose pas (ou alors j suis aveugle car j ai lue la doc 40 fois) de boucle de récupération d'évènements...
Il utilise donc surement celle de GLib je penses. Mais le pb est que Glib ne semble pas actualiser le gnomeVolumeMonitor tout seul, et que donc le gnomeVolumeMonitor ne peut pas envoyer son petit signal à la chtite fonction....
Je penses qu'avec le code complet je pourrai voir comment lier les 2 :) enfin j espere, ca commence a faire un bail que je suis dessus  :sweat:


Message édité par benji_100 le 13-06-2005 à 18:35:18
n°1118666
Taz
bisounours-codeur
Posté le 13-06-2005 à 18:33:08  profilanswer
 

ben dans les source de gnomevfs tu dois avoir des exemples

n°1119712
benji_100
Posté le 14-06-2005 à 16:17:33  profilanswer
 

Y a t il une erreur dans le code suivant ?
 
int main (int argc, char *argv[])
{
    gtk_init (&argc, &argv);
     
    cout<<"coucou"<<endl;
     
    return 0;
}
 
Ca m'affiche pas coucou mais une erreur de segmentation....!
J'ai essayé de mettre des arguments inutiles ou autres mais rien... pourtant ca compile nikel !

n°1119727
Taz
bisounours-codeur
Posté le 14-06-2005 à 16:24:16  profilanswer
 

ça vient faire quoi gtk la dedans ?

n°1119990
benji_100
Posté le 14-06-2005 à 20:25:25  profilanswer
 

La gtk nous file la main loop de recuperation des evenements.

n°1119999
Taz
bisounours-codeur
Posté le 14-06-2005 à 20:30:18  profilanswer
 

gtk file rien. gtk utilise la main loop de la glib.

n°1120050
Emmanuel D​elahaye
C is a sharp tool
Posté le 14-06-2005 à 21:27:20  profilanswer
 

benji_100 a écrit :

Y a t il une erreur dans le code suivant ?
 
int main (int argc, char *argv[])
{
    gtk_init (&argc, &argv);
     
    cout<<"coucou"<<endl;
     
    return 0;
}
pourtant ca compile nikel !


:lol:


main.c: In function `main_':
main.c:13: warning: implicit declaration of function `gtk_init'
 
main.c:15: `cout' undeclared (first use in this function)
main.c:15: (Each undeclared identifier is reported only once
main.c:15: for each function it appears in.)
main.c:15: `endl' undeclared (first use in this function)


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1120093
Taz
bisounours-codeur
Posté le 14-06-2005 à 22:20:58  profilanswer
 

tiens j'avais même pas fait attention à ça ... je vois mal comment ça peut segfaulter d'ailleurs :)

n°1120098
benji_100
Posté le 14-06-2005 à 22:36:17  profilanswer
 

Mais nan ... j vous ait pas mis les includes c'est normal .....
 
C'est le gtk_init() qui seg fault


Message édité par benji_100 le 14-06-2005 à 22:36:43
n°1120100
benji_100
Posté le 14-06-2005 à 22:38:04  profilanswer
 

Taz a écrit :

gtk file rien. gtk utilise la main loop de la glib.


 
Bah oué oké alors c'est pour avoir la main loop de glib, ca revient au meme... C'est pour avoir une boucle de recupération d evts ...

n°1120113
benji_100
Posté le 14-06-2005 à 22:47:51  profilanswer
 

J'ai fait un programme a partir de gnomeVFS qui me dit simplement si il detecte mon HDD (il va regarder à chaque minute dans mon gnomeVFS-volume-monitor si il le trouve).
 
Voici les tests que j'ai alors fait :
-Je lance mon programme sans HDD : il me dit qu'il n'y en a pas.
-Je relance mon programme avec mon HDD de branché : il le detecte.
-Je lance mon programme sans HDD ; je lance le programme qui ne detecte rien ; je branche a chaud mon HDD (qui se monte tout seul) ; et mon programme ne detecte toujours rien => Les infos du gnomeVFSVolumeMonitor ne s'actualisent pas.  
 
Voila le vrai pb...
De la j'ai pensé que cela allait conjointement avec une boucle plus bas niveau de glib (ou gtk) qui recupererait ces evenements... C'est idiot?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Détecter le branchement d'un périphérique ?

 

Sujets relatifs
printwriter et socket detecter deconnectionUn script qui se lance au branchement d'un peripherique ?
Comment detecter une case cochée en dans une page JSPjRadioButton JComboBox detecter si cocher
Clavier virtuel par périphérique externe[MySql] Detecter des doublons.
Windows - Détecter les navigateursComment detecter l'inactivité d'un ordinateur
[ASP+VB]Dans IE : Detecter clic sur page prec. ?? 
Plus de sujets relatifs à : Détecter le branchement d'un périphérique ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR