Sciencexp : le site des Sciences Expérimentales

Mesures scientifiques et ordinateur : mesurer, figurer, comparer

Traduction/Translation/Traduko/Traducción/Übersetzung/Traduzione

[PNG] Mon logo Zite !

Identifiez-vous pour accéder à la partie privée du site ou le modifier.

Déconnexion.

Eŭropo-Demokratio-Esperanto

Ĉu vi parolas esperanton ?

 

Dernière mise à jour le 22/10/2023

Liste détaillée des fonctions Mensura


Ces fonctions existent sous deux formes, cdecl (préfixe c) et stdcall (préfixe std). Il n'est indiqué ici que la forme stdcall. Il est souhaitable que les fonctions fondamentales soient définies sous ces deux formes ; par contre, les fonctions supplémentaires (transmission des paramètres par référence, fonctions de nommage numériques...) peuvent n'être définies qu'en type cdecl, qui semble être le plus répandu.
La description est donnée ici avec la syntaxe du langage Pascal.


Fonctions fondamentales

Tous les appareils ou dispositifs expérimentaux n'ont pas obligatoirement les fonctions numériques décrites ci-dessous. Par exemple, un pHmètre n'a pas de sorties logiques ou analogiques, et pour ces fonctions de sortie, les noms des fonctions ont une longueur nulle, ce qui signifie que les fonctions numériques n'existent pas.
Inversement, on peut imaginer un pilote pour la commande d'un moteur, où il n'existe pas de fonctions d'entrée analogique ou binaire : il faut mettre les noms de ces fonctions d'entrée à une longueur nulle.


function stdea(n:longint) : longint ;stdcall;export;

nième entrée analogique (résultat directement renvoyé par le convertisseur analogique-numérique)



function stdnea(n:longint):pchar ;stdcall;export;

nom de la nième entrée analogique



function stdead(n:longint):double ;stdcall;export;
nième entrée analogique (résultat converti en unité SI, le plus souvent en Volts)

function stdnead(n:longint):pchar ;stdcall;export;
nom de la nième entrée analogique renvoyant le résultat sous forme de "double"

function stdsa(n:longint;valeur:longint):longint;stdcall;export;
envoi de valeur au convertisseur numérique analogique sur la nième sortie analogique ; si tout s'est bien passé, elle renvoie valeur.

function stdnsa(n:longint):pchar;stdcall;export;
nom de la nième sortie analogique fixant directement la valeur du CNA.

function stdsad(n:longint; valeur:double):double;stdcall;export;
Elle permet la fixation de la nième sortie analogique à valeur. Pour la plupart des interfaces, la valeur sera en volts, mais on peut imaginer des systèmes plus complexes, où une sortie puisse commander une température, une vitesse de rotation, une intensité lumineuse, ou d'autres grandeurs pouvant varier.

function stdnsad(n:longint):pchar;stdcall;export;
C'est le nom de la  fonction précédente

function stdeb(n:longint):longint ;stdcall;export;
nième entrée binaire (ou entrée logique). Le résultat "vrai" correspondra à 1, et le résultat "faux" correspondra à zéro.

function stdneb(n:longint):pchar;stdcall;export;
C'est le nom de la nième entrée binaire

function stdsb(n:longint;valeur:longint):longint;stdcall;export;
fixation de la nième sortie binaire à "vrai" si valeur vaut 1, et à "faux" si valeur vaut zéro ; si tout s'est bien passé, elle renvoie valeur

function stdnsb(n:longint):pchar;stdcall;export;
nom de la nième sortie binaire.

function stdtitre : pchar;stdcall;export;
renvoie le titre de la DLL, que l'on pourra utiliser dans des boites de dialogue.

function stddetail : pchar ;stdcall;export;
renvoie le nom détaillé de la DLL, avec par exemple le nom de l'auteur, la date de révision, etc.


Fonctions moins importantes, facultatives, pour quelques emplois particuliers


Certains appareils nécessitent une « calibration » (aussi appelée « étalonnage »). C'est le cas des spectrophotomètres, où il faut régler le « blanc » ; c'est aussi le cas des pHmètres ou des oxymètres, où l'on doit souvent régler le zéro et la pente.
On peut utiliser des fonctions de calibration, permettant par exemple d'ouvrir une boite de dialogue permettant de saisir des valeurs, ou bien de calculer automatiquement ces valeurs dans certaines circonstances.


