Interface logicielle PC pour cartes NSI -...

48
www.nsi.fr Interface logicielle PC pour cartes NSI Guide utilisateur 30/08/2013 DUT-MUX-0219 /V1.2 Auteur : Cédric Rousset Approbation : Christian Andagnotto

Transcript of Interface logicielle PC pour cartes NSI -...

Page 1: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

www.nsi.fr

Interface logicielle PC pour cartes NSI

Guide utilisateur

30/08/2013 DUT-MUX-0219 /V1.2

Auteur : Cédric Rousset

Approbation : Christian Andagnotto

Page 2: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Page laissée intentionnellement blanche

Page 3: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 1 -

I. Contenu

I. CONTENU .............................................................................................................................. 1

II. AVERTISSEMENTS ............................................................................................................ 3

III. BUT DU DOCUMENT ....................................................................................................... 4

IV. PRESENTATION GENERALE ........................................................................................ 5

IV.1 Architecture ................................................................................................................... 5

IV.2 Systèmes supportés ....................................................................................................... 6

IV.3 Cartes concernées .......................................................................................................... 6

V. MISE EN ŒUVRE DE L'INTERFACE LOGICIELLE .................................................. 7

V.1 Présentation .................................................................................................................... 7

V.2 Composition de l'interface logicielle .............................................................................. 7

V.2.1 NSIMISC.DLL .................................................................................................. 7

V.2.2 NSIMISC.LIB .................................................................................................... 8

V.2.3 Fichiers .H .......................................................................................................... 8

V.2.4 Programme de test ............................................................................................. 8

V.2.5 Programmes d’exemple ..................................................................................... 9

V.2.6 Fichiers d’installation ........................................................................................ 9

V.2.7 Pilotes de périphériques ..................................................................................... 9

V.3 Liste des fonctions de l'interface logicielle .................................................................... 10

V.4 Séquences d'appel des requêtes ...................................................................................... 11

V.4.1 Tableau récapitulatif .......................................................................................... 12

V.5 Modes du périphérique (non disponible) ....................................................................... 13

V.5.1 Mise en veille ..................................................................................................... 13

V.5.2 Réveil ................................................................................................................. 14

VI. DESCRIPTION DES TYPES ............................................................................................. 15

VI.1 t_MiscDeviceInfo ......................................................................................................... 15

VI.2 t_MiscDeviceMode ....................................................................................................... 16

VI.3 t_MiscInputInfo ............................................................................................................ 16

VII. DESCRIPTION DES FONCTIONS DE L'INTERFACE .............................................. 17

VII.1 Nsi_GetAPIinfo ........................................................................................................... 17

VII.2 Nsi_ExitDrv ................................................................................................................. 18

VII.3 Nsi_GetDeviceInfo ...................................................................................................... 19

VII.4 Nsi_GetDeviceMode (non disponible) ........................................................................ 20

VII.5 Nsi_InitDrv .................................................................................................................. 21

VII.6 Nsi_ReadAna ............................................................................................................... 22

VII.7 Nsi_ReadIo .................................................................................................................. 23

VII.8 Nsi_ReadIoEx .............................................................................................................. 24

VII.9 Nsi_SetDeviceMode (non disponible)......................................................................... 25

VII.10 Nsi_WriteIo ............................................................................................................... 26

VIII. TRUCS ET ASTUCES ..................................................................................................... 27

VIII.1 Dépanner une application ........................................................................................... 27

VIII.2 Utiliser un compilateur non Microsoft ....................................................................... 27

VIII.2.1 Linkage de l’application avec la DLL NSIMISC .......................................... 27

Page 4: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 2 - DUT-MUX-0219 /V1.2 août 2013

VIII.2.2 Alignement des structures de données ........................................................... 27

IX. INSTALLATION DE L'INTERFACE LOGICIELLE ................................................... 29

IX.1 Installer un périphérique USB ...................................................................................... 30

IX.1.1 Sous Windows 98/Me ....................................................................................... 30

IX.1.2 Sous Windows 2000 ......................................................................................... 31

IX.1.3 Sous Windows XP ............................................................................................ 32

IX.2 Dépannage de l’installation ........................................................................................... 33

X. DESINSTALLATION DE L’INTERFACE LOGICIELLE ............................................. 34

X.1 Windows 95/98/Me ........................................................................................................ 34

X.2 Windows 2000................................................................................................................ 35

X.3 Windows XP .................................................................................................................. 35

XI. ANNEXE : PROTOTYPES DES FONCTIONS............................................................... 36

XII. ANNEXE : FONCTIONS DE L'API WIN32 .................................................................. 37

XIII. ANNEXE : PROGRAMME D'EXEMPLE .................................................................... 39

XIII.1 Déclarations ................................................................................................................ 39

XIII.2 Initialisations .............................................................................................................. 40

XIII.3 Gestion des Entrées/Sorties ........................................................................................ 43

XIII.4 Gestion des modes de fonctionnement ....................................................................... 44

XIII.5 Arrêt du programme ................................................................................................... 45

Page 5: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 3 -

II. Avertissements

Les éléments contenus dans ce document sont fournis à titre d'information. Ils pourront faire

l'objet de modifications sans préavis et ne sauraient en aucune manière engager la société

anonyme NSI.

La société anonyme NSI ne saurait en aucun cas être tenue pour responsable d'une quelconque

erreur contenue dans ce document, ainsi que des éventuelles conséquences pouvant en

résulter.

Aucune partie de ce document ne peut être reproduite à d'autres fins que l'usage personnel de

l'acheteur sans la permission expresse et écrite de la société anonyme NSI.

Page 6: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 4 - DUT-MUX-0219 /V1.2 août 2013

III. But du document

Le but de ce document est de donner à l'utilisateur toutes les informations nécessaires à

l'utilisation de l'interface logicielle pour les cartes NSI.

Page 7: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 5 -

IV. Présentation générale

L'interface logicielle générique permet aux utilisateurs de réaliser leurs propres applications

pour Windows en utilisant les cartes NSI au travers d'une interface simple et rapide à mettre

en œuvre.

L'interface logicielle générique se présente sous la forme d'une série de fonctions dont

l'utilisation est décrite dans ce document. Ces fonctions sont exécutées par une DLL qu'une ou

plusieurs applications peuvent appeler simultanément. Cette DLL est identique pour toutes les

plates formes Windows supportées.

L'interface logicielle permet à l'utilisateur de faire abstraction aussi bien du système

d'exploitation que du type de carte utilisé. Voir les paragraphes suivants pour connaître les

caractéristiques des différentes cartes et les systèmes d’exploitations supportées par cette

interface logicielle. L’interface logicielle peut gérer plusieurs cartes simultanément.

I V . 1 A r c h i t e c t u r e

Plate-forme : Windows 98, Me, 2000, XP

Pilotes de périphérique

NSI

ISA-PCMCIA-PCI-USB

Appli

cati

ons

Win

32

Sys

tèm

e M

até

riel

MUXy box

MUXy box 2

Pilote

NSIU2KBO ou NSIU2KUD

NSIMISC.DLL

Cartes NSI

Applications Win32 Application

Win32

NSICAN, NSIDIAG, …

Page 8: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 6 - DUT-MUX-0219 /V1.2 août 2013

I V . 2 S y s t è m e s s u p p o r t é s

L’interface logicielle fonctionne pour des ordinateurs de type PC fonctionnant avec les

systèmes d’exploitation suivants :

