public int GetTrigEnable(int trigChn, out bool isEnabled) { isEnabled = false; if (!IsOpen) { return((int)ErrorDef.NotOpen); } if (trigChn < 0 || trigChn >= TrigChannels) { throw new ArgumentOutOfRangeException("GetTrigEnable(trigChn ,...) fialed By:trigChn = " + trigChn + " is outof range:0~" + (EncoderChannels - 1)); } int Param_Val = 0; int ret = APS168.APS_get_trigger_param(BoardID, (Int32)APS_Define.TGR_TRG_EN, ref Param_Val); if (ret != 0) { return((int)ErrorDef.InvokeFailed); } if (((Param_Val >> trigChn) & 1) == 1) { isEnabled = true; } else { isEnabled = false; } return((int)ErrorDef.Success); }
public int SetTrigEnable(int trigChn, bool isEnable) { if (trigChn < 0 || trigChn >= TrigChannels) { throw new ArgumentOutOfRangeException("SetTrigEnable(trigChn ,...) fialed By:trigChn = " + trigChn + " is outof range:0~" + (TrigChannels - 1)); } int Param_Val = 0; int ret = APS168.APS_get_trigger_param(BoardID, (Int32)APS_Define.TGR_TRG_EN, ref Param_Val); if (ret != 0) { return((int)ErrorDef.InvokeFailed); } int currentstatus = (Param_Val >> trigChn) & 1; if (currentstatus == 1) { if (!isEnable) { Param_Val = Param_Val - (1 << trigChn); } } else { if (isEnable) { Param_Val = Param_Val + (1 << trigChn); } } ret = APS168.APS_set_trigger_param(BoardID, (Int32)APS_Define.TGR_TRG_EN, Param_Val); if (ret != 0) { return((int)ErrorDef.InvokeFailed); } if (trigEnables.ContainsKey(trigChn)) { trigEnables[trigChn] = isEnable; } else { trigEnables.Add(trigChn, isEnable); } _jf168Cfg.Save(); if (SaveParamsToFlash() != 0) { return((int)ErrorDef.InvokeFailed); } return((int)ErrorDef.Success); }