Messaging Frameworkのキュー内のデータについて

Messaging Frameworkを使ってスレッド間の通信をしているのですが、デバッガのRTOSリソースウィンドウで見ると

UsedCountがゼロではなく、ずっと値が入ったものがあります(添付画像)。

おそらくPostメソッドでキューに入ったのちに取り出されないままになってしまっているのではないかと思っています。

受信側では

while(1){

    g_sf_message.p_api->pend(g_sf_message.p_ctrl, &comm_thread_message_queue, &pHeader, TX_WAIT_FOREVER); 

    if (SF_MESSAGE_EVENT_CLASS_COMM_PC == pHeader->event_b.class_code ){

    }

    g_sf_message.p_api->bufferRelease(g_sf_message.p_ctrl, (sf_message_header_t *) pHeader, SF_MESSAGE_RELEASE_OPTION_NONE);

}

と無限ループで待っています。

そこでお聞きしたいのですが、キューに入って残ったままのデータは処理することができないのでしょうか?

何か使い方が悪いのではないかとは思っています。

Parents
  • Former Member
    Former Member
    kom0313さん

    Comm PC Thread Message Queueに5つのmessageがあるようですが、同Message QueueのSuspendedCount が 0となっているので、それらのmessageを受信するスレッドがない状態であるように見えます。同Message Queueに対してtx_queue_receiveすると、溜まっている5つのmessageが受信できるのではないでしょうか?
    Messaging Framework のModule Guide (R11AN0096)で使い方を確認してみてはいかがでしょう。MessagingのコンフィグレーションでSubscriberの設定などは大丈夫でしょうか?
Reply
  • Former Member
    Former Member
    kom0313さん

    Comm PC Thread Message Queueに5つのmessageがあるようですが、同Message QueueのSuspendedCount が 0となっているので、それらのmessageを受信するスレッドがない状態であるように見えます。同Message Queueに対してtx_queue_receiveすると、溜まっている5つのmessageが受信できるのではないでしょうか?
    Messaging Framework のModule Guide (R11AN0096)で使い方を確認してみてはいかがでしょう。MessagingのコンフィグレーションでSubscriberの設定などは大丈夫でしょうか?
Children
No Data