Windows XP

Windows Vista 32 bits

Windows Vista 64 bits (MUXybox2 uniquement)

Windows Seven 32 bits

Windows Seven 64 bits (MUXybox2 uniquement)

I V . 3 C a r t e s c o n c e r n é e s

Référence NSI Désignation Bus Nb

Canaux

Description

KT007078 MUXy box USB 2 MUXy box

KT009498 MUXy box 2 USB 2 MUXy box 2

Page 9: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 7 -

V. Mise en œuvre de l'interface logicielle

V . 1 P r é s e n t a t i o n

Les fonctions de l'interface logicielle permettent à des programmeurs de réaliser des

applications pour Windows utilisant les cartes NSI. Ces fonctions permettent d'exécuter des

fonctionnalités indépendantes des réseaux CAN, VAN, K, LIN ou autres, comme la gestion

d'entrées/sorties ou tout autre fonction propre au périphérique piloté. Toutes les fonctions de

l’interface logicielle sont définies en Langage C dans la librairie : NSIMISC.DLL.

L’interface logicielle permet d’utiliser toutes les cartes NSI énumérées dans le paragraphe

Cartes supportées.

Pour utiliser un périphérique, une application doit premièrement l’ouvrir (Nsi_InitDrv). Lors

de cette ouverture, un identificateur unique est retourné par l'interface. Cet identificateur - le

"Handle" – doit ensuite être utilisé par l'application lors de chaque appel aux fonctions de

l'interface pour identifier ce canal. Un canal ne peut pas être ouvert par une autre application

tant qu'il n'a pas été refermé (Nsi_ExitDrv).

V . 2 C o m p o s i t i o n d e l ' i n t e r f a c e l o g i c i e l l e

Les chemins des répertoires indiqués sont relatifs au répertoire \Pilotes PC – PC drivers du

CD-ROM intitulé « CD-ROM Livraison NSI ».

V.2.1 NSIMISC.DLL

Le fichier NSIMISC.DLL (Dynamic Link Library) exporte toutes les fonctions de l'interface

logicielle. Les applications doivent appeler ce fichier DLL pour utiliser l'interface logicielle.

La DLL NSIMISC communique les ordres de l'application vers la carte NSI au travers d'un

pilote de périphérique. Pour lier une application avec le fichier DLL, le compilateur utilise

généralement un fichier LIB qui définit les points d’entrées de chaque fonction exportée. Les

prototypes des fonctions sont fournis dans plusieurs fichiers H décrits ci-dessous.

Le fichier NSIMISC.DLL est copié par le processus d'installation dans le répertoire System

ou System32 d'où il est accessible par toutes les applications. Il n’est pas nécessaire de copier

ce fichier à un autre emplacement. Se référer au chapitre Installation de l’interface logicielle

pour plus de détails.

Une application cliente pourra appeler simultanément l’ensemble des interfaces logicielles.

Page 10: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 8 - DUT-MUX-0219 /V1.2 août 2013

V.2.2 NSIMISC.LIB

Le fichier NSIMISC.LIB permet de lier une application avec NSIMISC.DLL lors de la

construction d'une application. Le fichier NSIMISC.LIB livré dans le répertoire

MISCPC2000\Include est spécifique aux environnements de développement Microsoft. En

cas d’incompatibilité, ce fichier peut être généré pour d'autres outils de développement grâce

aux fichier DEF ou DLL. Le fichier LIB doit être copié dans le répertoire du projet de

l'application et inséré dans le projet comme indiqué dans la documentation de l'outil de

développement utilisé. Voir le paragraphe Utiliser un compilateur non Microsoft dans le

chapitre Trucs et Astuces.

V.2.3 Fichiers .H

Les fichiers .H livrés dans le répertoire MISCPC2000\Include du CD-ROM définissent en

langage C les prototypes des fonctions de l'interface logicielle. Deux fichiers différents

séparent la déclaration des structures et des constantes (MISCDEF.H) de la déclaration des

prototypes des fonctions (MISCPRO.H). Ces fichiers doivent être copiés dans le répertoire

du projet de l'application et inclus dans le code source par la directive suivante :

#include "miscdef.h"

#include "miscpro.h"

Attention : Les fichiers H de l’interface logicielle contiennent des directives de compilation

dont la syntaxe est spécifique aux outils Microsoft. Celles-ci doivent impérativement être

modifiés en fonction du compilateur utilisé. Voir le paragraphe Utiliser un compilateur non

Microsoft dans le chapitre Trucs et Astuces.

V.2.4 Programme de test

Un programme de test (MISCTEST.EXE) est livré dans le répertoire MISCPC2000EX\Test

du CD-ROM. Ce programme permet de vérifier que le pilote de la carte et la DLL sont

correctement installés et qu'une carte fonctionne. Il est possible d’ouvrir ce programme

plusieurs fois et de l’utiliser simultanément sur des périphériques différents.

Page 11: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 9 -

V.2.5 Programmes d’exemple

Un programme d’exemple est livré dans le répertoire MISCPC2000\Samples du CD-ROM.

V.2.6 Fichiers d’installation

Les fichiers d'installation (.INF et .BAT) permettent d'installer les pilotes de périphérique en

fonction du système d'exploitation. Se référer au chapitre Installation de l’interface logicielle

pour plus de détails sur l’utilisation de ces fichiers.

V.2.7 Pilotes de périphériques

Les fichiers pilotes de périphérique nécessaires sont automatiquement copiés lors de

l’installation de l’interface logicielle. Les applications ne doivent normalement pas accéder

directement à ces fichiers :

NSIU2KBO.SYS : Pilote Windows 98/Me/XP/2000 pour MUXy box

NSIU2KUD.SYS : Pilote Windows XP/Vista/Seven pour MUXy box2

Page 12: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 10 - DUT-MUX-0219 /V1.2 août 2013

V . 3 L i s t e d e s f o n c t i o n s d e l ' i n t e r f a c e l o g i c i e l l e

Nom Fonction

Configuration, initialisation

Nsi_EnumCards Enumération des périphériques NSI détectées et de leur propriétés

Nsi_InitDrv Ouverture d'un canal.

Nsi_GetDeviceInfo Informations sur le périphérique.

Nsi_GetAPIinfo Retourne les versions des couches logicielles

Entrée / Sorties

Nsi_WriteIo Ecriture d’entrées/sorties

Nsi_ReadIo Lecture d’entrées/sorties

Nsi_ReadIoEx Lecture d’entrées/sorties avancée

Nsi_ReadAna Lecture d’entrées ANA (MUXybox2 uniquement)

Divers

Nsi_SetDeviceMode Place le périphérique dans un mode particulier

Nsi_GetDeviceMode Récupère le mode dans lequel se trouve le périphérique.

Sortie du driver

Nsi_ExitDrv Arrêt du programme et restitution de l'environnement.

Page 13: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 11 -

V . 4 S é q u e n c e s d ' a p p e l d e s r e q u ê t e s

L’appel de ces fonctions est impératif et l’ordre doit être respecté.

L’appel de ces fonctions est facultatif ; il dépend de l’application.

Application utilisateur

Arr

êt d

e la

com

munic

ati

on

F

onct

ions

spéc

ifiq

ues

In

itia

lisa

tion e

t co

nfi

gura

tion

Nsi_InitDrv

Nsi_EnumCards

Nsi_ExitDrv

Page 14: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 12 - DUT-MUX-0219 /V1.2 août 2013

