示例#1
0
        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);
        }
示例#2
0
        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);
        }