feat: add spindle direction selection contract

This commit is contained in:
Nick Hermes
2026-06-02 15:40:16 +00:00
parent 02d9323c43
commit beeb521ca7
21 changed files with 689 additions and 133 deletions

View File

@@ -49,7 +49,12 @@
},
"result_state": {
"type": "string",
"enum": ["completed", "completed_with_pause", "aborted", "faulted"]
"enum": [
"completed",
"completed_with_pause",
"aborted",
"faulted"
]
},
"segments": {
"type": "array",
@@ -61,31 +66,72 @@
"commanded_summary": {
"type": "object",
"properties": {
"force_n": { "type": "number" },
"table_rpm": { "type": "number" },
"spindle_rpm": { "type": "number" }
"force_n": {
"type": "number"
},
"table_rpm": {
"type": "number"
},
"spindle_rpm": {
"type": "number"
},
"spindle_direction": {
"type": "string",
"enum": [
"cw",
"ccw"
]
}
}
},
"actual_summary": {
"type": "object",
"properties": {
"force_n_mean": { "type": "number" },
"force_n_min": { "type": "number" },
"force_n_max": { "type": "number" },
"table_rpm_mean": { "type": "number" },
"spindle_rpm_mean": { "type": "number" }
"force_n_mean": {
"type": "number"
},
"force_n_min": {
"type": "number"
},
"force_n_max": {
"type": "number"
},
"table_rpm_mean": {
"type": "number"
},
"spindle_rpm_mean": {
"type": "number"
}
}
},
"alarms": {
"type": "array",
"items": {
"type": "object",
"required": ["timestamp", "code", "message"],
"required": [
"timestamp",
"code",
"message"
],
"properties": {
"timestamp": { "type": "string", "format": "date-time" },
"code": { "type": "string" },
"message": { "type": "string" },
"severity": { "type": "string", "enum": ["info", "warning", "critical"] }
"timestamp": {
"type": "string",
"format": "date-time"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warning",
"critical"
]
}
}
}
},
@@ -93,11 +139,21 @@
"type": "array",
"items": {
"type": "object",
"required": ["timestamp", "type"],
"required": [
"timestamp",
"type"
],
"properties": {
"timestamp": { "type": "string", "format": "date-time" },
"type": { "type": "string" },
"detail": { "type": "string" }
"timestamp": {
"type": "string",
"format": "date-time"
},
"type": {
"type": "string"
},
"detail": {
"type": "string"
}
}
}
},
@@ -120,51 +176,107 @@
"result_state"
],
"properties": {
"segment_id": { "type": "string" },
"source_pass_id": { "type": "string" },
"commanded_duration_s": { "type": "number" },
"actual_duration_s": { "type": "number" },
"segment_id": {
"type": "string"
},
"source_pass_id": {
"type": "string"
},
"commanded_duration_s": {
"type": "number"
},
"actual_duration_s": {
"type": "number"
},
"result_state": {
"type": "string",
"enum": ["completed", "completed_with_pause", "aborted", "faulted", "skipped"]
"enum": [
"completed",
"completed_with_pause",
"aborted",
"faulted",
"skipped"
]
},
"commanded": {
"type": "object",
"properties": {
"force_n": { "type": "number" },
"table_rpm": { "type": "number" },
"spindle_rpm": { "type": "number" },
"cam_amplitude_deg": { "type": "number" },
"cam_offset_deg": { "type": "number" }
"force_n": {
"type": "number"
},
"table_rpm": {
"type": "number"
},
"spindle_rpm": {
"type": "number"
},
"cam_amplitude_deg": {
"type": "number"
},
"cam_offset_deg": {
"type": "number"
},
"spindle_direction": {
"type": "string",
"enum": [
"cw",
"ccw"
]
}
}
},
"actual": {
"type": "object",
"properties": {
"force_n_mean": { "type": "number" },
"force_n_min": { "type": "number" },
"force_n_max": { "type": "number" },
"table_rpm_mean": { "type": "number" },
"spindle_rpm_mean": { "type": "number" }
"force_n_mean": {
"type": "number"
},
"force_n_min": {
"type": "number"
},
"force_n_max": {
"type": "number"
},
"table_rpm_mean": {
"type": "number"
},
"spindle_rpm_mean": {
"type": "number"
}
}
},
"pause_windows": {
"type": "array",
"items": {
"type": "object",
"required": ["paused_at", "resumed_at"],
"required": [
"paused_at",
"resumed_at"
],
"properties": {
"paused_at": { "type": "string", "format": "date-time" },
"resumed_at": { "type": "string", "format": "date-time" },
"reason": { "type": "string" }
"paused_at": {
"type": "string",
"format": "date-time"
},
"resumed_at": {
"type": "string",
"format": "date-time"
},
"reason": {
"type": "string"
}
}
}
},
"anomaly_flags": {
"type": "array",
"items": { "type": "string" }
"items": {
"type": "string"
}
},
"notes": { "type": "string" }
"notes": {
"type": "string"
}
}
}
}