fix(proto): restore safety command metadata

This commit is contained in:
linbo 2026-08-27 10:49:36 +08:00
parent e8d402db51
commit 3e2362a6d9

View File

@ -4,6 +4,59 @@ package cmvr.api;
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
enum CommandReasonCode {
COMMAND_REASON_CODE_UNSPECIFIED = 0;
COMMAND_REASON_CODE_NONE = 1;
COMMAND_REASON_CODE_INVALID_ARGUMENT = 2;
COMMAND_REASON_CODE_UNAUTHENTICATED = 3;
COMMAND_REASON_CODE_PERMISSION_DENIED = 4;
COMMAND_REASON_CODE_RECOVERY_RPC_DISABLED = 5;
COMMAND_REASON_CODE_DEVICE_NOT_FOUND = 6;
COMMAND_REASON_CODE_DEVICE_UNAVAILABLE = 7;
COMMAND_REASON_CODE_UNSUPPORTED_COMMAND = 8;
COMMAND_REASON_CODE_SYSTEM_STARTING = 9;
COMMAND_REASON_CODE_SYSTEM_STOPPING = 10;
COMMAND_REASON_CODE_SAFETY_LATCHED = 11;
COMMAND_REASON_CODE_SAFETY_STATE_MISSING = 12;
COMMAND_REASON_CODE_SAFETY_STATE_STALE = 13;
COMMAND_REASON_CODE_HARDWARE_UNSAFE = 14;
COMMAND_REASON_CODE_EMERGENCY_STOP_ACTIVE = 15;
COMMAND_REASON_CODE_PROTECTIVE_STOP_ACTIVE = 16;
COMMAND_REASON_CODE_DEVICE_DISCONNECTED = 17;
COMMAND_REASON_CODE_DEVICE_FAULT = 18;
COMMAND_REASON_CODE_DEVICE_NOT_READY = 19;
COMMAND_REASON_CODE_DEVICE_STILL_MOVING = 20;
COMMAND_REASON_CODE_CONTROL_BUSY = 21;
COMMAND_REASON_CODE_GENERATION_MISMATCH = 22;
COMMAND_REASON_CODE_COMMAND_ID_REQUIRED = 23;
COMMAND_REASON_CODE_COMMAND_ID_CONFLICT = 24;
COMMAND_REASON_CODE_RESULT_EVICTED = 25;
COMMAND_REASON_CODE_LEDGER_EXHAUSTED = 26;
COMMAND_REASON_CODE_BACKPRESSURE = 27;
COMMAND_REASON_CODE_DEADLINE_EXCEEDED_BEFORE_DISPATCH = 28;
COMMAND_REASON_CODE_OUTCOME_UNKNOWN = 29;
COMMAND_REASON_CODE_PARTICIPANT_TIMEOUT = 30;
COMMAND_REASON_CODE_STOP_UNCONFIRMED = 31;
COMMAND_REASON_CODE_RECOVERY_EPOCH_MISMATCH = 32;
COMMAND_REASON_CODE_RECOVERY_REASON_REQUIRED = 33;
COMMAND_REASON_CODE_RECOVERY_AUDIT_FAILED = 34;
COMMAND_REASON_CODE_INTERNAL_ERROR = 35;
}
enum CommandExecutionState {
COMMAND_EXECUTION_STATE_UNSPECIFIED = 0;
COMMAND_EXECUTION_STATE_RECEIVED = 1;
COMMAND_EXECUTION_STATE_RESERVED = 2;
COMMAND_EXECUTION_STATE_REJECTED_BEFORE_DISPATCH = 3;
COMMAND_EXECUTION_STATE_ADMITTED = 4;
COMMAND_EXECUTION_STATE_DISPATCHING = 5;
COMMAND_EXECUTION_STATE_ACCEPTED_BY_HARDWARE = 6;
COMMAND_EXECUTION_STATE_COMPLETED = 7;
COMMAND_EXECUTION_STATE_FAILED = 8;
COMMAND_EXECUTION_STATE_CANCELED_BEFORE_DISPATCH = 9;
COMMAND_EXECUTION_STATE_OUTCOME_UNKNOWN = 10;
}
message DeviceLifecycle { message DeviceLifecycle {
enum Lifecycle { enum Lifecycle {
STATE_INIT = 0; STATE_INIT = 0;
@ -20,12 +73,22 @@ message CommandHeader {
message Request { message Request {
string device_id = 1; // 目标设备名称 string device_id = 1; // 目标设备名称
google.protobuf.Timestamp timestamp = 2; // 请求时间 google.protobuf.Timestamp timestamp = 2; // 请求时间
string command_id = 3;
string expected_service_instance_id = 4;
optional uint64 expected_device_generation = 5;
uint32 valid_for_ms = 6;
} }
message Feedback { message Feedback {
bool success = 1; // 是否成功 bool success = 1; // 是否成功
string error_message = 2; // 错误信息(成功时为空) string error_message = 2; // 错误信息(成功时为空)
google.protobuf.Timestamp timestamp = 3; // 回复时间 google.protobuf.Timestamp timestamp = 3; // 回复时间
CommandReasonCode reason_code = 4;
string command_id = 5;
string service_instance_id = 6;
uint64 safety_epoch = 7;
uint64 device_generation = 8;
CommandExecutionState execution_state = 9;
} }
} }