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

            uint uiStatus = 0;
            uint uiRet    = CAXA.AxaInfoIsAIOModule(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
            CAXA.AxaInfoGetModuleCount(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++)
            {
                CAXA.AxaInfoGetInputCount(i, ref iInputCnt);
                CAXA.AxaInfoGetOutputCount(i, ref iOutputCnt);

                m_iMaxIn  += iInputCnt;
                m_iMaxOut += iOutputCnt;

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

            //Range Setting
            if (dMin < -10 || dMin > 10)
            {
                dMin = 0;
            }
            if (dMax < -10 || dMax > 10)
            {
                dMax = 0;
            }
            for (int i = 0; i < m_iMaxIn; i++)
            {
                CAXA.AxaiSetRange(i, dMin, dMax);
                CAXA.AxaiSetTriggerMode(i, 1);        //1 - Normal Trigger , 2 - Timer Trigger , 3 - External Trigger
                //CAXA.AxaiHwSetBufferOverflowMode(i, 0);
                //CAXA.AxaiHwSetSamplePeriod(i, 100);
                //CAXA.AxaiHwSetSampleFreq(i, 10);
                //CAXA.AxaiHwGetSampleFreq(0, ref d1);
            }
            for (int i = 0; i < m_iMaxOut; i++)
            {
                CAXA.AxaoSetRange(i, dMin, dMax);
            }



            return(true);
        }