D2: E87 wire messages (S3F17/F18 + F23/F24 + F25/F26 + F27/F28)
Adds the Carrier Management wire surface that drives the FSMs from D1:
S3F17 / S3F18 CarrierAction (host issues ProceedWithCarrier /
CancelCarrier / BindCarrierID / etc.; CommandParameter
list is reused from S2F41).
S3F23 / S3F24 PortGroupChangeReport (equipment notifies host of port
group composition changes).
S3F25 / S3F26 CarrierTransfer (host instructs source -> target port
transfer).
S3F27 / S3F28 CancelCarrier (host cancels an outstanding carrier op).
Two new ack enums in messages_helpers.hpp:
CarrierActionAck — CAACK byte; covers the common error responses
(CarrierIDUnknown, Inaccessible, ActionInProgress).
PortGroupAck — PGACK byte (Accept / Error).
Round-trip tests for all four pairs. Server-side dispatch + the
CarrierStore + LoadPortStore that the FSMs key into land in D3/D4.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -171,4 +171,22 @@ enum class MapDataAck : uint8_t { // S12F8 MAPER
|
||||
AbortNoMap = 3,
|
||||
};
|
||||
|
||||
// E87 §10.2 carrier-action ack code (CAACK). Same byte used by S3F18,
|
||||
// S3F26 (carrier transfer), and S3F28 (cancel carrier).
|
||||
enum class CarrierActionAck : uint8_t {
|
||||
Accept = 0,
|
||||
Invalid = 1,
|
||||
ParameterInvalid = 2,
|
||||
CarrierIDUnknown = 3,
|
||||
CarrierActionInvalid = 4,
|
||||
CarrierInaccessible = 5,
|
||||
CarrierActionInProgress = 6,
|
||||
};
|
||||
|
||||
// E87 §10.4 port-group change ack code.
|
||||
enum class PortGroupAck : uint8_t {
|
||||
Accept = 0,
|
||||
Error = 1,
|
||||
};
|
||||
|
||||
} // namespace secsgem::gem
|
||||
|
||||
Reference in New Issue
Block a user