可用于搭建模拟飞行通信服务,支持Swift等多种客户端接入。完整移植原FSD协议与功能,新增LDP FLY联飞客户端协议,提供多端口连接、管理命令及配置文件支持,结合仓颉高性能优势打造
FSD_Cangjie
基于 华为仓颉(Cangjie) 语言的飞行模拟联机服务器(Flight Simulator Daemon)。 移植自 Marty Bochane 的 原版 FSD(公共领域),用仓颉重构并扩展,可运行于 Linux 与 HarmonyOS / OpenHarmony(aarch64)。
原版 FSD 为公共领域(public domain)。本项目的仓颉实现、并发模型与扩展功能归本仓库作者所有。
特性
- FSD 协议兼容:
#AA/#DP/$FP/@/%/$!!等完整指令集,MOTD、位置广播、飞行计划、天气 - 客户端接口
6809、服务器互联接口3011、系统管理接口3010、HTTP API8080、语音6808 - 每连接独立的输出邮箱(
OutBuf)+ 专属写线程,慢客户端不阻塞广播 - 并发集合注册表、
-O2编译、可配置maxclients - MySQL 认证(可选,失败自动回退
cert.txt) - HarmonyOS aarch64 原生可运行(仓颉 ohos 目标 + 代码签名)
目录结构
src/ 仓颉源码
vendor/ MySQL 驱动(第三方)
unix/ Linux 部署:fsd_d.sh / killfsd.sh / deploy.sh / 示例配置
harmonyos/ HarmonyOS 构建脚本 + 3010 控制台客户端(admin)
cjpm.toml 构建配置
构建(Linux)
依赖:仓颉 SDK 1.2.0 + stdx。
source /opt/cangjie/envsetup.sh
export CANGJIE_STDX_PATH=/opt/cangjie/linux_x86_64_cjnative/static/stdx
cjpm build
# 产物: target/release/bin/main
构建(HarmonyOS / OpenHarmony aarch64)
需要:鸿蒙仓颉 SDK(cangjie-sdk-linux-x64-ohos-1.2.0)+ ohos-aarch64 stdx + OHOS sysroot(DevEco Studio 自带 sdk/default/openharmony/native/sysroot)。
详见 harmonyos/scripts/(_build_ohos.sh 等)。
产物需用 binary-sign-tool sign -selfSign 1 对可执行文件及所依赖的全部 .so 自签名,才能在鸿蒙 HiShell 中运行。
部署 / 运行
# Linux
cd unix && cp fsd.conf.example fsd.conf # 编辑配置
./fsd_d.sh # 启动/重启(优雅通知客户端后重启)
./killfsd.sh # 停止
# HarmonyOS:在家目录解压发布包后
./fsd_d.sh
系统管理接口(端口 3010)
telnet 127.0.0.1 3010 # 注意:host 与 port 用空格分隔
pwd <管理密码> # 认证
help / clients / info / time
shutdown confirm # 优雅关机
安全提示
- 3010 管理接口只应绑定本机或内网,不要暴露公网(含默认密码时将极其危险)。
- 务必修改默认管理密码,并保护好
fsd.conf/cert.txt(已在.gitignore中)。 - 云服务器仅放行必要端口。
许可
本项目源码以 Apache-2.0 许可发布(见 LICENSE)。
原版 FSD 由 Marty Bochane 开发,列为公共领域,谨致谢意。