Mdbus
mdbus permet d'explorer et d'interagir avec les objets exposés via DBus dans le framework openmoko
Sommaire |
Concepts
Usage
debian-gta02:~# mdbus -h Usage: /usr/bin/mdbus [-s] [-l] [ busname [ objectpath [ methodname [ parameters... ] ] ] ]
Liste des bus
Sans arguments, l'appel à mdbus liste les bus disponibles. Il faut spécifier l'option -s pour voir l'ensemble des bus. Sinon seuls les bus liés à la session graphique sont listés (si vous vous connectez par ssh vous ne disposez pas de session graphique voire la section Messages d'erreur) :
debian-gta02:~# mdbus :1.0 :1.1 :1.14 :1.2 :1.3 org.freedesktop.DBus org.freedesktop.Notifications org.xfce.FileManager org.xfce.Thunar debian-gta02:~# mdbus -s :1.0 :1.1 :1.2 :1.3 :1.4 :1.5 :1.50 :1.6 :1.8 :1.9 org.bluez org.freedesktop.DBus org.freedesktop.Gypsy org.freesmartphone.frameworkd org.freesmartphone.odeviced org.freesmartphone.oeventsd org.freesmartphone.ogpsd org.freesmartphone.ogsmd org.freesmartphone.ophoned org.freesmartphone.opreferencesd org.freesmartphone.ousaged org.pyneo.muxer
Objets d'un bus
En ajoutant le nom du bus à la commande on obtient la liste des objets qu'il expose :
debian-gta02:~# mdbus -s org.freesmartphone.frameworkd / /org /org/freedesktop /org/freedesktop/Gypsy /org/freesmartphone /org/freesmartphone/Device /org/freesmartphone/Device/Audio /org/freesmartphone/Device/Display /org/freesmartphone/Device/Display/pcf50633_bl /org/freesmartphone/Device/IdleNotifier /org/freesmartphone/Device/IdleNotifier/0 /org/freesmartphone/Device/Info /org/freesmartphone/Device/Input /org/freesmartphone/Device/LED /org/freesmartphone/Device/LED/gta02_aux_red /org/freesmartphone/Device/LED/gta02_power_blue /org/freesmartphone/Device/LED/gta02_power_orange /org/freesmartphone/Device/LED/neo1973_vibrator /org/freesmartphone/Device/PowerControl /org/freesmartphone/Device/PowerControl/Bluetooth /org/freesmartphone/Device/PowerControl/UsbHost /org/freesmartphone/Device/PowerControl/WiFi /org/freesmartphone/Device/PowerSupply /org/freesmartphone/Device/PowerSupply/apm /org/freesmartphone/Device/PowerSupply/bat /org/freesmartphone/Device/RealTimeClock /org/freesmartphone/Device/RealTimeClock/rtc0 /org/freesmartphone/Events /org/freesmartphone/Framework /org/freesmartphone/GSM /org/freesmartphone/GSM/Device /org/freesmartphone/GSM/Server /org/freesmartphone/Phone /org/freesmartphone/Preferences /org/freesmartphone/Preferences/phone /org/freesmartphone/Preferences/rules /org/freesmartphone/Time /org/freesmartphone/Time/Alarm /org/freesmartphone/Usage
Interface d'un objet
Il suffit d'ajouter le nom d'un objet pour obtenir une description de son interface (méthodes et signaux) :
debian-gta02:~# mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/Device/IdleNotifier/0 [METHOD] org.freedesktop.DBus.Introspectable.Introspect() [METHOD] org.freesmartphone.Device.IdleNotifier.GetState() [METHOD] org.freesmartphone.Device.IdleNotifier.GetTimeouts() [METHOD] org.freesmartphone.Device.IdleNotifier.SetState( s:state ) [METHOD] org.freesmartphone.Device.IdleNotifier.SetTimeout( s:state, i:timeout ) [SIGNAL] org.freesmartphone.Device.IdleNotifier.State( s:state )
Appel d'une méthode
Enfin, pour utiliser une méthode on l'ajoute à la ligne de commande, suivie de ses éventuels paramètres :
debian-gta02:~# mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/Device/IdleNotifier/0 org.freesmartphone.Device.IdleNotifier.GetState /org/freesmartphone/Device/IdleNotifier/0: GetState -> idle debian-gta02:~# mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/Device/IdleNotifier/0 org.freesmartphone.Device.IdleNotifier.SetState busy /org/freesmartphone/Device/IdleNotifier/0: SetState -> debian-gta02:~# mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/Device/IdleNotifier/0 org.freesmartphone.Device.IdleNotifier.GetState /org/freesmartphone/Device/IdleNotifier/0: GetState -> busy
Messages d'erreur
Simples messages de Warning peux important root@om-gta02:~# mdbus -s Using **pending_return in dbus_connection_send_with_reply_setup() without pending_setup is deprecated and strongly discouraged
Exemples
Envoyer un SMS
mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.SMS.SendMessage u\"+33600000000\" "C'est la fete mon gars\n On s'appelle demain\nSalut !" {}
Commencer un appel
mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.Call.Initiate u\"+33100000000\" u\"voice\"