Использую using System.IO.Ports;SerialPort - Windows Forms.
Когда подношу карту к считывателю - идет сигнал, то есть в переменную записываются данные:
str = serialPort1.ReadExisting();
После чего, чтобы извлечь нужные числа, я на кнопку повесил метод. После её нажатия высвечиваются необходимые значения.
А можно, чтобы при подносе карты все автоматом считывалось, без нажатия на кнопку?
AlexCruel, у System.IO.Ports.SerialPort есть событие DataReceived. Оно решает проблему? Мне просто протестить сложно, так как нужно разбираться в теме. Да и нечего туда подключить.
Борис Животное, да, работает. Только проблема извлечения из строки, почему-то. Но спасибо! Я забыл, что выносил serial port и что там есть свойства)))) Замылил глаз))
AlexCruel, да. Либо вот здесь можно посмотреть как я сделал работу с перенаправлением в UI поток. Нужно смотреть класс Analyzer и как используется SynchronizationContext.
То есть, вообще всю работу с SerialPort можно обернуть вот в такой отдельный класс, который будет генерировать события, а именно получив данные с порта будет получать строку (не парсить её, а целую строку) и её уже в виде события, перенаправленного в UI поток генерировать. По сути всё так же как в Analyzer, только внутри будет SerialPort.
Это если заморачиваться. А можно просто в обработчике события пробрасывать распарсенные данные черех вызов метода Invoke.