完成py_plan.md

This commit is contained in:
sinlatansen
2026-02-24 16:21:30 +08:00
parent 6c0526b2ef
commit 375febb4c0
21 changed files with 2041 additions and 4 deletions

55
sim/config.py Normal file
View File

@@ -0,0 +1,55 @@
"""
Configuration system for LoRa route simulation.
All parameters must be defined here - no hardcoded values allowed.
"""
# =============================================================================
# Network Topology
# =============================================================================
NODE_COUNT = 12 # Number of nodes in the network
AREA_SIZE = 800 # Deployment area size (meters)
SINK_NODE_ID = 0 # Sink node ID (root of the routing tree)
# =============================================================================
# Timing Parameters
# =============================================================================
HELLO_PERIOD = 8.0 # HELLO packet broadcast period (seconds)
DATA_PERIOD = 30.0 # Data packet generation period (seconds)
SIM_TIME = 1000.0 # Total simulation time (seconds)
# =============================================================================
# Radio Parameters
# =============================================================================
TX_POWER = 14 # Transmit power (dBm)
RSSI_THRESHOLD = -105 # Reception sensitivity threshold (dBm)
NOISE_SIGMA = 3 # Gaussian noise standard deviation (dB)
PATH_LOSS_EXPONENT = 2.7 # Path loss exponent (n)
# =============================================================================
# MAC Layer Parameters
# =============================================================================
ACK_TIMEOUT_FACTOR = 2.5 # ACK timeout = airtime × this factor
MAX_RETRY = 3 # Maximum transmission retries
BACKOFF_MIN = 0.0 # Minimum backoff time (seconds)
BACKOFF_MAX = 2.0 # Maximum backoff time (seconds)
# =============================================================================
# LoRa Physical Parameters
# =============================================================================
SF = 9 # Spreading Factor (7-12)
BW = 125000 # Bandwidth (Hz)
CR = 5 # Coding Rate (5-8, represents 4/5 to 4/8)
PREAMBLE = 8 # Preamble length (symbols)
# =============================================================================
# Routing Parameters
# =============================================================================
LINK_PENALTY_SCALE = 8.0 # Scale factor for link penalty calculation
ROUTE_UPDATE_THRESHOLD = 1.0 # Cost threshold for route update
# =============================================================================
# Logging
# =============================================================================
LOG_LEVEL = "INFO" # DEBUG, INFO, WARNING, ERROR
LOG_FORMAT = "[{time:.1f}][NODE{nid:>3}][{event}] {message}"