[Enseignement] Dll acquisition (DAQ) labview -> scilab : autres DLL d'acquisition
Pierre DIEUMEGARD
pierre.dieumegard at ac-orleans-tours.fr
Jeu 1 Aou 09:55:47 CEST 2013
Je me permets d'intervenir dans cette discussion, même si ce n'est pas
le sujet principal.
Depuis de nombreuses années, je développe des pilotes de type
bibliothèques dynamiques (dll de windows, so de linux) pour des
appareils et interfaces de mesure, et des logiciels pour utiliser ces
pilotes. C'est disponible sur mon site http://sciencexp.free.fr.
Scilab ne peut pas utiliser directement ces pilotes, mais on peut faire
un adaptateur (une dll spécifique de Scilab, qui est capable d'échanger
avec les pilotes en question), voir
http://sciencexp.free.fr/sciencexp2011/documents/programmation/appilotes/appilotes_win_scilab.zip
En espérant que ça puisse être utile à quelqu'un
Pierre Dieumegard
La 01/08/2013 09:24, Thierry ROYANT skribis:
>
> Bonjour,
>
> Ok pour opérations sur des tableaux d'entiers.
>
> J'ai reconfiguré le prototype de la fonction AddTabint2 de la façon
> suivante (2 fonctions dans la bibliothèque) :
>
>
>
> #include "extcode.h"
>
> #pragma pack(push)
>
> #pragma pack(1)
>
>
>
> #ifdef __cplusplus
>
> extern "C" {
>
> #endif
>
> typedef struct {
>
> int32_t dimSize;
>
> int32_t CommandeNumRique[1];
>
> } Int32ArrayBase;
>
> typedef Int32ArrayBase **Int32Array;
>
>
>
> /*!
>
> * AddTabInt
>
> */
>
> void __cdecl AddTabInt(Int32Array *tabA, Int32Array *tabB,
>
> Int32Array *tabRes);
>
> /*!
>
> * AddTabInt2
>
> */
>
> void __cdecl AddTabInt2(int32_t tabA[], int32_t tabB[], int32_t tabRes[],
>
> int32_t *NBelts);
>
>
>
> long __cdecl LVDLLStatus(char *errStr, int errStrLen, void *module);
>
>
>
> /*
>
> * Memory Allocation/Resize/Deallocation APIs for type 'Int32Array'
>
> */
>
> Int32Array __cdecl AllocateInt32Array (int32 elmtCount);
>
> MgErr __cdecl ResizeInt32Array (Int32Array *hdlPtr, int32 elmtCount);
>
> MgErr __cdecl DeAllocateInt32Array (Int32Array *hdlPtr);
>
>
>
> #ifdef __cplusplus
>
> } // extern "C"
>
> #endif
>
>
>
> #pragma pack(pop)
>
>
>
> Le code scilab pour l'utiliser :
>
> a=[12,25,24]
>
> b=[2,41,9]
>
> nbelts=3
>
> NomsFonctions=['AddTabInt','AddTabInt2']
>
> link('F:\Prog LabVIEW\Dll
> labview\dll2\SharedLibTabIntAdd.dll',NomsFonctions,'c')
>
> res = call("AddTabInt2",a,1,"i",b,2,"i",nbelts,4,"i","out",[1,3],3,"i")
>
> disp(res)
>
>
>
> résultat :
>
> -->exec('C:\Documents\Scilab\TestDllAddTabInt2.sce', -1)
>
>
>
> 14. 66. 33.
>
>
>
> Au niveau de LabVIEW il faut définir des pointeurs sur les données.
>
> (si quelqu'un est intéressé je peux faire un petit document sur cette
> configuration)
>
>
>
> reste à tester les tableaux de double.
>
> Cordialement
>
> TR
>
>
>
>
>
> _______________________________________________
> enseignement mailing list
> enseignement at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/enseignement
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/enseignement/attachments/20130801/04493c52/attachment.htm>
Plus d'informations sur la liste de diffusion enseignement