V.4.1 Tableau récapitulatif

L'appel des fonctions de l'interface doit respecter un certain ordre. Si la séquence d'appel n'est

pas respecté, l'interface logicielle retourne le code d'erreur _SEQ_ERR (erreur de séquence).

Etat

Requêtes

INIT

DRV OK

Nsi_EnumCards X X

Nsi_InitDrv X

Nsi_GetAPIinfo X X

Nsi_GetDeviceInfo X

Nsi_WriteIo X

Nsi_ReadIo X

Nsi_ReadIoEx X

Nsi_ReadAna X

Nsi_SetDeviceMode X

Nsi_GetDeviceMode

X

Nsi_ExitDrv X

Le tableau suivant précise quelles requêtes provoquent les changements d'état de l'interface.

Le code retour doit indiquer _OK pour que le changement ait eu lieu.

Etats Requêtes de transition REPOS Nsi_ExitDrv INIT_DRV_OK Nsi_InitDrv

Page 15: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 13 -

V . 5 M o d e s d u p é r i p h é r i q u e ( n o n d i s p o n i b l e )

V.5.1 Mise en veille

MUXy box possède un mode de basse consommation (Low Power) permettant de réduire la

consommation; ce mode est activé par la commande SetDeviceMode(Low_Power) qui

autorise le passage de l'interface en basse consommation suivant le diagramme d'état ci-

dessous (figure 1.1)

Les conditions de réveil, définies plus en détail au §5.2, sont les suivantes :

une activité est détectée sur les bus CAN/LIN ou sur une entrée logique (réveil local)

la liaison USB hôte est connectée (réveil commandé)

un réveil programmé par l'horloge interne est déclenché (réveil autonôme)

Mode Normal

automaintien ON

consommation normale

Mode Low Power

automaintien OFF

En veille

basse

consommation

Réveillé

consommation

normale

SetDeviceMode (LOW_POWER)

/

Désactiver Automaintien Alimentation

SetDeviceMode (MODE_NORMAL)

/

Activer Automaintien Alimentation

Not (Conditions de réveil)

Conditions de réveil

Page 16: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 14 - DUT-MUX-0219 /V1.2 août 2013

V.5.2 Réveil

Lorsque MUXy box est en état de veille basse consommation (mode "Low Power"), les

évènements suivants provoquent la ré-alimentation de l'interface :

Evènement de réveil Type de réveil

1 Reconnexion de la liaison USB avec le PC hôte Commandé (+5V USB)

2 Message de réveil sur le bus CAN0 "high speed" Local (signal INH du driver TJA1041 canal 0)

3 Message de réveil sur le bus CAN0 "low speed" Local (signal INH du driver TJA1054 canal 0)

4 Message de réveil sur le bus CAN1 "high speed" Local (signal INH du driver TJA1041 canal 1)

5 Message de réveil sur le bus CAN1 "low speed" Local (signal INH du driver TJA1041 canal 1)

6 Message de réveil sur le bus LIN Local (signal INH du driver TJA1020)

7 Entrée logique TOR 1 à l'état haut Local (détection de seuil)

8 Entrée logique TOR 2 à l'état haut Local (détection de seuil)

9 Alarme programmable (réserve) Autonome (signal d' IT de l'horloge temps réel)

10 Demande de réveil de la carte fille (réserve) Autonome (signal d' IT du bus d'extension)

Si l'une au moins de ces conditions de réveil est vraie, MUXy box passe alors dans un état

