简体   繁体   English

Qt串口:读写数据

[英]Qt serial port: write and read data

I'm able to connect to my serial port, but I need to read data from it all the time.我能够连接到我的串行端口,但我需要一直从中读取数据。
It's working for about 39 minutes, but after it stops at line serial.flush() .它工作了大约 39 分钟,但在它停在serial.flush()serial.flush()
When I stop Qt and start it again it also stops at serial.flush() .当我停止 Qt 并再次启动它时,它也会在serial.flush()处停止。 I need to restart my modem to let it work again...我需要重新启动调制解调器才能让它再次工作...

I'm not sure I'm executing this properly...我不确定我是否正确执行了此操作...

// Open Serial connexion
QSerialPort serial;
serial.setPortName("usbserial-26214A");
serial.open(QIODevice::ReadWrite);
serial.setBaudRate(QSerialPort::Baud115200);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::HardwareControl);

if (serial.isOpen() && serial.isWritable())
{
qDebug() << "Serial is open";

QByteArray output;
QByteArray input;

  while(true)
  {
  output = "AT+CPMS=\"SM\"\r";
  serial.write(output);
  serial.flush();
  serial.waitForBytesWritten(1000);
  serial.waitForReadyRead(1000);
  input = serial.readAll();
  }
}

//EDIT //编辑

if deleting flush it's working, but code goes really fast.如果删除flush它可以工作,但代码运行得非常快。 It don't wait for WaitFor...它不等待WaitFor...
After 2nd loop he doesn't has time to read data.在第二次循环之后,他没有时间读取数据。

serial.isOpen() && serial.isWritable() always sends true in while loop. serial.isOpen() && serial.isWritable()总是在 while 循环中发送true

Program stops at flush after 30 minutes!程序在 30 分钟后在flush停止!

If serial.isOpen() && serial.isWritable() is true in while loop, but you can't access it could come from you preferences on your computer.如果serial.isOpen() && serial.isWritable()在 while 循环中为真,但您无法访问它可能来自您计算机上的首选项。

On OSX: System preferences -> network -> select serial -> advanced -> PPP:在 OSX 上:系统首选项 -> 网络 -> 选择串行 -> 高级 -> PPP:
able: Ask to stay connected every 10 minutes,能够:要求每 10 分钟保持联系,
disable: disconnect at close of session,禁用:在会话结束时断开连接,
disable: disconnect when changing of user禁用:更改用户时断开连接

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM