如何解决向CDC阅读器发送AT命令并获得响应
我有这个CDC非接触式阅读器,它与显示为虚拟串行端口的USB连接。我能够找到端口并使用以下代码发送AT命令:
string strPort = GetPortName();
SerialPort srPort = new SerialPort(strPort,9600);
srPort.open();
if (srPort.IsOpen)
{
//device info
srPort.WriteLine(@"ATI\r" + (char)(13));
System.Threading.Thread.Sleep(200);
MessageBox.Show("Device: " + srPort.ReadExisting());
//card UID
srPort.WriteLine(@"AT+i\r" + (char)(13));
System.Threading.Thread.Sleep(200);
string strRes = srPort.ReadExisting();
MessageBox.Show("UID: " + strRes);
srPort.Close();
}
我正在根据device documentation发送命令。第一个命令可以,但是第二个命令应该可以给我卡UID,该命令始终返回ERROR
。
我是否以正确的方式将命令字符串发送到端口?因为第二个命令之间插入了+
,并且我想这可能是导致错误的原因?
我试图与他们的支持人员联系,但没有反馈。所以我希望在这里得到一些帮助。
解决方法
因此,在测试读取和测试文档中的命令之后,我意识到我的阅读器处于扫描模式,这意味着它将忽略发送到设备的所有命令。我关闭了扫描模式,并能够获取卡的UID。
我还将WriteLine
替换为'Write',并且仅使用ASCII字节数组而不是字符串命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。