Ejemplo n.º 1
0
        public int GetAllDOs(out bool[] isONs)
        {
            isONs = new bool[DOCount];

            //lock (asynLocker)
            {
                if (!IsOpen)
                {
                    return((int)ErrorDef.NotOpen);
                }
                uint   doVals = 0;
                ushort ports  = (ushort)((DOCount + 31) / 32);
                for (ushort i = 0; i < ports; i++)
                {
                    if (0 != DASK.DO_ReadPort(_devHandle, i, out doVals))
                    {
                        return((int)ErrorDef.InvokeFailed);
                    }
                    for (int j = 0; j < 32; j++)
                    {
                        if (i * 32 + j == DOCount)
                        {
                            break;
                        }
                        isONs[i * 32 + j] = (doVals & (1 << j)) != 0;
                    }
                }
            }
            return((int)ErrorDef.Success);
        }
Ejemplo n.º 2
0
        private void CycleReadIO()
        {
            // 阻塞等触发
            while (_cycleCycleReadIOFlag)
            {
                uint dInput = 0;
                int  ret    = DASK.DI_ReadPort((ushort)_config.DevIndex, 0, out dInput);
                if (dInput != 0)
                {
                    if (groupDIVal[0] != -1 && CycleTrigList.Count > 0)
                    {
                        CycleCmpDI(0, (int)dInput);
                    }
                    groupDIVal[0] = (int)dInput;
                }

                uint dOut = 0;
                ret = DASK.DO_ReadPort((ushort)_config.DevIndex, 0, out dOut);
                if (dOut != 0)
                {
                    groupDOVal[0] = (int)dOut;
                }

                Thread.Sleep(5);
            }
        }
Ejemplo n.º 3
0
        public int ReadSingleDOutput(int boardId, int group, int idx, out int iVal)
        {
            uint doValue0 = 0;
            var  ret      = 0;

            iVal = -1;

            ret  = DASK.DO_ReadPort((ushort)_config.DevIndex, 0, out doValue0);
            iVal = (int)(doValue0 >> idx) & 1;
            return(ret);
        }
Ejemplo n.º 4
0
        public int ReadMultiDOutputFromAPI(int boarId, int group, ref int val)
        {
            try
            {
                uint doValue1;
                DASK.DO_ReadPort((ushort)boarId, 0, out doValue1);
                val = (int)doValue1;
            }
            catch
            {
            }

            return(0);
        }
Ejemplo n.º 5
0
 public static int ReadIOCard7432OutputBit(ushort cardID, int cardOutputBit)//读扩展IO卡输出点
 {
     if (CAMiClsVariable.strIOCard == "7432")
     {
         uint doValue = 0;
         bool outputBitStatus;;
         int  result;
         DASK.DO_ReadPort((ushort)CAMiClsVariable.cardRegId, 0, out doValue);
         outputBitStatus = (doValue & (1 << cardOutputBit)) != 0;
         result          = outputBitStatus ? 1 : 0;
         return(result);
     }
     else//APE IO卡
     {
         uint doValue = 0;
         bool outputStatus;
         int  result;
         DAQ_I32.DAQ_Mul_GDO_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, (int)cardID, ref doValue);
         outputStatus = (doValue & (1 << cardOutputBit)) != 0;
         result       = outputStatus ? 1 : 0;//返回当前点位电平状态,0或1
         return(result);
     }
 }