.NET を使用して PCI-7250 NuDAQ カードを使用してリレーをオンにしたいと考えています。
有効にするVBのコードは次のとおりです。
card = Register_Card(PCI_7250, 0)
v = DO_WritePort(card, 0, &O17)
オフにするには:
v = DO_WritePort(card, 0, &O0)
これを C# コードに移行する必要があります。誰でもこれで私を助けることができますか?
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 アドレス範囲からいくつか試してみることができると思います (デバイス マネージャーでデバイスのプロパティを参照してください)。