⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 piodio.cs

📁 PIOD56
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;


 


namespace PIODIO_Ns
{
 

    public class PIODIO

    {   
      
        //****************
        //PIODIO CARD ID
        //****************
    
        public const uint PIOD_24=0x800140;
        public const uint PIOD_48=0x800130;
        public const uint PIOD_56=0x800140;
        public const uint PIOD_64=0x800120;
        public const uint PIOD_96=0x800110;
        public const uint PIOD_144=0x800100;
        public const uint PIOD_168=0x98800150;
        public const uint PIOD_168A=0x800150;

        //****************
        //Error Code 
        //****************

        public const uint NoError = 0;
        public const uint DriverOpenError = 1;
        public const uint DriverNoOpen = 2;
        public const uint GetDriverVersionError = 3;
        public const uint InstallIrqError = 4;
        public const uint ClearIntCountError = 5;
        public const uint GetIntCountError = 6;
        public const uint RegisterApcError = 7;
        public const uint RemoveIrqError = 8;
        public const uint FindBoardError = 9;
        public const uint ExceedBoardNumber = 10;
        public const uint ResetError = 11;
        public const uint IrqMaskError = 12;
        public const uint ActiveModeError = 13;
        public const uint GetActiveFlagError = 14;
        public const uint ActiveFlagEndOfQueue = 15;

        //*****************
        //PIODIO ActiveMode
        //*****************
        
        // to trigger a interrupt when low -> high
        public const uint ActiveHigh =1;
        
        // to trigger a interrupt when high -> low
        public const uint  ActiveLow=0;

        //***********************************
        //define the interrupt signal source
        //***********************************
        public const uint PIOD144_P2C0 = 0;   // pin29 of CN1(37 pin D-type, pin1 to pin37)
        public const uint PIOD144_P2C1 = 1;   // pin28 of CN1(37 pin D-type, pin1 to pin37)
        public const uint PIOD144_P2C2 = 2;   // pin27 of CN1(37 pin D-type, pin1 to pin37)
        public const uint PIOD144_P2C3 = 3;   // pin26 of CN1(37 pin D-type, pin1 to pin37)

        //**********************************
        // Interrupt Channel for PIO-D48
        //**********************************
        public const uint PIOD48_INTCH0 = 1;  // INT_CHAN_0
        public const uint PIOD48_INTCH1 = 2;  // INT_CHAN_1
        public const uint PIOD48_INTCH2 = 4;  // INT_CHAN_2
        public const uint PIOD48_INTCH3 = 8;  // INT_CHAN_3

        //*********************************
        //Test functions
        //*********************************

       [DllImport ("Piodio.dll",EntryPoint ="PIODIO_FloatSub")]
        public static extern float FloatSub(float fA,float fB);        
       [DllImport ("Piodio.dll",EntryPoint ="PIODIO_ShortSub")]
        public static extern short ShortSub(short nA,short nB);
        
       [DllImport ("Piodio.dll",EntryPoint ="PIODIO_GetDllVersion")]
        public static extern ushort GetDllVersion();

       //**************
       // PIODIO Driver
       //**************
       [DllImport("Piodio.dll",EntryPoint="PIODIO_DriverInit")]
        public static extern ushort DriverInit();
        
        [DllImport("Piodio.dll",EntryPoint="PIODIO_DriverClose")]
        public static extern void DriverClose();
        [DllImport("Piodio.dll",EntryPoint="PIODIO_SearchCard")]
        public static extern ushort SearchCard(out ushort wBoards, uint dwPIOCardID);
        [DllImport ("Piodio.dll",EntryPoint ="PIODIO_GetDriverVision")]
        public static extern ushort GetDriverVersion(out ushort wDriverVersion);
        
      
        [DllImport("Piodio.dll",EntryPoint="PIODIO_GetConfigAddressSpace")]
        public static extern ushort GetConfigAddressSpace(
            ushort wBoardNo, out uint wAddrBase, out ushort wIrqNo,
            out ushort wSubVendor, out ushort wSubDevice, out ushort wSubAux,
            out ushort wSlotBus, out ushort wSlotDevice);
        [DllImport("Piodio.dll",EntryPoint="PIODIO_ActiveBoard")]
        public static extern ushort ActiveBoard(ushort wBoardNo);
        [DllImport("Piodio.dll",EntryPoint="PIODIO_WhichBoardActive")]
        public static extern ushort WhichBoardActive();

