Ejemplo n.º 1
0
        private bool SelectLowIndex(int nIndex, uint uValue)
        {
            int nModuleCount = 0;

            CAXD.AxdInfoGetModuleCount(ref nModuleCount);

            if (nModuleCount > 0)
            {
                int  nBoardNo   = 0;
                int  nModulePos = 0;
                uint uModuleID  = 0;

                CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID);

                switch ((AXT_MODULE)uModuleID)
                {
                case AXT_MODULE.AXT_SIO_DO32P:
                case AXT_MODULE.AXT_SIO_DO32T:
                case AXT_MODULE.AXT_SIO_RDO32:
                    CAXD.AxdoWriteOutportBit(comboModule.SelectedIndex, nIndex + 16, uValue);
                    break;

                case AXT_MODULE.AXT_SIO_DB32P:
                case AXT_MODULE.AXT_SIO_DB32T:
                case AXT_MODULE.AXT_SIO_RDB128MLII:
                    CAXD.AxdoWriteOutportBit(comboModule.SelectedIndex, nIndex, uValue);
                    break;

                default:
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public bool ReadInBit(int index, ref uint value)
        {
            try
            {
                if (m_nModuleCount <= 0)
                {
                    return(false);
                }

                if (index < m_nInputCount)
                {
                    CAXD.AxdiReadInport(index, ref value);

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception E)
            {
                throw E;
            }
        }
Ejemplo n.º 3
0
        public bool GetIn(int _iNo, bool _bDirect = false)
        {
            //Check Error.
            if (_iNo >= m_iMaxIn || _iNo < 0)
            {
                return(false);
            }

            //Get Addr.
            int iBitAddr;
            int iModule;
            int iModuleDp;

            GetInfoInput(_iNo, out iModule, out iModuleDp, out iBitAddr);

            //OutPut
            if (_bDirect)
            {
                uint uiOn = 0;
                CAXD.AxdiReadInportBit(iModule, iBitAddr, ref uiOn);
                return(uiOn == 0 ? false : true);
            }
            else
            {
                bool bRet = ((m_aModuleInfo[iModule].uDataIn >> iBitAddr) & 0x01) == 0x01;
                return(bRet);
            }
        }
Ejemplo n.º 4
0
        public bool WriteOutBit(int index, uint value)
        {
            try
            {
                if (m_nModuleCount <= 0)
                {
                    return(false);
                }

                if (index < m_nOutputCount)
                {
                    //for (int i = 0; i < Modules.Count; i++)
                    //{
                    //    if (index >= Modules[i].nOutStartIndex && index <= Modules[i].nOutEndIndex)
                    //    {
                    //        int nInd = index - Modules[i].nOutStartIndex;
                    //        CAXD.AxdoWriteOutportBit(i, nInd, value);
                    //        break;
                    //    }
                    //}

                    CAXD.AxdoWriteOutport(index, value);

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception E)
            {
                throw E;
            }
        }
Ejemplo n.º 5
0
 public void input(int moduleNo, int index, out bool value, out bool b)
 {
     try
     {
         if (!isActivate)
         {
             value = false; b = true; return;
         }
         uint v = 0;
         CAXD.AxdiReadInportBit(moduleNo, index, ref v);
         if (v == 0)
         {
             value = false;
         }
         else
         {
             value = true;
         }
         b = true;
     }
     catch
     {
         value = false;
         b     = false;
     }
 }
Ejemplo n.º 6
0
 public void output(int moduleNo, int index, bool value, out bool b)
 {
     try
     {
         if (!isActivate)
         {
             b = true; return;
         }
         uint v;
         if (value)
         {
             v = 1;
         }
         else
         {
             v = 0;
         }
         CAXD.AxdoWriteOutportBit(moduleNo, index, v);
         b = true;
     }
     catch
     {
         b = false;
     }
 }
Ejemplo n.º 7
0
        public void Write()
        {
            int i = 0;

            lock (this)
            {
                if (Type == EAxtDio.DO)
                {
                    foreach (AxtDioWordModule module in modules)
                    {
                        i = module.ModuleNo * 2;

                        if (nowValue.Word(i) != tempValue.Word(i))
                        {
                            Validate(CAXD.AxdoWriteOutportWord(module.ModuleNo, module.Offset, tempValue.Word(i)));
                        }
                    }

                    foreach (KeyValuePair <int, UlRelayTimer> timer in timers)
                    {
                        timer.Value.IN = tempValue[timer.Key];
                    }
                }
            }
        }
Ejemplo n.º 8
0
        private bool InterruptProc(AXT_INTERRUPT_CLASS uClass, int nModuleNo, uint uFlag)
        {
            int    i        = 0;
            int    j        = 0;
            uint   uValue   = 0;
            string strClass = "";
            string strInt   = "";

            switch (uClass)
            {
            case AXT_INTERRUPT_CLASS.KIND_MESSAGE:
                strClass = "Message";
                break;

            case AXT_INTERRUPT_CLASS.KIND_CALLBACK:
                strClass = "Callback";
                break;

            case AXT_INTERRUPT_CLASS.KIND_EVENT:
                strClass = "Event";
                break;
            }

            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 8; j++)
                {
                    if ((((uFlag >> (i * 8)) >> j) & 0x01) == 0x01)
                    {
                        CAXD.AxdiReadInportBit(nModuleNo, ((i * 8) + j), ref uValue);

                        if (uValue == 0x01)
                        {
                            strInt = String.Format("{0:s} : Rising Int Set Bit {1:X2}", strClass, (i * 8) + j);
                        }
                        else
                        {
                            strInt = String.Format("{0:s} : Falling Int Set Bit {1:X2}", strClass, (i * 8) + j);
                        }


                        if (textInterrupt.TextLength == 0)
                        {
                            textInterrupt.Text += strInt;
                        }
                        else
                        {
                            textInterrupt.Text += "\r\n" + strInt;
                        }


                        textInterrupt.SelectionStart = textInterrupt.TextLength;
                        textInterrupt.ScrollToCaret();
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 9
0
        //상속된것들.
        public bool Init()
        {
            //통합 보드 초기화 부분.
            if (CAXL.AxlIsOpened() == 0)
            {                           // 통합 라이브러리가 사용 가능하지 (초기화가 되었는지) 확인
                if (CAXL.AxlOpenNoReset(7) != 0)
                {                       // 통합 라이브러리 초기화
                    Log.ShowMessage("Dio", "AJIN AXL Lib Loading Error");
                    return(false);
                }
            }

            uint uiStatus = 0;
            uint uiRet    = CAXD.AxdInfoIsDIOModule(ref uiStatus);

            if (uiRet != 0)
            {
                if (uiStatus == 0)
                {
                    Log.ShowMessage("Dio", "AJIN AXL No Exist IO Module");
                }
                else
                {
                    Log.ShowMessage("Dio", "AJIN AXL Init Failed");
                }

                return(false);
            }



            //모듈 정보 확인 부분.
            //InPut OutPut Count Set
            CAXD.AxdInfoGetModuleCount(ref m_iModuleCnt);


            //Get Max I Module , O Module Count.
            int iInputCnt = 0, iOutputCnt = 0;


            m_aModuleInfo = new TModuleInfo[m_iModuleCnt];
            for (int i = 0; i < m_iModuleCnt; i++)
            {
                CAXD.AxdInfoGetInputCount(i, ref iInputCnt);
                CAXD.AxdInfoGetOutputCount(i, ref iOutputCnt);

                m_iMaxIn  += iInputCnt;
                m_iMaxOut += iOutputCnt;

                m_aModuleInfo[i].iCntIn  = iInputCnt;
                m_aModuleInfo[i].iCntOut = iOutputCnt;
                //m_aModuleInfo[i].uData   = 0         ;
            }

            return(true);
        }
Ejemplo n.º 10
0
 private void ThreadProc()
 {
     while (bThread)
     {
         if (WaitForSingleObject(hInterrupt, INFINITE) == WAIT_OBJECT_0)
         {
             int  nModuleNo = 0;
             uint uFlag     = 0;
             CAXD.AxdiInterruptRead(ref nModuleNo, ref uFlag);
             this.InterruptProc(AXT_INTERRUPT_CLASS.KIND_EVENT, nModuleNo, uFlag);
         }
     }
     EventThread = null;
 }
Ejemplo n.º 11
0
        public bool[] readOutput_Map()
        {
            short nIndex = 0;
            uint  uDataHigh = 0, uDataLow = 0, uFlagHigh = 0, uFlagLow = 0, uModuleID = 0;
            int   nBoardNo = 0, nModulePos = 0;

            int boolArrayQuentity = this.m_Otp_Module_Quentity * 32;

            bool[] m_bReadResultIOMap = new bool[boolArrayQuentity];

            for (int moduleNo = 0; moduleNo < this.m_Otp_Module_Quentity; moduleNo++)
            {
                CAXD.AxdInfoGetModule(moduleNo + 3, ref nBoardNo, ref nModulePos, ref uModuleID);
                CAXD.AxdoReadOutportWord(moduleNo + 3, 0, ref uDataHigh);
                CAXD.AxdoReadOutportWord(moduleNo + 3, 1, ref uDataLow);

                for (nIndex = 0; nIndex < 16; nIndex++)
                {
                    int wIndex = nIndex + 32 * moduleNo;
                    // Verify the last bit value of data read
                    uFlagHigh = uDataHigh & 0x0001;
                    uFlagLow  = uDataLow & 0x0001;

                    // Shift rightward by bit by bit
                    uDataHigh = uDataHigh >> 1;
                    uDataLow  = uDataLow >> 1;

                    // Updat bit value in control
                    if (uFlagHigh == 1)
                    {
                        m_bReadResultIOMap[wIndex] = true;
                    }
                    else
                    {
                        m_bReadResultIOMap[wIndex] = false;
                    }

                    if (uFlagLow == 1)
                    {
                        m_bReadResultIOMap[wIndex + 16] = true;
                    }
                    else
                    {
                        m_bReadResultIOMap[wIndex + 16] = false;
                    }
                }
            }
            return(m_bReadResultIOMap);
        }
Ejemplo n.º 12
0
        private bool SelectCallback()
        {
            uint pEvent = 0;

            if (EventThread != null)
            {
                EventThread.Abort();
                EventThread = null;
                bThread     = false;
            }

            CAXD.AxdiInterruptSetModule(comboModule.SelectedIndex, (IntPtr)null, 0, new CAXHS.AXT_INTERRUPT_PROC(InterruptCallback), ref pEvent);

            return(true);
        }
Ejemplo n.º 13
0
        private bool SelectMessage()
        {
            uint pEvent = 0;

            if (EventThread != null)
            {
                bThread = false;
                SetEvent(hInterrupt);
                //EventThread.Abort();
                //EventThread	= null;
            }

            CAXD.AxdiInterruptSetModule(comboModule.SelectedIndex, this.Handle, (uint)AXT_EVENT.WM_AXL_INTERRUPT, null, ref pEvent);

            return(true);
        }
Ejemplo n.º 14
0
        private void InitializeDIO()
        {
            UInt32 retValue = 0;

            // DIO 모듈 존재여부 확인
            Validate(CAXD.AxdInfoIsDIOModule(ref retValue));

            if (retValue == (UInt32)AXT_EXISTENCE.STATUS_EXIST)
            {
                int moduleCount = 0;

                Validate(CAXD.AxdInfoGetModuleCount(ref moduleCount));

                for (int i = 0; i < moduleCount; i++)
                {
                    int channelCount = 0;

                    // DI 채널 개수 확인
                    Validate(CAXD.AxdInfoGetInputCount(i, ref channelCount));

                    if (channelCount > 0)
                    {
                        for (int j = 0; j < channelCount / 16; j++)
                        {
                            AxtDioWordModule module = new AxtDioWordModule(i, j);
                            DI.AddModule(module);
                        }
                    }

                    // DO 채널 개수 확인
                    Validate(CAXD.AxdInfoGetOutputCount(i, ref channelCount));

                    if (channelCount > 0)
                    {
                        for (int j = 0; j < channelCount / 16; j++)
                        {
                            AxtDioWordModule module = new AxtDioWordModule(i, j);
                            DO.AddModule(module);
                        }
                    }
                }

                DI.Initialize();
                DO.Initialize();
                Read();
            }
        }
Ejemplo n.º 15
0
        public void Read()
        {
            int    i     = 0;
            UInt32 value = 0;

            lock (this)
            {
                if (Type == EAxtDio.DI)
                {
                    foreach (AxtDioWordModule module in modules)
                    {
                        i = module.ModuleNo * 2;
                        Validate(CAXD.AxdiReadInportWord(module.ModuleNo, module.Offset, ref value));

                        oldValue.Word(i, nowValue.Word(i));
                        nowValue.Word(i, (UInt16)value);
                    }

                    foreach (KeyValuePair <int, UlTripState> trip in trips)
                    {
                        if (trip.Value.Tripped(nowValue[trip.Key]) == true)
                        {
                            TripCode = trip.Value.Code;
                            break;
                        }
                    }

                    foreach (KeyValuePair <int, UlRelayTimer> timer in timers)
                    {
                        timer.Value.IN = nowValue[timer.Key];
                    }
                }
                else
                {
                    foreach (AxtDioWordModule module in modules)
                    {
                        i = module.ModuleNo * 2;
                        Validate(CAXD.AxdoReadOutportWord(module.ModuleNo, module.Offset, ref value));

                        oldValue.Word(i, nowValue.Word(i));
                        nowValue.Word(i, (UInt16)value);
                        tempValue.Word(i, (UInt16)value);
                    }
                }
            }
        }
Ejemplo n.º 16
0
        private void checkFallingEdge_CheckedChanged(object sender, System.EventArgs e)
        {
            int nModuleCount = 0;

            CAXD.AxdInfoGetModuleCount(ref nModuleCount);

            if (nModuleCount > 0)
            {
                int  nBoardNo   = 0;
                int  nModulePos = 0;
                uint uModuleID  = 0;

                CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID);

                switch ((AXT_MODULE)uModuleID)
                {
                case AXT_MODULE.AXT_SIO_DI32:
                    if (checkFallingEdge.Checked)
                    {
                        CAXD.AxdiInterruptEdgeSetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.DOWN_EDGE, 0xFFFF);
                        CAXD.AxdiInterruptEdgeSetWord(comboModule.SelectedIndex, 1, (uint)AXT_DIO_EDGE.DOWN_EDGE, 0xFFFF);
                    }
                    else
                    {
                        CAXD.AxdiInterruptEdgeSetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.DOWN_EDGE, 0x0000);
                        CAXD.AxdiInterruptEdgeSetWord(comboModule.SelectedIndex, 1, (uint)AXT_DIO_EDGE.DOWN_EDGE, 0x0000);
                    }
                    break;

                case AXT_MODULE.AXT_SIO_DB32P:
                case AXT_MODULE.AXT_SIO_DB32T:
                    if (checkFallingEdge.Checked)
                    {
                        CAXD.AxdiInterruptEdgeSetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.DOWN_EDGE, 0xFFFF);
                    }
                    else
                    {
                        CAXD.AxdiInterruptEdgeSetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.DOWN_EDGE, 0x0000);
                    }
                    break;
                }
            }
        }
Ejemplo n.º 17
0
 public void Update()
 {
     for (int i = 0; i < m_iModuleCnt; i++)
     {
         if (m_aModuleInfo[i].iCntIn == 32 || m_aModuleInfo[i].iCntOut == 32)
         {
             CAXD.AxdoWriteOutportDword(i, 0, m_aModuleInfo[i].uDataOutSet);
             CAXD.AxdoReadOutportDword(i, 0, ref m_aModuleInfo[i].uDataOutGet);
             CAXD.AxdiReadInportDword(i, 0, ref m_aModuleInfo[i].uDataIn);
         }
         else if (m_aModuleInfo[i].iCntIn == 16 || m_aModuleInfo[i].iCntOut == 16)
         {
             CAXD.AxdoWriteOutportWord(i, 0, m_aModuleInfo[i].uDataOutSet);
             CAXD.AxdoReadOutportWord(i, 0, ref m_aModuleInfo[i].uDataOutGet);
             CAXD.AxdiReadInportWord(i, 0, ref m_aModuleInfo[i].uDataIn);
         }
         //m_aModuleInfo[i].uDataOutSet = 0;// m_aModuleInfo[i].uDataOutGet;
     }
 }
Ejemplo n.º 18
0
        private void checkInterrupt_CheckedChanged(object sender, System.EventArgs e)
        {
            int nModuleCount = 0;

            CAXD.AxdInfoGetModuleCount(ref nModuleCount);

            if (nModuleCount > 0)
            {
                int  nBoardNo   = 0;
                int  nModulePos = 0;
                uint uModuleID  = 0;

                CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID);

                switch ((AXT_MODULE)uModuleID)
                {
                case AXT_MODULE.AXT_SIO_DI32:
                case AXT_MODULE.AXT_SIO_DB32P:
                case AXT_MODULE.AXT_SIO_DB32T:
                    if (checkInterrupt.Checked)
                    {
                        CAXL.AxlInterruptEnable();
                        CAXD.AxdiInterruptSetModuleEnable(comboModule.SelectedIndex, (uint)AXT_USE.ENABLE);
                    }
                    else
                    {
                        IntPtr pEvent = (IntPtr)0;


                        CAXD.AxdiInterruptSetModuleEnable(comboModule.SelectedIndex, (uint)AXT_USE.DISABLE);
                        CAXL.AxlInterruptDisable();
                    }
                    break;

                case AXT_MODULE.AXT_SIO_DO32P:
                case AXT_MODULE.AXT_SIO_DO32T:
                case AXT_MODULE.AXT_SIO_RDB128MLII:

                    checkInterrupt.Checked = false;
                    break;
                }
            }
        }
