电台主控与业务接口联调日志

本文档描述电台主控程序(DbdtControl)与业务层(Dbdt-S2)之间的接口(以下可简称“接口”)规范协商、设计、变更和联合调试历史日志和问题跟踪记录。大部分接口定义由业务层实现。

2023-06-13

更改

  • 取消 MSG_ALE_LINK 事件。改为:
    • 使用 MSG_ALE_LINK_STATE 事件上报建链过程中各个状态信息(建链成功、建链失败、建链中)。
    • 文档里还增加了一个 MSG_MAN_LINK_SUCCE_MSG,建链成功后上报主控建链信息。但代码里未发现此消息ID。
  • S2_set_qale_link (Q-ALE 单呼建链)接口原型更改,在建链时传入波道号、呼叫地址、业务类型和速率等信息。
  • 增加单独的 S2_set_qale_multi_link (Q-ALE 组呼建链)接口。
  • S2_set_work_call_address 接口更改,不再根据工作模式设置不同呼叫地址。
  • 代码里删除了 MSG_ALE_UNLINK 事件(见下面部分说明)。
  • 业务⇒主控程序的所有消息更改为使用 MAG 模块消息通道(原为使用 FPP 消息通道)。
  • 文档里定义了 S2_set_group_net_link、MSG_GROUP_NET_LINK等组网模式下与 Q-ALE 模式下相同过程等效的接口,但代码里尚未实现。

问题

测试发现,当前接口仍无法满足 Q-ALE 业务基本流程(参数设置⇒单呼(或组呼)建链⇒通讯⇒拆链)全程验证测试(以下简称 Q-ALE 基本流程测试)需求。具体待澄清、确认或处理的问题,以及目前沟通结果如下:
  • MSG_ALE_LINK_STATE 和 MSG_MAN_LINK_SUCCE_MSG 消息功能重复,并且文档和代码不一致:经确认,暂定使用前者。
  • 本版业务代码里删除了上一版定义的 MSG_ALE_UNLINK(拆链/中止建链结果)事件,并且没有定义替代事件。主控程序无法获取拆链是否成功信息。(是否意味着拆链或中止建链必定成功,不再需要异步确认?)
  • 本版电台(业务代码)程序向主控的消息改为使用 MAG 模块消息通道。目前主控程序库的读取消息 hook 增加位置位于 FPP 模块里,需要相应修改为 MAG 模块代码对应位置。
  • 缺少设置全部或当前波道(频率集、参数)信息的接口。S2_set_qale_link / S2_set_qale_multi_link 建链接口里定义了波道号参数,但目前主控没有任何方式能将从外部接口获取的所有波道或当前建链使用波道的频率集和参数信息传递给业务层。业务层仅仅获得一个波道号没有任何意义:待定义和规范接口。
  • 新增加的 S2_set_qale_multi_link (Q-ALE 组呼建链)接口需要传入一组(1-31个)呼叫地址信息,这些地址主控从何处获取?目前的 429 / 1553 等外部控制接口协议里应该只定义了 1个 呼叫地址信息:暂定只向业务层传入1个呼叫地址(空中电台发起组呼链接可能只有单地址?)。
建议进一步完善接口,然后再进行 Q-ALE 基本流程测试。

2023-06-07

更改

  • 定义了 MSG_ALE_LINK 和 MSG_ALE_UNLINK 事件分布用于 Q-ALE 建链和拆链(或中止建链)结果状态上报。
  • 定义了 S2_set_qale_link 和 S2_set_qale_unlink 的 Q-ALE建链 / 拆链接口。
  • 主控程序⇒业务的部分消息接口转而使用 FPP 模块的消息通道(原来所有主控⇒业务消息均使用 MAG 模块消息通道)。
  • 完全、彻底剥离主控程序与业务层代码,使用库的形式实现接口和代码隔离。通过 hooks 形式进行接口调用。