0

.NET を使用して PCI-7250 NuDAQ カードを使用してリレーをオンにしたいと考えています。

有効にするVBのコードは次のとおりです。

card = Register_Card(PCI_7250, 0)

v = DO_WritePort(card, 0, &O17)

オフにするには:

v = DO_WritePort(card, 0, &O0)

これを C# コードに移行する必要があります。誰でもこれで私を助けることができますか?

4

1 に答える 1

1

I/O ポートを読み書きしたい場合は、それらを書き込める必要があります。.net フレームワーク (少なくとも Windows 上の Microsoft フレームワーク) は、これを直接サポートしていません。パラレル ポートへの読み取り/書き込みについては、InOut32 ライブラリ (リンク) で大きな成功を収めています。これは、それを機能させるために 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 カードで構成された IO アドレス範囲からいくつか試してみることができると思います (デバイス マネージャーでデバイスのプロパティを参照してください)。

于 2011-11-15T15:22:31.213 に答える