只有hello包实现多跳,还没加入业务数据
具体的还要看opencode和gpt记录接着优化
This commit is contained in:
24
sim/main.py
24
sim/main.py
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user