Я пишу драйвер bluetooth для Intel Edison. Программное обеспечение для платформ доступно последним, и я разрабатываю IDE на основе Eclipse. Номер версии Bluez в этом выпуске edison составляет 5.37.
Я проектирую систему, которая должна отвечать следующим требованиям:
- Сканирование для устройств Bluetooth поблизости. [X]
- Обнаружение сенсорных устройств на основе имени и MAC-адреса. [X]
- Пара и подключите устройства датчиков автоматически. []
Последний элемент - проблема, поскольку я могу обнаружить сенсорные устройства, но я не могу их соединить с помощью интерфейса bluez5. До сих пор я пытался использовать интерфейс D-BUS, но он не работает, так как я продолжаю получать следующее сообщение об ошибке:
Метод "FindAdapter" с сигнатурой "s" на интерфейсе "org.bluez.Manager" не существует
Здесь представлен код. Обратите внимание:
- DBusConnection * conn → DBUS_BUS_SYSTEM
- const char * adapter → "hci0".
код:
DBusMessage *msg, *reply;
DBusError err;
const char *reply_path;
char *path;
msg = dbus_message_new_method_call("org.bluez", "/","org.bluez.Manager", "FindAdapter");
dbus_message_append_args(msg, DBUS_TYPE_STRING, &adapter,DBUS_TYPE_INVALID);
dbus_error_init(&err);
reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err);
dbus_message_unref(msg);
Любые идеи?