Ejemplo n.º 19
0
        private bool SelectEvent()
        {
            CAXD.AxdiInterruptSetModule(comboModule.SelectedIndex, (IntPtr)null, 0, null, ref hInterrupt);

            if (EventThread != null)
            {
                EventThread.Abort();
                EventThread = null;
                bThread     = false;
            }

            if (!bThread)
            {
                bThread     = true;
                EventThread = new Thread(new ThreadStart(this.ThreadProc));
                EventThread.Start();
            }

            return(true);
        }
Ejemplo n.º 20
0
 public bool IsEmergency()
 {
     if (CAXL.AxlIsOpened() == 1)
     {
         uint value = 0;
         CAXD.AxdiReadInportBit(0, 0, ref value);
         if (value == 1)
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 21
0
        public bool ReadOutBit(int index, ref uint value)
        {
            try
            {
                if (index < m_nOutputCount)
                {
                    CAXD.AxdoReadOutport(index, ref value);

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception E)
            {
                throw E;
            }
        }
Ejemplo n.º 22
0
        public bool SetOut(int _iNo, bool _bOn)
        {
            //Check Error.
            if (_iNo >= m_iMaxOut || _iNo < 0)
            {
                return(false);
            }

            //Get Addr.
            int iBitAddr;
            int iModule;
            int iModuleDp;


            GetInfoOutput(_iNo, out iModule, out iModuleDp, out iBitAddr);

            //OutPut
            uint uiOn = _bOn ? (uint)1 : (uint)0;

            CAXD.AxdoWriteOutportBit(iModule, iBitAddr, uiOn);
            return(true);
        }
Ejemplo n.º 23
0
        public bool GetIn(int _iNo)
        {
            //Check Error.
            if (_iNo >= m_iMaxIn || _iNo < 0)
            {
                return(false);
            }

            //Get Addr.
            int iBitAddr;
            int iModule;
            int iModuleDp;


            GetInfoInput(_iNo, out iModule, out iModuleDp, out iBitAddr);

            //OutPut
            uint uiOn = 0;

            CAXD.AxdiReadInportBit(iModule, iBitAddr, ref uiOn);

            return(uiOn == 0 ? false : true);
        }
Ejemplo n.º 24
0
        public bool SetOut(int _iNo, bool _bOn, bool _bDirect = false)
        {
            //Check Error.
            if (_iNo >= m_iMaxOut || _iNo < 0)
            {
                return(false);
            }

            //Get Addr.
            int iBitAddr;
            int iModule;
            int iModuleDp;


            GetInfoOutput(_iNo, out iModule, out iModuleDp, out iBitAddr);

            //OutPut
            if (_bDirect)
            {
                uint uiOn = _bOn ? (uint)1 : (uint)0;
                CAXD.AxdoWriteOutportBit(iModule, iBitAddr, uiOn);
                return(true);
            }
            else
            {
                uint uiOn = 0;
                if (_bOn)
                {
                    m_aModuleInfo[iModule].uDataOutSet |= (((uiOn >> iBitAddr) | 0x01) << iBitAddr);
                }
                else
                {
                    m_aModuleInfo[iModule].uDataOutSet &= ~(((uiOn >> iBitAddr) | 0x01) << iBitAddr);
                }
                return(true);
            }
        }
Ejemplo n.º 25
0
        private bool SelectModule()
        {
            int nModuleCount = 0;

            CAXD.AxdInfoGetModuleCount(ref nModuleCount);

            if (nModuleCount > 0)
            {
                int   nBoardNo   = 0;
                int   nModulePos = 0;
                uint  uModuleID  = 0;
                short nIndex     = 0;
                uint  uDataHigh  = 0;
                uint  uDataLow   = 0;
                uint  uFlagHigh  = 0;
                uint  uFlagLow   = 0;
                uint  uUse       = 0;

                CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID);

                switch ((AXT_MODULE)uModuleID)
                {
                case AXT_MODULE.AXT_SIO_DI32:
                case AXT_MODULE.AXT_SIO_RDI32:
                    groupHigh.Text = "INPUT  0bit ~ 15Bit";
                    groupLow.Text  = "INPUT 16bit ~ 31Bit";

                    if (((AXT_MODULE)uModuleID) == AXT_MODULE.AXT_SIO_RDI32)
                    {
                        checkInterrupt.Checked   = false;
                        radioCallback.Enabled    = false;
                        radioMessage.Enabled     = false;
                        radioEvent.Enabled       = false;
                        checkRigingEdge.Checked  = false;
                        checkFallingEdge.Checked = false;
                    }
                    else
                    {
                        checkInterrupt.Checked   = true;
                        radioCallback.Enabled    = true;
                        radioMessage.Enabled     = true;
                        radioEvent.Enabled       = true;
                        checkRigingEdge.Checked  = true;
                        checkFallingEdge.Checked = true;

                        CAXD.AxdiInterruptGetModuleEnable(comboModule.SelectedIndex, ref uUse);
                        if (uUse == (uint)AXT_USE.ENABLE)
                        {
                            checkInterrupt.Checked = true;
                            SelectMessage();
                        }
                        else
                        {
                            checkInterrupt.Checked = false;
                        }

                        CAXD.AxdiInterruptEdgeGetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.UP_EDGE, ref uDataHigh);
                        CAXD.AxdiInterruptEdgeGetWord(comboModule.SelectedIndex, 1, (uint)AXT_DIO_EDGE.UP_EDGE, ref uDataLow);
                        if (uDataHigh == 0xFFFF && uDataLow == 0xFFFF)
                        {
                            checkRigingEdge.Checked = true;
                        }
                        else
                        {
                            checkRigingEdge.Checked = false;
                        }

                        CAXD.AxdiInterruptEdgeGetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.DOWN_EDGE, ref uDataHigh);
                        CAXD.AxdiInterruptEdgeGetWord(comboModule.SelectedIndex, 1, (uint)AXT_DIO_EDGE.DOWN_EDGE, ref uDataLow);
                        if (uDataHigh == 0xFFFF && uDataLow == 0xFFFF)
                        {
                            checkFallingEdge.Checked = true;
                        }
                        else
                        {
                            checkFallingEdge.Checked = false;
                        }
                    }

                    for (nIndex = 0; nIndex < 16; nIndex++)
                    {
                        checkHigh[nIndex].Text = String.Format("{0:D2}", nIndex);
                        checkLow[nIndex].Text  = String.Format("{0:D2}", nIndex + 16);
                    }
                    break;

                case AXT_MODULE.AXT_SIO_DO32P:
                case AXT_MODULE.AXT_SIO_DO32T:
                case AXT_MODULE.AXT_SIO_RDO32:
                    groupHigh.Text = "OUTPUT  0bit ~ 15Bit";
                    groupLow.Text  = "OUTPUT 16bit ~ 31Bit";

                    checkInterrupt.Checked   = false;
                    radioCallback.Enabled    = false;
                    radioMessage.Enabled     = false;
                    radioEvent.Enabled       = false;
                    checkRigingEdge.Checked  = false;
                    checkFallingEdge.Checked = false;

                    //++
                    // Read outputting signal in WORD
                    CAXD.AxdoReadOutportWord(comboModule.SelectedIndex, 0, ref uDataHigh);
                    CAXD.AxdoReadOutportWord(comboModule.SelectedIndex, 1, ref uDataLow);

                    for (nIndex = 0; nIndex < 16; nIndex++)
                    {
                        // Verify the last bit value of data read
                        uFlagHigh = uDataHigh & 0x0001;
                        uFlagLow  = uDataLow & 0x0001;

                        // Shift rightward by bit by bit
                        uDataHigh = uDataHigh >> 1;
                        uDataLow  = uDataLow >> 1;

                        // Updat bit value in control
                        if (uFlagHigh == 1)
                        {
                            checkHigh[nIndex].Checked = true;
                        }
                        else
                        {
                            checkHigh[nIndex].Checked = false;
                        }

                        if (uFlagLow == 1)
                        {
                            checkLow[nIndex].Checked = true;
                        }
                        else
                        {
                            checkLow[nIndex].Checked = false;
                        }

                        checkHigh[nIndex].Text = String.Format("{0:D2}", nIndex);
                        checkLow[nIndex].Text  = String.Format("{0:D2}", nIndex + 16);
                    }
                    break;

                case AXT_MODULE.AXT_SIO_DB32P:
                case AXT_MODULE.AXT_SIO_DB32T:
                case AXT_MODULE.AXT_SIO_RDB128MLII:
                    groupHigh.Text = "INPUT  0bit ~ 15Bit";
                    groupLow.Text  = "OUTPUT  0bit ~ 15Bit";

                    // Only Digital Input was used
                    checkInterrupt.Enabled   = true;
                    checkRigingEdge.Enabled  = true;
                    checkFallingEdge.Enabled = true;

                    CAXD.AxdiInterruptGetModuleEnable(comboModule.SelectedIndex, ref uUse);
                    if (uUse == (uint)AXT_USE.ENABLE)
                    {
                        checkInterrupt.Checked = true;
                        SelectMessage();
                    }
                    else
                    {
                        checkInterrupt.Checked = false;
                    }

                    CAXD.AxdiInterruptEdgeGetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.UP_EDGE, ref uDataHigh);
                    if (uDataHigh == 0xFFFF)
                    {
                        checkRigingEdge.Checked = true;
                    }
                    else
                    {
                        checkRigingEdge.Checked = false;
                    }

                    CAXD.AxdiInterruptEdgeGetWord(comboModule.SelectedIndex, 0, (uint)AXT_DIO_EDGE.DOWN_EDGE, ref uDataHigh);
                    if (uDataHigh == 0xFFFF)
                    {
                        checkFallingEdge.Checked = true;
                    }
                    else
                    {
                        checkFallingEdge.Checked = false;
                    }

                    //++
                    // Read outputting signal in WORD
                    CAXD.AxdoReadOutportWord(comboModule.SelectedIndex, 0, ref uDataLow);

                    for (nIndex = 0; nIndex < 16; nIndex++)
                    {
                        // Verify the last bit value of data read
                        uFlagLow = uDataLow & 0x0001;

                        // Shift rightward by bit by bit
                        uDataLow = uDataLow >> 1;

                        // Updat bit value in control
                        if (uFlagLow == 1)
                        {
                            checkLow[nIndex].Checked = true;
                        }
                        else
                        {
                            checkLow[nIndex].Checked = false;
                        }

                        checkHigh[nIndex].Text = String.Format("{0:D2}", nIndex);
                        checkLow[nIndex].Text  = String.Format("{0:D2}", nIndex);
                    }
                    break;
                }
            }

            return(true);
        }
