{"id":17946537,"url":"https://github.com/sb-child/dz-print","last_synced_at":"2025-10-30T00:09:07.356Z","repository":{"id":259118577,"uuid":"876357720","full_name":"sb-child/dz-print","owner":"sb-child","description":"[WIP] Third-party USB/Bluetooth Driver for Detonger(detonger.com) Printing Machiness | 德佟印立方打印机的第三方USB/蓝牙驱动, 主板由道臻信息技术有限公司生产","archived":false,"fork":false,"pushed_at":"2024-10-25T13:05:11.000Z","size":119,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-09T03:41:17.295Z","etag":null,"topics":["printer","printer-driver","rust","thermal-printer","usb"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sb-child.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-21T20:41:08.000Z","updated_at":"2024-10-25T13:05:15.000Z","dependencies_parsed_at":"2024-12-16T16:05:57.367Z","dependency_job_id":"3d1fcf5c-79a6-43fa-9257-841c38a072f7","html_url":"https://github.com/sb-child/dz-print","commit_stats":null,"previous_names":["sb-child/dz-print"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sb-child%2Fdz-print","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sb-child%2Fdz-print/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sb-child%2Fdz-print/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sb-child%2Fdz-print/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sb-child","download_url":"https://codeload.github.com/sb-child/dz-print/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247024067,"owners_count":20870935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["printer","printer-driver","rust","thermal-printer","usb"],"created_at":"2024-10-29T07:06:06.719Z","updated_at":"2025-10-30T00:09:07.351Z","avatar_url":"https://github.com/sb-child.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dz-print\n\nThird-party USB/Bluetooth Driver for Detonger(detonger.com) Printing Machines\n\nMotherboard produced by DothanTech(dothantech.com)\n\n德佟印立方打印机的第三方USB/蓝牙驱动，主板由道臻信息技术有限公司生产\n\n## Communication / 通讯方式\n\n- [x] USB\n- [ ] 蓝牙 (TODO)\n\n## Tested On / 已测试\n\n- [x] DP27P\n- [ ] ... (help wanted)\n\n## Notice / 说明\n\n由于 SDK 代码并不开源，本驱动的底层开发完全基于对官方 SDK 的逆向、抓包、说明文档和上机测试。\n\n\u003e 官方 SDK 简直太烂了... 错别字先不提, 代码里不知道写了多少封装类, 然后 PC 版重要的功能也 todo 了, Android 版倒是 2024 年还有更新...\n\n## Protocol / 协议\n\n- [点击查看](protocol.md)当前分析出的打印机协议和命令\n- [点击查看](print-status.md)当前已知的打印机状态类型\n\n或者直接看[源码](src/command/mod.rs)\n\n## Development and Usage / 开发和使用\n\n- 依赖 `dbus-devel`，记得安装\n- 记得设置并重载 udev 规则，类似 `SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"3533\", ATTRS{idProduct}==\"5c15\", MODE=\"0666\"`\n- 源代码里有很多未使用的垃圾，是逆向初期的残留，请参考示例以避免用错\n\n```bash\n# 打印一张图片的示例代码\ncargo run --bin dzprint\n\n# 打印 Typst 文档的示例代码\ncargo run --bin dzprint_typst\n\n# TODO: 更完善的 CLI\ncargo run --bin dzcli\n```\n## Code Layout / 代码结构\n\n`src/`\n- `asset/` 资源文件，目前被示例代码使用\n- `backend/` 底层通讯实现\n- `bin/` 可执行的示例代码\n  - 看上面\n- `command/` 通讯协议\n  - `checksum.rs` 校验码计算\n  - `mod.rs` 命令列表和单命令编解码\n  - `packager.rs` 命令打包\n  - `variable_bytes.rs` 某种妙妙编解码\n- `image_proc/` 图像处理相关\n  - `mod.rs` 位图类型和转换\n  - `cmd_parser.rs` 打印命令生成\n\n## TODO\n\n- 优化流控，精确控制命令打包和发送过程\n- dzcli, CLI 和 Web 界面，集成查改设置，打印位图和 Typst 功能\n- handle 多设备，设备断连和故障处理\n- 蓝牙！\n\n## License / 许可证\n\nMPL-2.0, see [LICENSE](./LICENSE)\n\n- `src/asset` 中的文件可能是从别的地方复制过来的, 请查看[这个](src/asset/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsb-child%2Fdz-print","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsb-child%2Fdz-print","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsb-child%2Fdz-print/lists"}