Ignore empty sensors in tanks
Test / Run tests (push) Successful in 33s

This commit is contained in:
2026-08-12 11:24:14 +02:00
parent d507a7486e
commit 9d4ae11de8
+24 -27
View File
@@ -43,31 +43,28 @@ namespace PamhagenSysCtrl.Helpers {
GC.SuppressFinalize(this); GC.SuppressFinalize(this);
} }
protected static FillState Int3ToFillState(int n) { protected static FillState Int3ToFillState(int n, bool bigEndian = true) {
return n switch { return
7 => FillState.Full, (bigEndian && (n & 0x4) != 0) || (!bigEndian && (n & 0x1) != 0) ? FillState.Full :
6 => FillState.Half, (bigEndian && (n & 0x2) != 0) || (!bigEndian && (n & 0x2) != 0) ? FillState.Half :
4 => FillState.Filled, (bigEndian && (n & 0x1) != 0) || (!bigEndian && (n & 0x4) != 0) ? FillState.Filled :
0 => FillState.Empty, n == 0 ? FillState.Empty :
_ => FillState.Invalid, FillState.Invalid;
};
} }
protected static FillState Int2ToFillState(int n) { protected static FillState Int2ToFillState(int n, bool bigEndian = true) {
return n switch { return
2 => FillState.Full, (bigEndian && (n & 0x2) != 0) || (!bigEndian && (n & 0x1) != 0) ? FillState.Full :
0 => FillState.Filled, (bigEndian && (n & 0x1) != 0) || (!bigEndian && (n & 0x2) != 0) ? FillState.Filled :
1 => FillState.Empty, n == 0 ? FillState.Empty :
_ => FillState.Invalid, FillState.Invalid;
};
} }
protected static FillState Int1ToFillState(int n) { protected static FillState Int1ToFillState(int n) {
return n switch { return
1 => FillState.Full, n == 1 ? FillState.Full :
0 => FillState.Unknown, n == 0 ? FillState.Unknown :
_ => FillState.Invalid, FillState.Invalid;
};
} }
protected static MotorState Int2ToPumpState(int n, bool inverse) { protected static MotorState Int2ToPumpState(int n, bool inverse) {
@@ -110,8 +107,8 @@ namespace PamhagenSysCtrl.Helpers {
long pressure = (long)r1 | ((long)r2 << 16) | ((long)r3 << 32) | ((long)r4 << 48); long pressure = (long)r1 | ((long)r2 << 16) | ((long)r3 << 32) | ((long)r4 << 48);
pressure = (pressure & 0x01FFFFFFFFFFFFFF) | ((pressure & 0x0600000000000000) << 1); pressure = (pressure & 0x01FFFFFFFFFFFFFF) | ((pressure & 0x0600000000000000) << 1);
var mw1 = Int3ToFillState((f1 ) & 0x7); // 111 011 001 000 var mw1 = Int3ToFillState((f1 ) & 0x7, false); // 111 011 001 000
var mw2 = Int3ToFillState((f1 >> 3) & 0x7); // 111 011 001 000 var mw2 = Int3ToFillState((f1 >> 3) & 0x7, false); // 111 011 001 000
var p1 = ((f1 >> 6) & 0x1) == 0; // 1 0 var p1 = ((f1 >> 6) & 0x1) == 0; // 1 0
var p2 = ((f1 >> 7) & 0x1) == 0; // 1 0 var p2 = ((f1 >> 7) & 0x1) == 0; // 1 0
var wp = ((f1 >> 8) & 0x3); // 10 01 var wp = ((f1 >> 8) & 0x3); // 10 01
@@ -129,11 +126,11 @@ namespace PamhagenSysCtrl.Helpers {
// -> factor: 0,03125 + (offset) 25 Oe // -> factor: 0,03125 + (offset) 25 Oe
double oe = v * 0.03125 + 25; double oe = v * 0.03125 + 25;
var t1 = Int2ToFillState((f2 ) & 0x3); // 10 01 00 var t1 = Int1ToFillState(((f2 ) & 0x3) >> 1); // 1X 0X
var t2 = Int2ToFillState((f2 >> 2) & 0x3); // 10 01 00 var t2 = Int1ToFillState(((f2 >> 2) & 0x3) >> 1); // 1X 0X
var t3 = Int2ToFillState((f2 >> 4) & 0x3); // 10 01 00 var t3 = Int1ToFillState(((f2 >> 4) & 0x3) >> 1); // 1X 0X
var t4 = Int2ToFillState((f2 >> 6) & 0x3); // 10 01 00 var t4 = Int1ToFillState(((f2 >> 6) & 0x3) >> 1); // 1X 0X
var t5 = Int2ToFillState((f2 >> 8) & 0x3); // 10 01 00 var t5 = Int1ToFillState(((f2 >> 8) & 0x3) >> 1); // 1X 0X
var t6 = Int1ToFillState((f2 >> 10) & 0x1); // 1 0 var t6 = Int1ToFillState((f2 >> 10) & 0x1); // 1 0
var t7 = Int1ToFillState((f2 >> 11) & 0x1); // 1 0 var t7 = Int1ToFillState((f2 >> 11) & 0x1); // 1 0
var t8 = Int1ToFillState((f2 >> 12) & 0x1); // 1 0 var t8 = Int1ToFillState((f2 >> 12) & 0x1); // 1 0