transitoire de réveil (état réveillé de l'automate illustré par la fig 1.1) avec retour à la

consommation normale.

Pour éviter les boucles de transitions en veille / réveillé conduisant à des réveils intempestifs,

le paramètre Sleep_delay de la commande SetDeviceMode(LOW_POWER) permet à

l'utilisateur de spécifier un délai minimal d'inactivité avant que l'interface ne retourne à l'état

de veille basse consommation.

L'automate détaillé régissant le Mode Low Power est illustré par le diagramme d'état suivant :

Mode Low Power

Attente délai de

mise en veille

Réveillé

consommation

normale

Not (Conditions de réveil)

/

Démarrer Délai

(Sleep_delay)

Conditions de réveil

En veille

basse

consommation Fin du délai

et Not (Conditions de réveil)

/

Mise en veille des interfaces Hard

Page 17: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 15 -

VI. Description des types

Notation : pour les définitions de types (typedef), le préfixe t_ est utilisé.

V I . 1 t _ M i s c D e v i c e I n f o

La structure t_MiscDeviceInfo est retournée par la fonction Nsi_GetDeviceInfo. Elle permet

d'obtenir des informations sur un périphérique.

typedef struct{

unsigned long deviceType; // Type de périphérique

union {

struct USB{

short vendorID; //VendorID

short deviceID; //DeviceID

char productName[0x40]; //Nom produit

char manufacturerName[0x40]; //Fabricant

char serialNumber[0x80]; //N° de série

short firmwareVersion; //Version code

ULONG boardType; //Type de carte

ULONG reserved2; //Réservé

ULONG hardwareVersion; //Version carte

};

struct PCI{

ULONG IOBaseAddress; //Adresse IO

ULONG memoryBaseAddress[3]; //Mémoire base

ULONG IRQLineNumber; //N° IRQ

ULONG boardType; //Type de carte

char cardNameString[80]; //Nom de carte

ULONG reserved1; //Réservé

ULONG reserved2; //Réservé

};

struct ISA{

ULONG IOBaseAddress; //Adresse IO

ULONG IRQLineNumber; //N° IRQ

ULONG boardType; //Type de carte

char cardNameString[80]; //Nom du canal

ULONG reserved1; //Réservé

ULONG reserved2; //Réservé

};

char reserved[512];

}

} t_MiscDeviceInfo;

deviceType : Type de périphérique/pilote utilisé.

Notes sur différents champs apparaissant dans les structures :

firmwareVersion: Version du code embarqué.

hardwareVersion: Version de la carte. (Non supporté pour MUXy box)

Note: Les versions sont retournées sous la forme: (version majeur x 100) + version mineur.

Page 18: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 16 - DUT-MUX-0219 /V1.2 août 2013

Exemple : 102 s'interprète comme la version 1.02

boardType : Type de carte utilisée.

_MUXYBOX : MUXy box standard

_MUXYBOX2 : MUXy box2 standard

V I . 2 t _ M i s c D e v i c e M o d e

Enumération des différents mode du périphérique.

typedef enum

{

_UNKNOWN = 0,

_NORMAL = 1,

_LOW_POWER = 2,

} t_NsiDeviceMode;

V I . 3 t _ M i s c I n p u t I n f o

Informations sur les entrées.

typedef struct{

unsigned char InputValue;

//Valeur de l'entrée (0,1)

unsigned long InputChange;

//Date du dernier changement d'état (unité 100us)

unsigned char reserved[128];

} t_MISCinputInfo;

Page 19: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 17 -

VII. Description des fonctions de l'interface

V I I . 1 N s i _ G e t A P I i n f o

Retourne les informations concernant l'interface logicielle : version du pilote de la carte

utilisée et version de la DLL NSIMISC.

short Nsi_GetAPIinfo( HANDLE hdrv,

short* DLLversion,

short* DRVversion,

unsigned long* reserved )

Paramètres :

hdrv : Identificateur du canal retourné par la fonction Nsi_InitDrv.

DLLversion: Version de la DLL NSIMISC.DLL.

DRVversion: Version du pilote de périphérique de la carte utilisée.

reserved : Réservé

Note: Les versions sont retournées sous la forme: (version majeur x 100) + version mineur.

Exemple : 102 s'interprète comme la version 1.02

Code retour :

_OK : Versions retournées correctement.

_SEQ_ERR : Séquence invalide.

_INVALID_OP : La valeur de hdrv est invalide.

_PARAM_ERR : Paramètre invalide.

Page 20: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 18 - DUT-MUX-0219 /V1.2 août 2013

V I I . 2 N s i _ E x i t D r v

Désactive le contrôleur de protocole et restitue l'environnement initial du canal. Ne pas

oublier d'appeler cette requête en fin d'utilisation d'un périphérique. En effet, tant qu'un canal

n'a pas été libéré par cette fonction, d'autres applications ne peuvent pas l'utiliser.

short Nsi_ExitDrv( HANDLE hdrv );

Paramètres :

hdrv : Identificateur du canal retourné par la fonction Nsi_InitDrv.

Code retour :

_OK : Canal libéré.

_SEQ_ERR : Séquence invalide.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Pas d'acquittement du périphérique USB.

Page 21: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 19 -

V I I . 3 N s i _ G e t D e v i c e I n f o

Retourne diverses informations sur le périphérique.

short Nsi_GetDeviceInfo( HANDLE hdrv,

t_MISCdeviceInfo* deviceInfo );

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce paramètre

identifie le canal (carte) concerné par cette fonction.

deviceInfo : Pointeur sur une structure t_MISCdeviceInfo.

Code retour :

_OK : Résultat correct.

_INVALID_OP : La valeur de hdrv est invalide.

_PARAM_ERR : Paramètre invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB.

Page 22: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 20 - DUT-MUX-0219 /V1.2 août 2013

V I I . 4 N s i _ G e t D e v i c e M o d e ( n o n d i s p o n i b l e )

Récupère le mode actuel du périphérique.

short Nsi_GetDeviceMode( HANDLE hdrv,

t_MISCdeviceMode* pMode );

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce

paramètre identifie le canal (carte) concerné par cette fonction.

pMode: Mode du périphérique.

_NORMAL : Mode normal.

_LOW_POWER : Mode basse consommation.

Code retour :

_OK : Configuration réussie.

_SEQ_ERR : Séquence invalide.

_PARAM_ERR : Paramètre invalide.

_BOARD_ERR Type de carte ne supportant pas cette fonction.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_CHIP_ERR: Erreur hardware.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB

Page 23: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 21 -

V I I . 5 N s i _ I n i t D r v

Ouverture d'un canal correspondant à un périphérique détecté. Cette fonction doit être appelée

avant toute autre pour accéder à un canal particulier. Il est conseillé d'utiliser la fonction

Nsi_EnumCards pour déterminer les périphériques disponibles. La valeur retournée dans la

variable hDrv en échange du numéro de périphérique cno permet d’identifier ce canal pour

toutes les opérations suivantes. Un même canal ne peut pas être ouvert simultanément par

deux applications. Un canal ouvert doit toujours être libéré après utilisation par la fonction

Nsi_ExitDrv.

short Nsi_InitDrv( short cno,

HANDLE* hDrv );

Paramètres :

cno : Index du périphérique a ouvrir. Cette valeur correspond à la position du

périphérique dans le tableau retourné par la fonction Nsi_EnumCards. Le

premier périphérique détecté correspond à la valeur cno = 0.

hDrv : Pointeur sur une variable de type HANDLE (void*). Au retour de la fonction,

cette variable est initialisée avec l'identificateur du canal. Cette valeur doit être

ensuite passée à toutes les autres fonctions de l'interface pour agir sur ce canal

particulier.

Code retour :

_OK : Canal ouvert.

_INVALID_OP : La valeur cno est invalide ou le canal est déjà utilisé.

_OPENING_DRV_ERR : Problème d'accès au pilote de la carte. Vérifier l'installation du

pilote de périphérique.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Pas d'acquittement du périphérique USB.

Page 24: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 22 - DUT-MUX-0219 /V1.2 août 2013

V I I . 6 N s i _ R e a d A n a

Permet de récupérer l'état des entrées analogiques présente sur la carte.

short Nsi_ReadAna( HANDLE hdrv,

unsigned short pAnaInputInfo[4],

);

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce

paramètre identifie le canal (carte) concerné par cette fonction.

pAnaInputInfo : Adresse du tableau de unsigned short. Il n'est pas nécessaire de passer un

tableau de plus de 4 unsigned short.

pAnaInputInfo[0] : Valeur en point ADC de la tension d’alimentation (conversion en Volt

par la formule PT_ADC*5.22*0.00488=Volt )

pAnaInputInfo[1] : reserved

pAnaInputInfo[2] : reserved

pAnaInputInfo[3] : Valeur en point ADC de la tension présente sur le bornier de la

MUXybox2 (conversion en Volt par la formule

PT_ADC*5.22*0.00488=Volt )

Code retour :

_OK : Configuration réussie.

_SEQ_ERR : Séquence invalide.

_PARAM_ERR : Paramètre invalide.

_BOARD_ERR Type de carte ne supportant pas cette fonction.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_CHIP_ERR: Erreur hardware.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB

Page 25: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 23 -

V I I . 7 N s i _ R e a d I o

Permet de récupérer l'état d'entrées logiques présentes sur la carte.

short Nsi_ReadIo( HANDLE hdrv,

unsigned long dwInputValues,

unsigned long reserved );

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce

paramètre identifie le canal (carte) concerné par cette fonction.

dwInputValues : Champs de bits représentant les valeurs des entrées à lire.

Bit0 (LSB) = Entrée 1

Bit1 = Entrée 2

reserved : Champs réservé.

Code retour :

_OK : Configuration réussie.

_SEQ_ERR : Séquence invalide.

_PARAM_ERR : Paramètre invalide.

_BOARD_ERR Type de carte ne supportant pas cette fonction.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_CHIP_ERR: Erreur hardware.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB

Page 26: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 24 - DUT-MUX-0219 /V1.2 août 2013

V I I . 8 N s i _ R e a d I o E x

Permet de récupérer l'état d'entrées logiques présentes sur la carte ainsi que la date de leur

dernier changement d'état.

short Nsi_ReadIoEx( HANDLE hdrv,

t_MISCinputInfo* pInputInfo,

unsigned long dwInputInfoLen,

unsigned long reserved );

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce

paramètre identifie le canal (carte) concerné par cette fonction.

pInputInfo : Adresse du tableau de structure t_MISCinputInfo. Il n'est pas nécessaire

de passer un tableau de plus de NB_MAX_INPUTS (2).

dwInputInputLen: Longueur du tableau pInputInfo.

reserved : Champs réservé.

Code retour :

_OK : Configuration réussie.

_SEQ_ERR : Séquence invalide.

_PARAM_ERR : Paramètre invalide.

_BOARD_ERR Type de carte ne supportant pas cette fonction.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_CHIP_ERR: Erreur hardware.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB

Page 27: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 25 -

V I I . 9 N s i _ S e t D e v i c e M o d e ( n o n d i s p o n i b l e )

Permet de placer le périphérique dans un mode particulier.

short Nsi_SetDeviceMode( HANDLE hdrv,

t_MISCdeviceMode mode,

unsigned long dwParam );

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce

paramètre identifie le canal (carte) concerné par cette fonction.

mode: Mode du périphérique.

_NORMAL : Mode normal.

_LOW_POWER : Mode basse consommation.

Code retour :

_OK : Configuration réussie.

_SEQ_ERR : Séquence invalide.

_PARAM_ERR : Paramètre invalide.

_BOARD_ERR Type de carte ne supportant pas cette fonction.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_CHIP_ERR: Erreur hardware.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB

Page 28: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 26 - DUT-MUX-0219 /V1.2 août 2013

V I I . 1 0 N s i _ W r i t e I o

Permet de positionner l'état de sorties logiques présentes sur la carte.

short Nsi_WriteIo( HANDLE hdrv,

unsigned long dwOutputValues,

unsigned long reserved );

Paramètres :

hdrv : Handle du périphérique retourné par la fonction Nsi_InitDrv. Ce

paramètre identifie le canal (carte) concerné par cette fonction.

dwOutputValues : Champs de bits représentant les valeurs des sorties à positionner.

Bit0 (LSB) = Sortie 1

Bit1 = Sortie 2

reserved : Champs réservé.

Code retour :

_OK : Configuration réussie.

_SEQ_ERR : Séquence invalide.

_PARAM_ERR : Paramètre invalide.

_BOARD_ERR Type de carte ne supportant pas cette fonction.

_INVALID_OP : La valeur de hdrv est invalide.

_DRV_PARAM_ERR : Problème d'accès au pilote. Vérifier l'installation de la carte.

_CHIP_ERR: Erreur hardware.

_USB_ERR : Erreur de transmission USB.

_BOARD_TIMEOUT: Erreur d'acquittement USB

Page 29: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 27 -

VIII. Trucs et astuces

V I I I . 1 D é p a n n e r u n e a p p l i c a t i o n

La fonction Nsi_InitDrv ne fonctionne pas :

Il est impossible d'obtenir le HANDLE d'un canal :

Appeler la fonction Nsi_EnumCards pour connaître le nombre de canaux disponibles et

vérifier que le canal désiré (cno) n'est pas déjà utilisé.

Vérifier que la carte est correctement installée dans le Gestionnaire des Périphériques.

V I I I . 2 U t i l i s e r u n c o m p i l a t e u r n o n M i c r o s o f t

VIII.2.1 Linkage de l’application avec la DLL NSIMISC

Le fichier NSIMISC.LIB permet à l’outil de développement de lier l’application avec le

fichier NSIMISC.DLL. Ce fichier est spécifique au compilateur Microsoft qui a servi à

réaliser le fichier DLL. Il n’est pas compatible avec d’autres environnements de

développement. Voici différentes solutions à ce problème :

1. Utiliser le fichier DEF ou DLL à la place du fichier LIB dans le projet. Ceci est possible

avec les outils C++ Borland ou Labview.

2. Régénérer le fichier LIB à partir du fichier DLL ou du fichier DEF grâce à un utilitaire

livré avec l’outil de développement utilisé.

Exemple : Les outils Borland C++ sont livrés avec un programme IMPLIB.EXE qui

permet de générer un fichier LIB au format Borland à partir du fichier NSIMISC.DEF.

3. Obtenir les points d’entrée des fonctions de la DLL par la fonction GetProcAddress.

Celle-ci retourne un pointeur sur chaque fonction de la DLL à partir de son nom. Dans ce

cas, le fichier MISCPRO.H doit être modifié.

VIII.2.2 Alignement des structures de données

Les directives de compilation d’alignement des structures de données et de convention

d’appel des fonctions sont spécifiques aux compilateurs Microsoft. Il faut les modifier en

fonction du compilateur utilisé.

Alignement des structures sur 2 octets dans le fichier MISCDEF.H. Si cet alignement

n’est pas respecté, l’interface est inutilisable. Le choix de cet alignement peut être spécifié

par une option générale du compilateur ou par une directive de compilation dans le

code (recommandé) :

Page 30: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 28 - DUT-MUX-0219 /V1.2 août 2013

Microsoft : #pragma pack(push,2)

// Définition des structures

#pragma pack(pop)

Borland : #pragma option –a2

// Définition des structures

#pragma option –a-

Note : Afin d’aligner les types énumérés (enum) sur des int il est aussi nécessaire sous

Borland d’ajouter la directive de compilation suivante :

#pragma option –b

Déclaration des fonctions de l’interface comme étant importées d’une DLL avec la

convention d’appel Microsoft standard (stdcall). Cette déclaration est faite par le symbole

_MISCAPI défini dans le fichier MISCPRO.H :

Microsoft #define _MISCAPI __declspec(dllimport) __stdcall

Borland : #define _MISCAPI _import _stdcall

Page 31: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 29 -

IX. Installation de l'interface logicielle

L’installation de l’interface logicielle permet au système de configurer la ou les cartes à

utiliser et de recopier les fichiers du pilote et de la DLL sur le disque dur du PC. L’installation

doit être effectuée dans les deux cas suivants :

1. Première installation de l’interface sur un PC. Si la carte est déjà utilisée par une

autre application ou une version précédente de l’interface logicielle, celle-ci doit être

désinstallée avant de poursuivre.

2. Installation d’une nouvelle carte NSI. L’interface logicielle est capable de gérer

plusieurs cartes de types différents dans un même PC.

Cette annexe permet d’effectuer les installations des cartes suivantes :

- MUXy box

pour les systèmes suivants :

- Windows 98, Me,

- Windows 2000, XP.

Les chemins des répertoires indiqués dans la procédure d’installation de chaque carte pour

chaque système sont relatifs au répertoire \Pilotes PC – PC drivers du CD-ROM.

Page 32: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 30 - DUT-MUX-0219 /V1.2 août 2013

I X . 1 I n s t a l l e r u n p é r i p h é r i q u e U S B

Pour installer l’interface logicielle pour la première fois avec un périphérique USB, il faut

suivre la procédure décrite dans ce paragraphe. L’installation dépend du système

d’exploitation utilisé. Se reporter au paragraphe correspondant.

● Fermer toutes les applications en cours.

● Brancher le câble USB entre le PC et le périphérique.

IX.1.1 Sous Windows 98/Me

Windows indique qu'il vient de détecter un nouveau périphérique USB.

L'assistant d'installation de nouveau périphérique démarre.

Insérer le CD-ROM « CD Livraison NSI » dans le lecteur du PC.

Cliquer sur le bouton Suivant.

Sélectionner l'option "Rechercher le meilleur pilote…".

La fenêtre suivante apparaît :

Cocher uniquement la ligne "Définir un emplacement" et cliquer sur le bouton Parcourir

Sélectionner le répertoire MISCPC2000\Win9x puis cliquer sur Suivant.

Windows cherche et indique qu'il a trouvé le pilote USB.

Cliquer sur Suivant.

Windows copie les fichiers sur le disque dur puis indique qu'il a terminé l'installation.

Cliquer sur Terminer.

Windows peut demander de redémarrer le PC, accepter.

L'interface logicielle est prête à être utilisée.

Vérifier que la carte fonctionne en démarrant le programme MISCTEST.EXE qui est dans le

répertoire MISCPC2000\Test du CD-ROM. En cas de problème, consulter le paragraphe

«Dépannage de l’installation».

Page 33: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 31 -

IX.1.2 Sous Windows 2000

Windows indique qu'il vient de détecter un nouveau périphérique USB.

L'assistant d'installation de nouveau périphérique démarre.

Cliquer sur le bouton "Suivant".

Sélectionner l'option "Rechercher un pilote approprié pour mon périphérique".

Cocher uniquement la ligne "Emplacement spécifique" puis cliquer sur Suivant.

Sélectionner le bouton Parcourir et sélectionner le répertoire MISCPC2000\Win2k.

Cliquer sur Ok.

Windows 2000 recherche le pilote et indique qu'il a trouvé un pilote pour le périphérique.

Cliquer sur Suivant.

Windows 2000 recopie les fichiers du pilote sur le disque dur.

Lorsque la copie est finie, cliquer sur Terminer.

L'interface logicielle est prête à être utilisée.

Vérifier que la carte fonctionne en démarrant le programme MISCTEST.EXE qui est dans le

répertoire MISCPC2000\Test du CD-ROM. En cas de problème, consulter le paragraphe

«Dépannage de l’installation».

Page 34: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 32 - DUT-MUX-0219 /V1.2 août 2013

IX.1.3 Sous Windows XP

Windows indique qu'il vient de détecter un nouveau périphérique USB.

L'assistant d'installation de nouveau périphérique démarre.

La fenêtre suivante apparaît :

Sélectionner l'option "Installer à partir d'une liste ou d'un emplacement spécifié".

Cliquer sur Suivant.

Sélectionner l'option "Rechercher le meilleur pilote dans ces emplacements".

Insérer le CD-ROM « CD Livraison NSI » dans le lecteur du PC et cliquer sur Parcourir

Sélectionner le répertoire MISCPC2000\Win2k du CD-ROM d'installation.

Cliquer sur Suivant.

Windows cherche et indique qu'il a trouvé le pilote USB pour le périphérique.

Cliquer sur Suivant.

Windows copie les fichiers sur le disque dur puis indique qu'il a terminé l'installation.

Cliquer sur Terminer.

L'interface logicielle est prête à être utilisée.

Vérifier que la carte fonctionne en démarrant le programme MISCTEST.EXE qui est dans le

répertoire MISCPC2000\Test du CD-ROM. En cas de problème, consulter le paragraphe

«Dépannage de l’installation».

Page 35: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 33 -

I X . 2 D é p a n n a g e d e l ’ i n s t a l l a t i o n

Win9x, Me, 2k, XP: Windows ne détecte pas la carte au démarrage

Vérifier dans le gestionnaire de périphériques que Windows ne détecte pas de conflit de

ressources. Dans ce cas, résoudre les conflits et éventuellement désinstaller des

périphériques non utilisés. Redémarrer le PC.

Ou

Lancer l'installation de nouveau périphérique à partir du Panneau de Configuration.

Ou

Vérifier que les pilotes sont dans les répertoires appropriés. Dans le cas contraire,

recommencer l’installation de l’interface:

Windows 98, Me :

MUXy box NSIU2KBO.SYS dans Windows\System32\Drivers

Windows 2000 :

MUXy box NSIU2KBO.SYS dans WinNT \System32\Drivers

Windows XP :

MUXy box NSIU2KBO.SYS dans Windows\System32\Drivers

Win9x, Me, 2k, XP: La carte est signalée en erreur dans le gestionnaire de périphériques

Cliquer sur l'icône de la carte dans le Gestionnaire de Périphériques puis cliquer sur

Supprimer. Eteindre complètement le PC puis redémarrer. La détection d'un nouveau

périphérique est signalée. Fournir de nouveau les pilotes si Windows le demande.

Page 36: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 34 - DUT-MUX-0219 /V1.2 août 2013

X. Désinstallation de l’interface logicielle

X . 1 W i n d o w s 9 5 / 9 8 / M e

Fermer toutes les applications en cours…

Double cliquer sur les icônes suivantes :

1. Poste de Travail

2. Panneau de Configuration

3. Système

Cliquer sur l'onglet Gestionnaire de Périphériques

Double cliquer sur NSI.

Sélectionner la ligne de la carte NSI.

Cliquer sur le bouton Supprimer.

Répéter l’opération pour toutes les cartes installées.

Fermer le Gestionnaire de Périphériques

Ouvrir l’Explorateur Windows

Supprimer les fichiers suivants :

dans le répertoire \Windows\System NSIMISC.DLL

dans le répertoire \Windows\System32\Drivers

NSIU2KBO.SYS (MUXy box)

dans le répertoire \Windows\Inf\Other (Attention : ce répertoire peut être caché)

NSIU2KBO.SYS (MUXy box)

Redémarrer le système.

Page 37: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 35 -

X . 2 W i n d o w s 2 0 0 0

Fermer toutes les applications en cours…

Double cliquer sur les icônes suivantes :

1. Poste de Travail

2. Panneau de Configuration

3. Système

Cliquer sur l'onglet Matériel puis sur le bouton Gestionnaire de Périphériques.

Double cliquer sur NSI.

Sélectionner la ligne de la carte NSI

Dans le menu Action, cliquer sur Désinstaller.

Confirmer la suppression de ce périphérique.

Répéter l’opération pour toutes les cartes installées.

Fermer le Gestionnaire de Périphériques

Ouvrir l’Explorateur Windows

Supprimer les fichiers suivants :

dans le répertoire \WinNT\System32

NSIMISC.DLL.

dans le répertoire \WinNT\System32\Drivers

NSIU2KBO.SYS (MUXy box)

X . 3 W i n d o w s X P

Fermer toutes les applications en cours…

Ouvrir le menu Démarrer et cliquer sur les icônes suivantes :

1. Panneau de Configuration

2. Système

Cliquer sur l'onglet Matériel puis sur le bouton Gestionnaire de Périphériques.

Double cliquer sur NSI.

Sélectionner la ligne de la carte NSI

Dans le menu Action, cliquer sur Désinstaller.

Confirmer la suppression de ce périphérique.

Répéter l’opération pour toutes les cartes installées.

Fermer le Gestionnaire de Périphériques

Ouvrir l’Explorateur Windows et supprimer les fichiers suivants :

dans le répertoire \Windows\System32

NSIMISC.DLL.

dans le répertoire \Windows\System32\Drivers

NSIU2KBO.SYS (MUXy)

Page 38: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 36 - DUT-MUX-0219 /V1.2 août 2013

XI. ANNEXE : Prototypes des Fonctions

short Nsi_ConfigEvent( HANDLE hDrv,

HANDLE hEvent,

unsigned long ident );

short Nsi_EnumCards( unsigned long* cardcnt,

t_CardData* carddata,

unsigned long carddatasz );

short Nsi_ExitDrv( HANDLE hdrv );

short Nsi_GetAPIinfo( HANDLE hdrv,

short* DLLversion,

short* DRVversion,

unsigned long* reserved );

short Nsi_GetDeviceInfo( HANDLE hdrv,

t_MISCdeviceInfo* deviceInfo );

short Nsi_GetDeviceMode( HANDLE hdrv,

t_MISCdeviceMode* pMode );

short Nsi_InitDrv( short cno,

HANDLE* hdrv );

short Nsi_ReadIo( HANDLE hdrv,

unsigned long dwInputValues,

unsigned long reserved );

short Nsi_ReadIoEx( HANDLE hdrv,

t_MISCinputInfo* pInputInfo,

unsigned long dwInputInfoLen,

unsigned long reserved );

short Nsi_SetDeviceMode( HANDLE hdrv,

t_MISCdeviceMode mode,

unsigned long dwParam );

short Nsi_WriteIo( HANDLE hdrv,

unsigned long dwOutputValues,

unsigned long reserved );

Page 39: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 37 -

XII. Annexe : Fonctions de l'API Win32

L'interface Win32 est une API (Application Programming Interface) développée par

Microsoft pour ses systèmes d'exploitation 32 bits: Windows NT et Windows 95 / 98. L'API

Win32 permet de réaliser des applications capables de fonctionner sous tous les systèmes

implémentant l'interface Win32. L'API Win32 est dite "Multi Thread".

Q u ' e s t c e q u ' u n " T h r e a d " ?

En terme de code, un "Thread" est simplement une séquence de code qui est exécutée par le

système d'exploitation dans le contexte d'un processus (généralement une application). Un

processus débute son exécution par son Thread principal qui, dans un programme C

traditionnel, est la fonction main( ). Une fois démarré, le programme peut créer de nouveaux

"Threads" en effectuant un appel système spécifiant l'adresse de la fonction initiale du

nouveau "Thread". Le système d'exploitation fait basculer le contrôle du processeur entre les

Threads de manière préemptive pour donner l'impression que les Threads s'exécutent en

parallèle et de manière asynchrone.

L e s f o n c t i o n s W i n 3 2 à c o n n a î t r e

hEvent = CreateEvent( &sa, fManual, fInitial, pszName )

Création d'un événement. Un événement peut avoir deux états : "signalé" ou "non signalé".

Les paramètres sa et pszName ne sont significatifs que lorsque les événements sont

partagés entre des processus. Dans un processus unique, ces paramètres sont définis à

NULL. Le paramètre fInitial indique si l'événement sera "signalé" (fInitial =TRUE) ou

"non signalé" (fInitial = FALSE) à sa création. Le paramètre fManual indique si

l'événement est repassé automatiquement (fManual = FALSE) à l'état "non signalé" par la

fonction WaitForSingleObject ou s'il est géré initialisé par une application (fManual

=TRUE). hEvent est l'identificateur de l'événement crée.

