public double GetPowerEstimation(int wavelength, int pulseDivider, double x) { if (_noData || NoOfCoefficients < 1) { return(0); } else { LaserEnergyCorrectionStruct obj = getElement(wavelength, pulseDivider); int nCoefficients = NoOfCoefficients; double[] xN = new double[nCoefficients]; xN[0] = 1; for (int i = 1; i < nCoefficients; i++) { xN[i] = xN[i - 1] * x; } double mJ = 0; for (int i = 0; i < nCoefficients; i++) { mJ += (obj.PolynomialCoefficients[i] * xN[i]); } //double mJ = obj.c[0] + obj.c[1] * x + obj.c[2] * x2 + obj.c[3] * x3 + obj.c[4] * x4 + obj.c[5] * x5; return(mJ); } }
public double GetAveragePower(int wavelength, int pulseDivider) { if (_noData) { return(0); } else { LaserEnergyCorrectionStruct obj = getElement(wavelength, pulseDivider); return(obj.AveragePower); } }
void readLaserEnergyCorrectionStruct(System.IO.BinaryReader r, UInt16 rowIndex) { for (int repetitionIndex = 0; repetitionIndex < NoOfPulseDividerValues; repetitionIndex++) { double[] polynomialCoefficients = new double[NoOfCoefficients]; double averagePower = r.ReadDouble(); double attenuation = r.ReadDouble(); for (int coefficientIndex = 0; coefficientIndex < NoOfCoefficients; coefficientIndex++) { polynomialCoefficients[coefficientIndex] = r.ReadDouble(); } _laserWavelengthVsRepetitions[rowIndex, repetitionIndex] = new LaserEnergyCorrectionStruct(averagePower, attenuation, polynomialCoefficients); } }
//This call returns the Attenuation value public double GetAttenuationValue(double wavelength, int pulseDivider) { LaserEnergyCorrectionStruct obj = getElement(wavelength, pulseDivider); return(obj.Attenuation); }