180 lines
6.3 KiB
JSON
Executable File
180 lines
6.3 KiB
JSON
Executable File
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://cognitive-agent.local/domains/seat/function-parameters.schema.json",
|
|
"title": "SeatThermalFunctionParameters",
|
|
"type": "object",
|
|
"properties": {
|
|
"spec": {
|
|
"type": "object",
|
|
"properties": {
|
|
"domain": {"const": "seat"},
|
|
"operations": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {"const": "seat.set_ventilation"},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["state"],
|
|
"properties": {
|
|
"state": {"type": "string", "enum": ["on", "off"]},
|
|
"level": {"type": "integer", "minimum": 1, "maximum": 5}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {"const": "seat.set_heating"},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["state"],
|
|
"properties": {
|
|
"state": {"type": "string", "enum": ["on", "off"]},
|
|
"level": {"type": "integer", "minimum": 1, "maximum": 5}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {
|
|
"type": "string",
|
|
"enum": [
|
|
"seat.set_driver_ventilation_native",
|
|
"seat.set_driver_heating_native"
|
|
]
|
|
},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["state"],
|
|
"properties": {
|
|
"state": {"type": "string", "enum": ["on", "off"]},
|
|
"level": {"type": "integer", "enum": [1, 2]}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {"const": "seat.set_driver_massage_native"},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["action"],
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": ["off", "strength", "mode"]
|
|
},
|
|
"strength": {"type": "integer", "enum": [1, 2, 3]},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": ["wave", "pulse", "stretch", "slack", "relax"]
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"if": {"properties": {"action": {"const": "strength"}}},
|
|
"then": {"required": ["strength"]}
|
|
},
|
|
{
|
|
"if": {"properties": {"action": {"const": "mode"}}},
|
|
"then": {"required": ["mode"]}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {"const": "seat.set_driver_axis_native"},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["axis", "direction"],
|
|
"properties": {
|
|
"axis": {
|
|
"type": "string",
|
|
"enum": ["horizontal", "height", "backrest", "basin"]
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": ["forward", "backward", "up", "down", "stop"]
|
|
},
|
|
"duration_ms": {
|
|
"type": "integer",
|
|
"minimum": 100,
|
|
"maximum": 2000
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {
|
|
"type": "string",
|
|
"enum": [
|
|
"seat.set_longitudinal_position",
|
|
"seat.set_cushion_tilt",
|
|
"seat.set_backrest_recline",
|
|
"seat.set_legrest_height",
|
|
"seat.set_legrest_extension"
|
|
]
|
|
},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["position_pct"],
|
|
"properties": {
|
|
"position_pct": {"type": "integer", "minimum": 0, "maximum": 100},
|
|
"angle_deg": {"type": "number", "minimum": 95, "maximum": 167}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {"const": "seat.start_dynamic_mode"},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["mode_id"],
|
|
"properties": {
|
|
"mode_id": {"type": "integer", "enum": [1, 2]}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {"const": "seat.stop_dynamic_mode"},
|
|
"parameters": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"maxProperties": 0
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|