BotRobotControlResult bot.robot-control-result@1
Generated at from
openvibe-contracts v0.97.0 and
openvibe-sdk v0.26.0.
- Version
- 1.0.0
- Owner
- bot
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/bot/robot-control-result.v1.json
bot.robot-control-result@1: answers of bot.robot.control on OpenVibe.Bot. POST /api/v1/robots/:id/estop → { robot } with its e-stop as it now stands.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
robot | bot.robot | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: latched
{
"robot": {
"id": "rob_01J8Z4M2Q0R7T9YV3K6N8P1W2X",
"name": "Rover",
"profile_id": "adeept.adr036",
"profile_version": 1,
"access_policy": "private",
"limits": {
"max_command_ms": 300
},
"estop": {
"latched": true,
"by": "usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
"at": "2026-09-29T19:20:00.000Z"
},
"created_at": "2026-09-29T19:20:00.000Z",
"updated_at": "2026-09-29T19:20:00.000Z"
}
}Rejected: estop-without-latched
{
"robot": {
"id": "rob_01J8Z4M2Q0R7T9YV3K6N8P1W2X",
"name": "Rover",
"profile_id": "adeept.adr036",
"profile_version": 1,
"access_policy": "private",
"limits": {
"max_command_ms": 300
},
"estop": {
"by": null,
"at": null
},
"created_at": "2026-09-29T19:20:00.000Z",
"updated_at": "2026-09-29T19:20:00.000Z"
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('bot.robot-control-result@1', value); // { valid, errors: [{ path, message }] }