我正在编写一个从BLE设备的光传感器接收值的应用程序。我正在试图确定我收到的是什么。我试图获得传感器提供的Lux值,但我担心它需要转换。我不知道这个传感器的测量单位是多少。例如,Android手机的单位是SI Lux。应该很容易,但对于这种传感器,规格并没有说明。
这是给我输出的代码:
case MSG_LIGHT:
characteristic = (BluetoothGattCharacteristic) msg.obj;
if (characteristic.getValue() == null) {
Log.w(TAG, "Error obtaining light value");
return;
}
int formatlgt1 = -1;
formatlgt1 = BluetoothGattCharacteristic.FORMAT_SINT8;
Log.i(LIGHT, "Light RawValue1 " + characteristic.getIntValue(formatlgt1, 0));
Log.i(LIGHT, "Light RawValue2 " + characteristic.getIntValue(formatlgt1, 1));
Log.w(LIGHT, "Light UUID " + characteristic.getUuid());
Log.w(LIGHT, "Light Stored Value " + characteristic.getValue());
Log.w(LIGHT, "Light Descriptors " + characteristic.getDescriptors());
Log.d(LIGHT, "Light Characteristic " + characteristic);
updateLightValues(characteristic);
break;
很简单,只需读取传感器,并在读取时给我传感器的各种输出。接下来是输出:
Light RawValue1 4
Light RawValue2 9
Light UUID 0000aa91-0000-1000-8000-00805f9b34fb
Light Stored Value [B@431d30b0
Light Descriptors [android.bluetooth.BluetoothGattDescriptor@4300e508, android.bluetooth.BluetoothGattDescriptor@4300eaf8]
Light Characteristic android.bluetooth.BluetoothGattCharacteristic@43002b10
我正在解释对此的测量是RawValues 1& 2但我记录了存储的内容以提供帮助。问题是StoredValue是[B @ 431d30b0,这超出了我的范围。根据制造商的描述,它指出第一个字节是地址00x03处的HILUX,第二个字节是地址00x04处的LOLUX,默认值为00:00。
我在这看什么,哪里出错了?我受伤的地方是我对正在阅读的内容的理解。似乎无法获得良好的搜索环境来了解它。
由于