2026-07-15 13:20:42 +08:00
2026-07-15 13:06:04 +08:00
2026-07-15 13:06:04 +08:00
2026-07-15 00:43:30 +08:00
2026-07-15 00:46:40 +08:00
2026-07-15 13:20:42 +08:00

CC CBC Convergence Control

基于 cbc_cannon_mount 的多炮弹道交汇火控工程,包含:

  • master/:主机程序,负责读取参考炮、广播参考角度、分组开火、行军锁与组装控制。
  • slave/:副机程序,负责多炮 FCS 交汇计算、FCI 阻挡判定、开火执行与状态回传。

安装

主机

wget https://git.liulikeji.cn/xingluo/cc-cbc-convergence-control/raw/branch/main/master/startup.lua

副机

wget https://git.liulikeji.cn/xingluo/cc-cbc-convergence-control/raw/branch/main/slave/startup.lua

目录

  • master/startup.lua:主机启动文件
  • slave/startup.lua:副机启动文件

功能概述

  • 主机只提供参考炮 master_yaw / master_pitch / refPos 广播,不参与副机弹道解算。
  • 副机使用 FCS.lua 的距离与 corrected_yaw 逻辑进行交汇计算。
  • 副机使用 FCI.lualim_L / lim_R / lim_up / lim_down 语义进行阻挡判定。
  • 支持 4 组开火输入、组内 slotId 轮询、双击齐射、行军锁、组装控制与阻挡红石输出。

FCI 死区设置

设置死区前,先在副机首页正确设置 Face
Face 只用于确定炮塔前方方向,进入 FCI 计算后,角度都按炮塔自身局部角处理:

  • 前方 = 0
  • 右侧 = 90
  • 后方 = 180
  • 左侧 = 270

FCI 页面填写的是“可开火区”,不是“死区”。
因此需要先算死区,再换算成剩余的可用区,最后填写 R / L

计算步骤

  1. 先确定死区是在前方还是后方。
  2. 取死区总角度的一半,记为“半角”。
  3. 计算死区范围:
    • 前方死区:0 - 半角0 + 半角
    • 后方死区:180 - 半角180 + 半角
  4. 将死区之外的区域改写为 1 条或 2 条可用区。
  5. FCI 页面按 R / L 顺序填写。

示例 1:只有后方 70 度死区

  • 后方中心:180
  • 半角:35
  • 死区范围:145 ~ 215
  • 可用区:215 ~ 3600 ~ 145

这是一个跨 0 度的环绕可用区,所以只需 1 条规则:

R = 145
L = 215

示例 2:前方 30 度死区,后方 35 度死区

  • 前方半角:15
  • 后方半角:17.5
  • 前方死区:-15 ~ 15
  • 后方死区:162.5 ~ 197.5
  • 可用区:15 ~ 162.5197.5 ~ 345

需要 2 条规则:

R = 162.5
L = 15

R = 345
L = 197.5

说明

  • Face 设置正确后,死区角度本身不需要再手动参与世界方向换算。
  • FCI 多条规则当前按“可用区并集”处理,任意一条规则通过即允许开火。
  • 如果结果与预期相反,优先检查:
    • Face 是否设置正确
    • R / L 是否填反
    • 是否还保留了额外规则

如果你不会算,你可以将上方整个FCI 死区设置说明发给ai并附带类似“后方有50度的死区应当如何设置”

S
Description
No description provided
Readme GPL-2.0 85 KiB
Languages
Lua 100%