Если вы хотите пойти по пути чтения / записи портов ввода / вывода, вы должны быть в состоянии записать их..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-карт (см. Свойства устройства в диспетчере устройств).