HostHandler: senders for the AA tranche messages
tests / build-and-test (push) Failing after 34s

A host couldn't drive the new messages through the HostHandler class —
only the server side knew how to dispatch them.  Adds six new senders
plus a unit test that walks each through a real loopback connection:

  * send_legacy_remote_command  -> S2F21
  * send_event_report_request   -> S6F15
  * send_individual_report_request -> S6F19
  * send_annotated_report_request  -> S6F21
  * send_pp_load_inquire        -> S7F1
  * send_delete_pp              -> S7F17

Suite: 296 cases / 1571 assertions.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-09 01:20:23 +02:00
parent 7c28e2589c
commit 29f646c7ca
3 changed files with 106 additions and 0 deletions
+22
View File
@@ -124,6 +124,20 @@ class HostHandler : public std::enable_shared_from_this<HostHandler> {
const std::vector<CommandParameter>& params,
ReplyHandler cb);
// S2F21/F22 legacy Remote Command (no parameter list, single ack byte).
void send_legacy_remote_command(const std::string& rcmd, ReplyHandler cb);
// ---- Host-initiated event/report queries (B3) -------------------------
// S6F15/F16: pull the current event-report payload for a given CEID.
void send_event_report_request(uint32_t ceid, ReplyHandler cb);
// S6F19/F20: pull a single RPTID's current values (no annotation).
void send_individual_report_request(uint32_t rptid, ReplyHandler cb);
// S6F21/F22: pull a single RPTID's values with (VID, V) annotation.
void send_annotated_report_request(uint32_t rptid, ReplyHandler cb);
// ---- Alarm management (B3) --------------------------------------------
// S5F3/F4 Enable/Disable Alarm. Spec uses ALED bit-7 to encode enable.
@@ -144,6 +158,14 @@ class HostHandler : public std::enable_shared_from_this<HostHandler> {
ReplyHandler cb); // S7F3/F4
void send_request_pp(const std::string& ppid, ReplyHandler cb); // S7F5/F6
// S7F1/F2 Process Program Load Inquire: announce a forthcoming S7F3
// of `length` bytes; equipment grants or denies.
void send_pp_load_inquire(const std::string& ppid, uint32_t length,
ReplyHandler cb);
// S7F17/F18 Delete Process Program: empty list = delete all.
void send_delete_pp(const std::vector<std::string>& ppids, ReplyHandler cb);
// ---- Spool (B3) -------------------------------------------------------
void send_request_spool(SpoolRequestCode code, ReplyHandler cb); // S6F23/F24