Qserialport を使用して、10 ミリ秒ごとに 7 バイトのデータを受信しています。ボーレートは 115200 です。また、signal(readyread) と slot(別の関数の readLine) メソッドを使用します。読み取り準備完了信号は、16ms ごとにのみ送信されます。しかし、私のデバイスは 10 ミリ秒間隔でデータを送信します。10ms間隔でサンプルを受信する方法。readyread 信号を 10ms 間隔で発行する方法。ありがとう
1 に答える
2
一般readyread
に、1 バイトが受信された場合でも信号が送信されます。ただし、応答時間は、ドライバー、CPU 負荷、Qt イベントループのビジー状態など、多くの要因によって異なります。
シリアル ポートで受信が検出されると、ドライバー バッファー内のすべてのデータが読み取られ、信号readyRead()
が送信されます。ドライバーが受信を検出した瞬間から、すべてのバッファーを読み取ろうとするまで、さらにいくつかのバイトがポートに到着する可能性があります。
特定の間隔でデータを読み取りたい場合は、readyRead
信号を使用する必要はありません。QTimer
10ミリ秒間隔で、そのtimeout
信号を を呼び出してデータを読み取るスロットに接続できますreadAll()
。
于 2015-02-10T10:20:50.467 に答える