Q2 correction uses q2AdjResult.Q2CorrRL / q2AdjResult.Q2CorrLR / q2AdjResult2.Q2CorrLR + iPerlCommunicationForm bug fixes
This commit is contained in:
parent
1349c39d2d
commit
d3c62e353c
@ -33,12 +33,12 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
Read4, /// 7
|
||||
Write, /// 8
|
||||
ReadAfterWrite, /// 9
|
||||
CmdActive, /// A = 10
|
||||
CmdTest, /// B = 11
|
||||
Verify, /// C = 12
|
||||
WrongIPerlType, /// D = 13
|
||||
OutOfRange, /// E = 14
|
||||
Q2OutOfRange, /// F = 15
|
||||
CmdActive, /// 0AH = 10
|
||||
CmdTest, /// 0BH = 11
|
||||
Verify, /// 0CH = 12
|
||||
WrongIPerlType, /// 0DH = 13
|
||||
OutOfRange, /// 0EH = 14
|
||||
Q2OutOfRange, /// 0FH = 15
|
||||
MissingTest, /// 10H = 16
|
||||
RFPowerRecordMissing, /// 11H = 17
|
||||
HeadDisabledByUser, /// 12H = 18
|
||||
@ -84,6 +84,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
public const string UpdateBothQ2FactorsTestLROnlyStr = "Update_both_Q2_factors_Test_LR_only"; /// No arguments
|
||||
public const string UpdateQ2CorrectionsStr = "Update Q2 corrections"; /// Arguments: R-L_test_name L-R_test_name
|
||||
public const string ConditnlUpdateQ2CorrectionsStr = "Conditional update of Q2 corrections"; /// Arguments: R-L_test_name L-R_test_name
|
||||
public const string ConditnlUpdateQ2CorrRLStr = "Conditional update of Q2 correction R-L"; /// Arguments: R-L_test_name
|
||||
public const string ConditnlUpdateQ2CorrLRStr = "Conditional update of Q2 correction L-R"; /// Arguments: L-R_test_name
|
||||
public const string Reset2HzCorrectionStr = "Reset 2Hz correction";
|
||||
public const string Write2HzCorrectionStr = "Write 2Hz correction";
|
||||
|
||||
@ -822,20 +824,22 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
else if (currentActivity.ToLower() == ResetQ2CorrectionStr.ToLower()) error = ResetQ2Correction(threadID, ihead, wm, ref resultStr);
|
||||
else if (currentActivity.ToLower() == WriteDefaultQ2CorrectionsStr.ToLower()) error = WriteDefaultQ2Corrections(threadID, ihead, wm, ref resultStr);
|
||||
else if (currentActivity.ToLower() == InitOrReadQ2CorrectionsStr.ToLower()) error = InitOrReadQ2Corrections(threadID, ihead, wm, ref resultStr);
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionStr.ToLower()) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Standard, null);
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionAltStr.ToLower()) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Dewa, null);
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionGreeceStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Greece, currentActivity.Substring(WriteQ2CorrectionGreeceStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionRLStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.RL, currentActivity.Substring(WriteQ2CorrectionRLStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionLRStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.LR, currentActivity.Substring(WriteQ2CorrectionLRStr.Length).Trim());
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionIncl05Str.ToLower()) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Standard_incl_05, null);
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionAltIncl05Str.ToLower()) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Dewa_incl_05, null);
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionGreeceIncl05Str.ToLower()))error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Greece_incl_05, currentActivity.Substring(WriteQ2CorrectionGreeceIncl05Str.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionRLIncl05Str.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.RL_incl_05, currentActivity.Substring(WriteQ2CorrectionRLIncl05Str.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionLRIncl05Str.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.LR_incl_05, currentActivity.Substring(WriteQ2CorrectionLRIncl05Str.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(UpdateBothQ2FactorsTestRLOnlyStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.UpdateBothQ2FactorsTestRLDir, null);
|
||||
else if (currentActivity.ToLower().Contains(UpdateBothQ2FactorsTestLROnlyStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.UpdateBothQ2FactorsTestLRDir, null);
|
||||
else if (currentActivity.ToLower().Contains(UpdateQ2CorrectionsStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Update, currentActivity.Substring(UpdateQ2CorrectionsStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(ConditnlUpdateQ2CorrectionsStr.ToLower())) error = WriteQ2Correction(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.ConditionalUpdate, currentActivity.Substring(ConditnlUpdateQ2CorrectionsStr.Length).Trim());
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionStr.ToLower()) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Standard, null);
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionAltStr.ToLower()) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Dewa, null);
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionGreeceStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Greece, currentActivity.Substring(WriteQ2CorrectionGreeceStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionRLStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.RL, currentActivity.Substring(WriteQ2CorrectionRLStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionLRStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.LR, currentActivity.Substring(WriteQ2CorrectionLRStr.Length).Trim());
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionIncl05Str.ToLower()) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Standard_incl_05, null);
|
||||
else if (currentActivity.ToLower() == WriteQ2CorrectionAltIncl05Str.ToLower()) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Dewa_incl_05, null);
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionGreeceIncl05Str.ToLower()))error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Greece_incl_05, currentActivity.Substring(WriteQ2CorrectionGreeceIncl05Str.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionRLIncl05Str.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.RL_incl_05, currentActivity.Substring(WriteQ2CorrectionRLIncl05Str.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(WriteQ2CorrectionLRIncl05Str.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.LR_incl_05, currentActivity.Substring(WriteQ2CorrectionLRIncl05Str.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(UpdateBothQ2FactorsTestRLOnlyStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.UpdateBothQ2FactorsTestRLDir, null);
|
||||
else if (currentActivity.ToLower().Contains(UpdateBothQ2FactorsTestLROnlyStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.UpdateBothQ2FactorsTestLRDir, null);
|
||||
else if (currentActivity.ToLower().Contains(UpdateQ2CorrectionsStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.Update, currentActivity.Substring(UpdateQ2CorrectionsStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(ConditnlUpdateQ2CorrectionsStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.ConditionalUpdate, currentActivity.Substring(ConditnlUpdateQ2CorrectionsStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(ConditnlUpdateQ2CorrRLStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.ConditionalUpdateRL, currentActivity.Substring(ConditnlUpdateQ2CorrectionsStr.Length).Trim());
|
||||
else if (currentActivity.ToLower().Contains(ConditnlUpdateQ2CorrLRStr.ToLower())) error = CalculateAndWriteQ2Corrections(threadID, ihead, wm, currentTest, ref resultStr, Q2CorrType.ConditionalUpdateLR, currentActivity.Substring(ConditnlUpdateQ2CorrectionsStr.Length).Trim());
|
||||
else if (currentActivity.ToLower() == Reset2HzCorrectionStr.ToLower()) error = Reset2HzCorrection(threadID, ihead, wm, ref resultStr);
|
||||
else if (currentActivity.ToLower() == Write2HzCorrectionStr.ToLower()) error = Write2HzCorrection(threadID, ihead, wm, ref resultStr);
|
||||
else if (currentActivity.ToLower() == GetDefaultQ2CorrectionsStr.ToLower()) error = GetQ2PreCorrectionsFormRest(threadID, ihead, wm, ref resultStr);
|
||||
@ -1979,17 +1983,51 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
|
||||
if (wm.Pruefindex == 1)
|
||||
{
|
||||
int q2corrRL;
|
||||
int q2corrLR;
|
||||
if (ProcessData.IsQ2PreCorrectionCalculated)
|
||||
{
|
||||
return WriteQ2Corrections(threadId, ihead, wm, ref resultStr, ProcessData.CalculatedQ2PreCorrectionLR,
|
||||
ProcessData.CalculatedQ2PreCorrectionRL);
|
||||
q2corrRL = ProcessData.CalculatedQ2PreCorrectionRL;
|
||||
q2corrLR = ProcessData.CalculatedQ2PreCorrectionLR;
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// return WriteQ2Corrections(threadId, ihead, wm, ref resultStr, ihead.Q2PreCorrectionLR, ihead.Q2PreCorrectionRL);
|
||||
//}
|
||||
else
|
||||
{
|
||||
switch (ihead.MeterType)
|
||||
{
|
||||
case MeterType.DN15:
|
||||
q2corrRL = cfg.DfltQ2c_15_rl;
|
||||
q2corrLR = cfg.DfltQ2c_15_lr;
|
||||
break;
|
||||
case MeterType.DN20:
|
||||
q2corrRL = cfg.DfltQ2c_20_rl;
|
||||
q2corrLR = cfg.DfltQ2c_20_lr;
|
||||
break;
|
||||
case MeterType.DN25:
|
||||
q2corrRL = cfg.DfltQ2c_25_63_rl;
|
||||
q2corrLR = cfg.DfltQ2c_25_63_lr;
|
||||
break;
|
||||
case MeterType.DN25_Q3_10:
|
||||
q2corrRL = cfg.DfltQ2c_25_10_rl;
|
||||
q2corrLR = cfg.DfltQ2c_25_10_lr;
|
||||
break;
|
||||
case MeterType.DN32:
|
||||
q2corrRL = cfg.DfltQ2c_32_rl;
|
||||
q2corrLR = cfg.DfltQ2c_32_lr;
|
||||
break;
|
||||
case MeterType.DN40:
|
||||
q2corrRL = cfg.DfltQ2c_40_rl;
|
||||
q2corrLR = cfg.DfltQ2c_40_lr;
|
||||
break;
|
||||
default:
|
||||
q2corrRL = 0;
|
||||
q2corrLR = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return WriteQ2Corrections(threadId, ihead, wm, ref resultStr, q2corrLR, q2corrRL);
|
||||
}
|
||||
//else
|
||||
else
|
||||
{
|
||||
return ReadQ2Correction(threadId, ihead, wm, ref resultStr);
|
||||
}
|
||||
@ -2078,10 +2116,11 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
/// <param name="ihead">Water meter object</param>
|
||||
/// <param name="resultStr">String passed to caller</param>
|
||||
/// <returns>true on success</returns>
|
||||
static CommErr WriteQ2Correction(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, Test test, ref string resultStr,
|
||||
Q2CorrType q2CorrType, string restOfLine)
|
||||
static CommErr CalculateAndWriteQ2Corrections(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm,
|
||||
Test test, ref string resultStr, Q2CorrType q2CorrType, string restOfLine)
|
||||
{
|
||||
if ((q2CorrType == Q2CorrType.ConditionalUpdate) && wm.PassedFromTests())
|
||||
if ((q2CorrType == Q2CorrType.ConditionalUpdate || q2CorrType == Q2CorrType.ConditionalUpdateRL || q2CorrType == Q2CorrType.ConditionalUpdateLR)
|
||||
&& wm.PassedFromTests())
|
||||
{
|
||||
resultStr = string.Format("No Q2 correction update (iPerl is OK)");
|
||||
return CommErr.None; /// No Q2 correction when doing conditional update and WM passed
|
||||
@ -2100,7 +2139,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (args.Length == 0)
|
||||
{
|
||||
/// In case of no test name argument, ihead.LastTestResult is used (if it exists)
|
||||
if ((ihead.LastTestResult == null) || !ihead.LastTestResult.TestDone) return CommErr.MissingTest;
|
||||
if (ihead.LastTestResult == null || !ihead.LastTestResult.TestDone) return CommErr.MissingTest;
|
||||
q2adjResult = ihead.LastTestResult;
|
||||
q2adjTestData = q2adjResult.TestRslt.TestData;
|
||||
}
|
||||
@ -2127,6 +2166,14 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
|
||||
q2adjResult.VolumeMeter += oneMTR.VolumeMeter;
|
||||
q2adjResult.VolumeRef += oneMTR.VolumeRef;
|
||||
|
||||
if (i == 1)
|
||||
{
|
||||
q2adjResult.CalibFactor = oneMTR.CalibFactor;
|
||||
q2adjResult.CalibFactorLNA = oneMTR.CalibFactorLNA;
|
||||
q2adjResult.Q2CorrRL = oneMTR.Q2CorrRL;
|
||||
q2adjResult.Q2CorrLR = oneMTR.Q2CorrLR;
|
||||
}
|
||||
}
|
||||
|
||||
q2adjResult.Error = Config.Formulas.ErrorFromVolumes(q2adjResult.VolumeMeter, q2adjResult.VolumeRef);
|
||||
@ -2160,6 +2207,14 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
|
||||
q2adjResult2.VolumeMeter += oneMTR.VolumeMeter;
|
||||
q2adjResult2.VolumeRef += oneMTR.VolumeRef;
|
||||
|
||||
if (i == 1)
|
||||
{
|
||||
q2adjResult2.CalibFactor = oneMTR.CalibFactor;
|
||||
q2adjResult2.CalibFactorLNA = oneMTR.CalibFactorLNA;
|
||||
q2adjResult2.Q2CorrRL = oneMTR.Q2CorrRL;
|
||||
q2adjResult2.Q2CorrLR = oneMTR.Q2CorrLR;
|
||||
}
|
||||
}
|
||||
|
||||
q2adjResult2.Error = Config.Formulas.ErrorFromVolumes(q2adjResult2.VolumeMeter, q2adjResult2.VolumeRef);
|
||||
@ -2183,7 +2238,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
double q2Correction = 0;
|
||||
double q2Correction2 = 0; /// L-R direction in case of Q2CorrType.Update and Q2CorrType.ConditionalUpdate
|
||||
///
|
||||
if ((q2CorrType == Q2CorrType.Update) || (q2CorrType == Q2CorrType.ConditionalUpdate))
|
||||
if (q2CorrType == Q2CorrType.Update || q2CorrType == Q2CorrType.ConditionalUpdate)
|
||||
{
|
||||
/// Update or ConditionalUpdate: 1. Calculate updates, not corrections, 2. Use error limits from this test
|
||||
double errLimitLo = test.ErrLimLo + test.Uncertainty;
|
||||
@ -2193,8 +2248,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
errLimitLo <= q2adjResult2.Error && q2adjResult2.Error <= errLimitHi)
|
||||
{
|
||||
/// Calculate updated Q2 correction factors
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, wm.Q2CorrRL);
|
||||
q2Correction2 = ihead.CalculateQ2CorrectionFactor(q2adjResult2, ihead.CalibTargetQ2, q2adjTestData2.Qfrom, wm.Q2CorrLR);
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, q2adjResult.Q2CorrRL);
|
||||
q2Correction2 = ihead.CalculateQ2CorrectionFactor(q2adjResult2, ihead.CalibTargetQ2, q2adjTestData2.Qfrom, q2adjResult2.Q2CorrLR);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2209,8 +2264,6 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
errLimitLo.ToString("F1"),
|
||||
errLimitHi.ToString("F1"));
|
||||
|
||||
ihead.Q2CorrRL = wm.Q2CorrRL;
|
||||
ihead.Q2CorrLR = wm.Q2CorrLR;
|
||||
resultStr = string.Format("Q2 error is out of range => no Q2 correction");
|
||||
return CommErr.Q2OutOfRange;
|
||||
}
|
||||
@ -2224,7 +2277,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (errLimitLo <= q2adjResult.Error && q2adjResult.Error <= errLimitHi)
|
||||
{
|
||||
/// Calculate updated Q2 correction factors
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, wm.Q2CorrRL);
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, q2adjResult.Q2CorrRL);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2234,8 +2287,6 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
ihead.Name, ihead.SerialNr, q2adjResult.Error.ToString("F2"), q2adjResult2.Error.ToString("F2"),
|
||||
ihead.CalibTargetQ2.ToString("F1"), errLimitLo.ToString("F1"), errLimitHi.ToString("F1"));
|
||||
|
||||
ihead.Q2CorrRL = wm.Q2CorrRL;
|
||||
ihead.Q2CorrLR = wm.Q2CorrLR;
|
||||
resultStr = string.Format("Q2 error is out of range => no Q2 correction");
|
||||
return CommErr.Q2OutOfRange;
|
||||
}
|
||||
@ -2249,7 +2300,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (errLimitLo <= q2adjResult.Error && q2adjResult.Error <= errLimitHi)
|
||||
{
|
||||
/// Calculate updated Q2 correction factors
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, wm.Q2CorrLR);
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, q2adjResult.Q2CorrLR);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2259,8 +2310,6 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
ihead.Name, ihead.SerialNr, q2adjResult.Error.ToString("F2"), q2adjResult2.Error.ToString("F2"),
|
||||
ihead.CalibTargetQ2.ToString("F1"), errLimitLo.ToString("F1"), errLimitHi.ToString("F1"));
|
||||
|
||||
ihead.Q2CorrRL = wm.Q2CorrRL;
|
||||
ihead.Q2CorrLR = wm.Q2CorrLR;
|
||||
resultStr = string.Format("Q2 error is out of range => no Q2 correction");
|
||||
return CommErr.Q2OutOfRange;
|
||||
}
|
||||
@ -2274,7 +2323,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if ((errLimitLo <= q2adjResult.Error) && (q2adjResult.Error <= errLimitHi))
|
||||
{
|
||||
/// Calculate Q2 correction factor (assuming it was 0 when doing a test)
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom);
|
||||
q2Correction = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, q2adjResult.Q2CorrRL);
|
||||
q2Correction2 = ihead.CalculateQ2CorrectionFactor(q2adjResult, ihead.CalibTargetQ2, q2adjTestData.Qfrom, q2adjResult.Q2CorrLR);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2317,8 +2367,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
}
|
||||
|
||||
/// Use the same correction factor in both directions
|
||||
q2CorrRL = (byte)((int)Math.Round(1.1 * q2Correction) & 0x000000FF);
|
||||
q2CorrLR = (byte)((int)Math.Round(1.1 * q2Correction) & 0x000000FF);
|
||||
q2CorrRL = (byte)((int)Math.Round(1.0 * q2Correction2) & 0x000000FF);
|
||||
q2CorrLR = (byte)((int)Math.Round(1.0 * q2Correction2) & 0x000000FF);
|
||||
}
|
||||
else if (q2CorrType == Q2CorrType.Greece || q2CorrType == Q2CorrType.Greece_incl_05 || q2CorrType == Q2CorrType.UpdateBothQ2FactorsTestLRDir)
|
||||
{
|
||||
@ -2331,10 +2381,10 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
return CommErr.None;
|
||||
}
|
||||
|
||||
q2CorrRL = (byte)((int)Math.Round(2.0 * q2Correction) & 0x000000FF);
|
||||
q2CorrLR = (byte)((int)Math.Round(1.1 * q2Correction) & 0x000000FF);
|
||||
q2CorrRL = (byte)((int)Math.Round(2.0 * q2Correction2) & 0x000000FF);
|
||||
q2CorrLR = (byte)((int)Math.Round(1.0 * q2Correction2) & 0x000000FF);
|
||||
}
|
||||
else if (q2CorrType == Q2CorrType.RL || q2CorrType == Q2CorrType.RL_incl_05) /// SUEZ RL only
|
||||
else if (q2CorrType == Q2CorrType.RL || q2CorrType == Q2CorrType.RL_incl_05 || q2CorrType == Q2CorrType.ConditionalUpdateRL) /// RL only
|
||||
{
|
||||
if (q2CorrType == Q2CorrType.RL && Math.Abs(q2adjResult.Error - ihead.CalibTargetQ2) <= 0.5)
|
||||
{
|
||||
@ -2344,7 +2394,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
|
||||
q2CorrRL = (byte)((int)Math.Round(q2Correction) & 0x000000FF);
|
||||
}
|
||||
else if (q2CorrType == Q2CorrType.LR || q2CorrType == Q2CorrType.LR_incl_05) /// SUEZ LR only
|
||||
else if (q2CorrType == Q2CorrType.LR || q2CorrType == Q2CorrType.LR_incl_05 || q2CorrType == Q2CorrType.ConditionalUpdateLR) /// LR only
|
||||
{
|
||||
if (q2CorrType == Q2CorrType.LR && Math.Abs(q2adjResult.Error - ihead.CalibTargetQ2) <= 0.5)
|
||||
{
|
||||
@ -2352,7 +2402,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
return CommErr.None;
|
||||
}
|
||||
|
||||
q2CorrLR = (byte)((int)Math.Round(q2Correction) & 0x000000FF);
|
||||
q2CorrLR = (byte)((int)Math.Round(q2Correction2) & 0x000000FF);
|
||||
}
|
||||
else if ((q2CorrType == Q2CorrType.Update) || (q2CorrType == Q2CorrType.ConditionalUpdate))
|
||||
{
|
||||
@ -2368,7 +2418,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
|
||||
if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port
|
||||
CommErr error = CommErr.Write;
|
||||
if (q2CorrType == Q2CorrType.RL)
|
||||
if (q2CorrType == Q2CorrType.RL || q2CorrType == Q2CorrType.RL_incl_05 || q2CorrType == Q2CorrType.ConditionalUpdateRL)
|
||||
{
|
||||
///
|
||||
/// Write R-L Q2 correction factor only
|
||||
@ -2379,6 +2429,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddrRL, wrData.Length, wrData, cfg.CommTimeout))
|
||||
{
|
||||
error = CommErr.None;
|
||||
wm.Q2CorrRL = ihead.Q2CorrRL = q2CorrRL;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2386,7 +2437,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
|
||||
}
|
||||
}
|
||||
else if (q2CorrType == Q2CorrType.LR)
|
||||
else if (q2CorrType == Q2CorrType.LR || q2CorrType == Q2CorrType.LR_incl_05 || q2CorrType == Q2CorrType.ConditionalUpdateLR)
|
||||
{
|
||||
///
|
||||
/// Write L-R Q2 correction factor only
|
||||
@ -2397,6 +2448,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddrLR, wrData.Length, wrData, cfg.CommTimeout))
|
||||
{
|
||||
error = CommErr.None;
|
||||
wm.Q2CorrLR = ihead.Q2CorrLR = q2CorrLR;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2415,6 +2467,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout))
|
||||
{
|
||||
error = CommErr.None;
|
||||
wm.Q2CorrRL = ihead.Q2CorrRL = q2CorrRL;
|
||||
wm.Q2CorrLR = ihead.Q2CorrLR = q2CorrLR;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2477,8 +2531,6 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
{
|
||||
wm.Q2ErrWOCorrection = ihead.Q2ErrWOCorrection = q2adjResult.Error;
|
||||
}
|
||||
if (q2CorrType != Q2CorrType.LR) wm.Q2CorrRL = ihead.Q2CorrRL = (int)(sbyte)q2CorrRL;
|
||||
if (q2CorrType != Q2CorrType.RL) wm.Q2CorrLR = ihead.Q2CorrLR = (int)(sbyte)q2CorrLR;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@ -71,6 +71,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
retVal.Add(iPerlCommunicationForm.UpdateBothQ2FactorsTestLROnlyStr);
|
||||
retVal.Add(iPerlCommunicationForm.UpdateQ2CorrectionsStr);
|
||||
retVal.Add(iPerlCommunicationForm.ConditnlUpdateQ2CorrectionsStr);
|
||||
retVal.Add(iPerlCommunicationForm.ConditnlUpdateQ2CorrRLStr);
|
||||
retVal.Add(iPerlCommunicationForm.ConditnlUpdateQ2CorrLRStr);
|
||||
retVal.Add("Q2 corrected from Q2adj");
|
||||
retVal.Add("Q2 correction check Q2bc Q2ac");
|
||||
retVal.Add(iPerlCommunicationForm.SetActiveModeStr);
|
||||
|
||||
@ -23,6 +23,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
LR_incl_05,
|
||||
Update,
|
||||
ConditionalUpdate,
|
||||
ConditionalUpdateRL,
|
||||
ConditionalUpdateLR,
|
||||
UpdateBothQ2FactorsTestRLDir,
|
||||
UpdateBothQ2FactorsTestLRDir,
|
||||
Count,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user