mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-08 09:46:55 +02:00
Sanitas SBF-70: The fat pourcentage appears to be in big endianness instead of little endianness
Signed-off-by: Jerome Flesch <jflesch@kwain.net>
This commit is contained in:
@@ -289,6 +289,7 @@ public class BluetoothSanitasSbf70 extends BluetoothCommunication {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// stabilized value
|
// stabilized value
|
||||||
|
// little endian
|
||||||
float weight = ((float)(
|
float weight = ((float)(
|
||||||
((int)(data[3] & 0xFF) << 8) + ((int)(data[4] & 0xFF))
|
((int)(data[3] & 0xFF) << 8) + ((int)(data[4] & 0xFF))
|
||||||
)) * 50.0f / 1000.0f; // unit is 50g
|
)) * 50.0f / 1000.0f; // unit is 50g
|
||||||
@@ -305,24 +306,27 @@ public class BluetoothSanitasSbf70 extends BluetoothCommunication {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if ((data[2] & 0xFF) == 0x03 && (data[3] & 0xFF) == 0x02) {
|
if ((data[2] & 0xFF) == 0x03 && (data[3] & 0xFF) == 0x02) {
|
||||||
|
// big endian
|
||||||
float fat = ((float)(
|
float fat = ((float)(
|
||||||
((int)(data[14] & 0xFF) << 8) + ((int)(data[13] & 0xFF))
|
((int)(data[12] & 0xFF) << 8) + ((int)(data[13] & 0xFF))
|
||||||
)) / 10.0f; // unit is 0.1kg
|
)) / 10.0f; // unit is 0.1kg
|
||||||
Log.i(TAG, "Got fat: " + fat + "kg");
|
Log.i(TAG, "Got fat: " + fat + "%");
|
||||||
scaleBtData.setFat(fat);
|
scaleBtData.setFat(fat);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((data[2] & 0xFF) == 0x03 && (data[3] & 0xFF) == 0x03) {
|
if ((data[2] & 0xFF) == 0x03 && (data[3] & 0xFF) == 0x03) {
|
||||||
|
// little endian
|
||||||
float water = ((float)(
|
float water = ((float)(
|
||||||
((int)(data[5] & 0xFF) << 8) + ((int)(data[4] & 0xFF))
|
((int)(data[5] & 0xFF) << 8) + ((int)(data[4] & 0xFF))
|
||||||
)) / 10.0f; // unit is 0.1kg
|
)) / 10.0f; // unit is 0.1kg
|
||||||
Log.i(TAG, "Got water: " + water + "kg");
|
Log.i(TAG, "Got water: " + water + "%");
|
||||||
scaleBtData.setWater(water);
|
scaleBtData.setWater(water);
|
||||||
|
|
||||||
|
// little endian
|
||||||
float muscle = ((float)(
|
float muscle = ((float)(
|
||||||
((int)(data[7] & 0xFF) << 8) + ((int)(data[6] & 0xFF))
|
((int)(data[7] & 0xFF) << 8) + ((int)(data[6] & 0xFF))
|
||||||
)) / 10.0f; // unit is 0.1kg
|
)) / 10.0f; // unit is 0.1kg
|
||||||
Log.i(TAG, "Got muscle: " + muscle + "kg");
|
Log.i(TAG, "Got muscle: " + muscle + "%");
|
||||||
scaleBtData.setMuscle(muscle);
|
scaleBtData.setMuscle(muscle);
|
||||||
|
|
||||||
callbackBtHandler.obtainMessage(
|
callbackBtHandler.obtainMessage(
|
||||||
|
Reference in New Issue
Block a user