WaitForSingleObject( hEvent, dwTimeOut )

Mise en attente du Thread qui appelle cette fonction de l'occurrence d'un événement . Le

paramètre hEvent indique le Handle de l'événement attendu. Le paramètre dwTimeOut

précise le temps d'attente maximal. Si l'événement est "signalé", la fonction retourne

aussitôt sinon elle suspend le Thread jusqu'à ce que l'événement devienne "signalé".

dwTimeOut peut être égal à une valeur en millisecondes de façon à ce que la fonction

retourne à la fin de ce délai dans le cas où l'événement reste "non signalé". Quand

dwTimeOut est égal à INFINITE, le Thread reprend son cours uniquement lorsque

l'événement est signalé.

hThread = CreateThread( lpsa, cbStack, lpStartAddr, lpvThreadParm,

fdwCreate, lpIDThread )

Cette fonction crée un nouveau Thread. Le paramètre lpsa est un pointeur sur une structure

SECURITY_ATTRIBUTES. La valeur NULL permet d'utiliser les attribut par défaut. Le

paramètre cbStack définit la quantité d'espace d'adressage que le thread est autorisé à

employer pour sa propre pile. La valeur 0 crée une pile de 1Mo par défaut. Le paramètre

Page 40: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 38 - DUT-MUX-0219 /V1.2 août 2013

