Проверка состояния бита двоичного порта lpt - PullRequest
0 голосов
/ 11 октября 2011

У меня есть часть кода, которая проверяет входные контакты порта lpt, но использует десятичные значения:

while (PortAccess.Input(889) == 120)

Как использовать эту инструкцию с двоичными значениями?

, например, прибит 3 в 00100100 равен 0, затем сделайте что-нибудь.

Ответы [ 2 ]

1 голос
/ 11 октября 2011

См. Convert.ToInt32 (строковое значение, int fromBase)

while((value & Convert.ToInt32("00000100", 2)) == 0)

Или, поскольку мы знаем, что третий бит предназначен для (2 ^ 2)

while((value & 0x0004) == 0)

- это тоже достаточно понятный фрагмент кода.

0 голосов
/ 11 октября 2011

Хорошо, я сделал это, потому что решение tafa не работало, и я не мог заставить его работать:

   var PortValue = Convert.ToString(PortAccess.Input(889), 2).PadLeft(8, '0');
   PortV.Text = PortValue;
   while (PortV.Text[3].ToString() == "1")
   {
   //some code
   }

Возможно, это не хорошее решение, но оно работает;)

...