Ein Geräte-SDK-Wrapper sollte Aufrufkonventionen standardisieren und gleichzeitig echte Unterschiede zwischen Geräten bewahren. Übereinstimmende API-Namen definieren keine Parametersemantik, Pufferbesitz oder Fehlerzustände. Das Folgende ist eine Adapter-Entwurfsmethode und keine Behauptung, dass beliebige Geräte bereits integriert wurden.
Definieren Sie zunächst die Parametersemantik
| Feld | Erforderliche Informationen | Zu vermeidendes Problem |
|---|---|---|
| Kennung | Anwendungsname, Gerätezuordnung und anwendbarer Modus | Identische Namen mit unterschiedlicher Bedeutung |
| Typ und Einheit | Ganzzahl-, Gleitkomma-, Aufzählungs-, boolesche und explizite Einheiten | Zahlen mit inkompatiblen Einheiten kopieren |
| Zugriffsfähigkeit | Schreibgeschützt oder beschreibbar, Dynamikbereich und Zustandsabhängigkeiten | Schreibparameter, die sich während der Bildaufnahme nicht ändern können |
| Aufzählungen und Standardwerte | Tatsächlich unterstützte Werte und Rücklesung | Nicht unterstützte Einstellungen werden als erfolgreich gemeldet |
| Aktivierungsbedingungen | Unabhängig davon, ob ein Stoppen, Neustarten oder erneutes Verbinden erforderlich ist | Angenommen, Frames verwenden unmittelbar nach der Rückkehr eines Anrufs eine neue Einstellung |
Tun Sie mehr als nur Felder umzubenennen. Gibt identifizierbare Zustände für nicht unterstützte Funktionen zurück. Definieren Sie die Umrechnung und Rundung für kompatible Einheiten. Überprüfen Sie Rücklese-, Gerätestatus- und Bildänderungen entsprechend den Fähigkeiten des Ziel-SDKs.
Lebensdauer der Frame-Daten
Dokumentieren Sie, ob das Anbieter-SDK, der Adapter oder der Aufrufer einen Puffer zuweist, wie lange er lesbar bleibt, wann er freigegeben oder zurückgegeben werden muss, ob eine Thread-übergreifende Verwendung zulässig ist und ob ein Kopieren erfolgt. Abmessungen, Format, Zeilenschritt und gültige Länge beschreiben zusammen Bilddaten; Gehen Sie nicht von dicht gepackten Reihen aus.
Übergeben Sie keinen asynchronen Rückrufzeiger an eine Downstream-Aufgabe mit langer Laufzeit, ohne deren Lebensdauer zu bestätigen. Das Herunterfahren der Bilderfassung, die Trennung der Verbindung und die Zerstörung des Geräts erfordern außerdem eine Bestellung für ausstehende Frames, Rückrufe in der Warteschlange und die Freigabe von Ressourcen.
Zustände und Fehlerursachen
Betrachten Sie separate getrennte, verbundene, konfigurierte, erfassende, stoppende und Fehlerzustände mit zulässigen Aufrufen und Übergangsbedingungen. Drücken Sie Zeitüberschreitungen, Verbindungsabbrüche, nicht unterstützte Parameter, Pufferengpässe und Analysefehler separat aus. Behalten Sie den Fehlercode und den Kontext des Anbieters neben dem Fehlercode des Wrappers bei.
Überprüfen Sie mehr als ein Beispiel
Testen Sie für bestimmte Geräte und Versionen Parametergrenzen, wiederholtes Starten und Stoppen, Frame-Timeouts, Pufferrückgabe, gleichzeitige Aufrufe und erneute Verbindung. Notieren Sie, warum ein Fehler nicht injiziert werden konnte oder nicht unterstützt wurde. Stellen Sie API-Dokumentation, Fehlertabellen, Build-Anweisungen, Beispiele und vereinbarte Testaufzeichnungen bereit.
Verwandte Dienstleistungen: Vision-Geräte-SDKs Und Eingebettete Bildaufnahme.