使用Winforms应用程序向MSR606 Magstripe读/写器发送命令

时间:2018-06-26 22:41:04

标签: c# .net winforms serial-port

我正在尝试将MSR606 Magstripe读/写器与我在.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 :(得分:0)

我最终发现我格式化了错误的命令。将它们作为十六进制代码发送只需在代码后附加“ 0x”,然后将其作为字节发送[]

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