diff --git a/0mq/comm_node.py b/0mq/comm_node.py index edba31db..2602cec7 100644 --- a/0mq/comm_node.py +++ b/0mq/comm_node.py @@ -1,25 +1,21 @@ import concore -import concore2 concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u = "[0.0, 0.0, 0.0]" init_simtime_ym = "[0.0, 0.0, 0.0]" u = concore.initval(init_simtime_u) -ym = concore2.initval(init_simtime_ym) -while(concore2.simtime 0): @@ -50,17 +46,17 @@ if 'U2' in concore.oport: concore.write(concore.oport['U2'], "u", u_data_values) - old_concore2_simtime = concore2.simtime - while concore2.unchanged() or concore2.simtime <= old_concore2_simtime: + old_concore_simtime = float(concore.simtime) + while concore.unchanged() or concore.simtime <= old_concore_simtime: # Assuming concore.iport['Y2'] is a file port (e.g., from pmpymax.py) - ym_data_values = concore2.read(concore.iport['Y2'], "ym", init_simtime_ym_str) - # time.sleep(concore2.delay) # Optional delay + ym_data_values = concore.read(concore.iport['Y2'], "ym", init_simtime_ym_str) + # time.sleep(concore.delay) # Optional delay - ym_full_to_send = [concore2.simtime] + ym_data_values + ym_full_to_send = [concore.simtime] + ym_data_values concore.write(PORT_NAME_F2_OUT, "ym_signal", ym_full_to_send) - print(f"funbody u={u_data_values} ym={ym_data_values} time={concore2.simtime}") + print(f"funbody u={u_data_values} ym={ym_data_values} time={concore.simtime}") print("funbody retry=" + str(concore.retrycount)) diff --git a/0mq/funbody_zmq.py b/0mq/funbody_zmq.py index 6a6b353f..103e4e66 100644 --- a/0mq/funbody_zmq.py +++ b/0mq/funbody_zmq.py @@ -1,7 +1,6 @@ # funbody2_zmq.py import time import concore -import concore2 print("funbody using ZMQ via concore") @@ -15,21 +14,18 @@ # Standard concore initializations concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u_str = "[0.0, 0.0, 0.0]" init_simtime_ym_str = "[0.0, 0.0, 0.0]" u_data_values = concore.initval(init_simtime_u_str) -ym_data_values = concore2.initval(init_simtime_ym_str) +ym_data_values = concore.initval(init_simtime_ym_str) print(f"Initial u_data_values: {u_data_values}, ym_data_values: {ym_data_values}") print(f"Max time: {concore.maxtime}") -while concore2.simtime < concore.maxtime: +while concore.simtime < concore.maxtime: received_u_data = concore.read(PORT_NAME_F2_F1, "u_signal", init_simtime_u_str) if not (isinstance(received_u_data, list) and len(received_u_data) > 0): @@ -49,17 +45,19 @@ if 'U2' in concore.oport: concore.write(concore.oport['U2'], "u", u_data_values) - old_concore2_simtime = concore2.simtime - while concore2.unchanged() or concore2.simtime <= old_concore2_simtime: + # Take a numeric snapshot of the current simulation time to avoid + # inadvertently sharing a reference with concore.simtime. + old_concore_simtime = float(concore.simtime) + while concore.unchanged() or concore.simtime <= old_concore_simtime: # Assuming concore.iport['Y2'] is a file port (e.g., from pmpymax.py) - ym_data_values = concore2.read(concore.iport['Y2'], "ym", init_simtime_ym_str) - # time.sleep(concore2.delay) # Optional delay + ym_data_values = concore.read(concore.iport['Y2'], "ym", init_simtime_ym_str) + # time.sleep(concore.delay) # Optional delay - ym_full_to_send = [concore2.simtime] + ym_data_values + ym_full_to_send = [concore.simtime] + ym_data_values concore.write(PORT_NAME_F2_F1, "ym_signal", ym_full_to_send) - print(f"funbody u={u_data_values} ym={ym_data_values} time={concore2.simtime}") + print(f"funbody u={u_data_values} ym={ym_data_values} time={concore.simtime}") print("funbody retry=" + str(concore.retrycount)) diff --git a/0mq/funbody_zmq2.py b/0mq/funbody_zmq2.py index 04d94873..956af549 100644 --- a/0mq/funbody_zmq2.py +++ b/0mq/funbody_zmq2.py @@ -1,7 +1,6 @@ # funbody2_zmq.py import time import concore -import concore2 print("funbody using ZMQ via concore") @@ -15,21 +14,18 @@ # Standard concore initializations concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u_str = "[0.0, 0.0, 0.0]" init_simtime_ym_str = "[0.0, 0.0, 0.0]" u_data_values = concore.initval(init_simtime_u_str) -ym_data_values = concore2.initval(init_simtime_ym_str) +ym_data_values = concore.initval(init_simtime_ym_str) print(f"Initial u_data_values: {u_data_values}, ym_data_values: {ym_data_values}") print(f"Max time: {concore.maxtime}") -while concore2.simtime < concore.maxtime: +while concore.simtime < concore.maxtime: received_u_data = concore.read(PORT_NAME_F2_OUT, "u_signal", init_simtime_u_str) if not (isinstance(received_u_data, list) and len(received_u_data) > 0): @@ -49,17 +45,17 @@ if 'U2' in concore.oport: concore.write(concore.oport['U2'], "u", u_data_values) - old_concore2_simtime = concore2.simtime - while concore2.unchanged() or concore2.simtime <= old_concore2_simtime: + old_concore_simtime = float(concore.simtime) + while concore.unchanged() or concore.simtime <= old_concore_simtime: # Assuming concore.iport['Y2'] is a file port (e.g., from pmpymax.py) - ym_data_values = concore2.read(concore.iport['Y2'], "ym", init_simtime_ym_str) - # time.sleep(concore2.delay) # Optional delay + ym_data_values = concore.read(concore.iport['Y2'], "ym", init_simtime_ym_str) + # time.sleep(concore.delay) # Optional delay - ym_full_to_send = [concore2.simtime] + ym_data_values + ym_full_to_send = [concore.simtime] + ym_data_values concore.write(PORT_NAME_F2_OUT, "ym_signal", ym_full_to_send) - print(f"funbody u={u_data_values} ym={ym_data_values} time={concore2.simtime}") + print(f"funbody u={u_data_values} ym={ym_data_values} time={concore.simtime}") print("funbody retry=" + str(concore.retrycount)) diff --git a/0mq/funcall.py b/0mq/funcall.py index a885ed1e..c5c63093 100644 --- a/0mq/funcall.py +++ b/0mq/funcall.py @@ -1,39 +1,35 @@ import concore -import concore2 from osparc_control import PairedTransmitter print("funcall 0mq") concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u = "[0.0, 0.0, 0.0]" init_simtime_ym = "[0.0, 0.0, 0.0]" u = concore.initval(init_simtime_u) -ym = concore2.initval(init_simtime_ym) +ym = concore.initval(init_simtime_ym) paired_transmitter = PairedTransmitter( remote_host="localhost", exposed_commands=[], remote_port=2345, listen_port=2346,) paired_transmitter.start_background_sync() try: - while(concore2.simtime 0: response_time = received_ym_data[0] if isinstance(response_time, (int, float)): - concore2.simtime = response_time + concore.simtime = response_time ym = received_ym_data[1:] else: print(f"Warning: Received ZMQ data's first element is not time: {received_ym_data}. Using as is.") ym = received_ym_data else: print(f"Warning: Received unexpected ZMQ data format: {received_ym_data}. Using default ym.") - ym = concore2.initval(init_simtime_ym_str) + ym = concore.initval(init_simtime_ym_str) # Assuming concore.oport['Y'] is a file port (e.g., to cpymax.py) - concore2.write(concore.oport['Y'], "ym", ym) + concore.write(concore.oport['Y'], "ym", ym) - print(f"funcall ZMQ u={u} ym={ym} time={concore2.simtime}") + print(f"funcall ZMQ u={u} ym={ym} time={concore.simtime}") print("funcall retry=" + str(concore.retrycount)) diff --git a/0mq/funcall_zmq.py b/0mq/funcall_zmq.py index b2f991d2..ca12a784 100644 --- a/0mq/funcall_zmq.py +++ b/0mq/funcall_zmq.py @@ -1,7 +1,6 @@ # funcall2_zmq.py import time import concore -import concore2 print("funcall using ZMQ via concore") @@ -15,21 +14,18 @@ # Standard concore initializations concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u_str = "[0.0, 0.0, 0.0]" init_simtime_ym_str = "[0.0, 0.0, 0.0]" u = concore.initval(init_simtime_u_str) -ym = concore2.initval(init_simtime_ym_str) +ym = concore.initval(init_simtime_ym_str) -print(f"Initial u: {u}, ym: {ym}, concore.simtime: {concore.simtime}, concore2.simtime: {concore2.simtime}") +print(f"Initial u: {u}, ym: {ym}, concore.simtime: {concore.simtime}, concore.simtime: {concore.simtime}") print(f"Max time: {concore.maxtime}") -while concore2.simtime < concore.maxtime: +while concore.simtime < concore.maxtime: while concore.unchanged(): # Assuming concore.iport['U'] is a file port (e.g., from cpymax.py) u = concore.read(concore.iport['U'], "u", init_simtime_u_str) @@ -44,19 +40,19 @@ if isinstance(received_ym_data, list) and len(received_ym_data) > 0: response_time = received_ym_data[0] if isinstance(response_time, (int, float)): - concore2.simtime = response_time + concore.simtime = response_time ym = received_ym_data[1:] else: print(f"Warning: Received ZMQ data's first element is not time: {received_ym_data}. Using as is.") ym = received_ym_data else: print(f"Warning: Received unexpected ZMQ data format: {received_ym_data}. Using default ym.") - ym = concore2.initval(init_simtime_ym_str) + ym = concore.initval(init_simtime_ym_str) # Assuming concore.oport['Y'] is a file port (e.g., to cpymax.py) - concore2.write(concore.oport['Y'], "ym", ym) + concore.write(concore.oport['Y'], "ym", ym) - print(f"funcall ZMQ u={u} ym={ym} time={concore2.simtime}") + print(f"funcall ZMQ u={u} ym={ym} time={concore.simtime}") print("funcall retry=" + str(concore.retrycount)) diff --git a/0mq/funcall_zmq2.py b/0mq/funcall_zmq2.py index 13c65842..168fc929 100644 --- a/0mq/funcall_zmq2.py +++ b/0mq/funcall_zmq2.py @@ -1,7 +1,6 @@ # funcall2_zmq.py import time import concore -import concore2 print("funcall using ZMQ via concore") @@ -15,21 +14,18 @@ # Standard concore initializations concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u_str = "[0.0, 0.0, 0.0]" init_simtime_ym_str = "[0.0, 0.0, 0.0]" u = concore.initval(init_simtime_u_str) -ym = concore2.initval(init_simtime_ym_str) +ym = concore.initval(init_simtime_ym_str) -print(f"Initial u: {u}, ym: {ym}, concore.simtime: {concore.simtime}, concore2.simtime: {concore2.simtime}") +print(f"Initial u: {u}, ym: {ym}, concore.simtime: {concore.simtime}, concore.simtime: {concore.simtime}") print(f"Max time: {concore.maxtime}") -while concore2.simtime < concore.maxtime: +while concore.simtime < concore.maxtime: while concore.unchanged(): # Assuming concore.iport['U'] is a file port (e.g., from cpymax.py) u = concore.read(concore.iport['U'], "u", init_simtime_u_str) @@ -44,19 +40,19 @@ if isinstance(received_ym_data, list) and len(received_ym_data) > 0: response_time = received_ym_data[0] if isinstance(response_time, (int, float)): - concore2.simtime = response_time + concore.simtime = response_time ym = received_ym_data[1:] else: print(f"Warning: Received ZMQ data's first element is not time: {received_ym_data}. Using as is.") ym = received_ym_data else: print(f"Warning: Received unexpected ZMQ data format: {received_ym_data}. Using default ym.") - ym = concore2.initval(init_simtime_ym_str) + ym = concore.initval(init_simtime_ym_str) # Assuming concore.oport['Y'] is a file port (e.g., to cpymax.py) - concore2.write(concore.oport['Y'], "ym", ym) + concore.write(concore.oport['Y'], "ym", ym) - print(f"funcall ZMQ u={u} ym={ym} time={concore2.simtime}") + print(f"funcall ZMQ u={u} ym={ym} time={concore.simtime}") print("funcall retry=" + str(concore.retrycount)) diff --git a/measurements/Latency/funbody_distributed.py b/measurements/Latency/funbody_distributed.py index eaae295c..33da80b2 100644 --- a/measurements/Latency/funbody_distributed.py +++ b/measurements/Latency/funbody_distributed.py @@ -1,7 +1,6 @@ # funbody2_zmq.py import time import concore -import concore2 print("funbody using ZMQ via concore") @@ -16,21 +15,18 @@ # Standard concore initializations concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) init_simtime_u_str = "[0.0, 0.0, 0.0]" init_simtime_ym_str = "[0.0, 0.0, 0.0]" u_data_values = concore.initval(init_simtime_u_str) -ym_data_values = concore2.initval(init_simtime_ym_str) +ym_data_values = concore.initval(init_simtime_ym_str) print(f"Initial u_data_values: {u_data_values}, ym_data_values: {ym_data_values}") print(f"Max time: {concore.maxtime}") -while concore2.simtime < concore.maxtime: +while concore.simtime < concore.maxtime: received_u_data = concore.read(PORT_NAME_F2_OUT, "u_signal", init_simtime_u_str) if not (isinstance(received_u_data, list) and len(received_u_data) > 0): @@ -50,17 +46,17 @@ if 'U2' in concore.oport: concore.write(concore.oport['U2'], "u", u_data_values) - old_concore2_simtime = concore2.simtime - while concore2.unchanged() or concore2.simtime <= old_concore2_simtime: + old_concore_simtime = float(concore.simtime) + while concore.unchanged() or concore.simtime <= old_concore_simtime: # Assuming concore.iport['Y2'] is a file port (e.g., from pmpymax.py) - ym_data_values = concore2.read(concore.iport['Y2'], "ym", init_simtime_ym_str) - # time.sleep(concore2.delay) # Optional delay + ym_data_values = concore.read(concore.iport['Y2'], "ym", init_simtime_ym_str) + # time.sleep(concore.delay) # Optional delay - ym_full_to_send = [concore2.simtime] + ym_data_values + ym_full_to_send = [concore.simtime] + ym_data_values concore.write(PORT_NAME_F2_OUT, "ym_signal", ym_full_to_send) - print(f"funbody u={u_data_values} ym={ym_data_values} time={concore2.simtime}") + print(f"funbody u={u_data_values} ym={ym_data_values} time={concore.simtime}") print("funbody retry=" + str(concore.retrycount)) diff --git a/measurements/Latency/funcall_distributed.py b/measurements/Latency/funcall_distributed.py index 779324fb..8e8e7590 100644 --- a/measurements/Latency/funcall_distributed.py +++ b/measurements/Latency/funcall_distributed.py @@ -1,7 +1,6 @@ # funcall_distributed.py (MODIFIED FOR LATENCY MEASUREMENT) import time import concore -import concore2 import csv # <--- ADDED: Import CSV library print("funcall using ZMQ via concore") @@ -16,24 +15,21 @@ # Standard concore initializations concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) # Recommend increasing this for more data points, e.g., 1000 init_simtime_u_str = "[0.0, 0.0, 0.0]" init_simtime_ym_str = "[0.0, 0.0, 0.0]" u = concore.initval(init_simtime_u_str) -ym = concore2.initval(init_simtime_ym_str) +ym = concore.initval(init_simtime_ym_str) # --- ADDED: Initialize a list to store latency values --- zeromq_latencies = [] -print(f"Initial u: {u}, ym: {ym}, concore.simtime: {concore.simtime}, concore2.simtime: {concore2.simtime}") +print(f"Initial u: {u}, ym: {ym}, concore.simtime: {concore.simtime}, concore.simtime: {concore.simtime}") print(f"Max time: {concore.maxtime}") -while concore2.simtime < concore.maxtime: +while concore.simtime < concore.maxtime: while concore.unchanged(): u = concore.read(concore.iport['U'], "u", init_simtime_u_str) @@ -53,18 +49,18 @@ if isinstance(received_ym_data, list) and len(received_ym_data) > 0: response_time = received_ym_data[0] if isinstance(response_time, (int, float)): - concore2.simtime = response_time + concore.simtime = response_time ym = received_ym_data[1:] else: print(f"Warning: Received ZMQ data's first element is not time: {received_ym_data}. Using as is.") ym = received_ym_data else: print(f"Warning: Received unexpected ZMQ data format: {received_ym_data}. Using default ym.") - ym = concore2.initval(init_simtime_ym_str) + ym = concore.initval(init_simtime_ym_str) - concore2.write(concore.oport['Y'], "ym", ym) + concore.write(concore.oport['Y'], "ym", ym) - print(f"funcall ZMQ u={u} ym={ym} time={concore2.simtime} | ZMQ Latency: {latency_ms:.4f} ms") + print(f"funcall ZMQ u={u} ym={ym} time={concore.simtime} | ZMQ Latency: {latency_ms:.4f} ms") print("funcall retry=" + str(concore.retrycount)) diff --git a/measurements/comm_node_test.py b/measurements/comm_node_test.py index dac015ed..465344d0 100644 --- a/measurements/comm_node_test.py +++ b/measurements/comm_node_test.py @@ -1,14 +1,10 @@ import concore -import concore2 import time import sys # --- Script Configuration --- concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 concore.default_maxtime(100) # This will be ignored by the new logic init_simtime_u = "[0.0, 0.0, 0.0]" init_simtime_ym = "[0.0, 0.0, 0.0]" @@ -19,7 +15,7 @@ # --- Main Script Logic --- u = concore.initval(init_simtime_u) -ym = concore2.initval(init_simtime_ym) +ym = concore.initval(init_simtime_ym) curr = 0 max_value = 100 iteration = 0 @@ -39,16 +35,16 @@ # Break if the loop condition is met after the first read if curr >= max_value: # Forward a final message to ensure the next node also terminates - concore2.write(concore.oport['Y'], "ym", [curr]) + concore.write(concore.oport['Y'], "ym", [curr]) break # 3. Wait for a message from the 'Y1' channel - old2 = concore2.simtime - while concore2.unchanged() or concore2.simtime <= old2: - ym = concore2.read(concore.iport['Y1'], "ym", init_simtime_ym) + old2 = float(concore.simtime) + while concore.unchanged() or concore.simtime <= old2: + ym = concore.read(concore.iport['Y1'], "ym", init_simtime_ym) # 4. Forward it to the 'Y' channel - concore2.write(concore.oport['Y'], "ym", ym) + concore.write(concore.oport['Y'], "ym", ym) curr = ym[0] print(f"comm_node: u={u[0]:.2f} | ym={ym[0]:.2f}") diff --git a/nintan/powermetermax.py b/nintan/powermetermax.py index 5d6828ef..5294ceb8 100644 --- a/nintan/powermetermax.py +++ b/nintan/powermetermax.py @@ -1,14 +1,10 @@ #CW import concore -import concore2 import time print("powermeter") concore.delay = 0.07 -concore2.delay = 0.07 -concore2.inpath = concore.inpath -concore2.outpath = concore.outpath -concore2.simtime = 0 +concore.simtime = 0 #Nsim = 100 concore.default_maxtime(100) init_simtime_u = "[0.0, 0.0, 0.0]" @@ -19,9 +15,9 @@ while(concore.simtime