FM2014: - reset extended
This commit is contained in:
parent
963df837dc
commit
735525c2c2
@ -269,7 +269,7 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
|
||||
|
||||
if (int.TryParse(refPulseStr, NumberStyles.HexNumber, new CultureInfo("en"), out var refPulses))
|
||||
{
|
||||
var response = new FM2014CmdDef.CmdResponse(FM2014CmdDef.CmdName.CMD_REF_GET_PLS_CTR, "",
|
||||
var response = new FM2014CmdDef.CmdResponse(FM2014CmdDef.CmdName.CMD_REF_GET_PLS_CTR, infoRef,
|
||||
refPulses);
|
||||
OnRawRecordReceived?.Invoke(this, new ProcessExecEventArgs(infoRef, specificInfoObj: response));
|
||||
}
|
||||
@ -281,7 +281,7 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
|
||||
|
||||
if (int.TryParse(dutPulseStr, NumberStyles.HexNumber, new CultureInfo("en"), out var dutPulses))
|
||||
{
|
||||
var response = new FM2014CmdDef.CmdResponse(FM2014CmdDef.CmdName.CMD_DUT_GET_PLS_CTR, "",
|
||||
var response = new FM2014CmdDef.CmdResponse(FM2014CmdDef.CmdName.CMD_DUT_GET_PLS_CTR, infoDut,
|
||||
dutPulses);
|
||||
OnRawRecordReceived?.Invoke(this, new ProcessExecEventArgs(infoDut, specificInfoObj: response));
|
||||
}
|
||||
@ -371,10 +371,21 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
|
||||
ReceiveTaskIsActive = false;
|
||||
// Reset measurement
|
||||
var cmdCode = FM2014CmdDef.GetCmdChar(FM2014CmdDef.CmdName.CMD_RST_MEAS);
|
||||
var infoStr = FM2014CmdDef.GetCmdInfo(FM2014CmdDef.CmdName.CMD_RST_MEAS);
|
||||
// Read out the serial number of this FM2014
|
||||
SerialPort?.Write($"{cmdCode}{_eos}");
|
||||
|
||||
// Wait until FM2014 calibration finished
|
||||
Thread.Sleep(4000);
|
||||
var resetDelayCtr_ms = 4000;
|
||||
const Int32 loopTime_ms = 500;
|
||||
do
|
||||
{
|
||||
var response = new FM2014CmdDef.CmdResponse(FM2014CmdDef.CmdName.CMD_RST_MEAS, infoStr,
|
||||
resetDelayCtr_ms);
|
||||
OnRawRecordReceived?.Invoke(this, new ProcessExecEventArgs(infoStr, specificInfoObj: response));
|
||||
Thread.Sleep(loopTime_ms);
|
||||
resetDelayCtr_ms -= loopTime_ms;
|
||||
} while (resetDelayCtr_ms > 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -604,12 +604,24 @@ namespace Sensus.MiniPrf.Ui
|
||||
#endregion
|
||||
|
||||
#region Buttons and Controls
|
||||
/// <summary>
|
||||
/// Establish connection to FM2014 with individual address and read out FM2014 info.
|
||||
/// </summary>
|
||||
/// <remarks date="2023-Jan-04" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
private void btnConnect_Click(Object sender, EventArgs e)
|
||||
{
|
||||
_startTime = DateTimeOffset.UtcNow;
|
||||
Connect();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Start and stop the manual REF calibration.
|
||||
/// </summary>
|
||||
/// <remarks date="2023-Jan-04..12" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
private void btnManualRefCalibration_Click(Object sender, EventArgs e)
|
||||
{
|
||||
if (!_fm2014.ReceiveTaskIsActive)
|
||||
@ -631,6 +643,12 @@ namespace Sensus.MiniPrf.Ui
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selected COM port item has changed.
|
||||
/// </summary>
|
||||
/// <remarks date="2023-Jan-04" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
private void cbxFM2014ComPort_SelectedValueChanged(Object sender, EventArgs e)
|
||||
{
|
||||
if (_toleranceIdx != cbxFM2014TolerancePercent.SelectedIndex ||
|
||||
@ -647,18 +665,18 @@ namespace Sensus.MiniPrf.Ui
|
||||
|
||||
#region Event handler
|
||||
|
||||
/// <summary>
|
||||
/// Feedback from FM2014.
|
||||
/// </summary>
|
||||
/// <remarks date="2023-Jan-04..12" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
private void DataReceived_Handler(Object sender, ProcessExecEventArgs e)
|
||||
{
|
||||
|
||||
var resp = (FM2014CmdDef.CmdResponse)e.SpecificInfoObj;
|
||||
if (resp.IntValue != null)
|
||||
LogText(resp.IntValue.ToString());
|
||||
|
||||
// Return to standby
|
||||
if (!_fm2014.ReceiveTaskIsActive)
|
||||
{
|
||||
ActionControl(false);
|
||||
}
|
||||
LogText($"{resp.AnswerStr}: {resp.IntValue:D}");
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user