只有hello包实现多跳,还没加入业务数据
具体的还要看opencode和gpt记录接着优化
This commit is contained in:
58
sim/analysis_tools/channel_analysis.py
Normal file
58
sim/analysis_tools/channel_analysis.py
Normal file
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
Channel Analysis Tools.
|
||||
|
||||
Functions for analyzing channel utilization and collisions.
|
||||
"""
|
||||
|
||||
from typing import Dict, Any
|
||||
|
||||
|
||||
def analyze_channel_utilization(collisions: int, busy_time: float, total_time: float) -> Dict[str, Any]:
|
||||
"""
|
||||
Analyze channel utilization.
|
||||
|
||||
Args:
|
||||
collisions: Number of collisions
|
||||
busy_time: Total channel busy time
|
||||
total_time: Total simulation time
|
||||
|
||||
Returns:
|
||||
Dictionary with channel analysis
|
||||
"""
|
||||
utilization = busy_time / total_time if total_time > 0 else 0
|
||||
|
||||
# Determine network state
|
||||
if utilization < 0.3:
|
||||
network_state = "LIGHT_LOAD"
|
||||
elif utilization < 0.7:
|
||||
network_state = "MODERATE"
|
||||
else:
|
||||
network_state = "SATURATED"
|
||||
|
||||
return {
|
||||
'busy_time': busy_time,
|
||||
'total_time': total_time,
|
||||
'utilization': utilization,
|
||||
'utilization_percent': round(utilization * 100, 2),
|
||||
'collisions': collisions,
|
||||
'collision_rate': collisions / total_time if total_time > 0 else 0,
|
||||
'network_state': network_state,
|
||||
}
|
||||
|
||||
|
||||
def get_network_state(utilization: float) -> str:
|
||||
"""
|
||||
Get network state based on utilization.
|
||||
|
||||
Args:
|
||||
utilization: Channel utilization ratio (0-1)
|
||||
Network state string
|
||||
"""
|
||||
|
||||
Returns:
|
||||
if utilization < 0.3:
|
||||
return "LIGHT_LOAD"
|
||||
elif utilization < 0.7:
|
||||
return "MODERATE"
|
||||
else:
|
||||
return "SATURATED"
|
||||
Reference in New Issue
Block a user