Ejemplo n.º 1
0
        private bool CounterBoardInit(out string returnCode)
        {
            int Status;
            int Number = 0;

            // 接続デバイス数取得
            Status = EPX18QC.EPX18QC_GetNumberOfDevices(ref Number);
            if (Status != EPX18QC.EPX18QC_OK)
            {
                returnCode = "EPX18QC_GetNumberOfDevices() Error";
                return(false);
            }
            if (Number == 0)
            {
                returnCode = "DeviceNumber = 0";
                return(false);
            }

            // デバイス接続
            Status = EPX18QC.EPX18QC_Open(ref hDevice);
            if (Status != EPX18QC.EPX18QC_OK)
            {
                returnCode = "EPX18QC_Open() Error";
                return(false);
            }
            returnCode = "EPX18QC Init Succesed";
            return(true);
        }
Ejemplo n.º 2
0
 public void close()//todo ちゃんとかく
 {
     for (int i = 0; i < 2; i++)
     {
         dio.Exit(dioId[i]);
     }
     for (int i = 0; i < 2; i++)
     {
         aio.Exit(aioId[i]);
     }
     EPX18QC.EPX18QC_Close(hDevice);
 }
Ejemplo n.º 3
0
        public bool GetCounterValue(byte CH, ref int value, out string returnCode)
        {
            int Status;

            // カウンタ値取得
            Status = EPX18QC.EPX18QC_GetCounterValue(hDevice, CH, ref value);
            if (Status != EPX18QC.EPX18QC_OK)
            {
                EPX18QC.EPX18QC_Close(hDevice); // デバイス切断
                returnCode = "EPX18QC_GetCounterValue() Error";
                return(false);
            }
            returnCode = "EPX18QC_GetCounterValue() Succesed";
            return(true);
        }
Ejemplo n.º 4
0
        private bool CounterCHSetting(byte CH, out string returnCode)
        {
            int Status;

            // カウンタ動作モード設定
            Status = EPX18QC.EPX18QC_SetCounterMode(hDevice, CH, EPX18QC.EPX18QC_CNT_MODE_2PHASE); // 2相パルス入力モード
            if (Status != EPX18QC.EPX18QC_OK)
            {
                EPX18QC.EPX18QC_Close(hDevice); // デバイス切断
                returnCode = "EPX18QC_SetCounterMode() Error";
                return(false);
            }

            // カウント方向設定
            Status = EPX18QC.EPX18QC_SetCounterDirection(hDevice, CH, EPX18QC.EPX18QC_CNT_DIR_UP); // アップカウント
            if (Status != EPX18QC.EPX18QC_OK)
            {
                EPX18QC.EPX18QC_Close(hDevice); // デバイス切断
                returnCode = "EPX18QC_SetCounterDirection() Error";
                return(false);
            }

            // カウンタリセット
            Status = EPX18QC.EPX18QC_ResetCounter(hDevice, CH);
            if (Status != EPX18QC.EPX18QC_OK)
            {
                EPX18QC.EPX18QC_Close(hDevice); // デバイス切断
                returnCode = "EPX18QC_ResetCounter() Error";
                return(false);
            }

            // カウンタ動作有効
            Status = EPX18QC.EPX18QC_SetCounterControl(hDevice, CH, EPX18QC.EPX18QC_CNT_ENABLE);
            if (Status != EPX18QC.EPX18QC_OK)
            {
                EPX18QC.EPX18QC_Close(hDevice); // デバイス切断
                returnCode = "EPX18QC_SetCounterControl() Error";
                return(false);
            }
            returnCode = $"EPX18QC CH{CH} Setting Succesed";
            return(true);
        }