public int SetWorkMode(JFLightWithTrigWorkMode mode) { lock (asyncLocker) { if (!IsDeviceOpen) { return((int)ErrorDef.NotOpen); } int modeParam = 0; if (mode == JFLightWithTrigWorkMode.Trigger) //opt光源控制器: 0-〉开关模式 1-〉常规亮度的触发模式 2-〉高亮度触发模式 { modeParam = 2; } int modeInner = 0; int errCode = opt.ReadWorkMode(ref modeInner); errCode = opt.SetWorkMode(modeParam); if (errCode != OPTControllerAPI.OPT_SUCCEED) { return((int)ErrorDef.InvokeFailed); } return((int)ErrorDef.Success); } }
/// <summary> /// 打开设备 /// </summary> public int OpenDevice() { if (!IsInitOK) { return((int)ErrorDef.InitFailedWhenOpen); } lock (asyncLocker) { if (IsDeviceOpen) { if (linkedMode == linkMode && linkedParam == linkParam) { return((int)ErrorDef.Success); } CloseDevice(); } opt = new OPTControllerAPI(); int errCode = 0; if (linkMode == linkModeParamRange[0] as string) { errCode = opt.InitSerialPort(linkedParam); } else if (linkMode == linkModeParamRange[1] as string) { errCode = opt.CreateEtheConnectionByIP(linkParam); } else// if(linkMode == linkModeParamRange[2] as string) { errCode = opt.CreateEtheConnectionBySN(linkParam); } if (errCode != OPTControllerAPI.OPT_SUCCEED) { //关闭打开的设备 if (linkMode == linkModeParamRange[0] as string) { opt.ReleaseSerialPort(); } else// if (linkMode == linkModeParamRange[1] as string) { opt.DestoryEtheConnect(); } //else// if(linkMode == linkModeParamRange[2] as string) // errCode = opt.CreateEtheConnectionBySN(linkParam); return((int)ErrorDef.InvokeFailed); } errCode = opt.TurnOffChannel(0);//关闭所有通道 if (OPTControllerAPI.OPT_SUCCEED != errCode) { if (linkMode == linkModeParamRange[0] as string) { opt.ReleaseSerialPort(); } else// if (linkMode == linkModeParamRange[1] as string) { opt.DestoryEtheConnect(); } //else// if(linkMode == linkModeParamRange[2] as string) // errCode = opt.CreateEtheConnectionBySN(linkParam); return((int)ErrorDef.InvokeFailed); } for (int i = 0; i < LightChannelCount; i++) { chnEnables[i] = false; } //errCode = SetWorkMode(0);//将控制器设为开关模式 errCode = opt.SetWorkMode(0); if (errCode != OPTControllerAPI.OPT_SUCCEED) { if (linkMode == linkModeParamRange[0] as string) { opt.ReleaseSerialPort(); } else// if (linkMode == linkModeParamRange[1] as string) { opt.DestoryEtheConnect(); } //else// if(linkMode == linkModeParamRange[2] as string) // errCode = opt.CreateEtheConnectionBySN(linkParam); return((int)ErrorDef.InvokeFailed); } linkedMode = linkMode; linkedParam = linkParam; IsDeviceOpen = true; return((int)ErrorDef.Success); } }