feat: align car monitor with Gen5W entities
This commit is contained in:
1 parent
41a3e90393
commit
5aac4bc208
3 files changed
+194
-588
No files matched your search
+11
-39
@@ -40,11 +40,9 @@ final class NiroTelemetrySnapshot
|
|||||||
$serviceAvailable = 0;
|
$serviceAvailable = 0;
|
||||||
|
|
||||||
$serviceGroups = [
|
$serviceGroups = [
|
||||||
['audio_mode', 'rear_view', 'screen_on'],
|
['speed', 'gear_code', 'parked'],
|
||||||
['speed', 'gear_code', 'gear_p_code'],
|
['hev_ready', 'hev_battery_soc', 'total_distance_to_empty'],
|
||||||
['ignition', 'driver_door', 'engine_running'],
|
['driver_door', 'driver_unlocked', 'trunk'],
|
||||||
['hev_mode_code', 'total_distance_to_empty', 'odometer'],
|
|
||||||
['head_unit_power', 'av_disabled', 'display_off'],
|
|
||||||
['climate_on', 'driver_temperature', 'outside_temperature'],
|
['climate_on', 'driver_temperature', 'outside_temperature'],
|
||||||
];
|
];
|
||||||
foreach ($serviceGroups as $keys) {
|
foreach ($serviceGroups as $keys) {
|
||||||
@@ -59,22 +57,20 @@ final class NiroTelemetrySnapshot
|
|||||||
|
|
||||||
$keyMap = [
|
$keyMap = [
|
||||||
'ignition' => ['ignition'],
|
'ignition' => ['ignition'],
|
||||||
'reverse' => ['rear_view'],
|
'hev_ready' => ['hev_ready'],
|
||||||
|
'engine_running' => ['engine_running'],
|
||||||
'parking' => ['parked', 'gear_p_code'],
|
'parking' => ['parked', 'gear_p_code'],
|
||||||
'gear' => ['gear_code', 'gear_p_code'],
|
'gear' => ['gear_code', 'gear_p_code'],
|
||||||
'speed' => ['speed'],
|
'speed' => ['speed'],
|
||||||
'previous_speed' => [],
|
|
||||||
'parking_brake' => ['parking_brake'],
|
'parking_brake' => ['parking_brake'],
|
||||||
'camera' => ['rear_view'],
|
|
||||||
'drive_mode' => ['drive_mode_code'],
|
'drive_mode' => ['drive_mode_code'],
|
||||||
'fuel_warning' => ['fuel_warning'],
|
'fuel_warning' => ['fuel_warning'],
|
||||||
|
'discharge_alert' => ['discharge_alert'],
|
||||||
'distance_to_empty' => ['total_distance_to_empty'],
|
'distance_to_empty' => ['total_distance_to_empty'],
|
||||||
|
'electric_distance_to_empty' => ['electric_distance_to_empty'],
|
||||||
|
'gas_distance_to_empty' => ['gas_distance_to_empty'],
|
||||||
|
'hev_battery_soc' => ['hev_battery_soc'],
|
||||||
'battery_soc_12v' => ['battery_soc_12v'],
|
'battery_soc_12v' => ['battery_soc_12v'],
|
||||||
'battery_above_60' => [],
|
|
||||||
'ldc_battery' => ['ldc_12v_charge'],
|
|
||||||
'hev_mode' => ['hev_mode_code'],
|
|
||||||
'hev_charge_state' => ['hev_charge_state_code'],
|
|
||||||
'motor_usage' => ['motor_usage_code'],
|
|
||||||
'ldc_12v_charge' => ['ldc_12v_charge'],
|
'ldc_12v_charge' => ['ldc_12v_charge'],
|
||||||
'odometer' => ['odometer'],
|
'odometer' => ['odometer'],
|
||||||
'driver_unlock' => ['driver_unlocked'],
|
'driver_unlock' => ['driver_unlocked'],
|
||||||
@@ -86,44 +82,20 @@ final class NiroTelemetrySnapshot
|
|||||||
'rear_left_door' => ['rear_left_door'],
|
'rear_left_door' => ['rear_left_door'],
|
||||||
'rear_right_door' => ['rear_right_door'],
|
'rear_right_door' => ['rear_right_door'],
|
||||||
'trunk' => ['trunk'],
|
'trunk' => ['trunk'],
|
||||||
'lock_state' => [],
|
'hood' => ['hood'],
|
||||||
'hazard' => ['hazard'],
|
'hazard' => ['hazard'],
|
||||||
'head_lamp' => ['head_lamp'],
|
'head_lamp' => ['head_lamp'],
|
||||||
'tail_lamp' => ['tail_lamp'],
|
'tail_lamp' => ['tail_lamp'],
|
||||||
'fog_lamp' => ['fog_lamp'],
|
'fog_lamp' => ['fog_lamp'],
|
||||||
'driver_seatbelt' => ['driver_seatbelt_code'],
|
|
||||||
'passenger_seatbelt' => ['passenger_seatbelt_code'],
|
|
||||||
'airbag' => ['airbag_code'],
|
|
||||||
'climate_on' => ['climate_on'],
|
'climate_on' => ['climate_on'],
|
||||||
'air_conditioner' => ['air_conditioner'],
|
'air_conditioner' => ['air_conditioner'],
|
||||||
'climate_auto' => ['climate_auto'],
|
'climate_auto' => ['climate_auto'],
|
||||||
'climate_dual' => ['climate_dual'],
|
'climate_dual' => ['climate_dual'],
|
||||||
'driver_temperature' => ['driver_temperature'],
|
'driver_temperature' => ['driver_temperature'],
|
||||||
'passenger_temperature' => ['passenger_temperature'],
|
'passenger_temperature' => ['passenger_temperature'],
|
||||||
|
'rear_temperature' => ['rear_temperature'],
|
||||||
'outside_temperature' => ['outside_temperature'],
|
'outside_temperature' => ['outside_temperature'],
|
||||||
'blower_level' => ['blower_level'],
|
'blower_level' => ['blower_level'],
|
||||||
'intake_mode' => ['intake_code'],
|
|
||||||
'co2_warning' => ['co2_warning_code'],
|
|
||||||
'route_guide' => [],
|
|
||||||
'next_turn_distance' => [],
|
|
||||||
'speed_limit' => [],
|
|
||||||
'camera_distance' => [],
|
|
||||||
'camera_speed_limit' => [],
|
|
||||||
'av_power' => ['av_power'],
|
|
||||||
'head_unit_power' => ['head_unit_power'],
|
|
||||||
'audio_mode' => ['audio_mode'],
|
|
||||||
'audio_focus' => [],
|
|
||||||
'audio_volume' => [],
|
|
||||||
'mute' => [],
|
|
||||||
'micom_connected' => [],
|
|
||||||
'boot_completed' => ['head_unit_powered'],
|
|
||||||
'boot_sequence_finished' => [],
|
|
||||||
'wireless_charging' => ['wireless_charging_code'],
|
|
||||||
'dtc_warning' => [],
|
|
||||||
'pdw_front_left' => [],
|
|
||||||
'pdw_front_right' => [],
|
|
||||||
'pdw_rear_left' => [],
|
|
||||||
'pdw_rear_right' => [],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
$metrics = [];
|
$metrics = [];
|
||||||
|
|||||||
+164
-543
File diff suppressed because it is too large.
Load diff
@@ -23,31 +23,44 @@ $summary = NiroTelemetrySnapshot::summarize([
|
|||||||
'state' => [
|
'state' => [
|
||||||
'_sample_epoch' => $now - 3,
|
'_sample_epoch' => $now - 3,
|
||||||
'ignition' => 'true',
|
'ignition' => 'true',
|
||||||
|
'hev_ready' => 'true',
|
||||||
|
'engine_running' => 'false',
|
||||||
|
'parked' => 'false',
|
||||||
'speed' => '27',
|
'speed' => '27',
|
||||||
'gear_code' => '5',
|
'gear_code' => '5',
|
||||||
|
'parking_brake' => 'false',
|
||||||
'battery_soc_12v' => '93',
|
'battery_soc_12v' => '93',
|
||||||
|
'hev_battery_soc' => '61',
|
||||||
'total_distance_to_empty' => '761',
|
'total_distance_to_empty' => '761',
|
||||||
|
'electric_distance_to_empty' => '18',
|
||||||
|
'gas_distance_to_empty' => '743',
|
||||||
'odometer' => '259653.7',
|
'odometer' => '259653.7',
|
||||||
'driver_door' => 'false',
|
'driver_door' => 'false',
|
||||||
|
'hood' => 'false',
|
||||||
|
'discharge_alert' => 'false',
|
||||||
'outside_temperature' => '25.0',
|
'outside_temperature' => '25.0',
|
||||||
'audio_mode' => '54',
|
'rear_temperature' => '22.0',
|
||||||
'hev_mode_code' => '2',
|
|
||||||
'head_unit_power' => '0',
|
|
||||||
],
|
],
|
||||||
], ['stale_after' => 20]);
|
], ['stale_after' => 20]);
|
||||||
|
|
||||||
check($summary['available'] === true, 'snapshot is available');
|
check($summary['available'] === true, 'snapshot is available');
|
||||||
check($summary['online'] === true, 'availability topic is respected');
|
check($summary['online'] === true, 'availability topic is respected');
|
||||||
check($summary['stale'] === false, 'fresh sample is not stale');
|
check($summary['stale'] === false, 'fresh sample is not stale');
|
||||||
check($summary['metric_count'] === 11, 'only mapped supported metrics are counted');
|
check($summary['metric_count'] === 18, 'only mapped supported metrics are counted');
|
||||||
check($summary['services'] === ['available' => 6, 'total' => 6], 'source families are counted');
|
check($summary['services'] === ['available' => 4, 'total' => 4], 'source families are counted');
|
||||||
check($summary['metrics']['speed']['value'] === '27', 'speed mapping');
|
check($summary['metrics']['speed']['value'] === '27', 'speed mapping');
|
||||||
check($summary['metrics']['gear']['value'] === '5', 'live root gear mapping');
|
check($summary['metrics']['gear']['value'] === '5', 'live root gear mapping');
|
||||||
check($summary['metrics']['outside_temperature']['value'] === '25.0', 'climate mapping');
|
check($summary['metrics']['outside_temperature']['value'] === '25.0', 'climate mapping');
|
||||||
check($summary['metrics']['driver_door']['supported'] === true, 'zero is supported');
|
check($summary['metrics']['driver_door']['supported'] === true, 'zero is supported');
|
||||||
check($summary['metrics']['distance_to_empty']['value'] === '761', 'live HEV range mapping');
|
check($summary['metrics']['distance_to_empty']['value'] === '761', 'live HEV range mapping');
|
||||||
|
check($summary['metrics']['electric_distance_to_empty']['value'] === '18', 'electric range mapping');
|
||||||
|
check($summary['metrics']['gas_distance_to_empty']['value'] === '743', 'engine range mapping');
|
||||||
|
check($summary['metrics']['hev_battery_soc']['value'] === '61', 'HEV battery mapping');
|
||||||
|
check($summary['metrics']['hev_ready']['value'] === 'true', 'HEV ready mapping');
|
||||||
|
check($summary['metrics']['hood']['value'] === 'false', 'hood mapping');
|
||||||
|
check($summary['metrics']['discharge_alert']['value'] === 'false', 'discharge alert mapping');
|
||||||
|
check($summary['metrics']['rear_temperature']['value'] === '22.0', 'rear temperature mapping');
|
||||||
check($summary['metrics']['odometer']['value'] === '259653.7', 'odometer is already km');
|
check($summary['metrics']['odometer']['value'] === '259653.7', 'odometer is already km');
|
||||||
check($summary['metrics']['route_guide']['supported'] === false, 'removed raw route value stays unsupported');
|
|
||||||
check(!array_key_exists('state', $summary), 'raw snapshot is not exposed');
|
check(!array_key_exists('state', $summary), 'raw snapshot is not exposed');
|
||||||
|
|
||||||
$stale = NiroTelemetrySnapshot::summarize([
|
$stale = NiroTelemetrySnapshot::summarize([
|
||||||
|
|||||||
Reference in new issue
Block a user