7

Microchip 定义了一种通过蓝牙低功耗 (BLE) 传输数据的方法,并将其称为 MLDP(Microchip 低功耗数据配置文件)。他们将其内置到他们的RN4020芯片中,甚至还有一个示例Android 应用程序

但是,我找不到任何关于协议如何工作或应用程序来源的规范。我希望能够使用它从 Android 和/或 iOS 调试嵌入式设备。

有谁知道这个协议或实现它的软件的规范?

4

1 回答 1

8

嗨,我遇到了同样的问题,但此时我有一个 MLDP 的工作代码,首先你需要转到模块网页:

http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020

然后,在文档和软件下,您可以找到:

  • Android Explorer 16 RN4020 PICtail 演示代码
  • 适用于 Android 的 MLDP 演示
  • RN4020 安卓应用演示

第一项是使用模块和来自 android 的 MLDP 的示例代码,它使用从 Android 4.3 (API 18) 实现的蓝牙 GATT 类

MLDP 概念与 BTL 的任何其他“GATT 特性”类似,但它是直接从 RF 发送到 UART,而无需微控制器请求特性值

在示例代码中,您将找到两个项目(一个带有服务(android 后台组件)),转到“RN4020 Die”项目,如果需要,将其导入您的工作区,但在 src/package name/ 文件夹下,您将找到文件'DeviceControlActivity.java'

该文件包含使用您选择的蓝牙设备对象并与之创建 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() + "\r\n");
writeCharacteristic(mDataMDLP);

最后,'findMldpGattService'函数太重要了,它将MLDP协议声明的UUID与设备上可用的UUID进行比较,然后初始化'mDataMDLP'对象,让你使用它

我希望我的回答对您和其他人有用。

于 2015-09-15T18:21:08.260 回答