(** SpaceOS Wire schemas for EverParse 3D generation. Converts each codec to a [Wire.struct_] and [Wire.module_] for use with [Wire.to_3d_file] to produce EverParse-compatible {e .3d} specifications. *) open Space_wire (** {1 Frame} *) let frame_struct = Wire.Codec.to_struct Msg.codec let frame_module = Wire.module_ ~doc:"SpaceOS fixed-size 256-byte frame" "SpaceOSFrame" [ Wire.typedef ~entrypoint:true frame_struct ] (** {1 Error Payload} *) let error_payload_struct = Wire.Codec.to_struct Error_payload.codec let error_payload_module = Wire.module_ ~doc:"SpaceOS ERROR/NACK payload (8 bytes)" "ErrorPayload" [ Wire.typedef ~entrypoint:true error_payload_struct ] (** {1 DP Notification Payload} *) let dp_payload_struct = Wire.Codec.to_struct Dp_payload.codec let dp_payload_module = Wire.module_ ~doc:"SpaceOS data-product notification payload (80 bytes)" "DpPayload" [ Wire.typedef ~entrypoint:true dp_payload_struct ] (** {1 Superblock} *) let superblock_struct = Wire.Codec.to_struct Superblock.codec let superblock_module = Wire.module_ ~doc:"SpaceOS superblock (block 0, 48 bytes)" "Superblock" [ Wire.typedef ~entrypoint:true superblock_struct ] (** {1 Parameter Entry} *) let param_entry_struct = Wire.Codec.to_struct Param_entry.codec let param_entry_module = Wire.module_ ~doc:"SpaceOS parameter store entry (252 bytes)" "ParamEntry" [ Wire.typedef ~entrypoint:true param_entry_struct ] (** {1 Event Log} *) let event_log_struct = Wire.Codec.to_struct Event_log.codec let event_log_module = Wire.module_ ~doc:"SpaceOS event log record (76 bytes)" "EventLog" [ Wire.typedef ~entrypoint:true event_log_struct ] (** {1 All Schemas} *) let all_structs = [ ("SpaceOSFrame", frame_struct); ("ErrorPayload", error_payload_struct); ("DpPayload", dp_payload_struct); ("Superblock", superblock_struct); ("ParamEntry", param_entry_struct); ("EventLog", event_log_struct); ] let all_modules = [ ("SpaceOSFrame", frame_module); ("ErrorPayload", error_payload_module); ("DpPayload", dp_payload_module); ("Superblock", superblock_module); ("ParamEntry", param_entry_module); ("EventLog", event_log_module); ]