0

シリアル ポートに接続できますが、常にそこからデータを読み取る必要があります。
約 39 分間動作しますが、その後 line で停止しますserial.flush()
Qt を停止して再度起動すると、 で停止しserial.flush()ます。モデムを再び機能させるには、モデムを再起動する必要があります...

私はこれを適切に実行しているかどうかわかりません...

// 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();
  }
}

//編集

削除flushしても機能しますが、コードは非常に高速です。WaitFor...
2回目のループの後、データを読み取る時間がありません 。

serial.isOpen() && serial.isWritable()true常にwhile ループ を送信します。

flush番組は30分でストップ!

4

1 に答える 1

0

while ループでは true ですが、アクセスできない場合serial.isOpen() && serial.isWritable()は、コンピューターの設定から来る可能性があります。

OSX の場合: システム設定 -> ネットワーク -> シリアルを選択 -> 詳細設定 -> PPP:有効:
10 分ごとに接続を維持するように要求する、無効:
セッションの終了
時に切断する、無効: ユーザーの変更時に切断する

于 2014-10-21T11:40:01.957 に答える