Een SDK-wrapper voor apparaten moet de oproepconventies standaardiseren en tegelijkertijd de echte verschillen tussen apparaten behouden. Overeenkomende API-namen definiëren geen parametersemantiek, buffereigendom of foutstatussen. Het volgende is een adapterontwerpmethode, en geen claim dat willekeurige apparaten al zijn geïntegreerd.

Definieer eerst de parametersemantiek

Veld Vereiste informatie Probleem om te vermijden
Identificatie Applicatienaam, apparaattoewijzing en toepasselijke modus Identieke namen met verschillende betekenissen
Soort en eenheid Geheel getal, drijvende komma, opsomming, Booleaanse en expliciete eenheden Nummers kopiëren met incompatibele eenheden
Toegangsmogelijkheden Alleen-lezen of beschrijfbaar, dynamisch bereik en statusafhankelijkheden Schrijven van parameters die niet kunnen veranderen tijdens het vastleggen van afbeeldingen
Opsommingen en standaardwaarden Werkelijke ondersteunde waarden en teruglezing Rapporteert niet-ondersteunde instellingen als succesvol
Activeringsvoorwaarden Of het nu gaat om stoppen, herstarten of opnieuw verbinden Ervan uitgaande dat frames een nieuwe instelling gebruiken onmiddellijk nadat een oproep terugkeert

Doe meer dan alleen velden hernoemen. Retourneert identificeerbare statussen voor niet-ondersteunde functies. Definieer conversie en afronding voor compatibele eenheden. Controleer teruglezing, apparaatstatus en beeldwijzigingen volgens de mogelijkheden van de doel-SDK.

Levensduur van framegegevens

Documenteer of de SDK, adapter of caller van de leverancier een buffer toewijst, hoe lang deze leesbaar blijft, wanneer deze moet worden vrijgegeven of geretourneerd, of cross-thread-gebruik is toegestaan ​​en of er wordt gekopieerd. Afmetingen, formaat, rijstap en geldige lengte beschrijven samen beeldgegevens; ga niet uit van dicht opeengepakte rijen.

Geef geen asynchrone callback pointer door aan een langlopende downstream-taak zonder de levensduur ervan te bevestigen. Voor het afsluiten van beeldopnamen, het verbreken van de verbinding en het vernietigen van apparaten is ook een bestelling nodig voor openstaande frames, terugbellen in de wachtrij en het vrijgeven van bronnen.

Statussen en oorsprong van fouten

Denk aan afzonderlijke statussen van verbroken, verbonden, geconfigureerd, verwerven, stoppen en fouten, met toegestane oproepen en overgangsomstandigheden. Express time-outs, ontkoppeling, niet-ondersteunde parameters, buffertekorten en parseringsfouten afzonderlijk. Bewaar de foutcode en context van de leverancier naast de foutcode van de wrapper.

Verifieer meer dan een voorbeeld

Voor gespecificeerde apparaten en versies: testparametergrenzen, herhaald starten en stoppen, frametime-outs, bufferretour, gelijktijdige oproepen en opnieuw verbinden. Leg vast waarom een ​​fout niet kon worden geïnjecteerd of niet werd ondersteund. Lever API-documentatie, fouttabellen, bouwinstructies, voorbeelden en overeengekomen testrecords.

Gerelateerde diensten: SDK's voor vision-apparaten En ingebedde afbeelding afbeelding vastleggen.