Microchip定义了一种通过蓝牙低能量(BLE(传输数据的方式,并称之为MLDP(Microchip低能量数据配置文件(。他们将其内置在RN4020芯片中,甚至还有一个Android应用程序示例。
然而,我找不到任何关于协议如何工作的规范或应用程序的来源。我希望能够使用它从Android和/或iOS调试嵌入式设备。
有人知道这个协议的规范或实现它的软件吗?
嗨,我也遇到了同样的问题,但现在我有一个MLDP的工作代码,首先你需要转到模块网页:
http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020
然后,在Documentation&你可以找到的软件:
- 安卓浏览器16 RN4020 PICtail演示代码
- 适用于Android的MLDP演示
- RN4020 Android应用程序演示
第一项是一个示例代码,用于处理来自android的模块和MLDP,它使用从android 4.3(API 18(实现的蓝牙GATT类
MLDP概念类似于BTL的任何其他"GATT特性",但它是直接从RF发送到UART的,而无需微控制器请求特性值
在示例代码中,你会发现两个项目(一个带有服务(android后台组件((,转到"RN4020 Die"项目,如果你愿意,将其导入到你的工作区,但在src/package-name/文件夹下,你会找到文件"DeviceControlActivity.java">
该文件包含使用de BluetoothDevice对象的主代码,您选择并创建与它的GATT连接,然后您将看到写入和读取特性、检查和/或使用代码的某些部分等功能,您将能够开始使用SPP 等模块
我的代码中的一些部分用于快速理解和实现:
mBluetoothGatt = mDevice.connectGatt(this, false, mGattCallback);//To connect to mDevice
mGattCallBack与微芯片的样本代码相同,但更改为:
@Override
public void onCharacteristicChanged(BluetoothGatt gatt,BluetoothGattCharacteristic characteristic) {
String dataValue = characteristic.getStringValue(0);//get modified data
RX.append(dataValue);//append it on my RX textview
}
通过这种修改,当特性发生变化时,您将收到一个"事件",在这种情况下,每次微控制器发送数据
你可以使用提供的函数"writeCharacteristic"来发送数据,你可以这样使用它:
mDataMDLP.setValue("R=>" + TX.getText() + "rn");
writeCharacteristic(mDataMDLP);
最后,函数"findMldpGattService"太重要了,它会将MLDP协议的声明UUID与设备上可用的UUID进行比较,然后初始化"mDataMDLP"对象,允许您使用它
我希望我的回答对你和其他人有用。