换电站解析程序
This commit is contained in:
parent
6bbe6bac71
commit
94ce47a4fe
104
battery_swap_station/main.py
Normal file
104
battery_swap_station/main.py
Normal file
@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
主程序入口,负责初始化各个组件并启动MQTT客户端
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import signal
|
||||
import time
|
||||
import argparse
|
||||
|
||||
from config.config_manager import ConfigManager
|
||||
from utils.logger import setup_logger
|
||||
from mqtt.mqtt_client import MQTTClient
|
||||
from message.message_router import MessageRouter
|
||||
from handlers.state_handler import StateHandler
|
||||
from handlers.event_handler import EventHandler
|
||||
from handlers.request_handler import RequestHandler
|
||||
from handlers.response_handler import ResponseHandler
|
||||
from handlers.keepalive_handler import KeepaliveHandler
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
"""解析命令行参数"""
|
||||
parser = argparse.ArgumentParser(description='玖行充换电云平台与站控系统通信程序')
|
||||
parser.add_argument('-c', '--config', default='config/config.yaml',
|
||||
help='配置文件路径')
|
||||
parser.add_argument('-l', '--log-level', default='INFO',
|
||||
choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
|
||||
help='日志级别')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def setup_signal_handlers(mqtt_client):
|
||||
"""设置信号处理器,优雅地关闭程序"""
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
print("\n正在关闭MQTT客户端...")
|
||||
mqtt_client.disconnect()
|
||||
sys.exit(0)
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
signal.signal(signal.SIGTERM, signal_handler)
|
||||
|
||||
|
||||
def main():
|
||||
"""主函数"""
|
||||
args = parse_arguments()
|
||||
|
||||
# 初始化日志
|
||||
logger = setup_logger('main', args.log_level)
|
||||
logger.info("启动玖行充换电云平台与站控系统通信程序")
|
||||
|
||||
# 加载配置
|
||||
config_manager = ConfigManager(args.config)
|
||||
config = config_manager.get_config()
|
||||
|
||||
# 初始化消息路由器
|
||||
message_router = MessageRouter()
|
||||
|
||||
# 初始化各类处理器
|
||||
state_handler = StateHandler(config)
|
||||
event_handler = EventHandler(config)
|
||||
request_handler = RequestHandler(config)
|
||||
response_handler = ResponseHandler(config)
|
||||
keepalive_handler = KeepaliveHandler(config)
|
||||
|
||||
# 注册处理器到路由器
|
||||
message_router.register_handler('state', state_handler)
|
||||
message_router.register_handler('event', event_handler)
|
||||
message_router.register_handler('request', request_handler)
|
||||
message_router.register_handler('response', response_handler)
|
||||
message_router.register_handler('keepalive', keepalive_handler)
|
||||
|
||||
# 初始化MQTT客户端
|
||||
mqtt_client = MQTTClient(
|
||||
broker=config['mqtt']['broker'],
|
||||
port=config['mqtt']['port'],
|
||||
client_id=config['mqtt']['client_id'],
|
||||
username=config['mqtt']['username'],
|
||||
password=config['mqtt']['password'],
|
||||
use_tls=config['mqtt']['use_tls'],
|
||||
message_router=message_router
|
||||
)
|
||||
|
||||
# 设置信号处理器
|
||||
setup_signal_handlers(mqtt_client)
|
||||
|
||||
# 连接MQTT服务器
|
||||
mqtt_client.connect()
|
||||
|
||||
# 主循环
|
||||
try:
|
||||
while True:
|
||||
time.sleep(1)
|
||||
except KeyboardInterrupt:
|
||||
logger.info("接收到退出信号,正在关闭程序...")
|
||||
mqtt_client.disconnect()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
41
battery_swap_station/readme
Normal file
41
battery_swap_station/readme
Normal file
@ -0,0 +1,41 @@
|
||||
# 文件结构
|
||||
# -----------------
|
||||
# main.py # 主程序入口
|
||||
# config/
|
||||
# __init__.py
|
||||
# config_manager.py # 配置管理器
|
||||
# config.yaml # 配置文件
|
||||
# mqtt/
|
||||
# __init__.py
|
||||
# mqtt_client.py # MQTT客户端
|
||||
# encryption/
|
||||
# __init__.py
|
||||
# encryption.py # 加密/解密模块
|
||||
# message/
|
||||
# __init__.py
|
||||
# message_parser.py # 消息解析器
|
||||
# message_router.py # 消息路由器
|
||||
# handlers/
|
||||
# __init__.py
|
||||
# base_handler.py # 基础处理器类
|
||||
# state_handler.py # 状态类处理器
|
||||
# event_handler.py # 事件类处理器
|
||||
# request_handler.py # 请求类处理器
|
||||
# response_handler.py # 响应类处理器
|
||||
# keepalive_handler.py # 心跳处理器
|
||||
# models/
|
||||
# __init__.py
|
||||
# base_model.py # 基础数据模型
|
||||
# station_model.py # 站控相关数据模型
|
||||
# battery_model.py # 电池相关数据模型
|
||||
# charging_model.py # 充电相关数据模型
|
||||
# swapping_model.py # 换电相关数据模型
|
||||
# utils/
|
||||
# __init__.py
|
||||
# logger.py # 日志工具
|
||||
# helpers.py # 辅助函数
|
||||
# tests/ # 单元测试
|
||||
# __init__.py
|
||||
# test_mqtt_client.py
|
||||
# test_encryption.py
|
||||
# test_message_parser.py
|
Loading…
x
Reference in New Issue
Block a user