можно приступать к написанию функции паринга. Как оно делается?
Вот это и надо узнать. В bluetoothctl это вкомпилено так (client/main.c 1392 - 1407):
static void cmd_pair(const char *arg)
{
GDBusProxy *proxy;
proxy = find_device(arg);
if (!proxy)
return;
if (g_dbus_proxy_method_call(proxy, "Pair", NULL, pair_reply,
NULL, NULL) == FALSE) {
rl_printf("Failed to pair\n");
return;
}
rl_printf("Attempting to pair with %s\n", arg);
}
в /lib/hci.c есть
hci.c:2505:int hci_read_simple_pairing_mode(int dd, uint8_t *mode, int to)
и
hci.c:2528:int hci_write_simple_pairing_mode(int dd, uint8_t mode, int to)
так же pair упоминается в src/adapter.c, src/device.c, src/gatt-client.c, src/gatt-database.c, src/main.c, src/storage.c, tools/btmgmt.c, tools/hciconfig.c, tools/hci-tester.c, tools/l2cap-tester.c, tools/mgmt-tester.c, tools/oobtest.c, tools/smp-tester.c, везде по разному и в каждом несколько тысяч строк.
адрес устройства?
Ты имеешь в виду $BDA? Вообще-то подставляется в <action>command $BDA &</action>, но если закладок несколько? Надо подумать