205 lines
5.7 KiB
Protocol Buffer
205 lines
5.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package cmvr.api;
|
|
|
|
import "cmvr/api/common.proto";
|
|
|
|
enum SafetyTriState {
|
|
SAFETY_TRI_STATE_UNKNOWN = 0;
|
|
SAFETY_TRI_STATE_FALSE = 1;
|
|
SAFETY_TRI_STATE_TRUE = 2;
|
|
}
|
|
|
|
enum SafetyCondition {
|
|
SAFETY_CONDITION_UNKNOWN = 0;
|
|
SAFETY_CONDITION_NOMINAL = 1;
|
|
SAFETY_CONDITION_RESTRICTED = 2;
|
|
SAFETY_CONDITION_UNSAFE = 3;
|
|
}
|
|
|
|
enum SystemAdmissionState {
|
|
SYSTEM_ADMISSION_STATE_UNSPECIFIED = 0;
|
|
SYSTEM_ADMISSION_STATE_STARTING = 1;
|
|
SYSTEM_ADMISSION_STATE_OPEN = 2;
|
|
SYSTEM_ADMISSION_STATE_STOPPING = 3;
|
|
SYSTEM_ADMISSION_STATE_LATCHED = 4;
|
|
SYSTEM_ADMISSION_STATE_RECOVERING = 5;
|
|
SYSTEM_ADMISSION_STATE_SHUTTING_DOWN = 6;
|
|
}
|
|
|
|
enum DeviceAdmissionState {
|
|
DEVICE_ADMISSION_STATE_UNSPECIFIED = 0;
|
|
DEVICE_ADMISSION_STATE_OBSERVING = 1;
|
|
DEVICE_ADMISSION_STATE_OPEN = 2;
|
|
DEVICE_ADMISSION_STATE_BLOCKED = 3;
|
|
DEVICE_ADMISSION_STATE_QUARANTINED = 4;
|
|
DEVICE_ADMISSION_STATE_RECOVERING = 5;
|
|
DEVICE_ADMISSION_STATE_REMOVED = 6;
|
|
}
|
|
|
|
enum SafetyBlockerScope {
|
|
SAFETY_BLOCKER_SCOPE_UNSPECIFIED = 0;
|
|
SAFETY_BLOCKER_SCOPE_DEVICE = 1;
|
|
SAFETY_BLOCKER_SCOPE_SYSTEM = 2;
|
|
}
|
|
|
|
enum SafetyRecoveryRequirement {
|
|
SAFETY_RECOVERY_REQUIREMENT_UNSPECIFIED = 0;
|
|
SAFETY_RECOVERY_REQUIREMENT_REFRESH_ONLY = 1;
|
|
SAFETY_RECOVERY_REQUIREMENT_CLEAR_SOFTWARE_LATCH = 2;
|
|
SAFETY_RECOVERY_REQUIREMENT_HARDWARE_RELEASE_REQUIRED = 3;
|
|
SAFETY_RECOVERY_REQUIREMENT_MANUAL_INSPECTION_REQUIRED = 4;
|
|
}
|
|
|
|
enum SafetyOperationResult {
|
|
SAFETY_OPERATION_RESULT_UNSPECIFIED = 0;
|
|
SAFETY_OPERATION_RESULT_SUCCEEDED = 1;
|
|
SAFETY_OPERATION_RESULT_RECOVERED = 2;
|
|
SAFETY_OPERATION_RESULT_VERIFIED_BUT_STILL_BLOCKED = 3;
|
|
SAFETY_OPERATION_RESULT_BLOCKER_REMAINS = 4;
|
|
SAFETY_OPERATION_RESULT_EPOCH_MISMATCH = 5;
|
|
SAFETY_OPERATION_RESULT_NOTHING_TO_RECOVER = 6;
|
|
SAFETY_OPERATION_RESULT_TIMED_OUT = 7;
|
|
SAFETY_OPERATION_RESULT_FAILED = 8;
|
|
}
|
|
|
|
message DeviceIdList {
|
|
repeated string device_ids = 1;
|
|
}
|
|
|
|
message SafetyScope {
|
|
oneof target {
|
|
bool all_devices = 1;
|
|
DeviceIdList devices = 2;
|
|
}
|
|
}
|
|
|
|
message SafetyBlockerInfo {
|
|
CommandReasonCode reason_code = 1;
|
|
SafetyBlockerScope scope = 2;
|
|
SafetyRecoveryRequirement recovery_requirement = 3;
|
|
string source_id = 4;
|
|
string operation_id = 5;
|
|
uint64 first_observed_at_unix_ms = 6;
|
|
uint64 last_observed_at_unix_ms = 7;
|
|
}
|
|
|
|
message DeviceSafetyStateInfo {
|
|
string device_id = 1;
|
|
string device_kind = 2;
|
|
string policy_family = 3;
|
|
string lifecycle_state = 4;
|
|
string health_state = 5;
|
|
DeviceAdmissionState admission_state = 6;
|
|
SafetyCondition condition = 7;
|
|
bool has_sample = 8;
|
|
bool snapshot_fresh = 9;
|
|
uint64 sample_age_ms = 10;
|
|
uint64 sample_sequence = 11;
|
|
uint64 observed_at_unix_ms = 12;
|
|
uint64 device_generation = 13;
|
|
SafetyTriState connected = 14;
|
|
SafetyTriState operational_ready = 15;
|
|
SafetyTriState quiescent = 16;
|
|
SafetyTriState motion_active = 17;
|
|
SafetyTriState actuator_enabled = 18;
|
|
SafetyTriState emergency_stop_active = 19;
|
|
SafetyTriState protective_stop_active = 20;
|
|
SafetyTriState fault_active = 21;
|
|
repeated SafetyBlockerInfo blockers = 22;
|
|
}
|
|
|
|
message SafetyOperationTargetResult {
|
|
string target_id = 1;
|
|
SafetyOperationResult result = 2;
|
|
CommandReasonCode reason_code = 3;
|
|
string detail = 4;
|
|
DeviceAdmissionState before_state = 5;
|
|
DeviceAdmissionState after_state = 6;
|
|
}
|
|
|
|
message SafetyParticipantResultInfo {
|
|
bool recorded = 1;
|
|
bool success = 2;
|
|
CommandReasonCode reason_code = 3;
|
|
string detail = 4;
|
|
}
|
|
|
|
message SafetyParticipantStateInfo {
|
|
string participant_id = 1;
|
|
string phase = 2;
|
|
bool required = 3;
|
|
bool registered = 4;
|
|
bool barrier_active = 5;
|
|
bool barrier_retained = 6;
|
|
string operation_id = 7;
|
|
uint64 safety_epoch = 8;
|
|
SafetyParticipantResultInfo last_request = 9;
|
|
SafetyParticipantResultInfo last_verify = 10;
|
|
SafetyParticipantResultInfo last_release = 11;
|
|
}
|
|
|
|
message GetSafetyStateCommand {
|
|
message Request {
|
|
SafetyScope scope = 1;
|
|
}
|
|
|
|
message Feedback {
|
|
CommandHeader.Feedback header = 1;
|
|
SystemAdmissionState system_state = 2;
|
|
uint64 safety_epoch = 3;
|
|
string control_service_instance_id = 4;
|
|
string enforcement_mode = 5;
|
|
repeated DeviceSafetyStateInfo devices = 6;
|
|
string active_operation_id = 7;
|
|
string active_operation_phase = 8;
|
|
uint64 sampled_at_unix_ms = 9;
|
|
repeated SafetyParticipantStateInfo participants = 10;
|
|
}
|
|
}
|
|
|
|
message RecoverSafetyStateCommand {
|
|
enum Mode {
|
|
MODE_UNSPECIFIED = 0;
|
|
VERIFY_ONLY = 1;
|
|
CLEAR_SOFTWARE_LATCH = 2;
|
|
}
|
|
|
|
message Request {
|
|
string recovery_id = 1;
|
|
SafetyScope scope = 2;
|
|
uint64 expected_safety_epoch = 3;
|
|
Mode mode = 4;
|
|
string reason = 5;
|
|
uint32 timeout_ms = 6;
|
|
}
|
|
|
|
message Feedback {
|
|
CommandHeader.Feedback header = 1;
|
|
SafetyOperationResult result = 2;
|
|
uint64 previous_safety_epoch = 3;
|
|
uint64 current_safety_epoch = 4;
|
|
SystemAdmissionState system_state = 5;
|
|
repeated SafetyOperationTargetResult targets = 6;
|
|
string recovery_id = 7;
|
|
}
|
|
}
|
|
|
|
message RestoreOperationalStateCommand {
|
|
message Request {
|
|
string recovery_id = 1;
|
|
string reason = 2;
|
|
uint32 timeout_ms = 3;
|
|
}
|
|
|
|
message Feedback {
|
|
CommandHeader.Feedback header = 1;
|
|
SafetyOperationResult result = 2;
|
|
uint64 previous_safety_epoch = 3;
|
|
uint64 current_safety_epoch = 4;
|
|
SystemAdmissionState system_state = 5;
|
|
repeated SafetyOperationTargetResult targets = 6;
|
|
string recovery_id = 7;
|
|
}
|
|
}
|