lpStartAddr indique l'adresse de la fonction que le nouveau Thread doit exécuter. Le

paramètre lpvThreadParm est passé à la fonction lorsque le thread commence son

exécution. Le paramètre fdwCreate spécifie des options additionnelles contrôlant la

création du thread. Si cette valeur est 0, le thread commence son exécution immédiatement.

HThread est l'identificateur du thread crée. Le paramètre lpIDThread est une adresse

valide où sera enregistré l'ID que le système affecte au nouveau thread.

TerminateThread( hThread, dwExitcode )

Cette fonction termine le Thread identifié par le paramètre hThread et place le code de

sortie à la valeur dwExitCode. Cette fonction permet aussi de terminer un Thread s'il ne

répond plus aux commandes. Attention, cette fonction est dangereuse pour la stabilité

du système d'exploitation et ne doit être utilisée que dans les cas les plus extrême. Il

est nécessaire de bien contrôler que le Thread qui doit être terminé ne fait plus aucun appel

au pilote du périphérique.

CloseHandle( handle )

Cette fonction permet la fermeture d'un objet (Ex: un événement). Le paramètre handle est

l'identificateur de l'objet à fermer.

Remarque : Le HANDLE hdrv retourné par la fonction Nsi_InitDrv ne doit pas être fermé

par l'application. Il faut appeler la fonction Nsi_ExitDrv.

Page 41: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 39 -

XIII. Annexe : Programme d'exemple

Ce programme est donné à titre d'exemple. Il a été écrit en langage C et compilé avec l'outil

Developper Studio de Microsoft. Les conséquences de toute erreur ou mauvais

fonctionnement de ce programme ne sauraient mettre en cause la responsabilité de la société

NSI. La totalité de ce programme d'exemple est fourni sur le CD-ROM de livraison de

l'interface logicielle dans le répertoire MISCPC2000\Samples.

MISCTEST.C

Ce programme montre comment accéder à un périphérique pour récupérer les informations

sur ce dernier ou encore effectuer d'autres fonctionnalités propres au périphérique.

Les fonctions retournant des chaînes de caractères traduisant les codes utilisés par l'interface

sont fournis dans le s fichiers

ECHOMISC.C

ECHOMISC.H

Pour faciliter la compréhension du code, tous les cas d'erreurs possibles ne sont pas traités.

L'appel de chaque fonction est suivi de l'affichage des paramètres et du code retourné.

X I I I . 1 D é c l a r a t i o n s

Dans cette partie du programme, on déclare les prototypes des fonctions de l'interface

logicielle puis on crée les ressources systèmes nécessaires au fonctionnement de l'interface.

#include <windows.h>

#include <conio.h>

#include <stdio.h>

// Inclusion des fichiers de déclaration des structures

// et des fonctions de l'interface.

//

#include "miscdef.h"

#include "miscpro.h"

// Prototypes des fonctions du programme d'exemple

//

#include "miscdemo.h"

// Fonctions d'affichage

//

#include "echomisc.c"

#include "echomisc.h"

// Variables globales

// ------------------

//

// Handle du canal ouvert

HANDLE hDevice = INVALID_HANDLE_VALUE;

Page 42: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 40 - DUT-MUX-0219 /V1.2 août 2013

// MAIN( )

//-----------

// Fonction principale du programme d'exemple.

//

void main( void )

