from log_utils import get_logger logger = get_logger(name="Plugins") sorted_active_plugins = [] def load_plugins(): from plugins.health_plugin import Plugin as HealthPlugin from plugins.map_plugin import Plugin as MapPlugin from plugins.mesh_relay_plugin import Plugin as MeshRelayPlugin from plugins.ping_plugin import Plugin as PingPlugin from plugins.telemetry_plugin import Plugin as TelemetryPlugin from plugins.weather_plugin import Plugin as WeatherPlugin from plugins.help_plugin import Plugin as HelpPlugin from plugins.nodes_plugin import Plugin as NodesPlugin from plugins.drop_plugin import Plugin as DropPlugin from plugins.debug_plugin import Plugin as DebugPlugin from plugins.chutilz_plugin import Plugin as ChutilzPlugin from plugins.airutilz_plugin import Plugin as AirutilzPlugin from plugins.voltage_plugin import Plugin as VoltagePlugin from plugins.battery_plugin import Plugin as BatteryPlugin from plugins.snr_plugin import Plugin as SNRPlugin global sorted_active_plugins if sorted_active_plugins: return sorted_active_plugins plugins = [ HealthPlugin(), MapPlugin(), MeshRelayPlugin(), PingPlugin(), TelemetryPlugin(), WeatherPlugin(), HelpPlugin(), NodesPlugin(), DropPlugin(), DebugPlugin(), ChutilzPlugin(), AirutilzPlugin(), VoltagePlugin(), BatteryPlugin(), SNRPlugin(), ] active_plugins = [] for plugin in plugins: if plugin.config["active"]: plugin.priority = ( plugin.config["priority"] if "priority" in plugin.config else plugin.priority ) active_plugins.append(plugin) plugin.start() sorted_active_plugins = sorted(active_plugins, key=lambda plugin: plugin.priority) return sorted_active_plugins