feat: synchronize CH1 vehicle control and feedback

This commit is contained in:
vee
2026-08-11 10:42:13 +08:00
parent 3701192a11
commit 32379a1573
50 changed files with 13636 additions and 736 deletions
@@ -0,0 +1,35 @@
apiVersion: cognitive-agent/v1alpha1
kind: CapabilityCatalog
metadata:
id: ambient-light-verified-native-can-capabilities
name: Verified CH1 ambient-light capabilities
version: 1.0.0
spec:
domain: ambient_light
capabilities:
- name: ambient_light.set_color_index
description: Set the verified vehicle color index through CH1 CAN FD.
target_devices: [ambient_light]
target_scopes: [vehicle]
parameters:
- name: color_index
type: integer
minimum: 1
maximum: 127
required: true
description: Vehicle-defined discrete ambient-light color index.
risk_level: low
confirmation_policy: on_ambiguity
- name: ambient_light.set_brightness_level
description: Set the verified discrete ambient-light brightness through CH1 CAN FD.
target_devices: [ambient_light]
target_scopes: [vehicle]
parameters:
- name: brightness_level
type: integer
minimum: 1
maximum: 5
required: true
description: Verified vehicle brightness level from 1 through 5.
risk_level: low
confirmation_policy: on_ambiguity
+21 -5
View File
@@ -3,12 +3,28 @@ kind: CapabilityCatalog
metadata:
id: door-native-can-capabilities
name: Door native CAN capabilities
version: 1.0.0
version: 1.2.0
spec:
domain: door
capabilities:
- name: door.set_vehicle_lock
description: Observational only. Physical control is unsupported on the current CH1 because the matrix-defined 0x496 request produced no vehicle-lock or four-door transition during live smoke testing.
execution_support: observational_only
physical_control_supported: false
target_devices: [vehicle_door_lock]
target_scopes: [vehicle]
parameters:
- name: state
type: string
required: true
allowed_values: [lock, unlock]
description: Recognized whole-vehicle lock intent retained so the service can explicitly reject unsupported control requests.
risk_level: high
confirmation_policy: always
- name: door.set_rear_lock
description: Lock or unlock the second-row door lock through the verified vehicle CAN command.
description: Observational only and deprecated. Physical control is unsupported on the current CH1; legacy 0x32B is second-row-only and must not be treated as whole-vehicle locking.
execution_support: observational_only
physical_control_supported: false
target_devices: [rear_door_lock]
target_scopes: [rear]
parameters:
@@ -16,6 +32,6 @@ spec:
type: string
required: true
allowed_values: [lock, unlock]
description: Absolute second-row lock request.
risk_level: medium
confirmation_policy: on_ambiguity
description: Legacy second-row intent retained only for explicit rejection and compatibility parsing.
risk_level: high
confirmation_policy: always
@@ -0,0 +1,110 @@
apiVersion: cognitive-agent/v1alpha1
kind: CapabilityCatalog
metadata:
id: driver-seat-native-can-capabilities
name: Driver seat native CAN capabilities
version: 1.0.0
spec:
domain: seat
capabilities:
- name: seat.set_driver_ventilation_native
description: >-
Control only the physical driver/front-left seat ventilation through the verified
CH1 body-CAN command on CAN FD ID 0x431. A fresh 0x4FA status frame is required
before execution is reported as successful.
target_devices: [driver_seat_ventilation]
target_scopes: [driver, front_left]
parameters:
- name: state
type: string
required: true
allowed_values: [on, off]
description: Absolute ventilation state.
- name: level
type: integer
required: false
minimum: 1
maximum: 2
allowed_values: [1, 2]
description: 1 is high and 2 is low; omitted on requests use the safer low level.
risk_level: high
confirmation_policy: on_ambiguity
- name: seat.set_driver_heating_native
description: >-
Control only the physical driver/front-left seat heating through the verified
CH1 body-CAN command on CAN FD ID 0x431. A fresh 0x4FA status frame is required
before execution is reported as successful.
target_devices: [driver_seat_heating]
target_scopes: [driver, front_left]
parameters:
- name: state
type: string
required: true
allowed_values: [on, off]
description: Absolute heating state.
- name: level
type: integer
required: false
minimum: 1
maximum: 2
allowed_values: [1, 2]
description: 1 is high and 2 is low; omitted on requests use the safer low level.
risk_level: high
confirmation_policy: on_ambiguity
- name: seat.set_driver_massage_native
description: >-
Control only the physical driver/front-left seat massage through the verified
CH1 body-CAN command on CAN FD ID 0x4C1, sub-ID 0x12. A fresh 0x4FA status
frame must match the requested mode or strength.
target_devices: [driver_seat_massage]
target_scopes: [driver, front_left]
parameters:
- name: action
type: string
required: true
allowed_values: [off, strength, mode]
description: Explicit massage operation; a generic on request is not accepted.
- name: strength
type: integer
required: false
minimum: 1
maximum: 3
allowed_values: [1, 2, 3]
description: Massage strength from weak to strong.
- name: mode
type: string
required: false
allowed_values: [wave, pulse, stretch, slack, relax]
description: Verified massage mode.
risk_level: high
confirmation_policy: on_ambiguity
- name: seat.set_driver_axis_native
description: >-
Move one physical driver/front-left seat axis through the verified CH1 body-CAN
command on CAN FD ID 0x4C1, sub-ID 0x05. Motion is limited to 100-2000 ms and
is always followed by three explicit stop frames. The 0x494 feedback reports a
fresh seat status frame but does not contain an absolute motor position.
target_devices: [driver_seat_axis]
target_scopes: [driver, front_left]
parameters:
- name: axis
type: string
required: true
allowed_values: [horizontal, height, backrest, basin]
description: Verified driver-seat adjustment axis.
- name: direction
type: string
required: true
allowed_values: [forward, backward, up, down, stop]
description: Axis-compatible direction or an explicit stop request.
- name: duration_ms
type: integer
required: false
minimum: 100
maximum: 2000
description: Bounded motion duration; omitted values default to 500 ms.
risk_level: high
confirmation_policy: on_ambiguity