Cette page couvre les fonctionnalités clés de la bibliothèque NI-VISA .NET. Pour télécharger la bibliothèque NI-VISA .NET et trouver de la documentation et des exemples, reportez-vous à .NET Resources for NI Hardware and Software.
La bibliothèque .NET NI-VISA contient des classes qui fournissent à NI-VISA une interface .NET. Cette bibliothèque est conforme aux Spécifications d'implémentation VISA pour .NET rédigées par IVI Foundation. Cette bibliothèque remplace la bibliothèque NI VisaNS, qui avait été implémentée avant que la Fondation IVI ne standardise l'API .NET en VISA. NI-VISA est l'implémentation NI de la spécification VISA (Virtual Instrumentation Software Architecture) standard de l'industrie. Ensemble, les spécifications VISA et VISA .NET définissent une API standard et cohérente pour communiquer avec des instruments et d'autres périphériques dans l'environnement .NET. NI-VISA .NET supporte plusieurs technologies de bus et d'interface, notamment TCP/IP, USB, GPIB, Série et PCI/PXI. Les classes fournies par la bibliothèque .NET NI-VISA implémentent des interfaces et utilisent des types qui sont définis dans la bibliothèque .NET IVI VISA (Ivi.Visa) qui est fournie par IVI Foundation. Pour plus de détails sur la bibliothèque IVI VISA .NET, reportez-vous à VPP-4.3.6 : Spécifications d'implémentation VISA pour .NET.
Dans une application typique, NI vous recommande d'utiliser un driver d'instruments spécifique à votre instrument si celui-ci est disponible. Reportez-vous à la section Télécharger l'API pour un instrument tiers des Ressources .NET pour le matériel et les logiciels NI pour savoir où télécharger Drivers d'instruments. N'utilisez la bibliothèque .NET NI-VISA que si un tel driver n'est pas disponible ou si vous avez besoin de fonctionnalités supplémentaires qui ne sont pas disponibles dans le driver.
L'espace de noms NationalInstruments.Visa comprend des classes .NET qui fournissent une interface riche orientée objet au driver NI-VISA. L'objet de session VISA est le concept fondamental dans la spécification de l'API VISA. Une session VISA identifie une ressource. Il existe plusieurs types de ressources, notamment les ressources d'instruments, les ressources de socket et les ressources d'interface. Dans la bibliothèque de classes NI-VISA .NET, les classes dérivées de Session, appelées classes dérivées de Session, encapsulent les objets de session VISA.
Les méthodes des classes dérivées de la session effectuent des opérations, comme la lecture ou l'écriture de données, sur l'objet de session VISA. Les méthodes des classes .NET NI-VISA correspondent aux opérations de l'API NI-VISA C. Les propriétés des classes dérivées de Session configurent l'objet de session VISA et correspondent aux attributs de l'API NI-VISA C.
Les classes dérivées des sessions ont des membres d'événement .NET. Vous pouvez enregistrer un délégué avec un événement .NET pour recevoir une notification lorsque l'événement se produit. Les méthodes et propriétés de classe dérivées des sessions vérifient les erreurs et traduisent les codes d'erreur des drivers NI-VISA en types d'exception .NET.
Les classes principales de l'espace de noms NationalInstruments.Visa sont GpibSession, PxiSession, SerialSession, TcpipSession, TcpipSocket, UsbSession et VxiSession. Ces classes dérivées de Session, appelées aussi classes « feuilles » dans le présent document, dérivent indirectement de Session. Ces classes fournissent la fonctionnalité principale de VISA. Chaque classe dérivée de Session représente un type de ressource VISA. Chaque classe dérivée de Session n'expose que les méthodes, propriétés et événements valides pour le type de ressource représenté par la classe dérivée de Session. GpibInterface, PxiBackplane, PxiMemory, UsbRaw, VxiBackplane et VxiMemory sont des classes feuilles dérivées de session supplémentaires pour les applications avancées.
Pour communiquer avec une ressource VISA dans une application ou bibliothèque .NET typique, créez une instance de la classe dérivée de Session spécifique qui correspond à la ressource. Définissez des propriétés sur l'instance pour configurer la ressource. Appeler des méthodes sur l'instance pour lire et écrire dans la ressource. Vous devez appeler Disposer pour libérer la ressource lorsque vous n'avez plus besoin d'y accéder.
Certains types d'applications ou de bibliothèques, comme les Drivers d'instruments, doivent accéder aux ressources de manière indépendante de l'interface. NI-VISA .NET inclut des classes supplémentaires que vous pouvez utiliser pour créer des ressources VISA et y accéder de manière indépendante de l'interface. Par exemple, pour créer un objet que vous pouvez utiliser pour communiquer avec un instrument via une interface GPIB ou une interface série, appelez Ouvrir et adaptez la valeur renvoyée à MessageBasedSession.
L'ensemble principal d'opérations que vous effectuez sur un objet dérivé de Session est l'ensemble des opérations d'entrée/sortie. Les opérations que vous utilisez pour les E/S pour les ressources basées messages sont différentes de celles que vous utilisez pour les ressources basées registres. Chaque classe feuille dérivée de Session ne fournit que les méthodes d'E/S appropriées pour la ressource représentée par la classe dérivée de Session.
Pour communiquer avec des ressources basées messages, vous devez transmettre des chaînes ou des tableaux d'octets entre l'application et la ressource. Un instrument GPIB est un exemple de ressource basée sur des messages. Pour communiquer avec des ressources basées registres, vous devez définir des registres sur la ressource ou accéder directement à la mémoire exportée par la ressource. Un instrument PXI est un exemple de ressource basée sur registre.
Les classes dérivées de sessions qui représentent des ressources basées messages incluent une propriété RawIO qui fournit des méthodes que vous pouvez utiliser pour lire et écrire dans des ressources basées messages. L'objet RawIO fournit des méthodes de lecture et d'écriture synchrones et asynchrones. Les méthodes synchrones effectuent toute l'opération et renvoient lorsque l'opération est terminée. Les méthodes asynchrones démarrent l'opération, renvoient immédiatement et lorsque l'opération est terminée, appellent un délégué que vous fournissez ou conservent les données jusqu'à ce que vous en fassiez la demande.
Utilisez ReadString pour lire une chaîne d'une ressource de manière synchrone. Utilisez Lecture pour lire de manière synchrone un tableau de données binaires d'une ressource. Utilisez BeginRead pour lancer une opération de lecture asynchrone. Utilisez EndReadString ou EndRead pour obtenir le résultat d'une opération de lecture asynchrone.
Utilisez Écrire pour écrire de manière synchrone une chaîne ou un tableau de données binaires dans une ressource. Utilisez BeginWrite pour lancer une opération d'écriture asynchrone. Utilisez EndWrite pour obtenir le résultat d'une opération d'écriture asynchrone.
Les classes dérivées de sessions qui représentent des ressources basées messages incluent une propriété FormatedIO qui fournit des opérations d'E/S formatées de plus haut niveau que vous utilisez pour lire et écrire dans des ressources basées messages.
Utilisez l'une des méthodes Écrire ou ÉcrireLigne pour formater et écrire de manière synchrone des messages textuels sur la ressource. Utilisez WriteBinary pour envoyer des blocs de données binaires. Utilisez la propriété EncodageBinaire pour spécifier comment l'objet E/S formatées formate les données binaires.
Utilisez l'une des méthodes Lire pour lire et analyser de manière synchrone des messages textuels et des données binaires de la ressource. Les différentes méthodes de lecture incluent une fonctionnalité de lecture des valeurs d'octets, de caractères, de nombres double précision, entiers et flottants. Par exemple, ReadInt64 lit une valeur Int64 encodée ASCII et ReadDouble lit une valeur Double encodée ASCII. Utilisez la propriété EncodageBinaire pour spécifier comment l'objet E/S formatées analyse les données binaires.
Utilisez une des méthodes Imprimer pour formater les données dans le format spécifié et les écrire dans la ressource. Utilisez une des méthodes de Balayage pour lire une chaîne formatée de la ressource et analyser la chaîne selon le format spécifié. Les spécificateurs de format utilisés dans la chaîne de format fournie aux méthodes Printf et Scanf sont très similaires à ceux utilisés pour les fonctions VISA viPrintf et viScanf, à quelques différences près. Pour plus de détails sur les méthodes FormattedIO et les spécificateurs de format supportés, consultez la description de IMessageBasedFormattedIO dans la spécification VPP-4.3.6.
Les classes dérivées de sessions qui représentent des ressources basées registres incluent des méthodes que vous utilisez pour lire et écrire dans de la mémoire exportée par des ressources basées registres.
Utilisez In8, In16, In32 et In64 pour lire des valeurs scalaires de la mémoire du périphérique. Utilisez MoveIn8, MoveIn16, MoveIn32 et MoveIn64 pour lire des tableaux de valeurs dans la mémoire du périphérique.
Utilisez Out8, Out16, Out32 et Out64 pour écrire des valeurs scalaires dans la mémoire du périphérique. Utilisez MoveOut8, MoveOut16, MoveOut32 et MoveOut64 pour écrire des tableaux de valeurs dans la mémoire du périphérique.
Le driver NI-VISA renvoie des codes d'erreur qui indiquent le succès ou l'échec d'une opération. Lorsqu'un appel de méthode .NET NI-VISA ou un accès à une propriété entraîne une erreur dans le driver NI-VISA, la classe .NET crée et renvoie une ExceptionIvi.Visa.VisaNatif. La propriété ErrorCode de cet objet d'exception contient le code d'erreur renvoyé par le driver NI-VISA.
Diverses méthodes MessageBasedSession pour lire et écrire des données renverront une exception Ivi.Visa.IOTimeoutException si l'opération a expiré. La propriété ActualCount de cette exception contient le nombre d'éléments lus ou écrits avant le timeout. La propriété ActualData de cette exception contient les octets lus ou écrits avant le timeout.
Pour obtenir la liste de tous les codes d'erreur NI-VISA, reportez-vous à la rubrique Codes d'erreur de l'Aide NI-VISA. Pour accéder à l'Aide NI-VISA dans le menu Démarrer, sélectionnez Démarrer»Programmes»National Instruments»VISA»Aide NI-VISA.
La classe ResourceManager fournit des fonctionnalités permettant de localiser, d'analyser et d'ouvrir des classes dérivées de sessions avec des noms de ressources. Utilisez Ouvrir pour instancier la classe dérivée de Session appropriée en fonction du nom de ressource donné. Utilisez Rechercher pour obtenir une liste des noms de ressources disponibles dans le domaine d'application, étant donné une expression recherchée. Utilisez Analyser pour obtenir des informations supplémentaires sur un nom de ressource.
Vous devez appeler Disposer pour libérer la ressource lorsque vous n'avez plus besoin d'y accéder. Tout objet dérivé de Session instancié avec la méthode Ouvrir est toujours valide une fois l'instance ResourceManager éliminée.
L'API NI-VISA .NET est similaire à l'API VisaNS et supporte la majorité des fonctionnalités fournies par VisaNS. VisaNS est l'ancienne API .NET pour VISA créée par NI avant que la spécification standard ne soit disponible. NI vous recommande d'utiliser l'API .NET standard NI-VISA au lieu de VisaNS pour toute nouvelle application que vous développez. Le support de l'ancienne API VisaNS sera supprimé dans une prochaine version.
De plus, il est possible de modifier les applications qui utilisent l'API VisaNS pour utiliser l'API .NET standard à la place. Par exemple, les classes dérivées de Session supportées dans la nouvelle API sont nommées de la même manière avec des constructeurs similaires. Cependant, comme la nouvelle API implémente des interfaces spécifiées par la spécification IVI et utilise plusieurs types définis dans cette spécification, les membres réels de ces classes dérivées de Session sont différents de ceux de VisaNS et nécessiteront donc des modifications manuelles de vos applications pour migrer de VisaNS vers NI-VISA .NET. Dans certains cas, comme la fonctionnalité d'E/S formatées, l'API est considérablement différente de VisaNS et peut nécessiter des modifications plus importantes pour la migration.
Certaines fonctionnalités supportées par l'API VisaNS ne le sont pas ou le sont différemment dans l'API NI-VISA .NET. Certaines des principales différences sont décrites ci-dessous.