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) ) );

_______________________________________________
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to