Отправка команд в считыватель / запись магнитных полос MSR606 с приложением Winforms - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь использовать MSR606 Reader / Writer Magstripe / Writer с приложением, которое кодирую в .NET Winforms.

После значительного количества исследований и нескольких дней проб и ошибок я здесь.

* Читатель работает через COM-порт, я могу создать ссылку на него в приложении.

* В соответствии с руководством ожидается кодировка ANSI

* Команды перечислены с кодом команды, таким как "<ESC><82>", и шестнадцатеричным кодом, таким как "1B 82"

Это код на данный момент

CardReader = new SerialPort("COM4");
        CardReader.DataReceived += new SerialDataReceivedEventHandler(DataRecivedHandler);
        CardReader.Encoding = System.Text.Encoding.GetEncoding(28591);
        CardReader.Handshake = Handshake.None;
        CardReader.RtsEnable = true;
        CardReader.Open();

Мне не удалось успешно отправить команду читателю. В первую очередь я проверял, вводя «CardReader.Write ()» с командами в виде строк или байтовых массивов.

Раньше я никогда не работал с COM-портом, поэтому я слепо спотыкался об этом, просматривая любые доступные мне руководства. Будем весьма благодарны за любую информацию о том, как правильно отправлять команды в этом формате или просто объясните, где я ошибся.

1 Ответ

0 голосов
/ 29 июня 2018

В конце концов я понял, что неправильно форматировал команды. Отправка их в виде шестнадцатеричных кодов просто добавляла «0x» к коду и отправляла его как байт []

CardReader.Write(new byte[] { 0x1b, 0x82 }, 0, 2);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...