# EZCNC **Repository Path**: openez/ezcnc ## Basic Information - **Project Name**: EZCNC - **Description**: 使用EZGCode驱动的CNC示例, 通过libezgcode.so整合GCode驱动 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-28 - **Last Updated**: 2026-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EZCNC - Web 数控控制系统 ![EZCNC 控制台](docs/screenshot.png) > 基于 Mach3 功能蓝本 + yl_pan 中文屏幕集风格,采用 Web + C 语言 + WebSocket 架构。 > 通过 WebSocket 与底层运动控制引擎 EZGCode 进行 G 代码交互。 ## 目录结构 ``` EZCNC/ ├── src/ # C 后端源码 (libwebsockets) │ ├── main.c # 程序入口、服务初始化 │ ├── ws_server.c # WebSocket 服务端 │ ├── auth.c # 登录认证 + token 会话 │ ├── dispatch.c # 消息分发 │ ├── gcode_proxy.c # G 代码转发 (本机回环 TCP) │ ├── pos_push.c # 位置定时推送线程 │ ├── md5.c # MD5 哈希实现 │ ├── json.c # 轻量 JSON 解析/生成 │ ├── config.c # config.ini 配置加载 │ └── log.c # 日志 ├── web/ # 前端 (单页面 SPA + 独立界面插件) │ ├── index.html # 主页面 shell (永不刷新) │ ├── main.js # shell 入口 │ ├── core/ # 核心模块 │ │ ├── plugin-manager.js │ │ ├── plugin-api.js │ │ ├── ws-client.js │ │ ├── store.js │ │ ├── i18n.js │ │ └── toast.js │ └── plugins/ # 独立界面插件 │ ├── login/ # 登录界面插件 │ ├── console/ # 主控台插件 (DRO+JOG+急停+回零+MDI) │ ├── mdi/ # MDI 手动输入插件 │ ├── io/ # IO 监控插件 │ ├── motor/ # 电机状态插件 │ ├── offsets/ # 坐标偏移插件 │ └── toolpath/ # 刀路仿真插件 ├── conf/ # 配置文件 │ └── config.ini ├── docs/ # 设计文档 │ ├── 01-EZCNC软件开发需求文档.md │ └── 02-EZCNC-UI设计文档.md ├── Makefile # 构建脚本 └── README.md ``` ## 构建与运行 ```bash make # 编译 C 后端 ./ezcnc -c conf/config.ini # 启动服务 ``` ## 架构 - **前端**: 单页面 SPA,主页面 shell 永不刷新,各功能界面以独立插件形式注册到顶部 tab,切换时动态挂载/卸载 - **后端**: C + libwebsockets,提供 HTTP 静态服务 + WebSocket 实时通信 - **通信**: WebSocket 子协议 `cnc-panel`,JSON 文本帧,位置推送 200ms 周期 - **底层**: 通过本机回环 TCP 连接 EZGCode (port 5010) 转发 G 代码 ## 默认账号 - 用户名: `admin` - 密码: `admin` (MD5: `21232f297a57a5a743894a0e4a801fc3`)