A NavLab 4 Configuration Framework (CF) to Automatically Verify and Inspect Configurations (INI-files)
Abstract
NavLab 4 is a highly configurable simulation and post-processing tool for navigation. While this configurability is a key strength, its complexity can make it difficult even for advanced users to create functional and complete configurations (INI files) that make NavLab behave as the user intends.
We present a Configuration Framework (CF) to simplify this task via
•an Application Programming Interface (API) and data structures that allow developers tospecify the properties, requirements and parameters of the configurations affecting theircode and to make this information available everywhere in NavLab via a central register
•a graphical user interface that presents this information to the user in an intuitive way
•mechanisms that use the above-mentioned information to automatically verify thecompleteness of the user-provided configurations
The verification of configurations that affect a piece of code is performed proactively (before the code is run) whenever the user executes the code. If any required configuration elements are missing, the CF can prevent the execution of the code to avoid potentially irrecoverable errors. In such cases, the CF informs the user of the missing elements via the above-mentioned graphical user interface so that the user can easily identify and add the missing configuration elements.
The task described in the first bullet point is referred to as adding CF support to configured code. In addition to developing the CF itself, we have provided CF support to the code that implements all core activities a user can perform in NavLab, including preprocessing, simulation, estimation, calibration of the Doppler Velocity Log (DVL) and summarizing and exporting analysis results. As a result, the facilities in the two last bullet points above are made available for nearly all existing NavLab functionality. The CF API and data structures are designed to be sufficiently flexible, generic, and intuitive to facilitate adding CF support to future extensions of NavLab 4. NavLab 4 er et svært konfigurerbart simulerings- og postprosesseringsverktøy for navigasjon. Det at verktøyet er så konfigurerbart, er en av dets styrker, men konfigureringen er også tilstrekkelig komplisert til at det kan være utfordrende selv for erfarne brukere å lage konfigurasjoner (INI-filer) som gjør at NavLab oppfører seg som ønsket og forventet.
Vi har utviklet et konfigurasjonsrammeverk (CF) som forenkler konfigurasjonen av NavLab via
•et programvaregrensesnitt (API) og datastrukturer som gjør utviklere i stand til åspesifisere egenskaper, krav og parametere til konfigurasjonene som påvirker kodenderes, og til å gjøre denne informasjonen tilgjengelig overalt i NavLab via et sentraltregister
•et grafisk brukergrensesnitt som presenterer denne informasjonen til brukeren på enintuitiv måte
•mekanismer som bruker den overnevnte informasjonen til automatisk å verifisere atkonfigurasjonene brukeren har oppgitt, er fullstendige
Den automatiske verifikasjonen av konfigurasjoner som påvirker en gitt kodebit, gjøres proaktivt (før kodebiten kjøres) når brukeren ber om å kjøre denne koden. Hvis det mangler obligatoriske konfigurasjonselementer, kan rammeverket hindre kjøringen og presentere intuitiv informasjon som gjør at brukeren enkelt og raskt kan identifisere og legge til de manglende elementene. Dermed unngår brukeren feil under kjøringen som er forårsaket av manglende konfigurasjonselementer, og som kan kreve at NavLab må starte på nytt.
Aktiviteten beskrevet i første kulepunkt kalles å gi CF-støtte til konfigurert programvare. I tillegg til å utvikle selve CF-rammeverket har vi gitt CF-støtte til alle kjernefunksjonene i NavLab, inkludert preprosessering, simulering, estimering, kalibrering av Doppler Velocity Log (DVL) og oppsummering og eksportering av analyseresultater. Dermed er fasilitetene beskrevet i de to nederste kulepunktene gjort tilgjengelig for det meste man kan gjøre i NavLab. CF-API-et og datastrukturene er utformet for å være fleksible, generiske og intuitive nok til at CF-støtte enkelt kan gis til fremtidige utvidelser av NavLab 4.