Ejemplo n.º 26
0
        public void activate(AXT_MODULE sub1, AXT_MODULE sub2, AXT_MODULE sub3, AXT_MODULE sub4, out bool b, out string s)
        {
            try
            {
                if (dev.NotExistHW.AXT)
                {
                    b = true; s = "OK"; return;
                }
                isActivate = false;
                try
                {
                    CAXL.AxlClose();
                }
                catch
                {
                    b = false; s = "Cannot find AXL.DLL"; return;
                }

                int  lIrqNo     = 19;
                uint uStatus    = 0;
                int  nDIOModule = 0;
                int  nAIOModule = 0;

                DI_ModulCount  = 0;
                DO_ModulCount  = 0;
                AIO_ModulCount = 0;
                if (sub1 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub2 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub3 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub4 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub1 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub2 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub3 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub4 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub1 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }
                if (sub2 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }
                if (sub3 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }
                if (sub4 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }

                uint            uResult = CAXL.AxlOpen(lIrqNo);
                AXT_FUNC_RESULT enReult;

                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = String.Format("AxlOpen Fail : IRQ[{0}], Error Code[{1}] - {2}", lIrqNo, uResult, enReult); return;
                }
                #region DIO Modul Check
                uResult = CAXD.AxdInfoIsDIOModule(ref uStatus);
                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = String.Format("DIO Module Exist Check Fail : Error Code[{0}] - {1}", uResult, enReult); return;
                }
                if ((AXT_EXISTENCE)uStatus != AXT_EXISTENCE.STATUS_EXIST)
                {
                    if (DI_ModulCount + DO_ModulCount > 0)
                    {
                        b = false; s = "CANNOT Find DIO Module!"; return;
                    }
                }
                //uResult = CAXD.AxdInfoGetModuleCount(ref nDIOModule);
                //if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                //{
                //    enReult = (AXT_FUNC_RESULT)uResult;		// convert int to enum
                //    b = false; s = String.Format("DIO Module Count Check Fail : Error Code[{0}] - {1}", uResult, enReult); return;
                //}
                //if (DI_ModulCount + DO_ModulCount != nDIOModule)
                //{
                //    b = false; s = String.Format("DIO Module Count Mismatch : Find[{0}] Need[{1}]", nDIOModule, (DI_ModulCount + DO_ModulCount)); return;
                //}

                int  nBoardNo   = 0;
                int  nModulePos = 0;
                uint uModuleID  = 0;

                for (int i = 0; i < nDIOModule; i++)
                {
                    uResult = CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID);
                    if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        enReult = (AXT_FUNC_RESULT)uResult;                                     // convert int to enum
                        b       = false; s = "DIO Module[" + i.ToString() + "] Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                    }
                    if (nBoardNo == 0)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub1 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub2 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[0] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }
                    else if (nBoardNo == 1)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub3 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub3 modul " + sub3.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub4 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub4 modul " + sub4.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[1] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }
                    //if (nBoardNo != 0) { b = false; s = "Fail : DIO nBoardNo " + nBoardNo.ToString(); return; }
                    //if (nModulePos == 0)
                    //{
                    //    if (sub1 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 1)
                    //{
                    //    if (sub2 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 2)
                    //{
                    //    if (sub3 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub3 modul " + sub3.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 3)
                    //{
                    //    if (sub4 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub4 modul " + sub4.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                }
                #endregion
                #region AIO Modul Check
                uResult = CAXA.AxaInfoIsAIOModule(ref uStatus);
                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = "DIO Module Exist Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                }
                if ((AXT_EXISTENCE)uStatus != AXT_EXISTENCE.STATUS_EXIST)
                {
                    if (AIO_ModulCount > 0)
                    {
                        b = false; s = "CANNOT Find AIO Module!"; return;
                    }
                }
                uResult = CAXA.AxaInfoGetModuleCount(ref nAIOModule);
                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = "AIO Module Count Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                }
                if (AIO_ModulCount != nAIOModule)
                {
                    b = false; s = "AIO Module Count Mismatch : Find[" + nAIOModule.ToString() + "] Need[" + (AIO_ModulCount).ToString() + "]"; return;
                }

                for (int i = 0; i < nAIOModule; i++)
                {
                    uResult = CAXA.AxaInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID);
                    if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        enReult = (AXT_FUNC_RESULT)uResult;                                     // convert int to enum
                        b       = false; s = "Analog Module[" + i.ToString() + "] Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                    }

                    if (nBoardNo == 0)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub1 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub2 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[0] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }
                    else if (nBoardNo == 1)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub3 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub3 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub4 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub4 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[1] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }

                    //if (nBoardNo != 1) { b = false; s = "AIO nBoardNo " + nBoardNo.ToString() + " : Fail"; return; }
                    //if (nModulePos == 0)
                    //{
                    //    if (sub1 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 1)
                    //{
                    //    if (sub2 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 2)
                    //{
                    //    if (sub3 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub3 modul " + sub3.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 3)
                    //{
                    //    if (sub4 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub4 modul " + sub4.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                }

                CAXA.AxaoInfoGetChannelCount(ref AO_ChannelCount);
                if (AO_ChannelCount != nAIOModule * 4)
                {
                    b = false; s = "Anlog Output Channel Count Check Fail : " + (nAIOModule * 4).ToString() + " : " + AO_ChannelCount.ToString(); return;
                }

                for (int i = 0; i < AO_ChannelCount; ++i)
                {
                    // 출력 Channel에 0V를 출력한다.
                    CAXA.AxaoWriteVoltage(i, 0);
                }

                CAXA.AxaiInfoGetChannelCount(ref AI_ChannelCount);
                if (AI_ChannelCount != nAIOModule * 8)
                {
                    b = false; s = "Analog Input Channel Count Check Fail : " + (nAIOModule * 8).ToString() + " : " + AI_ChannelCount.ToString(); return;
                }

                #endregion
                b          = true; s = "OK";
                isActivate = true;
            }
            catch
            {
                b          = false; s = "Exception Error";
                isActivate = false;
            }
        }
