编辑:我发现了问题!对于有类似问题的人,我就是这样做的:
该设备使用了硬件流控制,这显然对Linux没有问题,但在Windows上,必须设置这个参数!
我们想要读出跟踪眼镜架轮廓的设备。 他们使用RS232端口。我们已经从QT 5.7实现了与QSerialPort类的通信。我们的测试设置目前有两个来自不同供应商和Windows 7 PC的示踪剂。与跟踪器1的通信正常工作;跟踪器2不会向Windows PC发送任何数据。
为了测试,我编写了一个非常简单的程序,它只打印出所有字节作为通过串口接收的ASCII字符。它还允许您输入一些文本以将答案发送回设备。 在Linux上测试完全相同的源代码与两个设备完美配合。 Testsoftware on Linux (Device Requesting initialization) 。在Windows上(使用相同的电缆和适配器),日志保持空白。 将Windows PC与Nullmodem-Cable连接到Linux PC或其他设备,通信正在按预期工作。
在Windows上测试与PuTTy的通信,两台设备都在工作。
testapplication中的代码如下所示:
设置端口参数并打开后:
QObject::connect(&m_serialPort, SIGNAL(readyRead()), this, SLOT(bytesReady()));
插槽:
void Device::bytesReady(){
while(m_serialPort.bytesAvailable()){
emit read(m_serialPort.read(1).at(0));
}
}
之后," Konsole" -Class将接收的字节转换为可读的ASCII字符,并在QTextEdit中显示它们
我们怀疑Qt或Windows中存在错误,但我们不知道如何进一步调查此问题。 Linux上的测试表明设备本身工作正常,我们的测试程序也是如此。 Windows中是否有任何设置或设置serialPort时要做的任何特殊操作?
答案 0 :(得分:0)
我自己想通了。请参阅问题的顶部以获得解决方案。