只有hello包实现多跳,还没加入业务数据

具体的还要看opencode和gpt记录接着优化
This commit is contained in:
sinlatansen
2026-02-24 17:17:45 +08:00
parent 375febb4c0
commit d357a25076
14 changed files with 1690 additions and 58 deletions

View File

@@ -26,6 +26,7 @@ def deploy_nodes(
channel: Channel,
num_nodes: int = None,
area_size: float = None,
metrics_collector: MetricsCollector = None,
) -> list:
"""
Deploy nodes randomly in the area.
@@ -35,6 +36,7 @@ def deploy_nodes(
channel: Wireless channel
num_nodes: Number of nodes (default from config)
area_size: Area size (default from config)
metrics_collector: Metrics collector for observability
Returns:
List of Node objects
@@ -57,6 +59,7 @@ def deploy_nodes(
y=sink_y,
channel=channel,
is_sink=True,
metrics_collector=metrics_collector,
)
nodes.append(sink)
@@ -65,7 +68,14 @@ def deploy_nodes(
x = random.uniform(0, area_size)
y = random.uniform(0, area_size)
node = Node(env=env, node_id=i, x=x, y=y, channel=channel)
node = Node(
env=env,
node_id=i,
x=x,
y=y,
channel=channel,
metrics_collector=metrics_collector,
)
nodes.append(node)
return nodes
@@ -118,7 +128,11 @@ def run_simulation(
# Create channel
channel = Channel(env)
# Deploy nodes
# Create metrics collector first (before deploying nodes)
metrics = MetricsCollector()
metrics.set_start_time(0.0)
# Deploy nodes with metrics collector
if num_nodes is None:
num_nodes = config.NODE_COUNT
if area_size is None:
@@ -126,15 +140,11 @@ def run_simulation(
if sim_time is None:
sim_time = config.SIM_TIME
nodes = deploy_nodes(env, channel, num_nodes, area_size)
nodes = deploy_nodes(env, channel, num_nodes, area_size, metrics)
# Setup receive callbacks
setup_receive_callback(nodes, channel)
# Create metrics collector
metrics = MetricsCollector()
metrics.set_start_time(0.0)
# Add collision callback
initial_collisions = channel.collision_count