1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-23 16:53:04 +02:00

accepts only one data of the same content

This commit is contained in:
OliE
2017-10-03 15:17:21 +02:00
parent ce7ed9852d
commit 77e3a4c7d1

View File

@@ -33,6 +33,8 @@ public class BluetoothExcelvanCF369BLE extends BluetoothCommunication {
private final UUID WEIGHT_CUSTOM0_CHARACTERISTIC = UUID.fromString("0000FFF4-0000-1000-8000-00805f9b34fb"); private final UUID WEIGHT_CUSTOM0_CHARACTERISTIC = UUID.fromString("0000FFF4-0000-1000-8000-00805f9b34fb");
private final UUID WEIGHT_MEASUREMENT_CONFIG = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"); private final UUID WEIGHT_MEASUREMENT_CONFIG = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
private byte[] receivedData = new byte[]{};
public BluetoothExcelvanCF369BLE(Context context) { public BluetoothExcelvanCF369BLE(Context context) {
super(context); super(context);
} }
@@ -86,10 +88,6 @@ public class BluetoothExcelvanCF369BLE extends BluetoothCommunication {
case 1: case 1:
setNotificationOn(WEIGHT_MEASUREMENT_SERVICE, WEIGHT_CUSTOM0_CHARACTERISTIC, WEIGHT_MEASUREMENT_CONFIG); setNotificationOn(WEIGHT_MEASUREMENT_SERVICE, WEIGHT_CUSTOM0_CHARACTERISTIC, WEIGHT_MEASUREMENT_CONFIG);
break; break;
case 2:
byte[] invokeCmd = new byte[]{(byte)0x01, (byte)0x00};
writeBytes(WEIGHT_MEASUREMENT_SERVICE, WEIGHT_MEASUREMENT_CHARACTERISTIC, invokeCmd);
break;
default: default:
return false; return false;
} }
@@ -110,10 +108,13 @@ public class BluetoothExcelvanCF369BLE extends BluetoothCommunication {
// if data is body scale type // if data is body scale type
if (data.length == 16 && data[0] == (byte)0xcf) { if (data.length == 16 && data[0] == (byte)0xcf) {
if (!data.equals(receivedData)) { // accepts only one data of the same content
receivedData = data;
parseBytes(data); parseBytes(data);
} }
} }
} }
}
private void parseBytes(byte[] weightBytes) { private void parseBytes(byte[] weightBytes) {
float weight = (float) (((weightBytes[4] & 0xFF) << 8) | (weightBytes[5] & 0xFF)) / 10.0f; float weight = (float) (((weightBytes[4] & 0xFF) << 8) | (weightBytes[5] & 0xFF)) / 10.0f;