Skip to content

Commit 454acd8

Browse files
committed
fix: align concoredocker.py ZMQ read/write with simtime framing (#382)
1 parent 7eb46ef commit 454acd8

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

concoredocker.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ def read(port_identifier, name, initstr_val):
211211
zmq_p = zmq_ports[port_identifier]
212212
try:
213213
message = zmq_p.recv_json_with_retry()
214+
if isinstance(message, list) and len(message) > 0:
215+
first_element = message[0]
216+
if isinstance(first_element, (int, float)):
217+
simtime = max(simtime, first_element)
218+
return message[1:]
214219
return message
215220
except zmq.error.ZMQError as e:
216221
logging.error(f"ZMQ read error on port {port_identifier} (name: {name}): {e}. Returning default.")
@@ -276,7 +281,13 @@ def write(port_identifier, name, val, delta=0):
276281
if isinstance(port_identifier, str) and port_identifier in zmq_ports:
277282
zmq_p = zmq_ports[port_identifier]
278283
try:
279-
zmq_p.send_json_with_retry(val)
284+
zmq_val = convert_numpy_to_python(val)
285+
if isinstance(zmq_val, list):
286+
payload = [simtime + delta] + zmq_val
287+
zmq_p.send_json_with_retry(payload)
288+
simtime += delta
289+
else:
290+
zmq_p.send_json_with_retry(zmq_val)
280291
except zmq.error.ZMQError as e:
281292
logging.error(f"ZMQ write error on port {port_identifier} (name: {name}): {e}")
282293
except Exception as e:

0 commit comments

Comments
 (0)