Projektarbeit Bluetooth

Alles rund um die Programmierung mit Qt
Antworten
DonDom
Beiträge: 5
Registriert: 6. September 2010 08:20

Projektarbeit Bluetooth

Beitrag von DonDom »

Guten Morgen,
ich möchte erstmal ein kleines Programm schreiben, dass Bluetoothgeräte endeckt und nach einander auflisten kann. Hierzu habe ich mir zuerst die Bluez-Library angesehen. Jedoch wurde mir empfohlen die QT-Bindings zu verwenden. Ok soweit so gut. Also habe ich mir mal Qt + Qt-Creator auf meinem System installiert. Mit qdbusviewer habe ich die Devices überprüft und mir die angebotenen Funktionen angsehen.

Danach habe ich mit Hilfe der Examples folgenden Code geschrieben

Code: Alles auswählen

#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtCore/QStringList>
#include <QtDBus/QtDBus>
#include <QDBusMessage>
#include <QDBusInterface>
#include <QObject>
....
void method1()
{
    QDBusConnection bus = QDBusConnection::systemBus();
    QDBusInterface dbus_iface("org.bluez", "/org/bluez/hci0","org.bluez.Adapter", bus);



    QDBusMessage reply =  dbus_iface.call("DiscoverDevices");
    if (reply.type() == QDBusMessage::ErrorMessage)
        qDebug() << reply.errorMessage();
    else {

    }
}
Weder beim Compilen noch bei der Ausführung werden Fehler angezeigt, allerdings habe ich überprüft ob beim Bluetooth-Device überhaupt ein Signal ankommt, dies ist zwar der Fall allerdings wird die Funktion sofort wieder abgebrochen.
Hierzu ein Auszug aus der shell auf der ich hcidump ausgeführt habe:

debian:/home/virtual# hcidump -X -V
HCI sniffer - Bluetooth packet analyzer ver 1.42
device: hci0 snap_len: 1028 filter: 0xffffffff
< HCI Command: Inquiry (0x01|0x0001) plen 5
lap 0x9e8b33 len 8 num 0
> HCI Event: Command Status (0x0f) plen 4
Inquiry (0x01|0x0001) status 0x00 ncmd 1
< HCI Command: Inquiry Cancel (0x01|0x0002) plen 0
> HCI Event: Command Complete (0x0e) plen 4
Inquiry Cancel (0x01|0x0002) ncmd 1
status 0x00


Kann jemand meinen Fehler endecken oder hat mir einer einen Code-Schnipsel den ich verwenden kann?

Was für mich auch noch ganz interessant wäre, ist wie ich die SIGNALE die der Funktion "DiscoverDevices" abfangen und im Programm verwenden kann. Mir würd ein Objet mit Mac-Adresse,RSSI und Devicename erstmal reichen.

Danke im voraus.
MFG
DonDom
DonDom
Beiträge: 5
Registriert: 6. September 2010 08:20

Beitrag von DonDom »

hm, kann mir keiner helfen :?: :?: :?:
thorstenhirsch
Beiträge: 9
Registriert: 23. September 2009 16:46

Beitrag von thorstenhirsch »

Hi Don,

vielleicht kann dir in #qt auf irc.freenode.net jemand weiterhelfen. Oder in #dbus.
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

Hey, ich würde dir gerne helfen, finde das Thema auch echt interessant, aber ich habe mich noch nie mit dem Thema beschäftigt und bin bei deiner Frage echt ahnungslos. Ich würde meine Frage wie vorgeschlagen mal im IRC stellen...
DonDom
Beiträge: 5
Registriert: 6. September 2010 08:20

Beitrag von DonDom »

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Um dann noch was produktives einzubringen:
Schau dir mal solid an, das kann schon mit bluetooth umgehen. Entweder direkt verwenden, oder spicken, wie die das machen.
DonDom
Beiträge: 5
Registriert: 6. September 2010 08:20

Beitrag von DonDom »

danke für die antwort, aber könntest du etwas präziser sagen was du mit solid meinst?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

DonDom
Beiträge: 5
Registriert: 6. September 2010 08:20

Beitrag von DonDom »

hm danke. aber damit kann ich nichts anfangen, da keines der turoials angezeigt wird. Komisch gibts sonst irgendwelche alternativen?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Scheinbar sind die Tutorials an andere Stelle gewandert.
Hier kommst du jedenfalls weiter:
http://techbase.kde.org/Development/Tut ... _Tutorials
Tutorial-links gehen dann hier hin:
http://websvn.kde.org/trunk/KDE/kdeexamples/solid/

// edir:
Jetzt wo ich mir den letzten Link genauer anschau erinner ich mich :D
Vor ein paar Monaten hat man sich bei kde entschlossen, die ganzen Examles usw. zusammen zu ziehen, das kdeexamples-modul war geboren. Natürlich betrifft das jetzt auch solid.
Antworten