cdf4049016
EquipmentDataModel now carries an EptStateMachine as a value member alongside the other top-level state machines. Server installs a state-change handler that maps every EPT transition to a CEID emission through the existing emit_event path: 1100 NonScheduledTime 1103 Engineering 1101 ScheduledDowntime 1104 Standby 1102 UnscheduledDowntime 1105 Productive CEIDs land in the 1100+ block to keep clear of the demo equipment.yaml (100s/200s/400s) and E90 (900s). Log lines include the dwell time of the previous state so trace-level diagnostics show utilization without extra tooling. Application code drives transitions by calling model->ept.on_event(...); the existing event-report machinery (subscription state, S6F11 batching, spool) gates wire emission so EPT events spool on offline hosts like every other CEID. Closes Tranche F — E116 Equipment Performance Tracking end-to-end. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
18 lines
665 B
C++
18 lines
665 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
// E116 §6 standard collection-event identifiers, one per top-level
|
|
// state. Equipment fires the matching CEID on transition into that
|
|
// state; hosts subscribe via the existing S2F33 / S2F35 / S2F37 flow.
|
|
namespace secsgem::gem::e116 {
|
|
|
|
inline constexpr uint32_t kCeidNonScheduledTime = 1100;
|
|
inline constexpr uint32_t kCeidScheduledDowntime = 1101;
|
|
inline constexpr uint32_t kCeidUnscheduledDowntime = 1102;
|
|
inline constexpr uint32_t kCeidEngineering = 1103;
|
|
inline constexpr uint32_t kCeidStandby = 1104;
|
|
inline constexpr uint32_t kCeidProductive = 1105;
|
|
|
|
} // namespace secsgem::gem::e116
|