0

我正在编写一个应用程序,它从 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。

我在这里看什么,我哪里出错了?我受伤的地方是我对所读内容的理解。似乎无法获得良好的搜索上下文来了解它。

谢谢

4

0 回答 0