Доступ к PCI-7250 NuDAQ в .NET - PullRequest
       104

Доступ к PCI-7250 NuDAQ в .NET

0 голосов
/ 15 ноября 2011

Я хотел бы включить реле, используя карту NuDAQ PCI-7250, используя .NET.

Я знаю, что код для включения в VB:

card = Register_Card(PCI_7250, 0)

v = DO_WritePort(card, 0, &O17)

и выключить:

v = DO_WritePort(card, 0, &O0)

Мне нужно перенести это в код C #. Кто-нибудь может мне помочь с этим?

1 Ответ

1 голос
/ 15 ноября 2011

Если вы хотите пойти по пути чтения / записи портов ввода / вывода, вы должны быть в состоянии записать их..NET Framework (Microsoft на Windows по крайней мере) не поддерживает это напрямую.Для чтения / записи в параллельные порты у меня большой успех с библиотекой InOut32 ( link ).Это означает, что вам придется использовать PInvoke, чтобы заставить его работать.Для меня этот код работает:

    [DllImport("inpoutx64.dll", EntryPoint = "Out32")]
    private static extern void OutputImpl(int adress, int value);

    [DllImport("inpoutx64.dll", EntryPoint = "Inp32")]
    private static extern int InputImpl(int adress);

    public static void Output(int adress, int value)
    {
        // I use this wrapper to set debug breakpoints so I can see what's going on
        OutputImpl(adress, value);
    }

    public static int Input(int adress)
    {
        int ret = InputImpl(adress);
        return ret;
    }

Обратите внимание, что если вы работаете с 32-битным приложением, вам нужно обратиться к библиотеке InOut32.dll.Я не уверен насчет конкретных портов, которые вам нужно использовать, но я полагаю, что вы можете либо найти их в Интернете, либо попробовать несколько раз из настроенного диапазона адресов ввода-вывода PCI-карт (см. Свойства устройства в диспетчере устройств).

...