Détecter le branchement d'un périphérique ? - C - Programmation
Marsh Posté le 02-06-2005 à 20:11:01
non, utilise gnome-vfs, GnomeVFSMonitor c'est super facile à utiliser et ça fait exactement ce que tu veux.
Marsh Posté le 02-06-2005 à 20:11:53
et tu peux utiliser gnomevfs en python et sans doute d'autres langages de script, c'est sans doute plus facile.
Marsh Posté le 03-06-2005 à 17:08:31
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.
Marsh Posté le 03-06-2005 à 17:50:57
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
sinon tu as libsysfs et sans doute une api pour les événements d'hotplug
Marsh Posté le 03-06-2005 à 17:52:18
manatane a écrit : google -> http://developer.gnome.org/doc/API/gnome-vfs/ |
é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
Marsh Posté le 03-06-2005 à 18:31:39
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?
Marsh Posté le 03-06-2005 à 18:35:58
ben oui. et gnomevfs n'est pas gnome. gnomevfs utilise hal si dispo. et l'API de gnomevfs est nickel.
Marsh Posté le 03-06-2005 à 18:47:42
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...
Marsh Posté le 03-06-2005 à 18:47:48
Ah 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 :+)
Marsh Posté le 04-06-2005 à 14:54:16
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
Marsh Posté le 04-06-2005 à 15:46:28
Quelle distribution de Linux as tu?
Marsh Posté le 04-06-2005 à 17:27:03
je suis obligé d'utiliser du windows XP
Marsh Posté le 05-06-2005 à 19:56:45
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.
Marsh Posté le 06-06-2005 à 19:16:13
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 |
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 ??
Marsh Posté le 06-06-2005 à 20:58:46
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)
Marsh Posté le 06-06-2005 à 23:20:57
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 lol)à cause d'un tas de dependances .
Mais quand meme ca me parait bizarre qu'avec les packages que j'installe avec apt-get, je ne puisse pas programmer..!! Nan?
Marsh Posté le 06-06-2005 à 23:30:58
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à.
Marsh Posté le 13-06-2005 à 15:38:46
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
Marsh Posté le 13-06-2005 à 15:50:45
Code :
|
me dit pas que ça marche, c'est le code d'une appli
Marsh Posté le 13-06-2005 à 18:22:03
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
Marsh Posté le 13-06-2005 à 18:33:08
ben dans les source de gnomevfs tu dois avoir des exemples
Marsh Posté le 14-06-2005 à 16:17:33
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 !
Marsh Posté le 14-06-2005 à 20:25:25
La gtk nous file la main loop de recuperation des evenements.
Marsh Posté le 14-06-2005 à 21:27:20
benji_100 a écrit : Y a t il une erreur dans le code suivant ? |
|
Marsh Posté le 14-06-2005 à 22:20:58
tiens j'avais même pas fait attention à ça ... je vois mal comment ça peut segfaulter d'ailleurs
Marsh Posté le 14-06-2005 à 22:36:17
Mais nan ... j vous ait pas mis les includes c'est normal .....
C'est le gtk_init() qui seg fault
Marsh Posté le 14-06-2005 à 22:38:04
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 ...
Marsh Posté le 14-06-2005 à 22:47:51
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?
Marsh Posté le 02-06-2005 à 20:03:02
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 )
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
Pluche
Ben