ZMQ REP Sink

Beantwortet jede eingehende Anfrage eines ZMQ-REQ-Clients — die Serverseite des synchronen Request/Reply-Musters.

1. Beschreibung des Blocks

Der ZMQ REP Sink-Block bindet einen ZeroMQ-REP-Endpoint und beantwortet jede eingehende Anfrage eines ZMQ REQ Source-Clients mit dem nächsten verfügbaren Wert — als Stream-Item (ZMQ REP Sink) oder als Nachricht über einen Message-Port (ZMQ REP Message Sink). Der Block muss dabei denselben strikten Ping-Pong-Rhythmus einhalten wie sein Client-Gegenstück: erst empfangen, dann exakt einmal antworten, bevor die nächste Anfrage bedient wird.

ZMQ REP Sink

ZMQ REP Message Sink

2. Technischer Einsatz

Immer dann, wenn ein Flowgraph als Server auf gezielte Anfragen externer Prozesse antworten soll — z. B. um einen aktuellen Messwert, Status oder Konfigurationsparameter bereitzustellen, der nur bei Bedarf abgerufen wird. Für kontinuierliches Senden ohne Anfrage-Rhythmus ist stattdessen ZMQ PUB Sink (Broadcast an mehrere) oder ZMQ PULL Source mit einem PUSH-Gegenstück (Pipeline zu einem Abnehmer) die passendere Wahl.

3. Parameter und Dimensionierung

Parameter Typ/Einheit Bedeutung Dimensionierungshinweis
Address String ZeroMQ-Endpoint, z. B. tcp://*:5556 * bindet auf alle lokalen Netzwerkschnittstellen; für reinen Lokalbetrieb reicht tcp://127.0.0.1:5556
Timeout (msec) Millisekunden wie lange auf eine eingehende Anfrage gewartet wird, bevor der Block einen Zyklus abschließt Standard 100 ms; beeinflusst primär die Reaktionszeit beim Beenden des Flowgraphs
Connection Enum (Bind/Connect) ob der Block den Port öffnet (Bind) oder sich verbindet (Connect) REP-Blöcke binden per Default — der Server ist die feste, bekannte Adresse, zu der sich Clients verbinden
Pass Tags (nur Stream-Variante) Bool ob Stream-Tags mit über den Socket übertragen werden „Yes" nur, wenn die Gegenseite ebenfalls GNU Radio ist

4. Ein- und Ausgänge

Ein-/Ausgang Typ
Eingang (ZMQ REP Sink) beliebiger Stream-Typ (Complex, Float, Int, Short, Byte)
Eingang (ZMQ REP Message Sink) Message-Port (PMT)
Ausgang keiner (Senke)

5. Weitere wichtige Aspekte

Reihenfolge zwingend: Ein REP-Socket muss jede Anfrage genau einmal beantworten, bevor er die nächste entgegennimmt. Gerät der Server aus dem Takt (z. B. durch einen Absturz mitten im Zyklus), kann die Verbindung in einen Zustand geraten, der einen Neustart beider Seiten erfordert.

Bind vs. Connect nicht verwechseln: Binden beide Seiten (REP und REQ) auf denselben Port, schlägt der zweite Bind-Versuch fehl. Im Normalfall bindet der Server (REP), der Client (REQ) verbindet sich.