Ejemplo n.º 27
0
        public void InitDIO()
        {
            try
            {
                // Initialize library
                uint result = CAXL.AxlOpen(7);
                if (result == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS || result == (uint)AXT_FUNC_RESULT.AXT_RT_OPEN_ALREADY)
                {
                    uint uStatus = 0;

                    if (CAXD.AxdInfoIsDIOModule(ref uStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        if ((AXT_EXISTENCE)uStatus == AXT_EXISTENCE.STATUS_EXIST)
                        {
                            int nModuleCount = 0;

                            if (CAXD.AxdInfoGetModuleCount(ref nModuleCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                            {
                                short  i          = 0;
                                int    nBoardNo   = 0;
                                int    nModulePos = 0;
                                uint   uModuleID  = 0;
                                string strData    = "";

                                for (i = 0; i < nModuleCount; i++)
                                {
                                    if (CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                                    {
                                        switch ((AXT_MODULE)uModuleID)
                                        {
                                        case AXT_MODULE.AXT_SIO_RDI32MLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32MSMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32PMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32RTEX: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DI32_P: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DI32: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32MLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB128MLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32AMSMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RSIMPLEIOMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32PMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO16AMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO16AMLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO16BMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO16BMLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB96MLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32RTEX: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO32RTEX", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DO32T_P: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDI32RTEX", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB32RTEX", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DO32P: strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32_P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DO32T: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T_P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32MLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32PMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB128MLIIIAI: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB96MLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32RTEX: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB128MLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DB32P: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32T: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DB32T: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB128MLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_UNDEFINEMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RSIMPLEIOMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RSIMPLEIOMLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO16AMLII", nBoardNo, i); break;
                                        }

                                        int inpCnt = 0, outCnt = 0;
                                        CAXD.AxdInfoGetInputCount(i, ref inpCnt);
                                        CAXD.AxdInfoGetOutputCount(i, ref outCnt);

                                        int inStartIndex  = m_nInputCount;
                                        int outStartIndex = m_nOutputCount;

                                        m_nInputCount  += inpCnt;
                                        m_nOutputCount += outCnt;

                                        int inEndIndex  = m_nInputCount - 1;
                                        int outEndIndex = m_nOutputCount - 1;

                                        switch ((AXT_MODULE)uModuleID)
                                        {
                                        case AXT_MODULE.AXT_SIO_DB32P:
                                        case AXT_MODULE.AXT_SIO_RDB32T:
                                        case AXT_MODULE.AXT_SIO_DB32T:
                                        case AXT_MODULE.AXT_SIO_UNDEFINEMLIII:
                                        {
                                            outStartIndex += 16;
                                            outEndIndex   += 16;
                                        }
                                        break;
                                        }

                                        ModuleInfo modInfo = new ModuleInfo(i, strData, inpCnt, outCnt, uModuleID, "none", inStartIndex, inEndIndex, outStartIndex, outEndIndex);
                                        m_listModules.Add(modInfo);
                                    }
                                }
                                m_nModuleCount = nModuleCount;
                            }
                        }
                    }
                }

                m_listInNames = new List <string>(m_nInputCount);
                for (int i = 0; i < m_nInputCount; i++)
                {
                    m_listInNames.Add("");
                }

                m_listOutNames = new List <string>(m_nOutputCount);
                for (int i = 0; i < m_nOutputCount; i++)
                {
                    m_listOutNames.Add("");
                }
            }
            catch (Exception E)
            {
                throw E;
            }
        }
Ejemplo n.º 28
0
        private bool DigitalIO_Open()
        {
            uint uStatus = 0;

            if (CAXD.AxdInfoIsDIOModule(ref uStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
            {
                if ((AXT_EXISTENCE)uStatus == AXT_EXISTENCE.STATUS_EXIST)
                {
                    int nModuleCount = 0;
                    if (CAXD.AxdInfoGetModuleCount(ref nModuleCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        short  i          = 0;
                        int    nBoardNo   = 0;
                        int    nModulePos = 0;
                        uint   uModuleID  = 0;
                        string strData    = "";
                        for (i = 0; i < nModuleCount; i++)
                        {
                            if (CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                            {
                                switch ((AXT_MODULE)uModuleID)
                                {
                                case AXT_MODULE.AXT_SIO_DI32:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_DO32P:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_DB32P:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_DO32T:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_DB32T:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_RDI32:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_RDO32:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i);
                                    break;

                                case AXT_MODULE.AXT_SIO_RDB128MLII:
                                    strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i);
                                    break;
                                }
                                m_alDioModuleList.Add(strData);
                            }
                        }
                    }
                }
            }
            else
            {
                msgBox.ShowMessage("아젠 보드", "아젠 보드 DIO 모듈", "Module not exist.");
                return(false);
            }
            return(true);
        }
Ejemplo n.º 29
0
        private bool OpenDevice()
        {
            //++
            // Initialize library
            if (CAXL.AxlOpen(7) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
            {
                uint uStatus = 0;

                if (CAXD.AxdInfoIsDIOModule(ref uStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    if ((AXT_EXISTENCE)uStatus == AXT_EXISTENCE.STATUS_EXIST)
                    {
                        int nModuleCount = 0;

                        if (CAXD.AxdInfoGetModuleCount(ref nModuleCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                        {
                            short  i          = 0;
                            int    nBoardNo   = 0;
                            int    nModulePos = 0;
                            uint   uModuleID  = 0;
                            string strData    = "";

                            for (i = 0; i < nModuleCount; i++)
                            {
                                if (CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                                {
                                    switch ((AXT_MODULE)uModuleID)
                                    {
                                    case AXT_MODULE.AXT_SIO_DI32:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DO32P:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DB32P:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DO32T:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DB32T:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_RDI32:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_RDO32:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_RDB128MLII:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i);
                                        break;
                                    }

                                    //comboModule.Items.Add(strData);
                                }
                            }

                            //comboModule.SelectedIndex = 0;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Module not exist.");

                        return(false);
                    }
                }
            }
            else
            {
                MessageBox.Show("Open Error!");
            }

            return(true);
        }
Ejemplo n.º 30
0
        private void Threading_Timer()
        {
            short nIndex     = 0;
            uint  uDataHigh  = 0;
            uint  uDataLow   = 0;
            uint  uFlagHigh  = 0;
            uint  uFlagLow   = 0;
            int   nBoardNo   = 0;
            int   nModulePos = 0;
            uint  uModuleID  = 0;

            CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID);

            switch ((AXT_MODULE)uModuleID)
            {
            case AXT_MODULE.AXT_SIO_DI32:
            case AXT_MODULE.AXT_SIO_RDI32:
                //++
                // Read inputting signal in WORD
                CAXD.AxdiReadInportWord(comboModule.SelectedIndex, 0, ref uDataHigh);
                CAXD.AxdiReadInportWord(comboModule.SelectedIndex, 1, ref uDataLow);

                for (nIndex = 0; nIndex < 16; nIndex++)
                {
                    // Verify the last bit value of data read
                    uFlagHigh = uDataHigh & 0x0001;
                    uFlagLow  = uDataLow & 0x0001;

                    // Shift rightward by bit by bit
                    uDataHigh = uDataHigh >> 1;
                    uDataLow  = uDataLow >> 1;

                    // Updat bit value in control
                    if (uFlagHigh == 1)
                    {
                        checkHigh[nIndex].Checked = true;
                    }
                    else
                    {
                        checkHigh[nIndex].Checked = false;
                    }

                    if (uFlagLow == 1)
                    {
                        checkLow[nIndex].Checked = true;
                    }
                    else
                    {
                        checkLow[nIndex].Checked = false;
                    }
                }
                break;

            case AXT_MODULE.AXT_SIO_DB32P:
            case AXT_MODULE.AXT_SIO_DB32T:
                //++
                // Read inputting signal in WORD
                CAXD.AxdiReadInportWord(comboModule.SelectedIndex, 0, ref uDataHigh);

                for (nIndex = 0; nIndex < 16; nIndex++)
                {
                    // Verify the last bit value of data read
                    uFlagHigh = uDataHigh & 0x0001;

                    // Shift rightward by bit by bit
                    uDataHigh = uDataHigh >> 1;

                    // Updat bit value in control
                    if (uFlagHigh == 1)
                    {
                        checkHigh[nIndex].Checked = true;
                    }
                    else
                    {
                        checkHigh[nIndex].Checked = false;
                    }
                }
                break;
            }
        }