Fonction de calibration « simple », sans paramètres : cal


procedure cal;export;cdecl;export ;
begin
    InputQuery('Calibration', 'Mettez l''appareil au zéro', chreglage)   ;
end;
Cette fonction sans paramètres n'a donc pas de problème entre stdcall et cdecl, ni avec des paramètres de type entier ou de type double. Elle est donc très facile à utiliser.
Une bibliothèque dynamique appelant des boites de dialogue est plus grosse que celles qui n'en contiennent pas. A titre d'exemple, en Delphi 5, une DLL simple fait environ 30 ko, alors qu'une DLL avec une boite de dialogue fait 250 ko.


Ancienne fonction calibration, avec des paramètres de type chaîne de caractères


function stdcalibration(pch:pchar) : pchar ;stdcall;export;
Cette fonction provoque l'ouverture d'une boite de dialogue qui permet d'afficher et de faire les réglages. Dans la pratique, le contenu de la chaîne en paramètre n'a aucune importance : ce sont les boites de dialogue qui auront de l'importance, en modifiant les valeurs de certaines variables de la bibliothèque dynamique.

 

Les mêmes fonctions, avec d'autres types de paramètres, pour d'autres logiciels


Les fonctions précédentes suffisent pour les langages de programmation « normaux », mais certains logiciels peuvent utiliser des bibliothèques dynamiques à condition qu'elles aient une forme spécifique : paramètres uniquement de type « double », ou paramètres passés par référence au lieu d'être passés par valeur, paramètres uniquement de type numérique, sans possibilité de chaînes de caractères.... Ces logiciels sont parfois intéressants, et il serait dommage de ne pas pouvoir les utiliser. C'est pourquoi on peut faire des fonctions supplémentaires.


Certains langages de programmation exigent des bibliothèques dynamiques avec une ou quelques fonctions particulières. Le cas le plus fréquent est la nécessité d'une variable pointant vers une procédure déclenchée par le point d'entrée dans la bibliothèque dynamique (quand le programme charge la bibliothèque pour la première fois, ou bien quand le programme libère la bibliothèque...).


Le plus important est de faire le pilote pour les fonctions fondamentales (ea, nea, ead, nead, sa, nsa, sad, nsad, eb, neb, sb, nsb, detail, titre). Ensuite, il suffit de faire un copier/coller pour ces fonctions supplémentaires à partir des pilotes de démonstration disponibles en Basic (FreeBasic et PureBasic), Pascal (Delphi, FreePascal et Lazarus) ou en C/C++.
Ces logiciels peuvent avoir des exigences variées : paramètres avec des valeurs uniquement entières, ou uniquement réelles, ou uniquement de type « chaîne de caractères », ou paramètres de sortie transmis par référence (par variable)...


fonctions numériques dont tous les paramètres sont de type « double » : suffixe « double » au lieu de d


Utiles par exemple pour LibreOffice


Fonctions numériques dont tous les paramètres sont de type « chaîne » : suffixe « str »


Pour FNXBasic


Fonctions numériques dont un paramètre d'entrée est passé par référence : suffixe « ref »


Ces fonctions sont utiles pour le logiciel R, ainsi que pour Scilab.


Fonctions de nommage renvoyant le code ascii d'un caractère : suffixe « num »


Ces fonctions sont utiles pour le langage Go (Golang), Pari/GP et Freemat.


Fonctions numérique réelles renvoyant le code ascii d'un caractère de la chaîne de nombre : suffixe « numstrnum »


Procédure déclenchée par le point d'entrée dans une bibliothèque dynamique


Certains logiciels (PowerBasic) exigent que les bibliothèques dynamiques aient une procédure ou une fonction déclenchée au chargement de la bibliothèque, et éventuellement au déchargement. Dans la pratique, ces procédures ou fonctions n'ont pas d'utilité évidente.






Dernière modification le 10/03/2018

Site motorisé par ZitePLUS 0.9.1