        // ******************************************
        [DllImport("Piodio.dll",EntryPoint="PIODIO_OutputByte")]
        public static extern void OutputByte(uint wBaseAddr, ushort bOutputValue);
        [DllImport("Piodio.dll",EntryPoint="PIODIO_InputByte")]
        public static extern ushort InputByte(uint wBaseAddr);

        //********************
        //PIODIO Interrupt
        //********************
        
        
        [DllImport("Piodio.dll", EntryPoint = "PIODIO_IntInstall")]
        public static extern ushort IntInstall(ushort wBoardNo, out uint hEvent, ushort wInterruptSource, ushort wActiveMode);
        [DllImport("Piodio.dll", EntryPoint = "PIODIO_IntRemove")]
        public static extern ushort IntRemove();


        [DllImport("Piodio.dll", EntryPoint = "PIODIO_IntGetCount")]
        public static extern ushort IntGetCount(out uint dwIntCount);

        [DllImport("Piodio.dll", EntryPoint = "PIODIO_IntResetCount")]
        public static extern ushort IntResetCount();
        
        //********************
        //PIODIO_48 Frequency
        //********************
        [DllImport("Piodio.dll")]
        public static extern uint PIOD48_Freq(uint wBaseAddr);

        //*********************
        //PIODIO_48 Counter
        //*********************
        [DllImport("Piodio.dll")]
        public static extern void PIOD48_SetCounter(uint dwBase,ushort wCounterNo,ushort bCounterMode,uint wCounterValue );
        [DllImport("Piodio.dll")]
        public static extern uint PIOD48_ReadCounter(uint dwBase,ushort wCounterNo,ushort bCounterMode);
        [DllImport ("Piodio.dll")]
        public static extern void PIOD48_SetCounterA(ushort wCounterNo, ushort bCounterMode,uint wCounterValue);
        [DllImport ("Piodio.dll")]
        public static extern uint PIOD48_ReadCounterA(ushort wCounterNo,ushort bCounterMode);
        
        //**********************
        //PIODIO_48 Interrupt
        //**********************
        [DllImport ("Piodio.dll")]
        public static extern ushort PIOD48_IntInstall(ushort wBoardNo, out uint hEvent, ushort  wIrqMask, ushort  wActiveMode);

        [DllImport ("Piodio.dll")]
        public static extern ushort PIOD48_IntRemove();
        [DllImport ("Piodio.dll")]
        public static extern ushort PIOD48_IntGetActiveFlag(out ushort bActiveHighFlag, out ushort bActiveLowFlag);
        [DllImport ("Piodio.dll")]
        public static extern ushort PIOD48_IntGetCount(out uint dwIntCount);


        //********************
        //PIODIO_64 Counter
        //********************
        [DllImport("Piodio.dll")]
        public static extern void  PIOD64_SetCounter(uint dwBase,ushort wCounterNo,ushort bCounterMode,uint wCounterValue);
        [DllImport("Piodio.dll")]
        public static extern uint PIOD64_ReadCounter(uint dwBase,ushort wCounterNo,ushort bCounterMode);

        [DllImport("Piodio.dll")]
        public static extern void PIOD64_SetCounterA(ushort wCounterNo, ushort bCounterMode,uint wCounterValue);
        [DllImport("Piodio.dll")]
        public static extern uint PIOD64_ReadCounterA(ushort wCounterNo, ushort bCounterMode);


        // ******************************************
        private int DriverOpened = 0;

        // ******************************************
        //public void OutputByte(ushort wBaseAddr, ushort bValue)
        //{
         //   OutputByte(wBaseAddr, bValue);
        //}
        //public ushort InputByte(ushort wBaseAddr)
        //{
         //   return InputByte(wBaseAddr);
        //}


        public PIODIO()//constroctor
        {
            DriverOpened = 0;
        }
        ~PIODIO()
        {
            if (DriverOpened != 0)
            {
                DriverOpened = 0;
                DriverClose();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -