Un wrapper SDK de périphérique doit normaliser les conventions d’appel tout en préservant les différences réelles entre les appareils. Les noms d'API correspondants ne définissent pas la sémantique des paramètres, la propriété du tampon ou les états d'erreur. Ce qui suit est une méthode de conception d'adaptateur et non une affirmation selon laquelle des périphériques arbitraires ont déjà été intégrés.
Définir d'abord la sémantique des paramètres
| Champ | Informations requises | Problème à éviter |
|---|---|---|
| Identifiant | Nom de l'application, mappage des appareils et mode applicable | Noms identiques avec des significations différentes |
| Type et unité | Unités entières, à virgule flottante, d'énumération, booléennes et explicites | Copie de numéros avec des unités incompatibles |
| Capacité d'accès | Lecture seule ou écriture, plage dynamique et dépendances d'état | Écriture de paramètres qui ne peuvent pas changer pendant la capture d'image |
| Énumérations et valeurs par défaut | Valeurs réelles prises en charge et relecture | Signaler les paramètres non pris en charge comme réussis |
| Conditions d'activation | Si l'arrêt, le redémarrage ou la reconnexion sont nécessaires | En supposant que les trames utilisent un nouveau paramètre immédiatement après le retour d'un appel |
Faites plus que renommer les champs. Renvoie les états identifiables pour les fonctions non prises en charge. Définissez la conversion et l’arrondi pour les unités compatibles. Vérifiez la relecture, l'état de l'appareil et les modifications d'image en fonction des capacités du SDK cible.
Durée de vie des données de trame
Documentez si le SDK du fournisseur, l'adaptateur ou l'appelant alloue un tampon, combien de temps il reste lisible, quand il doit être libéré ou renvoyé, si l'utilisation cross-thread est autorisée et si la copie a lieu. Les dimensions, le format, le pas en ligne et la longueur valide décrivent ensemble les données d'image ; ne présumez pas que les rangées sont serrées.
Ne transmettez pas de pointeur de rappel asynchrone vers une tâche en aval de longue durée sans confirmer sa durée de vie. L'arrêt, la déconnexion et la destruction de périphériques de la capture d'images nécessitent également une commande de trames en attente, de rappels en file d'attente et de libération de ressources.
États et origines des erreurs
Envisagez des états distincts de déconnexion, de connexion, de configuration, d'acquisition, d'arrêt et de panne, avec des appels autorisés et des conditions de transition. Exprimez séparément les délais d'attente, la déconnexion, les paramètres non pris en charge, les pénuries de mémoire tampon et les échecs d'analyse. Conservez le code d'erreur et le contexte du fournisseur ainsi que le code d'erreur du wrapper.
Vérifiez plus qu'un exemple
Pour les appareils et versions spécifiés, testez les limites des paramètres, les démarrages et arrêts répétés, les délais d'attente des trames, le retour du tampon, les appels simultanés et la reconnexion. Enregistrez pourquoi une erreur n’a pas pu être injectée ou n’a pas été prise en charge. Fournissez la documentation de l'API, les tableaux d'erreurs, les instructions de construction, les exemples et les enregistrements de tests convenus.
Prestations associées : SDK pour appareils de vision et capture d'image intégrée.