我正在尝试将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端口使用过任何东西,所以我基本上一直在盲目地通过查阅任何我能找到的指南来解决这个问题。任何关于如何正确发送这种格式的命令的信息,或者只是解释我在这里出错的地方,都将不胜感激。
发布于 2018-06-29 06:03:32
我最终发现我的命令格式是错误的。将它们作为十六进制代码发送只是简单地将"0x“附加到代码并将其作为byte[]发送
CardReader.Write(new byte[] { 0x1b, 0x82 }, 0, 2);
https://stackoverflow.com/questions/51052278
复制相似问题