[q, fsot] howto dbus
Michael Tansella
michael-tansella at gmx.de
Sat May 23 18:40:40 CEST 2009
On Friday 22 May 2009 20:10:23 arne anka wrote:
> that's maybe rather ot, but since i need it to program _with_ qt _for_ the
> freerunner ...
> short'n'sweet: has anybody a clear and usable tutorial howto write dbus
> apps with qt, notably registering an app to dbus and recieve dbus
> signals/events?
>
> say, as a plausible scenario, i want to subscribe to dbus and receive
> information about incoming calls (the same stuff zhone receives) ar make a
> call -- how do i go about?
>
> the stuff i found so far is to complex and has to little hands-on examples
> to use already existing infrastructure -- i am rather the type that
> embarks from small examples upon larger quests, not from reading lengthy
> texts and code which creates complete apps inclusive gui and all.
Hi,
here is a little DBus Gypsy example, I hope it helps. The correct methodes can
be found with mdbus.
Greets
Michael
___________________________________________________________________________
QDBusConnection GPSConnection = QDBusConnection::systemBus();
/// check connection
if (GPSConnection.isConnected())
qDebug() << "successfully connected to system bus \n";
else
qFatal("Failed to connect to session bus");
/// create a proxy object for method calls
QString ServiceBusName = "org.freedesktop.Gypsy";
QString ObjectPath = "/org/freedesktop/Gypsy" ;
QString MethodPath = "";
GPSInterface = new QDBusInterface( ServiceBusName,
ObjectPath,
MethodPath, //method path = "" search recursive in all subfolders
for the called method
QDBusConnection::systemBus() );
/// due to new frameworkd policies it is necessary to create interfaces with
the right MethodPath to
/// call functions (not necessary for connections/signals)
GPSRescourceInterface = new QDBusInterface( ServiceBusName,
ObjectPath,
"org.freesmartphone.Resource",
QDBusConnection::systemBus() );
GPSDeviceInterface = new QDBusInterface( ServiceBusName,
ObjectPath,
"org.freedesktop.Gypsy.Device",
QDBusConnection::systemBus() );
GPSOusagedInterface = new QDBusInterface( ServiceBusName,
"/org/freesmartphone/Usage",
"org.freesmartphone.Usage",
QDBusConnection::systemBus() );
connect(GPSInterface, SIGNAL( FixStatusChanged(int) ),this, SLOT(
handleFixStatusChanged(int) ) );
connect(GPSInterface, SIGNAL( TimeChanged(int) ),this, SLOT(
handleTimeChanged(int) ) );
connect(GPSInterface, SIGNAL( PositionChanged(int,int,double,double,double)
),this, SLOT( handlePositionChanged(int,int,double,double,double) ) );
connect(GPSInterface, SIGNAL( ConnectionStatusChanged(bool) ),this, SLOT(
handleConnectionStatusChanged(bool) ) );
connect(GPSInterface, SIGNAL( CourseChanged(int,int,double,double,double)
),this, SLOT( handleCourseChanged(int,int,double,double,double) ) );
connect(GPSInterface, SIGNAL( AccuracyChanged(int,double,double,double)
),this, SLOT( handleAccuracyChanged(int,double,double,double) ) );
More information about the community
mailing list