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

  FORUM HardWare.fr
  Programmation
  C

  [C] DBus et Hal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] DBus et Hal

n°1553117
ffomnislas​h
Posté le 03-05-2007 à 13:36:01  profilanswer
 

Bonjour  :hello:  
 
J'essaye depuis un moment communiquer avec Hal par l'intermédiaire de Dbus. Malheuresement je rencontre toujours le meme probleme:

Citation :

Error: The name org.freedesktop.Hal was not provided by any .service files


 
Cela est clair, d'ailleurs si j'utilise le code de la doc de dbus, je n'ai pas de Hal qui apparait dans la lsite des services.


 
Seulement j'ai des programmes utilisant DBus et Hal qui fonctionne, enfin d'apres le code je suppose qu'ils utilisent dbus et hal. Le probleme est que le code n'est pas facile a comprend car les types sont renommés ... Je trouve peu de doc pour Dbus et le langage C (et encore moins pour Dbus + Hal).
 
J'aimerais donc savoir si vous auriez des liens ou bien du source me permettant de comprendre ou je commet mon erreur.
 
Voici le code que j'utilise et qui me renvoie une erreur comme quoi Hal n'est pas present dans les service (il s'agit du code du tuto officiel légerement modifié, il n'est pas completement adapté a Hal je sais).
 

Code :
  1. #define E_HAL_SENDER "org.freedesktop.Hal"
  2. #define E_HAL_MANAGER_PATH "/org/freedesktop/Hal/Manager"
  3. #define E_HAL_MANAGER_INTERFACE "org.freedesktop.Hal.Manager"
  4. int main (int argc, char **argv)
  5. {
  6.         DBusGConnection *connection;
  7.         GError *error;
  8.         DBusGProxy *proxy;
  9.         char **name_list;
  10.         char **name_list_ptr;
  11.         g_type_init ();
  12.         error = NULL;
  13.         connection = dbus_g_bus_get (DBUS_BUS_SESSION,
  14.                         &error);
  15.         if (connection == NULL)
  16.         {
  17.                 g_printerr ("Failed to open connection to bus: %s\n",
  18.                                 error->message);
  19.                 g_error_free (error);
  20.                 exit (1);
  21.         }
  22.         /* Create a proxy object for the "bus driver" (name "org.freedesktop.DBus" ) */
  23.         proxy = dbus_g_proxy_new_for_name (connection,
  24.                         E_HAL_SENDER,
  25.                         E_HAL_MANAGER_PATH,
  26.                         E_HAL_MANAGER_INTERFACE);
  27.                         //DBUS_SERVICE_DBUS,
  28.                         //DBUS_PATH_DBUS,
  29.                         //DBUS_INTERFACE_DBUS);
  30.         /* Call ListNames method, wait for reply */
  31.         error = NULL;
  32.         if (!dbus_g_proxy_call (proxy, "ListNames", &error, G_TYPE_INVALID,
  33.                                 G_TYPE_STRV, &name_list, G_TYPE_INVALID))
  34.         {
  35.                 /* Just do demonstrate remote exceptions versus regular GError */
  36.                 if (error->domain == DBUS_GERROR && error->code == DBUS_GERROR_REMOTE_EXCEPTION)
  37.                         g_printerr ("Caught remote method exception %s: %s",
  38.                                         dbus_g_error_get_name (error),
  39.                                         error->message);
  40.                 else
  41.                         g_printerr ("Error: %s\n", error->message);
  42.                 g_error_free (error);
  43.                 return 0;
  44.         }
  45.         /* Print the results */
  46.         g_print ("Names on the message bus:\n" );
  47.         for (name_list_ptr = name_list; *name_list_ptr; name_list_ptr++)
  48.         {
  49.                 g_print ("  %s\n", *name_list_ptr);
  50.         }
  51.         g_strfreev (name_list);
  52.         g_object_unref (proxy);
  53.         return 1;
  54. }


 
 
merci d'avance ;)

mood
Publicité
Posté le 03-05-2007 à 13:36:01  profilanswer
 

n°1553392
ffomnislas​h
Posté le 03-05-2007 à 19:59:49  profilanswer
 

J'ai fini par trouver, en faite Hal se trouve sur le dbus systeme et non le dbus session ^^

n°1555590
Trap D
Posté le 04-05-2007 à 23:06:15  profilanswer
 

ffomnislash a écrit :

J'ai fini par trouver, en faite Hal se trouve sur le dbus systeme et non le dbus session ^^

Ah bon, je croyais qu'il était dans le Discovery  :whistle:  


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

  [C] DBus et Hal

 

Sujets relatifs
[C#] [Résolu] Comment communiquer avec une dll c++[C] Des accolades "just pour le fun" ?
programmation directX, Device driver HAL 
Plus de sujets relatifs à : [C] DBus et Hal


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)