Fix Send gauges showing intensity, zero when idle
- Send gauges now show waveform intensity (0-100) not strength ceiling - State.LastIntensityA/B tracks average intensity per tick - Zero when no pattern/stream active (was 25 due to IntensityOff 101 sentinel) - Recv gauges unchanged (device-reported strength 0-200)
This commit is contained in:
+4
-4
@@ -142,7 +142,7 @@ public class MainForm : Form
|
|||||||
Location = new Point(72, 160),
|
Location = new Point(72, 160),
|
||||||
Size = new Size(332, 20),
|
Size = new Size(332, 20),
|
||||||
Minimum = 0,
|
Minimum = 0,
|
||||||
Maximum = 200,
|
Maximum = 100,
|
||||||
Style = ProgressBarStyle.Continuous
|
Style = ProgressBarStyle.Continuous
|
||||||
};
|
};
|
||||||
_lblSendB = new Label
|
_lblSendB = new Label
|
||||||
@@ -157,7 +157,7 @@ public class MainForm : Form
|
|||||||
Location = new Point(72, 184),
|
Location = new Point(72, 184),
|
||||||
Size = new Size(332, 20),
|
Size = new Size(332, 20),
|
||||||
Minimum = 0,
|
Minimum = 0,
|
||||||
Maximum = 200,
|
Maximum = 100,
|
||||||
Style = ProgressBarStyle.Continuous
|
Style = ProgressBarStyle.Continuous
|
||||||
};
|
};
|
||||||
_lblRecvA = new Label
|
_lblRecvA = new Label
|
||||||
@@ -357,8 +357,8 @@ public class MainForm : Form
|
|||||||
_lblBle.Text = _device.IsConnected
|
_lblBle.Text = _device.IsConnected
|
||||||
? $"BLE: connected ({_device.DeviceName})"
|
? $"BLE: connected ({_device.DeviceName})"
|
||||||
: "BLE: disconnected";
|
: "BLE: disconnected";
|
||||||
_gaugeSendA.Value = Math.Clamp(_state.LastSentA, 0, 200);
|
_gaugeSendA.Value = Math.Clamp(_state.LastIntensityA, 0, 100);
|
||||||
_gaugeSendB.Value = Math.Clamp(_state.LastSentB, 0, 200);
|
_gaugeSendB.Value = Math.Clamp(_state.LastIntensityB, 0, 100);
|
||||||
_gaugeRecvA.Value = Math.Clamp(_device.StrengthA, 0, 200);
|
_gaugeRecvA.Value = Math.Clamp(_device.StrengthA, 0, 200);
|
||||||
_gaugeRecvB.Value = Math.Clamp(_device.StrengthB, 0, 200);
|
_gaugeRecvB.Value = Math.Clamp(_device.StrengthB, 0, 200);
|
||||||
_btnTest.Enabled = !_server.HasClient && !IsTestRunning;
|
_btnTest.Enabled = !_server.HasClient && !IsTestRunning;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class State
|
|||||||
|
|
||||||
public int ActualA, ActualB;
|
public int ActualA, ActualB;
|
||||||
public int LastSentA, LastSentB;
|
public int LastSentA, LastSentB;
|
||||||
|
public int LastIntensityA, LastIntensityB;
|
||||||
|
|
||||||
public int MaxStrength = 200;
|
public int MaxStrength = 200;
|
||||||
public LimitMode LimitMode = LimitMode.Clamp;
|
public LimitMode LimitMode = LimitMode.Clamp;
|
||||||
@@ -105,9 +106,14 @@ public class State
|
|||||||
DirtyA = false;
|
DirtyA = false;
|
||||||
DirtyB = false;
|
DirtyB = false;
|
||||||
|
|
||||||
|
bool hasA = !StreamA.IsEmpty || (LoopFreqA != null && LoopIntA != null);
|
||||||
|
bool hasB = !StreamB.IsEmpty || (LoopFreqB != null && LoopIntB != null);
|
||||||
var (freqA, intA) = PopWave(StreamA, LoopFreqA, LoopIntA);
|
var (freqA, intA) = PopWave(StreamA, LoopFreqA, LoopIntA);
|
||||||
var (freqB, intB) = PopWave(StreamB, LoopFreqB, LoopIntB);
|
var (freqB, intB) = PopWave(StreamB, LoopFreqB, LoopIntB);
|
||||||
|
|
||||||
|
LastIntensityA = hasA ? (intA[0] + intA[1] + intA[2] + intA[3]) / 4 : 0;
|
||||||
|
LastIntensityB = hasB ? (intB[0] + intB[1] + intB[2] + intB[3]) / 4 : 0;
|
||||||
|
|
||||||
return (modeA, valA, modeB, valB, freqA, intA, freqB, intB);
|
return (modeA, valA, modeB, valB, freqA, intA, freqB, intB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user