# interlocker4 **Repository Path**: akinggw/interlocker4 ## Basic Information - **Project Name**: interlocker4 - **Description**: 一个基于wxWidgets实现的铁路信号控制系统,图像系统基于OpenGL3.3,脚本系统使用Lua,另外支持agent - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-25 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目概述 Interlocker4 是一个基于 wxWidgets 开发的铁路信号控制系统,主要用于铁路信号的管理、控制和模拟。该项目采用模块化设计,包含三个主要组件:主应用程序(Interlocker4)、中央服务器(CenterServer)和信号模拟器(SignalSimulator)。 ## 系统架构 ### 主要组件 1. Interlocker4 :主应用程序,负责信号系统的核心功能 2. CenterServer :中央服务器,可能负责协调多个信号系统 3. SignalSimulator :信号模拟器,用于模拟铁路信号系统的运行 ### 技术栈 - 开发框架 :wxWidgets(跨平台 GUI 库) - 脚本引擎 :Lua - 网络通信 :TCP、UDP、WebSocket、HTTP - 数据存储 :SQLite 数据库 - 3D 数学库 :GLM - 异常处理 :Google Breakpad ## 核心功能 ### 1. 信号控制系统 - 信号管理 :通过脚本和图形界面管理铁路信号 - 机车管理 :添加、监控和控制机车 - 站场数据 :管理站场布局和相关数据 ### 2. 脚本系统 - 脚本编辑 :内置脚本编辑器,支持代码自动补全 - 脚本管理 :加载、保存和监控脚本文件 - Lua 集成 :使用 Lua 作为脚本语言 ### 3. 网络通信 - TCP 客户端 :与信号服务器和设备服务器通信 - UDP 服务器 :用于同步数据 - HTTP 服务器 :用于调试 - WebSocket 服务器 :用于实时通信 ### 4. 用户管理 - 用户认证 :登录系统 - 用户信息管理 :添加、修改、删除用户 - 权限控制 :基于用户身份的权限管理 ### 5. AI 集成 - DeepSeek 客户端 :集成 AI 功能,可能用于智能决策或辅助控制 ### 6. 监控与调试 - 文件监控 :监控脚本文件变化 - 日志系统 :记录系统运行状态 - 调试服务器 :提供 HTTP 和 WebSocket 接口用于调试 ### 7. 系统管理 - 配置管理 :读取和应用系统配置 - 授权管理 :软件授权验证 - 版本检测 :检查更新 ## 项目结构 ### 主要目录 1. Interlocker4/ :主应用程序源代码 - glm/ :3D 数学库 - gui/ :GUI 相关代码 - locomanager/ :机车管理 - resources/ :资源文件 2. CenterServer/ :中央服务器源代码 - resources/ :资源文件 3. SignalSimulator/ :信号模拟器源代码 - resources/ :资源文件 4. admin/ :管理相关文件 - config.php :配置文件 - creat_db.sql :数据库创建脚本 5. bin/ :可执行文件和资源 - resources/ :运行时资源 - CenterServer :中央服务器可执行文件 - Interlocker4 :主应用程序可执行文件 - SignalSimulator :信号模拟器可执行文件 ## 核心类与模块 ### 1. CMainFrame 主应用程序的主框架类,负责整个应用程序的初始化、界面管理和核心功能。 主要功能 : - 初始化应用程序界面 - 管理脚本编辑和执行 - 处理网络通信 - 管理用户登录和权限 - 监控文件变化 - 处理系统事件 ### 2. 网络模块 主要组件 : - WTcpClient :TCP 客户端,用于与服务器通信 - WHttpServer :HTTP 服务器,用于调试 - WWebSocketServer :WebSocket 服务器,用于实时通信 - WUdpManager :UDP 管理器,用于数据同步 ### 3. 脚本管理 主要组件 : - ScriptManager :脚本管理器,负责脚本的加载、执行和监控 - ScriptEditor :脚本编辑器,提供代码编辑功能 ### 4. 机车管理 主要组件 : - LocoManager :机车管理器,负责机车的添加、监控和控制 ### 5. AI 集成 主要组件 : - CDeepSeekClient :DeepSeek AI 客户端,集成 AI 功能 ## 工作流程 1. 系统启动 :初始化应用程序,加载配置和脚本 2. 用户登录 :验证用户身份和权限 3. 信号控制 :通过脚本和界面控制铁路信号 4. 机车管理 :添加和监控机车 5. 网络通信 :与其他系统组件通信 6. 监控与调试 :监控系统状态,提供调试接口 7. 系统关闭 :保存配置和数据,清理资源 ## 技术特点 1. 跨平台 :基于 wxWidgets,支持多平台运行 2. 模块化设计 :清晰的组件划分,便于维护和扩展 3. 脚本化控制 :使用 Lua 脚本实现灵活的信号控制逻辑 4. 网络集成 :多种网络通信方式,支持分布式系统 5. AI 辅助 :集成 AI 功能,可能用于智能决策 6. 实时监控 :文件监控和系统状态监控 7. 安全可靠 :异常处理和授权管理 ## 应用场景 1. 铁路信号控制 :实际铁路系统的信号管理 2. 信号系统模拟 :用于培训和测试 3. 铁路系统研究 :研究信号系统的优化和改进 4. 教育教学 :铁路信号系统的教学和学习 ## 总结 Interlocker4 是一个功能完整、架构清晰的铁路信号控制系统,采用现代化的技术栈和模块化设计,具有良好的可扩展性和可维护性。该系统不仅实现了基本的信号控制功能,还集成了脚本系统、网络通信、AI 辅助等高级特性,为铁路信号系统的管理和控制提供了全面的解决方案。 通过分析项目代码和结构,我们可以看出这是一个专业的铁路信号控制系统,具有以下特点: - 完整的信号控制功能 - 灵活的脚本系统 - 强大的网络通信能力 - 智能的 AI 辅助 - 全面的监控和调试功能 这些特点使得 Interlocker4 成为一个理想的铁路信号控制系统解决方案,不仅可以用于实际的铁路运营,还可以用于研究、教学和培训等场景。 #### 截图预览 ![AI](https://gitee.com/akinggw/interlocker4/raw/master/screen/20260205144203_776_14.png) ![linux1](https://gitee.com/akinggw/interlocker4/raw/master/screen/471db612-41d9-4b9b-a2ff-384899537544.png) ![远程调试](https://gitee.com/akinggw/interlocker4/raw/master/screen/2b3982c7-9898-4b9d-9f73-6e0cdc2ff6f3.png) ![linux2](https://gitee.com/akinggw/interlocker4/raw/master/screen/_20251120162042_1_14.png) ![linux3](https://gitee.com/akinggw/interlocker4/raw/master/screen/_20251120163004_13_14.png) ![任务管理](https://gitee.com/akinggw/interlocker4/raw/master/screen/0bef703a-a8c4-4259-a8a1-3aa0436f5b8e.png) ![截图2](https://gitee.com/akinggw/interlocker4/raw/master/screen/_20250725182228.png) ![代码自动补全](https://gitee.com/akinggw/interlocker4/raw/master/screen/_20250725182314.png)