Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

TimeBasedFilter Policy Not Functional

オープン
#193 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
python
領域
api

調査の方向性

まず、指定された CycloneDDS と cyclonedds-python のバージョンを使用し、変更された examples/vehicle publisher.py と subscriber.py の例で報告された動作を再現します。TimeBasedFilter QoS が DataReader にどのように適用されるかを追跡し、修正が完了したときに subscriber.py が 10 Hz ではなく約 1 Hz を受信することを確認します。

索引モデルが issue の本文から書いたものです。

説明

cyclonedds version = 0.10.3
cyclonedds-python version = 0.10.2

Assuming I understand the use case for the TimeBasedFilter QoS, I have been unable to get the TimeBasedFilter QoS policy to work. I have not experimented with the base C implementation or the C++ binding.

For a sanity check, I altered examples/vehicle, but I uncovered the problem in my specific application.

Expected behavior: subscriber.py prints the topic at approximately 1 Hz.
Actual behavior: subscriber.py prints the topic at approximately 10 Hz.

# Removed specific Topic QoS, using default.

domain_participant = DomainParticipant(0)
topic = Topic(domain_participant, 'Vehicle', Vehicle)
publisher = Publisher(domain_participant)
writer = DataWriter(publisher, topic)


vehicle = Vehicle(name="Dallara IL-15", x=200, y=200)


while True:
    vehicle.x += random.choice([-1, 0, 1])
    vehicle.y += random.choice([-1, 0, 1])
    writer.write(vehicle)
    print(">> Wrote vehicle")
    time.sleep(0.1)  # Changed to achieve ~ 10 Hz publish rate
class MyListener(Listener):
    def on_liveliness_changed(self, reader, status):
        print(">> Liveliness event")


listener = MyListener()

# Removed specific Topic QoS, using default.

reader_qos = Qos(
    Policy.TimeBasedFilter(duration(seconds=1))
)

domain_participant = DomainParticipant(0)
topic = Topic(domain_participant, 'Vehicle', Vehicle)
subscriber = Subscriber(domain_participant)
reader = DataReader(domain_participant, topic, reader_qos, listener=listener)


for sample in reader.take_iter(timeout=duration(seconds=2)):
    print(sample, datetime.now()) 
主要言語
Python
スター
110
フォーク
68
平均マージ
3日 5時間
マージ済み PR(30日)
1

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

eclipse-cyclonedds/cyclonedds-python のほかの issue

eclipse-cyclonedds/cyclonedds-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。