QAUP_Management/doc/requirement/universal_autonomous_vehicle_api.md

740 lines
25 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 通用无人车运行状态API设计方案
## 1. 设计原则
### 1.1 行业标准参考
- **ISO 26262**: 汽车功能安全标准
- **SAE J3016**: 自动驾驶分级标准
- **ISO 21448**: 预期功能安全标准(SOTIF)
- **IEEE 2857**: 自动驾驶系统隐私工程标准
- **AC-137-CA-202X-XX**: 民用机场无人驾驶车辆检测规范(报批稿)
### 1.2 API设计原则
- **RESTful设计**: 遵循REST架构风格
- **版本控制**: 支持API版本管理
- **统一响应格式**: 标准化的响应结构
- **错误处理**: 完善的错误码和错误信息
- **安全性**: 认证授权机制
- **可扩展性**: 支持未来功能扩展
## 2. API接口设计
### 2.1 基础信息
**接口地址**: `GET /api/v1/vehicles/{vehicleId}/status`
**认证方式**: Bearer Token (JWT)
**内容类型**: `application/json`
### 2.2 请求参数
#### 路径参数
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| vehicleId | string | 是 | 车辆唯一标识符 |
#### 查询参数
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|--------|------|------|------|-------|
| fields | string | 否 | 指定返回字段,逗号分隔 | 全部字段 |
| format | string | 否 | 响应格式 (json/xml) | json |
### 2.3 请求示例
#### 基本请求
```bash
GET /api/v1/vehicles/AV-001/status
Host: api.example.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
```
#### 指定字段请求
```bash
GET /api/v1/vehicles/AV-001/status?fields=vehicleInfo,operationalStatus,motionStatus
Host: api.example.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
```
#### cURL 请求示例
```bash
# 获取完整状态信息
curl -X GET "https://api.example.com/api/v1/vehicles/AV-001/status" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json"
# 只获取核心状态信息
curl -X GET "https://api.example.com/api/v1/vehicles/AV-001/status?fields=vehicleInfo,operationalStatus,controlStatus,motionStatus" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json"
# 获取电池和诊断信息
curl -X GET "https://api.example.com/api/v1/vehicles/AV-001/status?fields=vehicleInfo,batteryStatus,diagnostics" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json"
```
### 2.4 响应数据结构
```json
{
"code": 200,
"message": "success",
"timestamp": 1736175610000,
"data": {
"vehicleInfo": {
"vehicleId": "AV-001",
"vehicleType": "GROUND_SUPPORT_EQUIPMENT",
"manufacturer": "厂商名称",
"model": "车型",
"serialNumber": "序列号",
"firmwareVersion": "1.2.3"
},
"operationalStatus": {
"powerStatus": "ON",
"systemHealth": "HEALTHY",
"operationalMode": "AUTONOMOUS",
"missionStatus": "IN_PROGRESS",
"emergencyStatus": "NORMAL",
"lastHeartbeat": 1736175610000
},
"controlStatus": {
"controlMode": "AUTONOMOUS",
"controlAuthority": "SYSTEM",
"remoteControlActive": false,
"manualOverrideActive": false,
"safetyDriverPresent": false
},
"motionStatus": {
"position": {
"latitude": 36.354068,
"longitude": 120.083410,
"altitude": 45.2,
"coordinateSystem": "WGS84"
},
"velocity": {
"speed": 3.2,
"direction": 1.57,
"verticalSpeed": 0.0,
"speedUnit": "m/s",
"directionUnit": "radians"
},
"acceleration": {
"longitudinal": 0.5,
"lateral": 0.1,
"vertical": 0.0,
"unit": "m/s²"
}
},
"vehicleState": {
"motorStatus": [
{ "motorId": "M1", "status": "ACTIVE", "rpm": 3200, "torqueNm": 120, "powerKw": 25.5, "temperatureC": 65.0 }
]
},
"batteryStatus": {
"mainBattery": {
"chargeLevel": 85.5,
"voltage": 48.2,
"current": -15.3,
"temperature": 35.2,
"health": "GOOD",
"cycleCount": 1250,
"capacity": {
"current": 95.2,
"design": 100.0,
"unit": "kWh"
},
"chargingStatus": "DISCHARGING",
"estimatedRange": 120.5,
"timeToEmpty": 480,
"timeToFull": null,
"cellVoltages": [3.85, 3.87, 3.86, 3.88],
"balancingActive": false
},
"auxiliaryBattery": {
"chargeLevel": 92.0,
"voltage": 12.6,
"current": -2.1,
"temperature": 28.5,
"health": "GOOD",
"chargingStatus": "DISCHARGING"
},
"backupBattery": {
"chargeLevel": 100.0,
"voltage": 24.0,
"health": "GOOD",
"lastMaintenance": 1735571200000
}
},
"safetyStatus": {
"collisionAvoidanceActive": true,
"emergencyBrakingReady": true,
"pathPlanningStatus": "ACTIVE",
"obstacleDetectionStatus": "ACTIVE",
"minimumRiskManeuverTriggered": false
},
"autonomyLevel": {
"currentLevel": 4,
"availableLevels": [2, 3, 4],
"fallbackLevel": 2
},
"sensorStatus": {
"cameras": [
{
"sensorId": "CAM_FRONT",
"status": "ACTIVE",
"health": "GOOD",
"lastUpdate": 1736175610000,
"coverage": "OK",
"latencyMs": 35,
"accuracy": 0.02
}
],
"lidars": [
{
"sensorId": "LIDAR_360",
"status": "ACTIVE",
"health": "GOOD",
"lastUpdate": 1736175610000,
"coverage": "OK",
"latencyMs": 28,
"accuracy": 0.01
}
],
"radars": [
{
"sensorId": "RADAR_FRONT",
"status": "ACTIVE",
"health": "GOOD",
"lastUpdate": 1736175610000,
"coverage": "OK",
"latencyMs": 22,
"accuracy": 0.1
}
],
"gps": {
"status": "ACTIVE",
"accuracy": 0.5,
"satelliteCount": 12,
"lastUpdate": 1736175610000
},
"imu": {
"status": "ACTIVE",
"health": "GOOD",
"lastUpdate": 1736175610000
}
},
"communicationStatus": {
"v2xStatus": "CONNECTED",
"cellularSignalStrength": -65,
"wifiStatus": "CONNECTED",
"cloudConnectivity": "ONLINE"
},
"diagnostics": {
"faultCodes": [
{
"code": "P0001",
"severity": "CRITICAL",
"description": "燃油系统压力过低",
"component": "燃油泵",
"timestamp": 1736175610000,
"status": "ACTIVE"
}
],
"warnings": [
{
"severity": "WARNING",
"description": "电池温度偏高",
"component": "主电池组",
"timestamp": 1736175610000
}
],
"maintenanceAlerts": [
{
"type": "SCHEDULED_MAINTENANCE",
"description": "定期保养到期",
"dueDate": 1736262000000,
"priority": "HIGH"
}
]
},
"environmentalContext": {
"weatherCondition": "CLEAR",
"roadCondition": "DRY",
"trafficDensity": "LOW",
"lightingCondition": "DAYLIGHT"
},
"missionContext": {
"currentMission": {
"missionId": "MISSION_001",
"missionType": "CARGO_TRANSPORT",
"startTime": 1736175000000,
"estimatedEndTime": 1736178600000,
"progress": 65.5,
"totalMileage": 1250.8
},
"waypoints": [
{
"waypointId": "WP_001",
"latitude": 36.354068,
"longitude": 120.083410,
"status": "COMPLETED"
}
]
},
"vehicleSignals": {
"headLamp": "ON",
"brakeLamp": "ON",
"turnSignal": "LEFT",
"positionLamp": "ON",
"horn": "OFF"
},
"eventReports": [
{
"eventId": "EVT-20250918-000123",
"eventCode": "GEOFENCE_BREACH",
"severity": "CRITICAL",
"timestamp": 1736175600456,
"location": { "latitude": 36.354072, "longitude": 120.083405 },
"evidenceRef": ["vid://360/1736175600..1736175690","log://blackbox/seg-88421"],
"details": "Entered restricted area"
}
],
"monitoring": {
"dataRecordingPolicy": { "localRetentionDays": 3, "backendRetentionDays": 90 },
"storagePolicy": { "overwriteStrategy": "FIFO", "capacityGb": 128, "estimatedDaysLocal": 4 },
"recoveryStatus": { "lastPowerLossTime": 1736175500000, "dataRecovered": true, "recoveredSegments": ["BB-20250918-0001"] },
"videoReferences": {
"external360": ["vid://360/1736175600..1736175690"],
"cabin": ["vid://cabin/1736175600..1736175690"],
"audio": ["aud://cabin/1736175600..1736175690"]
},
"perceptionResponse": { "state": "OK", "responseActions": ["SLOWDOWN"] },
"remoteCommands": [
{ "commandId": "CMD-88421", "commandType": "STOP", "issuedBy": "controller-001", "issuedAt": 1736175600123, "ackStatus": "ACKED", "executedAt": 1736175600456 }
],
"blackboxWindow": { "preEventSeconds": 90, "postEventSeconds": 30, "segmentId": "BB-20250918-0001" }
},
"airportCompliance": {
"oddProfile": {
"environment": ["DAY","NIGHT","FOG"],
"areaTypes": ["APRON","TAXIWAY","SERVICE_ROAD"],
"speedRange": [0, 15],
"weatherLimits": { "visibilityMin": 200, "windMax": 15 },
"runwayProximityLimit": 50
},
"activationStatus": { "eligible": true, "unmetConditions": [], "promptIssued": { "audible": false, "visual": false }, "evaluatedAt": 1736175610000 },
"perceptionBlindSpots": [{ "areaId": "FRONT_LOW", "azimuthRange": "350-10", "elevationRange": "-5~0", "lastVerifiedAt": 1736175600000 }],
"startSafetyCheck": { "passed": true, "obstaclesDetected": 0, "minObstacleDistance": null, "checkTime": 1736175599000 },
"geoFence": { "operationAreaId": "QD-APR-001", "geoFenceStatus": "INSIDE" }
},
"complianceStatus": {
"regulatoryCompliance": "COMPLIANT",
"certificationStatus": "VALID",
"auditTrail": "ENABLED"
}
}
}
```
## 3. 数据字段详细说明
### 3.1 车辆基础信息 (vehicleInfo) - 必填
- **vehicleId**: 车辆唯一标识符 [必填]
- **vehicleType**: 车辆类型 (PASSENGER_CAR, TRUCK, BUS, GROUND_SUPPORT_EQUIPMENT等) [可选]
- **manufacturer**: 制造商 [可选]
- **model**: 车型 [可选]
- **serialNumber**: 序列号 [可选]
- **firmwareVersion**: 固件版本 [可选]
### 3.2 运行状态 (operationalStatus) - 必填
- **powerStatus**: 电源状态 (ON, OFF, STANDBY) [必填]
- **systemHealth**: 系统健康状态 (HEALTHY, DEGRADED, CRITICAL, FAULT) [必填]
- **operationalMode**: 运行模式 (MANUAL, ASSISTED, AUTONOMOUS, REMOTE) [必填]
- **missionStatus**: 任务状态 (IDLE, IN_PROGRESS, COMPLETED, PAUSED, ABORTED) [可选]
- **emergencyStatus**: 紧急状态 (NORMAL, WARNING, EMERGENCY, CRITICAL) [必填]
- **lastHeartbeat**: 最后心跳时间戳 [必填]
### 3.3 控制状态 (controlStatus) - 必填
- **controlMode**: 控制模式 (MANUAL, AUTONOMOUS, REMOTE, HYBRID) [必填]
- **controlAuthority**: 控制权限 (DRIVER, SYSTEM, REMOTE_OPERATOR) [必填]
- **remoteControlActive**: 远程控制是否激活 [必填]
- **manualOverrideActive**: 手动接管是否激活 [可选]
- **safetyDriverPresent**: 安全员是否在场 [可选]
### 3.4 运动状态 (motionStatus) - 必填
#### 位置信息 (position) [必填]
- **latitude**: 纬度 [必填]
- **longitude**: 经度 [必填]
- **altitude**: 海拔高度 [可选]
- **coordinateSystem**: 坐标系统 [可选默认WGS84]
- 新增字段(机场区域化与一致性):
- **positionAccuracy**: 位置精度 (米) [可选]
- **localizationStatus**: 定位状态 (RTK_FIX, RTK_FLOAT, GNSS_ONLY, DR, FAULT) [可选]
- **mapMatchingStatus**: 地图匹配状态 (OK, OFF_ROUTE, NO_MAP, FAULT) [可选]
- 说明:支撑 6.5.3 在线监控a~d项及机场运行合规核查
#### 速度信息 (velocity) [必填]
- **speed**: 速度值 [必填]
- **direction**: 方向角 [必填]
- **verticalSpeed**: 垂直速度 [可选]
- **speedUnit**: 速度单位 [可选默认m/s]
- **directionUnit**: 方向单位 [可选默认radians]
#### 加速度信息 (acceleration) [可选]
- **longitudinal**: 纵向加速度 [可选]
- **lateral**: 横向加速度 [可选]
- **vertical**: 垂直加速度 [可选]
- **unit**: 加速度单位 [可选默认m/s²]
### 3.5 车辆状态 (vehicleState) - 可选
- **motorStatus**: 电动机状态数组 [可选]
- **motorId**: 电机ID如 M1 前轴、M2 后轴)[可选]
- **status**: 状态 (ACTIVE, INACTIVE, FAULT, OVERHEAT, THERMAL_LIMITED) [可选]
- **rpm**: 转速 (rpm) [可选]
- **torqueNm**: 实时输出扭矩 (N·m) [可选]
- **powerKw**: 实时功率 (kW) [可选]
- **temperatureC**: 电机温度 (°C) [可选]
### 3.6 电池状态 (batteryStatus) - 可选
#### 主电池 (mainBattery) [可选]
- **chargeLevel**: 电量百分比 (0-100) [可选]
- **voltage**: 电压值 (V) [可选]
- **current**: 电流值 (A正值充电负值放电) [可选]
- **temperature**: 电池温度 (°C) [可选]
- **health**: 电池健康状态 (GOOD, FAIR, POOR, CRITICAL) [可选]
- **cycleCount**: 充放电循环次数 [可选]
- **capacity**: 电池容量信息 [可选]
- **current**: 当前容量 [可选]
- **design**: 设计容量 [可选]
- **unit**: 容量单位 (kWh, Ah) [可选]
- **chargingStatus**: 充电状态 (CHARGING, DISCHARGING, IDLE, FAULT) [可选]
- **estimatedRange**: 预估续航里程 (km) [可选]
- **timeToEmpty**: 预估放电时间 (分钟) [可选]
- **timeToFull**: 预估充满时间 (分钟) [可选]
- **cellVoltages**: 单体电池电压数组 [可选]
- **balancingActive**: 电池均衡是否激活 [可选]
#### 辅助电池 (auxiliaryBattery) [可选]
- **chargeLevel**: 电量百分比 [可选]
- **voltage**: 电压值 [可选]
- **current**: 电流值 [可选]
- **temperature**: 温度 [可选]
- **health**: 健康状态 [可选]
- **chargingStatus**: 充电状态 [可选]
### 3.7 安全状态 (safetyStatus) - 可选
- **collisionAvoidanceActive**: 碰撞避免系统是否激活 [可选]
- **emergencyBrakingReady**: 紧急制动系统是否就绪 [可选]
- **pathPlanningStatus**: 路径规划状态 (ACTIVE, INACTIVE, FAULT) [可选]
- **obstacleDetectionStatus**: 障碍物检测状态 (ACTIVE, INACTIVE, FAULT) [可选]
- **minimumRiskManeuverTriggered**: 最小风险策略是否触发 [可选]
- 新增字段(合规扩展,建议用统一枚举表示状态):
- **collisionAvoidanceStatus**: (INACTIVE, READY, ACTIVE, EMERGENCY, DEGRADED, FAULT) [可选]
- **emergencyBrakingStatus**: (INACTIVE, READY, ACTIVE, RECOVERING, FAULT) [可选]
- **lastEmergencyBrakeTime**: 最近一次紧急制动时间戳 [可选]
- **evasiveActionType**: 规避动作 (DECELERATE, STOP, BYPASS, HORN, LIGHT) [可选]
- **obstacleDistanceMin**: 最近障碍物最小距离 (m) [可选]
- **obstacleBearingDeg**: 最近障碍物方位角 (度) [可选]
- **perceptionConfidence**: 感知综合置信度 (0~1) [可选]
- 说明:用于在线监控与事件回溯(参见 6.5.2、6.5.3
### 3.8 自动驾驶等级 (autonomyLevel) - 可选
- **currentLevel**: 当前自动驾驶等级 (0-5, 基于SAE J3016标准) [可选]
- **availableLevels**: 可用的自动驾驶等级数组 [可选]
- **fallbackLevel**: 降级后的自动驾驶等级 [可选]
### 3.9 传感器状态 (sensorStatus) - 可选
#### 摄像头 (cameras) [可选]
- **sensorId**: 传感器ID [可选]
- **status**: 状态 (ACTIVE, INACTIVE, FAULT) [可选]
- **health**: 健康状态 (GOOD, FAIR, POOR) [可选]
- **lastUpdate**: 最后更新时间戳 [可选]
- 新增通用字段(适用于各类传感器):
- **coverage**: 覆盖状态 (OK, OCCLUDED, WEATHER_IMPACTED) [可选]
- **latencyMs**: 采集至上报延迟 (ms) [可选]
- **accuracy**: 关键测量精度(单位视传感器类型)[可选]
- 说明:覆盖 6.5.3e “环境感知与响应状态”与取证质量评估
#### 激光雷达 (lidars) [可选]
- **sensorId**: 传感器ID [可选]
- **status**: 状态 [可选]
- **health**: 健康状态 [可选]
- **lastUpdate**: 最后更新时间戳 [可选]
#### 毫米波雷达 (radars) [可选]
- **sensorId**: 传感器ID [可选]
- **status**: 状态 [可选]
- **health**: 健康状态 [可选]
- **lastUpdate**: 最后更新时间戳 [可选]
#### GPS (gps) [可选]
- **status**: GPS状态 [可选]
- **accuracy**: 精度 (米) [可选]
- **satelliteCount**: 卫星数量 [可选]
- **lastUpdate**: 最后更新时间戳 [可选]
#### 惯性测量单元 (imu) [可选]
- **status**: IMU状态 [可选]
- **health**: 健康状态 [可选]
- **lastUpdate**: 最后更新时间戳 [可选]
### 3.10 通信状态 (communicationStatus) - 可选
- **v2xStatus**: V2X通信状态 (CONNECTED, DISCONNECTED, FAULT) [可选]
- **cellularSignalStrength**: 蜂窝信号强度 (dBm) [可选]
- **wifiStatus**: WiFi状态 (CONNECTED, DISCONNECTED, FAULT) [可选]
- **cloudConnectivity**: 云端连接状态 (ONLINE, OFFLINE, FAULT) [可选]
- 新增字段:
- **networkLatencyMs**: 网络往返时延 (ms) [可选]
- **packetLossRate**: 丢包率 (0~1) [可选]
- **failoverCount**: 网络故障切换次数 [可选]
- **rsuConnectedId**: 已连接路侧单元ID如有[可选]
- **remoteCommandAck**: { **lastCommandId**: string, **ackStatus**: (PENDING, ACKED, FAILED), **latencyMs**: number } [可选](最近一次指令确认摘要)
- 说明:满足 6.5.2e、6.5.3i 的远程指令闭环记录
### 3.11 诊断信息 (diagnostics) - 可选
#### 故障代码 (faultCodes) [可选]
- **code**: 故障代码 (如P0001, B0002等) [可选]
- **severity**: 严重程度 (INFO, WARNING, CRITICAL, FATAL) [可选]
- **description**: 故障描述 [可选]
- **component**: 故障组件 [可选]
- **timestamp**: 故障发生时间戳 [可选]
- **status**: 故障状态 (ACTIVE, RESOLVED) [可选]
#### 警告信息 (warnings) [可选]
- **severity**: 严重程度 (LOW, MEDIUM, HIGH) [可选]
- **description**: 警告描述 [可选]
- **component**: 相关组件 [可选]
- **timestamp**: 警告时间戳 [可选]
#### 维护提醒 (maintenanceAlerts) [可选]
- **type**: 维护类型 (SCHEDULED_MAINTENANCE, COMPONENT_REPLACEMENT, INSPECTION等) [可选]
- **description**: 维护描述 [可选]
- **dueDate**: 到期日期时间戳 [可选]
- **priority**: 优先级 (LOW, MEDIUM, HIGH, URGENT) [可选]
### 3.12 环境上下文 (environmentalContext) - 可选
- **weatherCondition**: 天气状况 (CLEAR, RAIN, SNOW, FOG等) [可选]
- **roadCondition**: 路面状况 (DRY, WET, ICY, SNOW等) [可选]
- **trafficDensity**: 交通密度 (LOW, MEDIUM, HIGH) [可选]
- **lightingCondition**: 光照条件 (DAYLIGHT, DUSK, NIGHT, TUNNEL等) [可选]
### 3.13 任务上下文 (missionContext) - 可选
#### 当前任务 (currentMission) [可选]
- **missionId**: 任务ID [可选]
- **missionType**: 任务类型 [可选]
- **startTime**: 开始时间戳 [可选]
- **estimatedEndTime**: 预计结束时间戳 [可选]
- **progress**: 任务进度百分比 [可选]
- **totalMileage**: 累计行驶里程 (米) [可选]
#### 路径点 (waypoints) [可选]
- **waypointId**: 路径点ID [可选]
- **latitude**: 纬度 [可选]
- **longitude**: 经度 [可选]
- **status**: 状态 (PENDING, COMPLETED, SKIPPED) [可选]
### 3.14 合规状态 (complianceStatus) - 可选
- **regulatoryCompliance**: 法规合规状态 (COMPLIANT, NON_COMPLIANT, UNKNOWN) [可选]
- **certificationStatus**: 认证状态 (VALID, EXPIRED, PENDING) [可选]
- **auditTrail**: 审计跟踪状态 (ENABLED, DISABLED) [可选]
- 新增字段:
- **schemaVersion**: 数据结构版本 [可选]
- **dataQuality**: 数据质量标签 (COMPLETE, PARTIAL, ESTIMATED, STALE) [可选]
- 说明:用于数据结构版本兼容与数据质量提示,不包含管理性合规声明
## 4. 错误处理
### 4.1 HTTP状态码
- **200**: 成功
- **400**: 请求参数错误
- **401**: 未授权
- **403**: 禁止访问
- **404**: 车辆不存在
- **429**: 请求频率过高
- **500**: 服务器内部错误
- **503**: 服务不可用
### 4.2 错误响应格式
```json
{
"code": 400,
"message": "Invalid vehicle ID format",
"timestamp": 1736175610000,
"error": {
"type": "VALIDATION_ERROR",
"details": "Vehicle ID must be alphanumeric and 3-20 characters long",
"field": "vehicleId"
}
}
```
## 5. 安全考虑
### 5.1 认证授权
- 使用JWT Token进行身份认证
- 基于角色的访问控制(RBAC)
- API密钥管理
### 5.2 数据保护
- HTTPS加密传输
- 敏感数据脱敏
- 数据访问日志记录
### 5.3 隐私保护
- 位置数据匿名化选项
- 数据保留策略
- 用户同意管理
## 6. 性能优化
### 6.1 缓存策略
- Redis缓存热点数据
- CDN加速静态资源
- 数据库查询优化
### 6.2 限流控制
- 基于IP的限流
- 基于用户的限流
- 基于API的限流
## 7. 监控和日志
### 7.1 API监控
- 响应时间监控
- 错误率监控
- 吞吐量监控
### 7.2 日志记录
- 访问日志
- 错误日志
- 审计日志
## 8. 版本管理
### 8.1 版本策略
- 语义化版本控制
- 向后兼容性保证
- 废弃通知机制
### 8.2 版本迁移
- 渐进式迁移
- 并行版本支持
- 迁移工具提供
## 9. 扩展性设计
### 9.1 插件机制
- 自定义字段支持
- 厂商特定扩展
- 行业特定适配
### 9.2 集成能力
- Webhook支持
- 消息队列集成
- 第三方系统对接
## 10. 测试策略
### 10.1 单元测试
- API接口测试
- 数据验证测试
- 错误处理测试
### 10.2 集成测试
- 端到端测试
- 性能测试
- 安全测试
## 11. 字段可选性说明
### 11.1 必填字段组
以下字段组是API响应的核心必须包含
- **vehicleInfo.vehicleId**: 车辆唯一标识
- **operationalStatus**: 基本运行状态
- **controlStatus**: 控制状态
- **motionStatus.position**: 位置信息
- **motionStatus.velocity**: 速度信息
### 11.2 可选字段组
其他所有字段组都是可选的,厂商可根据实际情况选择性实现:
- **batteryStatus**: 电池相关信息(电动车必需,燃油车可选)
- **sensorStatus**: 传感器状态(根据车辆配置)
- **safetyStatus**: 安全系统状态
- **autonomyLevel**: 自动驾驶等级信息
- **communicationStatus**: 通信状态
- **diagnostics**: 诊断信息
- **environmentalContext**: 环境信息
- **missionContext**: 任务信息
- **complianceStatus**: 合规信息
- **vehicleSignals**: 灯光/喇叭信号状态
- **eventReports**: 事件上报与证据引用
- **monitoring**: 在线监控与数据记录策略
- **airportCompliance**: 机场场景合规扩展ODD/激活/盲区/起步安全/许可区域)
### 11.3 实现建议
1. **渐进式实现**: 厂商可先实现必填字段,再逐步添加可选字段
2. **配置驱动**: 通过配置文件控制哪些字段组需要返回
3. **字段过滤**: 支持通过fields参数指定返回的字段组
4. **版本兼容**: 新增字段不影响现有客户端的兼容性
## 12. 电池状态详细说明
### 12.1 电池类型分类
- **主电池 (mainBattery)**: 车辆主要动力电池
- **辅助电池 (auxiliaryBattery)**: 12V/24V辅助系统电池
- **备用电池 (backupBattery)**: 紧急情况下的备用电源
### 12.2 电池健康状态定义
- **GOOD**: 电池健康,容量>80%设计容量
- **FAIR**: 电池轻微老化容量60-80%设计容量
- **POOR**: 电池明显老化容量40-60%设计容量
- **CRITICAL**: 电池严重老化,容量<40%设计容量
### 12.3 充电状态定义
- **CHARGING**: 正在充电
- **DISCHARGING**: 正在放电
- **IDLE**: 空闲状态既不充电也不放电
- **FAULT**: 充电系统故障
### 12.4 电池监控重点参数
- **温度监控**: 防止过热和过冷
- **电压监控**: 防止过充和过放
- **电流监控**: 监控充放电电流
- **容量衰减**: 跟踪电池老化程度
- **循环次数**: 评估电池寿命
## 13. 故障诊断说明
### 13.1 故障严重程度定义
- **INFO**: 信息性消息不影响正常运行
- **WARNING**: 警告级别需要关注但可继续运行
- **CRITICAL**: 严重故障影响部分功能
- **FATAL**: 致命故障必须立即停车处理
### 13.2 故障状态定义
- **ACTIVE**: 故障当前存在
- **RESOLVED**: 故障已解决
### 13.3 维护类型定义
- **SCHEDULED_MAINTENANCE**: 定期保养
- **COMPONENT_REPLACEMENT**: 组件更换
- **INSPECTION**: 检查维护
### 13.4 优先级定义
- **LOW**: 低优先级可延后处理
- **MEDIUM**: 中等优先级建议及时处理
- **HIGH**: 高优先级需要尽快处理
- **URGENT**: 紧急必须立即处理
这个优化后的设计方案具有以下特点
1. **灵活性**: 大部分字段设为可选厂商可根据实际情况实现
2. **实用性**: 突出了核心必需字段确保基本功能
3. **详细的电池信息**: 提供了完整的电池状态监控能力
4. **简化的故障信息**: 保持核心故障诊断功能结构简洁
5. **渐进式实现**: 支持分阶段实现降低开发成本
6. **向后兼容**: 新增字段不影响现有系统