/// <summary> /// 初始化仪器操作接口 /// </summary> /// <param name="ins">1,光纤,2:积分球,6:积分球+透射</param> private static bool InitInstrumentObject(int type) { info = new InstrumentInterface.InstrumentInfo(); info.instrumentFactor = FTNirInterface.enumInstrumentFactor.Vspec; //判断仪器是否是积分球类型 string jsonString = GetParametersTable(); if (jsonString != null) { JsonString.ParametersTable par = JsonString.JsonToObj <JsonString.ParametersTable>(jsonString); info.serialNumber = par.serialNum; } switch (type) { case 1: baseObj = new Types.Fiber(); info.instrumentType = FTNirInterface.enumInstrumentType.Fiber; return(true); case 2: baseObj = new Types.IntegratingSphere(); info.instrumentType = FTNirInterface.enumInstrumentType.IntegratingSphere; return(true); case 6: baseObj = new Types.IntegratingSphereTrans(); info.instrumentType = FTNirInterface.enumInstrumentType.QuasIR; return(true); default: errorCode = -19; return(false); } }
/// <summary> /// 返回当前执行的错误 /// </summary> /// <returns></returns> //public static string GetError() { return ErrorString; } /// <summary> /// 连接仪器 /// </summary> /// <returns></returns> public static bool Connect() { if (instrumentObject == null) { instrumentObject = new VspecNIRObject(); } if (instrumentObject == null) { errorCode = -10; return(false); } errorCode = instrumentObject.Connect(); isConnected = (errorCode == 0); //判断仪器是否是积分球类型 string jsonString = ""; errorCode = instrumentObject.GetParametersTable(ref jsonString); if (errorCode == 0 && jsonString != "") { JsonString.ParametersTable par = JsonString.JsonToObj <JsonString.ParametersTable>(jsonString); InitInstrumentObject(par.systemType); } return(isConnected); }
/// <summary> /// 把激光波数写入仪器 /// </summary> /// <param name="curPeak">当前峰位</param> /// <param name="targetPeak">目标峰位</param> /// <returns></returns> public bool?SetLaserWavelength(double curPeak, double targetPeak, ref double curLaser) { if (!isConnected) { errorCode = -11; return(false); } string paraString = GetParametersTable(); if (paraString == null) { return(false); } JsonString.ParametersTable senser = JsonString.JsonToObj <JsonString.ParametersTable>(paraString); string tempString = string.Empty; try { tempString = (senser.laserWavelen * curPeak / targetPeak).ToString(); } catch { return(false); } double tempValue = Convert.ToDouble(tempString.Substring(0, tempString.Length < 17 ? tempString.Length : 17)); if (tempValue < 645 && tempValue > 635) { errorCode = instrumentObject.SetLaserWavelength(tempValue.ToString()); } else { errorCode = -15; } return(errorCode == 0); }