你好,
我正在为现有的Linux物联网集线器应用程序添加对DA14585(库存多传感器固件版本)的支持。我一直在阅读文档“DA14585物联网多传感器开发工具包软件参考应用”,但仍然有一些问题。雷竞技安卓下载简而言之,我尝试使用linux的“bluetoothctl”应用程序让温度通知工作,但没有运气。在论坛的研究中,尽管看起来可能有一些linux bluez软件的bug(或者至少过去可能有过)。另外,我可能只是向传感器发送了错误的命令(完全有可能)。无论如何,就像它目前的情况一样,无论我做什么,我似乎都不会从我启用它们的任何特征(包括“wrbl_dws_control_reply_char”,我只能读取)得到通知。无论如何,下面是我的问题
1)仅仅启用温度通知,我从医生和做一些研究猜测,我将-
启用“wrbl_dws_control_reply_char”的通知
写一个配置字符串到"wrbl_dws_control_char"来启用温度传感器
(我发送“0x0A 0x08 0x03 0x06 0x03 0x06 0x06 0x00 0x02 0x0A 0x00 0x01 0x00 0x00 0x00 0x05”)
C)启用“wrbl_dws_temp_char”的通知
D)可能发送一个“start”命令(0x01)到“wrbl_dws_control_char”?
-我尝试过很多组合,但都没有成功
2)在第39页的“DWSv2特征”表中,“wrbl_dws_temp_char”的描述字段读作“温度报告”。遗留DWS兼容性,没有使用。”这是否意味着这个特性不应该被使用?我们是否只使用“wrbl_dws_multi_sens_char”来代替?
启动命令(0x01到“wrbl_dws_control_char”)具体做什么?在第71页,它读到“修改后的设置将应用于下一个START命令之后”。这是否意味着在每个人写完“wrbl_dws_control_char”之后,您需要使用一个start命令?这似乎不太可能,但我找不到其他描述。
不管怎样,很抱歉问了这么长时间的问题,希望这能让我继续下去,不管怎样,我都知道我做错了什么,或者bluez是否还有问题。
谢谢,塔尔

嗨omniot,
谢谢你的帖子。让我查一下您的问题,然后尽快给您答复。
谢谢,PM_Dialog
太好了,谢谢你。如果你需要任何额外的信息来澄清我的问题,请告诉我……
嗨omniot,
请告诉我,只有在使用linux bluez软件的时候才会启用温度通知。你试过其他应用程序吗?你试过物联网多传感器移动应用程序吗?也许,这可能是布鲁斯的问题,但让我进一步检查。
谢谢,PM_Dialog
对不起,我想我没说清楚……我并不是说传感器有什么问题,我很确定它很好。从开发人员的角度来看,最主要的问题是,需要向哪些特征发送什么样的命令序列,才能让传感器开始发送温度通知?只是非常基本的,假设股票传感器/固件已经被打开和连接,我需要做什么下一步?从我最初的帖子中,我尝试的是-
启用“wrbl_dws_control_reply_char”的通知
2)写一个配置字符串到"wrbl_dws_control_char",以启用温度传感器
(我发送“0x0A 0x08 0x03 0x06 0x03 0x06 0x06 0x00 0x02 0x0A 0x00 0x01 0x00 0x00 0x00 0x05”)
启用“wrbl_dws_temp_char”的通知
4)可能发送一个“开始”命令(0x01)到“wrbl_dws_control_char”?
而且它没有工作(没有收到任何通知或回复)。这是否有效,或者我是否遗漏了一些步骤?如果我知道它应该是可行的,那么我就必须假设它是一个布鲁斯问题,否则希望你能给我一个可行的序列。
再次感谢!
我想我应该回过头来,回答可能出现的其他人的一些问题。首先,无论什么原因,bluez似乎有一个问题与传感器谈判更大的mtu的比旧的ble max。我不确定这是bluez bug还是传感器做错了什么,但我有两个来自不同制造商的新传感器,显示了相同的行为。无论如何,由于新的bluez“AcquireNotify”dbus接口返回mtu,我只是随机尝试了一下(与普通的StartNotify接口相反),并开始获得通知。这就是我没有得到数据的部分原因。此外,根据我的第二个问题,您只能通过“wrbl_dws_multi_sens_char”特征(或者至少这只对我有效)获取数据。因此,不应该使用标有“遗留DWS兼容性,未使用”的条目。它们可能也不应该被记录(或者至少更好地解释)。至于正确的顺序,我仍然不确定,但从试验和错误来看,您似乎首先启用了wrbl_dws_control_reply_char和wrbl_dws_multi_sens_char特征的通知。然后向wrbl_dws_control_char写入命令类型“0x0A”,以配置您想要启用/接收的任何传感器,然后写入“0x01”START命令(也写入wrbl_dws_control_char)。
再次,我不确定这是完全正确的,但它似乎是工作,所以它是一个起点,任何人使用bluez/d-bus api/库。如果有人能补充、更正或澄清什么,那就太好了。到目前为止,所有这些都只是通过反复试验(实际上是很多错误)……
嗨omniot,
谢谢你的反馈和指示。
谢谢,PM_Dialog
好吧,再一次,对于其他遇到这个的人。在使用DA14585的bluez bluetoothctl交互式行命令中有一些奇怪的行为,但令人高兴的是,您毕竟不必使用AcquireNotify接口。当你使用line命令时,如果你使用"notify on"来启用通知,然后做写来开始得到通知,你不会得到任何东西,除非…在最后一个写命令之后使用“选择特征”命令,并选择需要通知的特征。然后奇迹般地开始了。因此,一个错误可能是在行命令或一些他们不期望/支持的传感器行为。无论如何,好消息是,一旦我计算出我需要发送的命令,在基于bluez的应用程序中,一切都按照预期工作。我的应用程序使用所有相同的d-bus调用,bluetoothctl不确定为什么它工作,但它确实这样做了…再次强调,我只是想问问以后还有谁会有类似的问题。