#pragma once #include "secsgem/gem/runtime.hpp" namespace secsgem::gem { // Registers the full default GEM behaviour onto a runtime: every SECS message // handler (S1/S2/S3/S5/S6/S7/S10/S14/S16) on its Router, plus the state-change // emitters (control state, process/control jobs, exceptions, substrates, // modules) on its stores. Shared by the `secs_server` app and the gRPC daemon // so both speak byte-identical GEM — the protocol behaviour lives here, once. // // Call once after constructing the runtime and before run(). Application // behaviour (host-command callbacks via on_command, sensor value updates) is // layered on top by the caller. void register_default_handlers(EquipmentRuntime& R); } // namespace secsgem::gem