Exemple #1
0
        public int SetTrigMode(int encChn, JFCompareTrigMode mode)
        {
            if (!IsOpen)
            {
                return((int)ErrorDef.NotOpen);
            }
            if (encChn < 0 || encChn >= EncoderChannels)
            {
                throw new ArgumentOutOfRangeException("SetTrigMode(encChn ,...) fialed By:encChn = " + encChn + " is outof range:0~" + (EncoderChannels - 1));
            }

            if (mode == trigModes[encChn])
            {
                return((int)ErrorDef.Success);
            }

            if (trigModes.ContainsKey(encChn))
            {
                trigModes[encChn] = mode;
            }
            else
            {
                trigModes.Add(encChn, mode);
            }


            _jf168Cfg.Save();
            return((int)ErrorDef.Success);
        }
Exemple #2
0
 public int GetTrigMode(int encChn, out JFCompareTrigMode mode)
 {
     mode = JFCompareTrigMode.disable;
     if (!IsOpen)
     {
         return((int)ErrorDef.NotOpen);
     }
     if (encChn < 0 || encChn >= EncoderChannels)
     {
         throw new ArgumentOutOfRangeException("GetTrigMode(encChn ,...) fialed By:encChn = " + encChn + " is outof range:0~" + (EncoderChannels - 1));
     }
     mode = trigModes[encChn];
     return((int)ErrorDef.Success);
 }
Exemple #3
0
        public int SetTrigMode(int encChn, JFCompareTrigMode mode)
        {
            if (!IsOpen)
            {
                return((int)ErrorDef.NotOpen);
            }
            if (encChn < 0 || encChn >= EncoderChannels)
            {
                throw new ArgumentOutOfRangeException("SetTrigMode(encChn ,...) fialed By:encChn = " + encChn + " is outof range:0~" + (EncoderChannels - 1));
            }
            int err = 0;

            if (mode == trigModes[encChn])
            {
                return((int)ErrorDef.Success);
            }

            int ret = (int)ErrorDef.ParamError;

            switch (mode)
            {
            case JFCompareTrigMode.disable:
                err = HTM.SetLinTrigEnable(devIndexes[devIndexes[encChn]], 0);
                if (err != 0)
                {
                    return((int)ErrorDef.InvokeFailed);
                }
                if (trigType == TriggerType.PosTrig)
                {
                    for (int i = 0; i < trigTables[encChn].Length; i++)     //HTM点表触发只支持2个点
                    {
                        err = HTM.SetPtTrigEnable(devIndexes[encChn], i, 0);
                        if (err != 0)
                        {
                            return((int)ErrorDef.InvokeFailed);
                        }
                    }
                }
                ret = (int)ErrorDef.Success;
                trigModes[encChn] = mode;
                break;

            case JFCompareTrigMode.liner:
                err = HTM.SetLinTrigEnable(devIndexes[encChn], 1);
                if (err != 0)
                {
                    ret = (int)ErrorDef.InvokeFailed;
                    break;
                }
                if (trigType == TriggerType.PosTrig)
                {
                    for (int i = 0; i < trigTables[encChn].Length; i++)     //HTM点表触发只支持2个点
                    {
                        err = HTM.SetPtTrigEnable(devIndexes[encChn], i, 0);
                        if (err != 0)
                        {
                            return((int)ErrorDef.InvokeFailed);
                        }
                    }
                }
                ret = (int)ErrorDef.Success;
                trigModes[encChn] = mode;
                break;

            case JFCompareTrigMode.table:
                err = HTM.SetLinTrigEnable(devIndexes[encChn], 0);     //先禁用线性触发
                if (err != 0)
                {
                    return((int)ErrorDef.InvokeFailed);
                }
                //if (trigType == TriggerType.PosTrig)
                {
                    for (int i = 0; i < trigTables[encChn].Length; i++)     //HTM点表触发只支持2个点
                    {
                        err = HTM.SetPtTrigEnable(devIndexes[encChn], i, 1);
                        if (err != 0)
                        {
                            return((int)ErrorDef.InvokeFailed);
                        }
                    }
                }
                ret = (int)ErrorDef.Success;
                trigModes[encChn] = mode;
                break;

            default:
                break;
            }

            return(ret);
        }
Exemple #4
0
        /// <summary>
        ///
        /// </summary>
        public void AdjustView()
        {
            if (InvokeRequired)
            {
                Invoke(new Action(AdjustView));
                return;
            }
            if (null == _module)
            {
                lbID.Text          = "空对象";
                tbEnc.Text         = "";
                tbTrigCount.Text   = "";
                btResetCnt.Enabled = false;
                cbMode.Text        = "";//cbMode.SelectedIndex = 0;
                cbMode.Enabled     = false;
                btSoftTrig.Enabled = false;
                btCfg.Enabled      = false;
                btSync.Enabled     = false;
                return;
            }
            lbID.Text = _id;
            double dVal = 0;
            int    err  = _module.GetEncoderCurrPos(_encChn, out dVal);

            if (err != 0)
            {
                tbEnc.Text = "Err:" + _module.GetErrorInfo(err);
            }
            else
            {
                tbEnc.Text = dVal.ToString();
            }
            int nVal = 0;

            int[] trigChns = null;
            err = _module.GetEncoderTrigBind(_encChn, out trigChns);//一个编码器输入可能会绑定多个触发输出
            if (err != 0)
            {
                tbTrigCount.Text = "Err:" + _module.GetErrorInfo(err);
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < trigChns.Length; i++)
                {
                    int trigChn = trigChns[i];
                    err = _module.GetTriggedCount(trigChn, out nVal);
                    if (err != 0)
                    {
                        sb.Append("Err");
                    }
                    else
                    {
                        sb.Append(nVal.ToString());
                    }
                    if (i < trigChns.Length - 1)
                    {
                        sb.Append("|");
                    }
                }
                tbTrigCount.Text = sb.ToString();
            }
            btSync.Enabled     = true;
            btResetCnt.Enabled = true;
            cbMode.Enabled     = true;
            JFCompareTrigMode trigMode = JFCompareTrigMode.disable;

            err = _module.GetTrigMode(_encChn, out trigMode);
            if (err != 0)
            {
                cbMode.Text = "Err";
            }
            else
            {
                cbMode.SelectedIndex = (int)trigMode;
            }
            btSoftTrig.Enabled = true;
            btCfg.Enabled      = true;
        }