ubuntuusers.de

BlueZ Beispiel mit Vala

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

firefreak

Avatar von firefreak

Anmeldungsdatum:
8. September 2006

Beiträge: 110

Wohnort: Spittal an der Drau

Hi!
Ich probier' grad 'n bisschen mit Vala und BlueZ herum und habe dazu in der BlueZ-Doku ein Beispiel zum scannen nach erreichbaren Geräten gefunden. Wer's nicht kennt:

using GLib;
using BlueZ;

[DBusInterface (name = "org.bluez.Adapter")]
interface BlueZ.BlueZInterface;


public class BlueZDiscovery : Object {

        private DBus.Connection conn;
        private BlueZInterface bluez;
        public MainLoop loop { set; get; }

        public void run () {
                conn = DBus.Bus.get (DBus.BusType.SYSTEM);

                bluez = conn.get_object<BlueZInterface> ("org.bluez", "/org/bluez/hci0");

                // dbus signals
                bluez.RemoteDeviceFound += remote_device_found;
                bluez.DiscoveryStarted += discovery_started;
                bluez.DiscoveryCompleted += discovery_completed;
                bluez.RemoteNameUpdated += remote_name_updated;

                // async dbus call
                bluez.DiscoverDevices ();

        }

        [InstanceLast]
        private void remote_device_found (BlueZInterface bluez, string address_, uint class_, int rssi_) {
                message ("Signal: RemoteDeviceFound(%s, %d, %d)", address_, class_, rssi_);
        }

        private void discovery_started(BlueZInterface bluez) {
                message ("Signal: DiscoveryStarted()");
        }

        private void remote_name_updated(BlueZInterface bluez, string address_, string name_) {
                message ("Signal: RemoteNameUpdated(%s, %s)", address_, name_);
        }

        private void discovery_completed(BlueZInterface bluez) {
                message ("Signal: DiscoveryCompleted()");
                loop.quit();
        }

        static int main (string[] args) {
                MainLoop loop = new MainLoop (null, false);

                BlueZDiscovery test = new BlueZDiscovery ();
                test.loop = loop;
                test.run ();

                loop.run ();

                return 0;
        }
}

Leider funktioniert das Beispiel nicht, in der Konsole kommt folgende Ausgabe:

** (process:22353): CRITICAL **: blue_zdiscovery_discovery_started: assertion `IS_BLUE_ZDISCOVERY (self)' failed

** (process:22353): CRITICAL **: blue_zdiscovery_remote_device_found: assertion `IS_BLUE_ZDISCOVERY (self)' failed

** (process:22353): CRITICAL **: blue_zdiscovery_remote_name_updated: assertion `IS_BLUE_ZDISCOVERY (self)' failed

** (process:22353): CRITICAL **: blue_zdiscovery_discovery_completed: assertion `IS_BLUE_ZDISCOVERY (self)' failed

Kann mir leider keinen Reim drauf machen, vielleicht kennt sich jemand von euch damit aus. Meine Version von Vala ist 0.2.

firefreak

(Themenstarter)
Avatar von firefreak

Anmeldungsdatum:
8. September 2006

Beiträge: 110

Wohnort: Spittal an der Drau

Kennt sich hier wirklich niemand mit Vala bzw. GObject aus? ☹

mpathy

Avatar von mpathy

Anmeldungsdatum:
23. Dezember 2004

Beiträge: 284

Wohnort: Ingersheim

Vielleicht hilft dir diese Info, warum hier so wenig Leute sind die dir bei Vala helfen können.. 😉 http://forum.ubuntuusers.de/topic/einfache-programmiersprache/?highlight=vala#post-1017014

Antworten |