小编Tal*_*uck的帖子

hci_get_route() 的目的是什么

通过查看代码示例,它看起来hci_get_route(NULL)通常用于获取本地计算机上蓝牙设备的设备 ID。很好,我能理解。我想,我的困惑仅在具有多个蓝牙设备且参数为非hci_get_route()NULL 的系统上才有意义。hci.c的源代码显示了以下实现:

int hci_get_route(bdaddr_t *bdaddr)
{
        int dev_id;

        dev_id = hci_for_each_dev(HCI_UP, __other_bdaddr,
                            (long) (bdaddr ? bdaddr : BDADDR_ANY)); 
        if (dev_id < 0)
                dev_id = hci_for_each_dev(HCI_UP, __same_bdaddr,
                                (long) (bdaddr ? bdaddr : BDADDR_ANY)); 

        return dev_id;
}
Run Code Online (Sandbox Code Playgroud)

我不会在这里复制hci_for_each_dev()__other_bdaddr()、 或的整个代码__same_bdaddr(),但简而言之,如果提供非 NULL ,该函数将首先尝试查找地址与所提供的地址bdaddr_t*匹配的设备,然后,仅失败后,选择地址匹配的设备。我回顾了引入这个函数的提交,它略有不同,但仍然使用:__other_bdaddr

int hci_get_route(bdaddr_t *bdaddr)
{
        if (bdaddr)
                return hci_for_each_dev(HCI_UP, __other_bdaddr, (long) bdaddr);
        else
                return hci_for_each_dev(HCI_UP, NULL, 0);
}
Run Code Online (Sandbox Code Playgroud)

即使这个初始版本的出现,也是有意为之,做同样的事情,它只是不包括使用__same_bdaddr.

鉴于没有这个函数的文档(我可以找到),似乎这个库的新手用户会期望使用参数bdaddr_t* …

c linux bluetooth bluez

6
推荐指数
0
解决办法
1404
查看次数

Coffeescript“@”变量

在 Coffeescript 中,当变量名称以“@”符号开头时,这意味着什么?例如,我一直在查看 hubot 源代码,就在我查看的前几行中,我发现

class Brain extends EventEmitter
  # Represents somewhat persistent storage for the robot. Extend this.
  #
  # Returns a new Brain with no external storage.
    constructor: (robot) ->
    @data =
      users:    { }
      _private: { }

    @autoSave = true

    robot.on "running", =>
      @resetSaveInterval 5
Run Code Online (Sandbox Code Playgroud)

我在其他地方也看到过,但没能猜出它的意思。

coffeescript

-1
推荐指数
1
解决办法
1083
查看次数

标签 统计

bluetooth ×1

bluez ×1

c ×1

coffeescript ×1

linux ×1