Sujet : Re: Question structure de données
De : stef (at) *nospam* genesix.org (Stéphane Rivière)
Groupes : fr.comp.lang.adaDate : 07. Oct 2023, 08:47:52
Autres entêtes
Organisation : La Maison
Message-ID : <ufr2f8$28d89$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
Pas sûr de comprendre ton besoin (Twain ? c'est du scan ça, non ?) mais, par exemple, si l'idée est d'examiner le hardware, 'capacité' par 'capacité', on pourrait imaginer :
Une première structure dans un conteneur, stockant les 'capacités'.
Dans cette structure, tu as un type qui pointe sur un second conteneur qui décrit chaque 'capacité'.
Dans cette nouvelle structure tu as des types pour décrire les éléments communs à toutes les 'capacités' et un type vers...
Un troisième conteneur, dont le type est clé-valeur pour enregistrer toutes les caps spécifiques à cette 'capacité'.
Tu disposes alors de trois conteneurs structurants mais qui s'adapteront à toutes les 'capacités' présentes et futures.
Ada à de très beaux conteneurs¹ et le résultat est beau et puissant.
Je ne suis pas si je suis très clair mais j'aurais tenté de faire le canard en plastique².
¹ Et le compilo Ada super fort pour relever une erreur de logique dans les itérations, je me suis fait avoir dernièrement comme un nigaud, merci aux copains de m'avoir ouvert les yeux :).
²
https://fr.wikipedia.org/wiki/M%C3%A9thode_du_canard_en_plastiqueJe
Je code une librairie qui s'interface sur une API (twain) qui permet à l'application de découvrir les capacités du matériel à l'exécution.
Une capacité a un type de base parmi les suivants :
type t_TWTY is (TWTY_INT8,
TWTY_INT16,
TWTY_INT32,
TWTY_UINT8,
TWTY_UINT16,
TWTY_UINT32,
TWTY_BOOL,
TWTY_FIX32,
TWTY_FRAME,
TWTY_STR32,
TWTY_STR64,
TWTY_STR128,
TWTY_STR255,
TWTY_HANDLE
);
Donc, une donnée sur 8bits signés ou sur 16bits signés ou...
Par dessus le type de base, il y a le type de conteneur :
type t_ConType is (TWON_ARRAY,
TWON_ENUMERATION,
TWON_ONEVALUE,
TWON_RANGE,
);
Donc, une donnée unique ou un tableau de données ou...
Comme je crée une librairie de haut niveau, je voudrais une abstraction supplémentaire du type de données. Par exemple, une capacité de type TWON_ONEVALUE / TWTY_UINT32 pourrait correspondre à un bit-mask de fonctionnalités possibles (record de booléens - 1 bit par booléen).
Il y a des capacités prédéfinies par la documentation de l'API twain. Mais la plupart des capacités sont à découvrir "à la volée".
Le but est que la librairie construise une structure de données utilisable par l'application.
Je ne vois pas comment coder ça intelligemment en Ada (je saurais le faire à la C).
Je suis preneur de toute information pouvant m'éclairer ;)
Nicolas
-- Stéphane RivièreIle d'Oléron - France
Haut de la page
Les messages affichés proviennent d'usenet.
NewsPortal