Calibration target introduced in iPerlHead.ProcParams and iPerlhead.IperlHead. CalculateNewCalibFactor( ), ver. 2.16.660
This commit is contained in:
parent
7846239be9
commit
5ef1bcbdb6
@ -37,6 +37,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
public int WMType_ID { get { return iperlHeadCfg.ProcParams.WMType_ID; } } /// Required by Oracle DB
|
||||
public int WMType_Rev { get { return iperlHeadCfg.ProcParams.WMType_Rev; } } /// Required by Oracle DB
|
||||
#endif
|
||||
public float CalibTarget { get { return (ushort)iperlHeadCfg.ProcParams.CalibTarget; } }
|
||||
public ushort FactorLimitLo { get { return (ushort)iperlHeadCfg.ProcParams.FactorLimitLo; } }
|
||||
public ushort FactorLimitHi { get { return (ushort)iperlHeadCfg.ProcParams.FactorLimitHi; } }
|
||||
|
||||
@ -163,7 +164,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
public UInt16 CalculateNewCalibFactor(Results.Entities.MeterTestRslt adjustTestResult, UInt16 originalCalibrationFactor, UInt16 FactorLimitLo, UInt16 FactorLimitHi)
|
||||
{
|
||||
double meterVolume = adjustTestResult.VolumeMeter;
|
||||
double refVolume = adjustTestResult.VolumeRef;
|
||||
double targetVolume = adjustTestResult.VolumeRef * (1.0f + CalibTarget / 100.0f);
|
||||
|
||||
OrigCalibFactor = originalCalibrationFactor;
|
||||
|
||||
@ -171,12 +172,14 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
{
|
||||
PositiveCounting = VolumeLtrEnd > VolumeLtrStart;
|
||||
|
||||
UInt16 newFactor = (UInt16)((double)originalCalibrationFactor * refVolume / meterVolume + 0.5);
|
||||
log.InfoFormat("Calibration factor: orig={0} new={1} V_iperl={2} V_ref={3}",
|
||||
UInt16 newFactor = (UInt16)((double)originalCalibrationFactor * targetVolume / meterVolume + 0.5);
|
||||
log.InfoFormat("Calibration factor: orig={0} new={1} V_iperl={2} V_ref={3} V_target={4}",
|
||||
originalCalibrationFactor,
|
||||
newFactor,
|
||||
meterVolume.ToString("F3"),
|
||||
refVolume.ToString("F3"));
|
||||
adjustTestResult.VolumeRef.ToString("F3"),
|
||||
targetVolume.ToString("F3"));
|
||||
|
||||
|
||||
if (newFactor < FactorLimitLo || newFactor > FactorLimitHi) return 0;
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
protected override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public MeterType MeterType;
|
||||
public float CalibTarget; /// Target error after calibration in [%]
|
||||
public int FactorLimitLo; /// Lower limit for the calibration factor
|
||||
public int FactorLimitHi; /// Upper limit for the calibration factor
|
||||
#if ORACLE_DB
|
||||
@ -28,6 +29,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
public override void InitializeAll()
|
||||
{
|
||||
MeterType = MeterType.AutoDetect;
|
||||
CalibTarget = 0;
|
||||
FactorLimitLo = 1000;
|
||||
FactorLimitHi = 8000;
|
||||
#if ORACLE_DB
|
||||
@ -39,6 +41,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
string[] paramNames = new string[]
|
||||
{
|
||||
"iPerl type",
|
||||
"Calib. target [%]",
|
||||
"Calib. factor Lo",
|
||||
"Calib. factor Hi",
|
||||
#if ORACLE_DB
|
||||
@ -54,11 +57,12 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
switch (i)
|
||||
{
|
||||
case 0: return MeterType.ToString();
|
||||
case 1: return FactorLimitLo.ToString();
|
||||
case 2: return FactorLimitHi.ToString();
|
||||
case 1: return CalibTarget.ToString();
|
||||
case 2: return FactorLimitLo.ToString();
|
||||
case 3: return FactorLimitHi.ToString();
|
||||
#if ORACLE_DB
|
||||
case 3: return WMType_ID.ToString();
|
||||
case 4: return WMType_Rev.ToString();
|
||||
case 4: return WMType_ID.ToString();
|
||||
case 5: return WMType_Rev.ToString();
|
||||
#endif
|
||||
default: return string.Empty;
|
||||
}
|
||||
@ -74,11 +78,12 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
if (mt.ToString().Equals(strValue)) { MeterType = mt; return; }
|
||||
}
|
||||
break;
|
||||
case 1: FactorLimitLo = int.Parse(strValue); return;
|
||||
case 2: FactorLimitHi = int.Parse(strValue); return;
|
||||
case 1: CalibTarget = Utils.ParseSFloat(strValue); return;
|
||||
case 2: FactorLimitLo = int.Parse(strValue); return;
|
||||
case 3: FactorLimitHi = int.Parse(strValue); return;
|
||||
#if ORACLE_DB
|
||||
case 3: WMType_ID = int.Parse(strValue); return;
|
||||
case 4: WMType_Rev = int.Parse(strValue); return;
|
||||
case 4: WMType_ID = int.Parse(strValue); return;
|
||||
case 5: WMType_Rev = int.Parse(strValue); return;
|
||||
#endif
|
||||
default: return;
|
||||
}
|
||||
@ -89,20 +94,24 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
message = string.Empty;
|
||||
|
||||
int iDummy;
|
||||
float fDummy;
|
||||
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
for (MeterType mt = 0; mt < MeterType.Count; mt++) if (mt.ToString().Equals(strValue)) return true;
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
if (Utils.TryParseSFloat(strValue, out fDummy) && fDummy >= -10.0f && fDummy <= 10.0f) return true;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
if (int.TryParse(strValue, out iDummy) && iDummy >= 1000 && iDummy <= 8000) return true;
|
||||
break;
|
||||
|
||||
#if ORACLE_DB
|
||||
case 3: /// WMType_ID
|
||||
case 4: /// WMType_Rev
|
||||
case 4: /// WMType_ID
|
||||
case 5: /// WMType_Rev
|
||||
if (int.TryParse(strValue, out iDummy)) return true;
|
||||
break;
|
||||
#endif
|
||||
@ -118,6 +127,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
|
||||
void CopyContentTo(ProcParams prms)
|
||||
{
|
||||
prms.MeterType = this.MeterType;
|
||||
prms.CalibTarget = this.CalibTarget;
|
||||
prms.FactorLimitLo = this.FactorLimitLo;
|
||||
prms.FactorLimitHi = this.FactorLimitHi;
|
||||
#if ORACLE_DB
|
||||
|
||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("2.16.658.1")]
|
||||
[assembly: AssemblyFileVersion("2.16.658.1")]
|
||||
[assembly: AssemblyVersion("2.16.660.1")]
|
||||
[assembly: AssemblyFileVersion("2.16.660.1")]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user