{

// Variables internes diverses

int i;

short cr;

BOOL done = FALSE;

short canal;

char key[2];

short DLL,DRV;

t_MISCdeviceMode mode;

t_MISCdeviceInfo tDeviceInfo;

unsigned long cardCount;

unsigned long values; //Pour la gestion des Entrees/Sorties

//Pour la gestion avancee des Entrees/Sorties

t_MISCinputInfo InputsInfo[NB_MAX_INPUTS];

// Variables de contrôle du Thread

DWORD threadId;

HANDLE hThread;

// Tableau pour recevoir la configuration des canaux

t_CardData cardData[10];

X I I I . 2 I n i t i a l i s a t i o n s

Cette partie du programme choisit un périphérique disponible et l'initialiser.

// Nsi_EnumCards

// ------------

// Lorsque plusieurs peripheriques sont disponibles dans un même

// PC, il est utile de connaître les particularités de chaque

// peripherique pour choisir lequel utiliser. Cette fonction retourne

// la liste des peripheriques utilisables dans un tableau. L'indice

// du tableau correspond au numéro du peripherique.

//

cr = Nsi_EnumCards( &cardCount, cardData, sizeof( cardData ));

printf( "Nsi_EnumCards : %s\n", GetCodeString( cr ) );

if( cr != _OK )

{

printf(" Failed to get device list.\n" );

getch( );

return;

}

Page 43: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 41 -

// Affiche la liste des cartes et trouve la premiere disponible.

// L'index de ce peripherique est placé dans la variable "device".

// Sinon –1 ce qui indique aucun peripherique libre.

//

printf( " Detected devices : %d\n", cardCount );

device = -1;

for( i=0; i<(int)cardCount; i++ )

{

printf(" %d – IO:% 3xh IRQ:%d %s (%d)\n",

i,

cardData[i].IOBaseAddress,

cardData[i].IRQLineNumber,

cardData[i].cardNameString,

cardData[i].cardAlreadyOpen );

// Trouve le premier peripherique disponible cad non utilisé au même

// moment par une autre application.

//

if( device == -1 && cardData[i].cardAlreadyOpen == FALSE )

{

device = i;

}

}

// Vérifie qu'au moins un peripherique est disponible

if( device < 0 )

{

printf(" MISCTEST needs at least one available device…\n" );

getch( );

return;

}

// Nsi_InitDrv

// ----------

// Selectionne et initialise un peripherique. La valeur du

// premier paramètre indique l'indice du peripherique que l'on

// veut utiliser. Celui-ci correspond à l'indice dans le tableau

// retourné par Nsi_EnumCards. Un "Handle" est retourné dans la

// variable "hDevice". Cette valeur identifie ce peripherique. Elle

// est passée à toutes les autres fonctions de l'interface logicielle.

//

cr = Nsi_InitDrv( (short)canal, &hDevice );

printf( "Nsi_InitDrv( %d,%08Xh ) : %s\n",

device,

hDevice,

GetCodeString( cr ));

if( cr != _OK )

{

printf(" Unable to select device #%d.\n", canal );

getch( );

return;

}

Page 44: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 42 - DUT-MUX-0219 /V1.2 août 2013

// Nsi_GetAPIinfo

// ---------------

// Retourne le type de la carte du canal initialisé et les version des

// fichiers de l'interface logicielle.

//

cr = Nsi_GetAPIinfo( hDevice, &DLL, &DRV );

printf("Nsi_GetAPIinfo : %s (%s,Dll:%.2f,Drv:%.2f)\n",

GetCodeString(cr),

DLL / 100.0,

DRV / 100.0 );

if( cr != _OK ) done = TRUE;

// GetDeviceInfo

// ---------------

// Retourne les informations sur la carte du canal initialisé et la

// version du logiciel embarqué.

//

cr = Nsi_GetDeviceInfo( hdrv, &tDeviceInfo );

printf( "Nsi_GetDeviceInfo:\t%s (Fw:%.2f, Hw:%.2f )\n",

GetCodeString(cr),

tDeviceInfo.USB.firmwareVersion/100.0,

tDeviceInfo.USB.hardwareVersion/100.0);

Page 45: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 43 -

X I I I . 3 G e s t i o n d e s E n t r é e s / S o r t i e s

Cette partie du programme permet de gérer les Entrées/Sorties d'un périphérique.

// Nsi_ReadIo

// ----------

// Lecture de la valeur des entrées logiques d'un périphérique.

// La signification de la valeur retournée par la fonction est

// décrite dans le manuel utilisateur de la carte concernée

//

cr = Nsi_ReadIo( hdrv, &values, 0 );

printf("Nsi_ReadIo:\t\t%s : Inputs=%08d\n",GetCodeString(cr), values);

// Nsi_ReadIoEx

// ------------

// Lecture de la valeur des entrées logiques d'un périphérique et de

// la date de leur dernier changement d'état.

//

cr = Nsi_ReadIoEx( hdrv, InputsInfo, sizeof(InputsInfo), 0 );

printf("Nsi_ReadIoEx:\t\t%s : Input1=%d, LastChange=%08d\n

Input2=%d, LastChange=%08d\n ",

GetCodeString(cr),

tInputInfo[0].InputValue,

tInputInfo[0].InputChange,

tInputInfo[1].InputValue,

tInputInfo[1].InputChange);

// Nsi_WriteIo

// ----------

// Ecriture de la valeur des sorties logiques d'un périphérique

// La signification de la valeur passée a la fonction est

// décrite dans le manuel utilisateur de la carte concernée

//

cr = Nsi_WriteIo( hdrv, values, 0 );

printf("Nsi_WriteIo:\t\t%s : Outputs=%08d\n",GetCodeString(cr), values);

Page 46: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 44 - DUT-MUX-0219 /V1.2 août 2013

X I I I . 4 G e s t i o n d e s m o d e s d e f o n c t i o n n e m e n t

Cette partie du programme permet de gérer les différents modes d'un périphérique. Elle est

valable uniquement pour les périphériques de type MUXy box. Les fonctions de gestion des

modes retournerons _BOARD_ERR si elles sont appelés pour d'autres périphériques.

// Nsi_SetDeviceMode

// -----------------

// Demande au périphérique de se placer dans un mode particulier

//

cr = Nsi_SetDeviceMode( hdrv, _MODE_LOW_POWER, 0 );

printf("Nsi_SetDeviceMode:\t%s : Mode=LOW_POWER\n",GetCodeString(cr));

// Nsi_GetDeviceMode

// -----------------

// Récupération du mode dans lequel est le périphérique

//

cr = Nsi_GetDeviceMode( hdrv, &mode );

printf(" Nsi_GetDeviceMode:\t%s : Mode=%s\n",

GetCodeString(cr),

GetModeString(mode) );

Page 47: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

août 2013 DUT-MUX-0219 /V1.2 - 45 -

X I I I . 5 A r r ê t d u p r o g r a m m e

Cette partie du programme est exécutée lorsque l'utilisateur presse sur la touche ESC. On doit

alors refermer le périphérique utilisé puis libérer les ressources système utilisées. Ceci

comprend le Thread de réception qui est arrêté (voir le code de ce Thread ci dessous).

// Nsi_ExitDrv

// ----------

// Ferme le handle du canal et libère le canal pour que d'autres

// applications puissent l'utiliser

//

cr = Nsi_ExitDrv( hDevice );

printf( "Nsi_ExitDrv : %s\n", GetCodeString(cr));

if( hDevice ) CloseHandle( hDevice );

puts(" Done : Press Key…");

getch( );

// Fin du programme principal

Page 48: Interface logicielle PC pour cartes NSI - admin.altran.fradmin.altran.fr/fileadmin/medias/FR.altran.fr/NSI/DUT-MUX-0219... · Interface logicielle PC pour cartes NSI - Guide utilisateur

Interface logicielle PC pour cartes NSI - Guide utilisateur

- 46 - DUT-MUX-0219 /V1.2 août 2013

Historique

Version Auteur Date Modifications

1.0 Cédric Rousset 10-03-04 Version initiale

1.1 Cédric Rousset 14-12-05 Ajout de la fonction Nsi_ReadIoEx.

1.2 E.Pennamen 04-02-13 Ajout de la fonction Nsi_ReadAna