drive_situation_fusion 0.1.0 copy "drive_situation_fusion: ^0.1.0" to clipboard
drive_situation_fusion: ^0.1.0 copied to clipboard

Fuses a localization estimate and a weather advisory into compound_failure_advisor's DriveSituation — the safety-critical position and advisory seam, done once and tested.

example/drive_situation_fusion_example.dart

// How an integrator wires the in-drive worst-case chain: take the localization
// estimate and the selected area advisory the SNGNav catalog already produces,
// fuse them into the advisor's input, and ask for advice. Advisory-only — she
// drives it.
import 'package:compound_failure_advisor/compound_failure_advisor.dart';
import 'package:condition_aggregator/condition_aggregator.dart';
import 'package:drive_situation_fusion/drive_situation_fusion.dart';
import 'package:localization_fallback/localization_fallback.dart';

void main() {
  // GPS has dropped in a snow tunnel — the dot is carried by dead reckoning and
  // the confidence radius is growing. She can barely see. A severe area warning
  // is in force.
  final estimate = LocalizationEstimate(
    latitude: 39.72,
    longitude: 140.10,
    confidenceRadiusMeters: 280,
    mode: LocalizationMode.deadReckoning,
    secondsSinceTrustedFix: 75,
    basis: EstimateBasis.deadReckoning,
  );

  final advisory = Advisory(
    source: AdvisorySource.other,
    eventClass: 'Heavy Snow Warning',
    severity: AdvisorySeverity.severe,
    certainty: AdvisoryCertainty.observed,
    urgency: AdvisoryUrgency.immediate,
    areaDescription: 'Akita',
    effective: null,
    expires: null,
    headline: 'Heavy snow warning in force',
    description: 'Visibility falling; road icing likely.',
  );

  // The caller owns the clock, so it computes the reading's age and passes it.
  final situation = fuseDriveSituation(
    estimate: estimate,
    advisory: advisory,
    visibilityMeters: 60,
    visibilityAgeSeconds: 4,
    speedMetersPerSecond: 11,
  );

  final advice = adviseInDrive(situation);

  print('action:          ${advice.action}');
  print('positionUncertain: ${advice.positionUncertain}');
  print('visibilityLow:   ${advice.visibilityLow}');
  print('compounding:     ${advice.compounding}'); // true — danger compounds
}
0
likes
160
points
40
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Fuses a localization estimate and a weather advisory into compound_failure_advisor's DriveSituation — the safety-critical position and advisory seam, done once and tested.

Repository (GitHub)
View/report issues
Contributing

Topics

#navigation #safety #automotive #driving #weather

License

BSD-3-Clause (license)

Dependencies

compound_failure_advisor, condition_aggregator, localization_fallback

More

Packages that depend on drive_situation_fusion