QSerialPortを使ってデバイスと通信を行うプログラムを作成しています。
データをデバイスに送って、デバイスからデータが来たらreadyRead()
シグナルが来て
connectしたスロットが呼び出される
という基本的な流れはできているのですが
データを送って、データが返って来たらすぐに新たにデータを送って...
という高速なデータのやり取りを行っていると
デバイスからデータはきているはずなのに、
readyRead()
シグナルが発せられない?時があり、スロットが呼び出されず
流れが止まってしまう不具合に悩まされています。
デバイスからデータが来ているというのはツールを使って確認済みなのでそこに間違いはありません
また、データを送ったらwaitForReadyRead(500)
でreadyRead()
を500msのタイムアウト有りで待っているのですが
そこはタイムアウトが発生せずに抜けていることが確認できています
そこを考えるとシグナルが発せられていないわけではないのか?となって居るのですが
そこを確認する方法が分からず困ってる状況です
シグナルは発せられているのか否かが分かればもう少し進展するとは思うのですが...
このような状況に覚えがある方
また、こうデバッグしたら状況が分かるのではないか等
助言を頂きたいと思っております、よろしくおねがいします
###追記
readRead()シグナルが来なくて流れが止まってしまった後に
自発的にスロットを呼び出してみると、データを読み出すことができました
つまりデータはアプリケーションまでしっかりと届いている状況なのに
シグナルが発せられていない、もしくはスロットを呼び出せていない状況みたいです
これを修正するにはどのようにしたら...
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。