protected bool CurveVccDMIandWriteCoefs() { byte tempCOUNT; if (GlobalParameters.TotalVccCount <= 0) { tempCOUNT = 1; } else { tempCOUNT = GlobalParameters.TotalVccCount; } try { { for (byte i = 0; i < tempVccArray.Length; i++) { tempVccArray[i] = tempVccArray[i] * 10000; } for (byte i = 0; i < tempCOUNT; i++) { double[] tempAdc = new double[calVccDmiStruct.ArrayListVcc.Count]; for (byte j = 0; j < calVccDmiStruct.ArrayListVcc.Count; j++) { tempAdc[j] = vccAdcArray[i, j]; allVccAdcArray.Add(vccAdcArray[i, j]); } double[] coefArray = Algorithm.MultiLine(tempAdc, tempVccArray, calVccDmiStruct.ArrayListVcc.Count, 1); vccDmiCoefC = (float)coefArray[0]; vccDmiCoefB = (float)coefArray[1]; //vccDmiCoefA = (float)coefArray[2]; vccDmiCoefArray = ArrayList.Adapter(coefArray); vccDmiCoefArray.Reverse(); for (byte k = 0; k < vccDmiCoefArray.Count; k++) { Log.SaveLogToTxt("vccDmiCoefArray[" + k.ToString() + "]=" + vccDmiCoefArray[k].ToString() + " " + Algorithm.ByteArraytoString(2, ",", Algorithm.INT16To2Bytes(vccDmiCoefArray[k]))); } Log.SaveLogToTxt("Step4...WriteCoef"); #region W&R Vcccoefc isWriteCoefCOk = dut.SetVcccoefc(vccDmiCoefC.ToString(), (byte)(i + 1)); if (isWriteCoefCOk) { Log.SaveLogToTxt("WritevccDmiCoefC:" + isWriteCoefCOk.ToString()); } else { Log.SaveLogToTxt("WritevccDmiCoefC:" + isWriteCoefCOk.ToString()); } #endregion #region W&R Vcccoefb isWriteCoefBOk = dut.SetVcccoefb(vccDmiCoefB.ToString(), (byte)(i + 1)); if (isWriteCoefBOk) { Log.SaveLogToTxt("WritevccDmiCoefB:" + isWriteCoefBOk.ToString()); } else { Log.SaveLogToTxt("WritevccDmiCoefB:" + isWriteCoefBOk.ToString()); } #endregion //#region W&R Vcccoefa ////isWriteCoefAOk = dut.SetVcccoefa(vccDmiCoefA.ToString(), i + 1); //if (isWriteCoefAOk) //{ // isWriteCoefAOk = true; // Log.SaveLogToTxt("WritevccDmiCoefA:" + isWriteCoefAOk.ToString()); //} //else //{ // Log.SaveLogToTxt("WritevccDmiCoefA:" + isWriteCoefAOk.ToString()); //} //#endregion if (isWriteCoefBOk & isWriteCoefCOk) { Log.SaveLogToTxt("isCalVccDmiOk:" + true.ToString()); } else { Log.SaveLogToTxt("isCalVccDmiOk:" + false.ToString()); return(false); } } } return(true); } catch (InnoExCeption ex)//from driver { //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace); exceptionList.Add(ex); return(false); } catch (Exception error)//from itself { //one way: deal this exception itself InnoExCeption ex = new InnoExCeption(ExceptionDictionary.Code._0x02100, error.StackTrace); //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace); exceptionList.Add(ex); return(false); //the other way is: should throw exception, rather than the above three code. see below: //throw new InnoExCeption(ExceptionDictionary.Code._0x02100, error.StackTrace); } }