我正在尝试将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端口进行过任何工作,因此我基本上一直在通过查找任何我能做的指南盲目地踏过它。任何关于如何正确发送该格式命令的信息,或仅用于解释我在此处出错的信息,将不胜感激。
答案 0 :(得分:0)
我最终发现我格式化了错误的命令。将它们作为十六进制代码发送只需在代码后附加“ 0x”,然后将其作为字节发送[]
CardReader.Write(new byte[] { 0x1b, 0x82 }, 0, 2);